保姆级教程在Ubuntu 22.04上从零搭建ROS2 Humble的TurtleBot3仿真环境含Gazebo和Navigation2如果你刚接触ROS2机器人开发想要快速搭建一个完整的仿真环境来学习导航算法那么这份手把手教程就是为你准备的。我们将从零开始在Ubuntu 22.04系统上配置ROS2 Humble环境安装Gazebo物理仿真器导入TurtleBot3机器人模型并最终运行Navigation2导航栈实现自主路径规划。整个过程会详细解释每个步骤的原理并标注可能遇到的坑和解决方案。1. 系统准备与环境配置在开始之前确保你的系统满足以下基本要求操作系统Ubuntu 22.04 LTS推荐纯净安装硬件配置至少4GB内存20GB可用磁盘空间网络连接稳定的互联网连接以下载软件包首先更新系统软件包并安装一些基础依赖sudo apt update sudo apt upgrade -y sudo apt install curl gnupg2 lsb-release -y为ROS2 Humble添加官方软件源sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null2. ROS2 Humble完整安装ROS2 Humble Hawksbill是当前推荐的LTS长期支持版本特别适合学习和生产环境使用。执行以下命令进行完整安装sudo apt update sudo apt install ros-humble-desktop -y安装完成后设置环境变量以便在终端中使用ROS2命令source /opt/ros/humble/setup.bash echo source /opt/ros/humble/setup.bash ~/.bashrc验证安装是否成功ros2 run demo_nodes_cpp talker在另一个终端中运行ros2 run demo_nodes_py listener如果能看到talker发送的消息被listener接收并打印说明ROS2核心功能安装正确。3. Gazebo仿真环境配置Gazebo是ROS生态中最常用的物理仿真器我们将安装与ROS2 Humble兼容的版本sudo apt install ros-humble-gazebo-ros-pkgs -y测试Gazebo是否能正常运行ros2 launch gazebo_ros gazebo.launch.py这个命令会启动一个空的Gazebo世界。如果看到3D仿真界面出现说明安装成功。注意首次启动Gazebo可能会下载模型资源这可能需要一些时间。所有模型下载完成后会存储在~/.gazebo/models目录下。4. TurtleBot3仿真模型安装TurtleBot3是ROS官方推荐的入门级移动机器人平台非常适合学习和算法验证。安装其仿真包sudo apt install ros-humble-turtlebot3* -y设置默认机器人模型这里选择waffle_pi型号echo export TURTLEBOT3_MODELwaffle_pi ~/.bashrc source ~/.bashrc验证TurtleBot3模型能否正确加载ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py这个命令会启动一个包含TurtleBot3的Gazebo世界。你应该能看到一个类似汉堡形状的机器人在一个简单的室内环境中。5. Navigation2导航栈安装与配置Navigation2是ROS2中的标准导航系统实现了地图构建、定位、路径规划等核心功能。安装Navigation2及相关组件sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup ros-humble-cartographer ros-humble-cartographer-ros -y创建一个工作空间用于存放导航配置mkdir -p ~/nav2_ws/src cd ~/nav2_ws colcon build配置环境变量使Navigation2能够找到TurtleBot3的配置文件echo export GAZEBO_MODEL_PATH$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models ~/.bashrc source ~/.bashrc6. 运行完整仿真导航系统现在我们可以启动完整的仿真系统了。首先在一个终端中启动Gazebo世界和TurtleBot3ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py在另一个终端中启动Navigation2ros2 launch nav2_bringup tb3_simulation_launch.py这会打开RViz可视化界面。在RViz中你可以使用2D Pose Estimate按钮在地图上标记机器人的初始位置使用Nav2 Goal按钮设置导航目标点观察机器人规划的路径和实际运动轨迹7. 常见问题与解决方案在实际操作中你可能会遇到以下典型问题问题1Gazebo启动后黑屏或卡住解决方案检查显卡驱动是否安装正确尝试以简化模式启动ros2 launch gazebo_ros gazebo.launch.py verbose:true问题2TurtleBot3模型无法加载解决方案确认TURTLEBOT3_MODEL环境变量设置正确检查GAZEBO_MODEL_PATH是否包含TurtleBot3模型路径问题3Navigation2无法正确规划路径解决方案确保机器人初始位置估计准确检查地图是否有障碍物阻挡调整costmap参数以优化路径规划8. 进阶配置与自定义一旦基础环境运行正常你可以尝试以下进阶操作修改机器人参数编辑/opt/ros/humble/share/turtlebot3_gazebo/models/turtlebot3_waffle_pi/model.sdf文件调整物理特性创建自定义地图使用SLAM Toolbox构建自己的环境地图添加传感器在Gazebo中为机器人添加激光雷达或深度相机开发导航算法基于Nav2的插件接口实现自定义路径规划器# 示例启动SLAM建图 ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:true通过这个完整的教程你应该已经建立了一个功能完善的ROS2机器人仿真环境。这个环境不仅适用于学习导航算法基础也可以作为更复杂机器人应用的开发平台。
保姆级教程:在Ubuntu 22.04上从零搭建ROS2 Humble的TurtleBot3仿真环境(含Gazebo和Navigation2)
发布时间:2026/5/31 6:35:03
保姆级教程在Ubuntu 22.04上从零搭建ROS2 Humble的TurtleBot3仿真环境含Gazebo和Navigation2如果你刚接触ROS2机器人开发想要快速搭建一个完整的仿真环境来学习导航算法那么这份手把手教程就是为你准备的。我们将从零开始在Ubuntu 22.04系统上配置ROS2 Humble环境安装Gazebo物理仿真器导入TurtleBot3机器人模型并最终运行Navigation2导航栈实现自主路径规划。整个过程会详细解释每个步骤的原理并标注可能遇到的坑和解决方案。1. 系统准备与环境配置在开始之前确保你的系统满足以下基本要求操作系统Ubuntu 22.04 LTS推荐纯净安装硬件配置至少4GB内存20GB可用磁盘空间网络连接稳定的互联网连接以下载软件包首先更新系统软件包并安装一些基础依赖sudo apt update sudo apt upgrade -y sudo apt install curl gnupg2 lsb-release -y为ROS2 Humble添加官方软件源sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null2. ROS2 Humble完整安装ROS2 Humble Hawksbill是当前推荐的LTS长期支持版本特别适合学习和生产环境使用。执行以下命令进行完整安装sudo apt update sudo apt install ros-humble-desktop -y安装完成后设置环境变量以便在终端中使用ROS2命令source /opt/ros/humble/setup.bash echo source /opt/ros/humble/setup.bash ~/.bashrc验证安装是否成功ros2 run demo_nodes_cpp talker在另一个终端中运行ros2 run demo_nodes_py listener如果能看到talker发送的消息被listener接收并打印说明ROS2核心功能安装正确。3. Gazebo仿真环境配置Gazebo是ROS生态中最常用的物理仿真器我们将安装与ROS2 Humble兼容的版本sudo apt install ros-humble-gazebo-ros-pkgs -y测试Gazebo是否能正常运行ros2 launch gazebo_ros gazebo.launch.py这个命令会启动一个空的Gazebo世界。如果看到3D仿真界面出现说明安装成功。注意首次启动Gazebo可能会下载模型资源这可能需要一些时间。所有模型下载完成后会存储在~/.gazebo/models目录下。4. TurtleBot3仿真模型安装TurtleBot3是ROS官方推荐的入门级移动机器人平台非常适合学习和算法验证。安装其仿真包sudo apt install ros-humble-turtlebot3* -y设置默认机器人模型这里选择waffle_pi型号echo export TURTLEBOT3_MODELwaffle_pi ~/.bashrc source ~/.bashrc验证TurtleBot3模型能否正确加载ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py这个命令会启动一个包含TurtleBot3的Gazebo世界。你应该能看到一个类似汉堡形状的机器人在一个简单的室内环境中。5. Navigation2导航栈安装与配置Navigation2是ROS2中的标准导航系统实现了地图构建、定位、路径规划等核心功能。安装Navigation2及相关组件sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup ros-humble-cartographer ros-humble-cartographer-ros -y创建一个工作空间用于存放导航配置mkdir -p ~/nav2_ws/src cd ~/nav2_ws colcon build配置环境变量使Navigation2能够找到TurtleBot3的配置文件echo export GAZEBO_MODEL_PATH$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models ~/.bashrc source ~/.bashrc6. 运行完整仿真导航系统现在我们可以启动完整的仿真系统了。首先在一个终端中启动Gazebo世界和TurtleBot3ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py在另一个终端中启动Navigation2ros2 launch nav2_bringup tb3_simulation_launch.py这会打开RViz可视化界面。在RViz中你可以使用2D Pose Estimate按钮在地图上标记机器人的初始位置使用Nav2 Goal按钮设置导航目标点观察机器人规划的路径和实际运动轨迹7. 常见问题与解决方案在实际操作中你可能会遇到以下典型问题问题1Gazebo启动后黑屏或卡住解决方案检查显卡驱动是否安装正确尝试以简化模式启动ros2 launch gazebo_ros gazebo.launch.py verbose:true问题2TurtleBot3模型无法加载解决方案确认TURTLEBOT3_MODEL环境变量设置正确检查GAZEBO_MODEL_PATH是否包含TurtleBot3模型路径问题3Navigation2无法正确规划路径解决方案确保机器人初始位置估计准确检查地图是否有障碍物阻挡调整costmap参数以优化路径规划8. 进阶配置与自定义一旦基础环境运行正常你可以尝试以下进阶操作修改机器人参数编辑/opt/ros/humble/share/turtlebot3_gazebo/models/turtlebot3_waffle_pi/model.sdf文件调整物理特性创建自定义地图使用SLAM Toolbox构建自己的环境地图添加传感器在Gazebo中为机器人添加激光雷达或深度相机开发导航算法基于Nav2的插件接口实现自定义路径规划器# 示例启动SLAM建图 ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:true通过这个完整的教程你应该已经建立了一个功能完善的ROS2机器人仿真环境。这个环境不仅适用于学习导航算法基础也可以作为更复杂机器人应用的开发平台。