步骤 1:环境检查与 Gazebo 验证
前置条件:已安装 Ubuntu 20.04,具备终端和
sudo权限。 本步目标:确认 ROS Noetic、Gazebo Classic 11 和gazebo_ros可用于本教程。 预计时间:20-40 分钟。
1. 检查操作系统
lsb_release -a
预期输出:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.x LTS
Release: 20.04
Codename: focal
本教程使用 ROS Noetic + Gazebo Classic 11。Ubuntu 22.04 需要额外处理 Noetic 软件源,不建议初学者直接使用。
2. 检查 ROS Noetic
先加载 ROS 环境:
source /opt/ros/noetic/setup.bash
echo $ROS_DISTRO
rosversion -d
应分别输出:
noetic
noetic
再检查常用命令:
which roscore
which roslaunch
which rosrun
如果命令不存在,需要先安装并正确配置 ROS Noetic。
3. 检查 Gazebo
检查 Gazebo 版本:
gazebo --version
应看到 Gazebo 11 系列版本信息。
检查 ROS Gazebo 包:
rospack find gazebo_ros
如果正确安装,会输出类似:
/opt/ros/noetic/share/gazebo_ros
再检查本教程需要的插件库是否存在:
find /opt/ros/noetic -name "libgazebo_ros_diff_drive.so"
find /opt/ros/noetic -name "libgazebo_ros_laser.so"
find /opt/ros/noetic -name "libgazebo_ros_camera.so"
三个库都应能找到。找不到时,优先补装 gazebo_ros 包。部分 ROS Noetic 环境只提供 libgazebo_ros_laser.so,不提供 libgazebo_ros_ray_sensor.so,本教程按仓库现有插件版本使用前者。
4. 安装缺失依赖
sudo apt update
sudo apt install \
ros-noetic-gazebo-ros-pkgs \
ros-noetic-xacro \
ros-noetic-robot-state-publisher \
ros-noetic-rqt-graph \
ros-noetic-rqt-tf-tree \
ros-noetic-rqt-image-view
安装完成后重新加载环境:
source /opt/ros/noetic/setup.bash
5. 启动空世界
roslaunch gazebo_ros empty_world.launch
成功现象:
- Gazebo 窗口打开;
- 世界中出现地面和太阳;
- 终端没有持续报插件加载失败;
- 另开终端执行下列命令能看到 Gazebo 相关节点和话题。
rosnode list
rostopic list | grep -E "clock|gazebo|tf"
停止时在启动终端按 Ctrl+C。
6. 常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
gazebo: command not found |
Gazebo 未安装或未加载环境 | 安装 gazebo11 和 ros-noetic-gazebo-ros-pkgs |
rospack find gazebo_ros 找不到 |
未安装 Gazebo ROS 包 | 补装 ros-noetic-gazebo-ros-pkgs |
| Gazebo 窗口打不开 | 虚拟机显卡或 OpenGL 问题 | 开启 3D 加速,或先使用 gui:=false 测试 |
| ROS 命令找不到 | 未 source 环境 | source /opt/ros/noetic/setup.bash |
找不到插件 .so |
ROS 包安装不完整 | 重新安装 Gazebo ROS 相关包 |
7. 本步验收
- [ ]
echo $ROS_DISTRO输出noetic; - [ ]
gazebo --version显示 Gazebo 11; - [ ]
rospack find gazebo_ros能找到路径; - [ ]
roslaunch gazebo_ros empty_world.launch能打开空世界; - [ ] 能解释 Roslaunch、Gazebo 和 ROS 节点之间的关系。
- 返回教程总览
- 下一步:步骤 2:工作空间与功能包