[具身智能-187]:Gazebo 完整指南(适配WSL2 + Ubuntu22.04 + ROS2 Humble + ROSMASTER M1 小车)
·
Gazebo 完整指南(适配你的 WSL2 + Ubuntu22.04 + ROS2 Humble + ROSMASTER M1 小车)
先分清关键版本(最容易踩大坑!)
两大产品线不兼容,插件、模型代码不能混用
- Gazebo Classic(经典版,Gazebo 11) ROS2 Humble 官方原生配套,亚博、Turtlebot3 等绝大多数国内小车教程全部基于这个版本。 命令:
gazebo - Gazebo Sim(新版,曾名 Ignition Gazebo,Harmonic/Fortress) 全新重构架构,命令:
gz sim;旧小车 URDF/SDF 插件大量不兼容,不推荐现在使用
✅ 场景首选:Gazebo Classic 11
一、WSL2 Ubuntu22.04 + Humble 一键安装 Gazebo Classic
ROS2 Humble 官方桥接包,不需要额外添加 gazebo 源,直接 apt 安装
bash
运行
# 核心:Gazebo <-> ROS2通信桥接包(必须)
sudo apt install -y ros-humble-gazebo-ros-pkgs ros-humble-gazebo-ros2-control
# 可选:常用控制器(差速底盘、舵机、激光雷达仿真必备,小车仿真强烈建议装)
sudo apt install -y ros-humble-ros2-control ros-humble-ros2-controllers ros-humble-gazebo-ros2-demo
二、基础启动测试
新开终端,先加载 ROS 环境
bash
运行
source /opt/ros/humble/setup.bash
# 方式1:直接空世界启动gazebo
ros2 launch gazebo_ros gazebo.launch.py
✅ 正常弹出 Gazebo 仿真窗口 = 安装成功
Gazebo 两大进程概念(理解仿真架构)
- gzserver:物理仿真引擎(计算碰撞、里程计、传感器数据,无界面,可以后台无头运行)
- gzclient:可视化图形窗口(仅显示画面,关掉不影响仿真运算)
三、WSL2 高频图形问题【重中之重】
Windows11 自带 WSLg,理论开箱显示,但经常出现黑屏、极其卡顿、无法启动
方案 A:临时软件渲染(立刻解决黑屏,牺牲帧率)
启动 Gazebo 前执行:
bash
运行
export LIBGL_ALWAYS_SOFTWARE=1
ros2 launch gazebo_ros gazebo.launch.py
方案 B:永久写入配置(推荐)
bash
运行
echo "export LIBGL_ALWAYS_SOFTWARE=1" >> ~/.bashrc
source ~/.bashrc
高配显卡想要 WSL GPU 硬件加速,需要升级 WSL Mesa 驱动,复杂度高;调试小车仿真优先使用软件渲染保证稳定。
四、与ROSMASTER M1 小车开发结合思路
两条开发路线:
路线 1:纯仿真开发(电脑 WSL 内)
- 编写 M1 小车 URDF 模型(底盘、云台舵机、激光雷达 / 相机)
- 在 Gazebo 加载模型,使用
/cmd_vel控制仿真底盘 - 手柄遥控仿真车辆,算法调试完成后,再下载到真实小车
优势:不怕撞车、不需要实体硬件,快速验证导航 / 避障算法
路线 2:虚实结合(不推荐)
仿真数据和实体小车互通,DDS 网络配置复杂,新手优先纯仿真。
五、常用基础命令
bash
运行
# 仅启动仿真引擎(无头模式,无GUI,服务器批量仿真用)
ros2 launch gazebo_ros gzserver.launch.py
# 单独启动图形界面
gzclient
# 彻底杀掉所有gazebo进程(卡死时救命)
killall -9 gzserver gzclient
六、国内网络坑:Gazebo 模型加载缓慢 / 加载失败
首次打开左侧 Insert 模型库,需要联网下载官方模型,国内经常超时卡住。 解决方法:离线模型包
bash
运行
# 创建模型目录
mkdir -p ~/.gazebo/models
# 网上下载完整gazebo model库解压放入该目录
七、Gazebo 与 Rviz2 区别(不要混淆!)
表格
| 工具 | 定位 | 作用 |
|---|---|---|
| Gazebo | 物理仿真器 | 虚拟世界,模拟小车运动、碰撞、虚拟相机 / 雷达,生成仿真传感器数据 |
| Rviz2 | 可视化工具 | 只展示话题数据(真实小车 / Gazebo 仿真输出的数据都能看),没有物理仿真能力 |
典型工作流:
Gazebo(虚拟小车)发布
/cmd_vel、/scan激光数据 → Rviz2 查看机器人状态、雷达点云
八、常见报错排查清单
gazebo command not found没有 source ROS 环境:source /opt/ros/humble/setup.bash- 窗口黑屏、灰色画面 使用上面
LIBGL_ALWAYS_SOFTWARE=1开启软件渲染 - 模型加载后小车不受控制 URDF 缺少 gazebo 插件(差速驱动插件),无法接收
/cmd_vel指令 - Gazebo 启动 CPU 占用 100% WSL 软件渲染常态;减少场景物体、关闭多余光源降低负载
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)