Gazebo 安装与环境要求
二、安装与环境要求
版本对应与环境
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu,版本与所选 ROS2 发行版一致 | 不要混装多个 Gazebo 大版本,这是最常见的崩溃来源 |
| 显卡 | 建议有独立显卡与厂商驱动 | 相机、深度相机、GPU 激光雷达都依赖图形后端 |
| 无头服务器 | 可只跑服务端,不渲染 | 用无头渲染参数,或直接不用带 GPU 的传感器 |
| 内存 | 大场景建议 16 GB 以上 | 网格模型和点云会吃掉大量内存 |
安装步骤
- 先按 ROS2 官方步骤装好 ROS2 发行版并确认
ros2 topic list可用。 - 安装仿真器本体:老一代用
gazebo_ros_pkgs一类包名,新一代用ros_gz系列包。包名与发行版的对应关系以官方文档为准。 - 安装桥接相关的额外包(例如图像桥、点云桥),否则相机与雷达话题过不来。
- 检查版本一致性:
gz sim --versions或对应命令行,确认只有一套版本。 - 跑一个官方示例世界确认图形后端正常。
sudo apt update
sudo apt install -y ros-humble-ros-gz
sudo apt install -y ros-humble-ros-gz-bridge ros-humble-ros-gz-sim
source /opt/ros/humble/setup.bash
gz sim --versions
gz sim shapes.sdf
如果装的是 Classic,命令行工具是 gazebo 与 gzserver,示例命令也要相应替换。
资源路径配置
找不到模型是最常见的报错,原因是仿真器不知道去哪里找网格和材质。要把模型目录加进资源路径:
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:~/ws/src/my_robot/models
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:~/ws/src/my_robot/worlds
Classic 用的是 GAZEBO_MODEL_PATH 与 GAZEBO_RESOURCE_PATH。变量要在启动仿真器的同一个 shell 里设置,写进 ~/.bashrc 更省事。
常见报错排查
| 报错 / 现象 | 原因 | 处理 |
|---|---|---|
| symbol lookup error | 系统里混装了多个 Gazebo 版本 | 卸载多余版本,只保留与 ROS2 发行版配套的那一套 |
| 窗口黑屏或直接闪退 | 显卡驱动缺失或走了软件渲染 | 安装厂商驱动,确认 OpenGL 可用;服务器上改用无头模式 |
| Unable to find file with URI | 资源路径没配 or 模型文件名大小写不符 | 配置资源路径,Linux 下文件名区分大小写 |
| 机器人一动不动 | 没加载控制器插件,或关节没有驱动 | 确认控制器已加载、控制话题有数据 |
| 模型抖动、穿模、飞天 | 物理步长过大、惯性矩阵不合理、碰撞体过小 | 减小步长,按真实质量与几何设置惯性和碰撞 |
| ROS2 里看不到仿真话题 | 桥接节点没启动 | 启动 ros_gz_bridge 并核对话题类型映射 |
| 仿真跑得比实际慢很多 | 实时因子低,通常是物理步长太小或传感器频率太高 | 降低传感器更新率,放宽步长,减少场景中不必要的模型 |

