保姆级教程在Ubuntu 22.04上用ROS2 Humble和Gazebo搞定TurtleBot3仿真从安装到建图导航机器人操作系统ROS正在重塑现代机器人开发流程。作为ROS2的最新长期支持版本Humble Hawksbill为开发者带来了更稳定的API和更完善的工具链。本教程将带您从零开始在Ubuntu 22.04系统上搭建完整的TurtleBot3仿真环境涵盖从基础安装到高级导航的全流程。无论您是 robotics 新手还是希望迁移到ROS2的开发者这份手把手指南都能帮助您避开常见陷阱快速构建可工作的仿真系统。1. 环境准备与ROS2安装1.1 系统基础配置在开始ROS2安装前建议先执行以下系统更新和依赖安装sudo apt update sudo apt upgrade -y sudo apt install curl gnupg2 lsb-release -y注意所有命令建议逐行执行避免复制多行导致权限问题。设置ROS2软件源密钥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 $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null1.2 ROS2 Humble核心安装安装桌面完整版ROS2包含GUI工具和常用软件包sudo apt update sudo apt install ros-humble-desktop -y验证安装是否成功source /opt/ros/humble/setup.bash ros2 run demo_nodes_cpp talker预期看到终端持续输出Publishing: Hello World消息1.3 开发工具链配置安装colcon构建工具和常用扩展sudo apt install python3-colcon-common-extensions python3-rosdep2 -y sudo rosdep init rosdep update配置环境变量永久生效echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc2. TurtleBot3仿真环境搭建2.1 TurtleBot3软件包安装创建工作空间并下载源码mkdir -p ~/tb3_ws/src cd ~/tb3_ws wget https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/humble-devel/turtlebot3.repos vcs import src turtlebot3.repos解决常见依赖问题rosdep install --from-paths src --ignore-src -r -y编译源码约需10-15分钟colcon build --symlink-install2.2 Gazebo模型配置加速Gazebo模型下载cd ~/.gazebo/ git clone https://github.com/osrf/gazebo_models models --depth1 rm -rf models/.git设置TurtleBot3模型环境变量echo export GAZEBO_MODEL_PATH$GAZEBO_MODEL_PATH:~/tb3_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models ~/.bashrc echo export TURTLEBOT3_MODELburger ~/.bashrc source ~/.bashrc2.3 验证仿真环境启动空世界测试ros2 launch turtlebot3_gazebo empty_world.launch.py预期看到Gazebo界面和TurtleBot3 burger模型键盘控制测试ros2 run turtlebot3_teleop teleop_keyboard使用WASD键控制机器人移动观察Gazebo中的响应3. 建图与导航系统配置3.1 使用Cartographer构建地图启动带障碍物的仿真世界ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py新终端启动建图节点ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:true控制机器人探索环境ros2 run turtlebot3_teleop teleop_keyboard保存生成的地图ros2 run nav2_map_server map_saver_cli -f ~/tb3_map3.2 导航系统部署修改导航参数配置nano ~/tb3_ws/src/turtlebot3/turtlebot3_navigation2/param/burger.yaml将robot_model_type修改为robot_model_type: nav2_amcl::DifferentialMotionModel启动导航系统ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:true map:~/tb3_map.yaml在RViz2中点击2D Pose Estimate初始化机器人位置点击Navigation2 Goal设置目标点4. 高级功能与故障排除4.1 多环境仿真切换TurtleBot3支持多种预设环境环境名称启动命令特点描述空世界empty_world.launch.py干净环境适合基础测试迷宫世界turtlebot3_world.launch.py标准测试环境房屋场景turtlebot3_house.launch.py复杂室内环境4.2 常见错误解决方案问题1Gazebo模型加载缓慢export GZ_SIM_RESOURCE_PATH~/tb3_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models问题2RViz2无法显示机器人模型检查URDF配置ros2 run turtlebot3_bringup turtlebot3_description.py问题3导航时地图不显示确保burger.yaml中配置正确robot_model_type: nav2_amcl::DifferentialMotionModel4.3 性能优化技巧使用--ros-args --log-level WARN减少终端输出Gazebo运行时添加-s参数禁用GUIgazebo -s libgazebo_ros_init.so对于低配机器可以降低仿真精度physics typeode max_step_size0.01/max_step_size real_time_factor1.0/real_time_factor /physics
保姆级教程:在Ubuntu 22.04上用ROS2 Humble和Gazebo搞定TurtleBot3仿真(从安装到建图导航)
发布时间:2026/5/16 12:28:31
保姆级教程在Ubuntu 22.04上用ROS2 Humble和Gazebo搞定TurtleBot3仿真从安装到建图导航机器人操作系统ROS正在重塑现代机器人开发流程。作为ROS2的最新长期支持版本Humble Hawksbill为开发者带来了更稳定的API和更完善的工具链。本教程将带您从零开始在Ubuntu 22.04系统上搭建完整的TurtleBot3仿真环境涵盖从基础安装到高级导航的全流程。无论您是 robotics 新手还是希望迁移到ROS2的开发者这份手把手指南都能帮助您避开常见陷阱快速构建可工作的仿真系统。1. 环境准备与ROS2安装1.1 系统基础配置在开始ROS2安装前建议先执行以下系统更新和依赖安装sudo apt update sudo apt upgrade -y sudo apt install curl gnupg2 lsb-release -y注意所有命令建议逐行执行避免复制多行导致权限问题。设置ROS2软件源密钥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 $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null1.2 ROS2 Humble核心安装安装桌面完整版ROS2包含GUI工具和常用软件包sudo apt update sudo apt install ros-humble-desktop -y验证安装是否成功source /opt/ros/humble/setup.bash ros2 run demo_nodes_cpp talker预期看到终端持续输出Publishing: Hello World消息1.3 开发工具链配置安装colcon构建工具和常用扩展sudo apt install python3-colcon-common-extensions python3-rosdep2 -y sudo rosdep init rosdep update配置环境变量永久生效echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc2. TurtleBot3仿真环境搭建2.1 TurtleBot3软件包安装创建工作空间并下载源码mkdir -p ~/tb3_ws/src cd ~/tb3_ws wget https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/humble-devel/turtlebot3.repos vcs import src turtlebot3.repos解决常见依赖问题rosdep install --from-paths src --ignore-src -r -y编译源码约需10-15分钟colcon build --symlink-install2.2 Gazebo模型配置加速Gazebo模型下载cd ~/.gazebo/ git clone https://github.com/osrf/gazebo_models models --depth1 rm -rf models/.git设置TurtleBot3模型环境变量echo export GAZEBO_MODEL_PATH$GAZEBO_MODEL_PATH:~/tb3_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models ~/.bashrc echo export TURTLEBOT3_MODELburger ~/.bashrc source ~/.bashrc2.3 验证仿真环境启动空世界测试ros2 launch turtlebot3_gazebo empty_world.launch.py预期看到Gazebo界面和TurtleBot3 burger模型键盘控制测试ros2 run turtlebot3_teleop teleop_keyboard使用WASD键控制机器人移动观察Gazebo中的响应3. 建图与导航系统配置3.1 使用Cartographer构建地图启动带障碍物的仿真世界ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py新终端启动建图节点ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:true控制机器人探索环境ros2 run turtlebot3_teleop teleop_keyboard保存生成的地图ros2 run nav2_map_server map_saver_cli -f ~/tb3_map3.2 导航系统部署修改导航参数配置nano ~/tb3_ws/src/turtlebot3/turtlebot3_navigation2/param/burger.yaml将robot_model_type修改为robot_model_type: nav2_amcl::DifferentialMotionModel启动导航系统ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:true map:~/tb3_map.yaml在RViz2中点击2D Pose Estimate初始化机器人位置点击Navigation2 Goal设置目标点4. 高级功能与故障排除4.1 多环境仿真切换TurtleBot3支持多种预设环境环境名称启动命令特点描述空世界empty_world.launch.py干净环境适合基础测试迷宫世界turtlebot3_world.launch.py标准测试环境房屋场景turtlebot3_house.launch.py复杂室内环境4.2 常见错误解决方案问题1Gazebo模型加载缓慢export GZ_SIM_RESOURCE_PATH~/tb3_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models问题2RViz2无法显示机器人模型检查URDF配置ros2 run turtlebot3_bringup turtlebot3_description.py问题3导航时地图不显示确保burger.yaml中配置正确robot_model_type: nav2_amcl::DifferentialMotionModel4.3 性能优化技巧使用--ros-args --log-level WARN减少终端输出Gazebo运行时添加-s参数禁用GUIgazebo -s libgazebo_ros_init.so对于低配机器可以降低仿真精度physics typeode max_step_size0.01/max_step_size real_time_factor1.0/real_time_factor /physics