引言
-
SLAM(同步定位与地图构建)在Gazebo仿真环境中的应用能够模拟真实机器人进行环境建图和导航。通过SLAM仿真,开发者可以在虚拟环境中测试算法,而不必依赖真实硬件,便于调试与优化。
-
Gazebo提供了多个虚拟环境,用户可以选择合适的环境来测试SLAM算法。与实际机器人操作类似,SLAM仿真涉及环境创建、SLAM节点启动、遥控操作等步骤,帮助用户在虚拟环境中完成定位与地图构建任务。
-
本文将介绍如何在Gazebo中使用TurtleBot3进行SLAM仿真,包括启动仿真环境、运行SLAM节点、遥控机器人以及保存地图的操作。
学习目标
-
掌握在Gazebo中使用TurtleBot3进行SLAM仿真的基本操作。
-
学会启动TurtleBot3仿真环境,并使用SLAM节点进行环境建图。
-
掌握遥控TurtleBot3进行探索,并保存生成的地图文件。
-
ROSROS_Noetic_Ninjemys__Ubuntu_2004_Focal_FossaROS_1___UbuntuROSPython_httpsblogcsdnnetqq_45780647articledetails143581334spm1001201430015501_16">安装与自己Ubuntu版本对应的ROS版本,本文ROS Noetic Ninjemys 主要支持 Ubuntu 20.04 (Focal Fossa),其他ROS 1 版本也适用。安装前请详细参考 Ubuntu版本、ROS版本与Python 版本之间的关系。
学习内容
1 注意事项
1.1 兼容性注意事项
- 注意:本文内容对应的是远程PC(桌面或笔记本电脑),用于控制TurtleBot3。 请勿将此指令应用到TurtleBot3机器人上。
- 首次启动模拟可能需要一些时间来完成环境设置。
- SLAM 仿真前请详细参考 ———>专栏: Linux系统之Ubuntu系统安装 。
- SLAM 仿真前请详细参考 ———>专栏: Turtlebot3 PC端ROS环境搭建与仿真。
ROS_turtlebot3gazebo_29">1.2 ROS 系统安装、turtlebot3环境搭建与gazebo仿真
1.2.1 安装 ROS 系统与搭建turtlebot3环境
- 🕐见专栏:Turtlebot3 PC端ROS环境搭建与仿真之 Ubuntu 的 ROS 操作系统安装与测试。
- 🕑见专栏:Turtlebot3 PC端ROS环境搭建与仿真之 Ubuntu 的 ROS 操作系统turtlebot3环境搭建。
1.2.2 turtlebot3 gazebo仿真
1.2.3 Turtlebot3 buger 硬件与操作平台
- 见专栏:Turtlebot3 PC端ROS环境搭建与仿真之 Turtlebot3 buger 硬件与操作平台详细介绍。
2 启动Gazebo仿真环境
# 设置TurtleBot3模型
export TURTLEBOT3_MODEL=burger# 启动TurtleBot3 World环境
roslaunch turtlebot3_gazebo turtlebot3_world.launch
TurtleBot3 默认世界Gazebo仿真环境如下图所示:
3 运行SLAM节点
在新的终端中启动SLAM节点,默认使用Gmapping算法进行建图。
# 设置TurtleBot3模型
export TURTLEBOT3_MODEL=burger# 启动SLAM节点
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
RViz可视化界面如下图所示:
4 启动遥控节点
在新的终端中启动遥控节点,通过键盘控制TurtleBot3的运动。
# 设置TurtleBot3模型
export TURTLEBOT3_MODEL=burger# 启动遥控节点
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
键盘远程控制方法如下图所示:
控制机器人:
- w/x:增加/减少线速度
- a/d:增加/减少角速度
- 空格键、s:紧急停止
- CTRL-C:退出遥控
SLAM 的 RViz 可视化界面如下图所示:
5 保存地图
5.1 键盘远程控制TurtleBot3
当地图构建完成后,在新的终端中使用以下命令保存地图到本地,默认地址为 /home ,命名为map.pgm。
# 保存地图
rosrun map_server map_saver -f ~/map
构建的地图保存如下图所示:
小结
- 本文详细介绍了如何在Gazebo中使用TurtleBot3进行SLAM仿真,从启动仿真环境到保存生成的地图,帮助开发者掌握SLAM仿真流程。
- 通过遥控TurtleBot3进行探索,并利用SLAM算法构建地图,能够为后续的导航和路径规划任务打下基础。