在gazebo中运行turtlebot机器人模拟gmapping的slam过程
近期在ROS环境下进行机器人仿真时用到了gazebo这个仿真软件,有了该软件,可以在没有实体机器人的情况下做一些算法模拟,直观的观察到机器人的运动情况,这对刚开始学习ROS和机器人程序开发的人来讲有很大帮助,本文参照一些网上教程在来仿真实现gmapping的slam过程,并总结了一些遇到的问题。
仿真环境
操作系统:ubuntu 16.04
ROS版本:kinetic
Gazebo版本:Gazebo7.11.0
仿真机器人:turtlebot
前期准备:
1、安装完整版的ROS。
kinetic版的ROS安装完后自带Gazebo7.0,注意,不同版本的ROS推荐使用不同的gazebo,在kinetic版本的ROS下,推荐使用Gazebo7.x,建议安装与自己ROS版本对应的Gazebo,这个Gazebo官网上有说明。
2、安装一些ROS-Gazebo组件
sudo apt-get install ros-kinetic-gazebo-ros-pkgs ros-kinetic-gazebo-ros-control
- 1
3、下载Gazobo的模型包。
完整安装ROS后自带的Gazebo没有相应的模型文件,启动empty_world.launch后可能出现黑屏,此时的gazebo里面啥模型也没有,必须下载相应的模型文件,并复制到~/.gazebo/models文件夹下,注意,这是一个隐藏文件夹。下载模型库的方法见另一位博主笔记:《Gazebo问题修复 - CSDN博客》,里面有稍微快一些的下载链接。
4、安装turtlebot相关包
$ sudo apt-get install ros-kinetic-turtlebot-*
- 1
turtlebot这个机器人以后经常会用到
仿真演示
下面启动一个仿真程序来做个演示,这个示例程序也是ROS官网给出的示例,很多入门教程都是以此为基础。
1、启动Gazebo并加载机器人、环境模型
roslaunch turtlebot_gazebo turtlebot_world.launch
- 1
2、启动键盘遥控节点
roslaunch turtlebot_teleop keyboard_teleop.launch --screen
- 1
- 2
此时,选中该命令窗口,按照提示,使用键盘上的u、i等键就可以看见机器人的Gazebo窗口中运动。
3、运行gmapping
roslaunch turtlebot_gazebo gmapping_demo.launch
- 1
4、开启rviz观察建图过程
roslaunch turtlebot_rviz_launchers view_navigation.launch
- 1
此图是我运行的结果,虽然难看了点,但还算运行通了。
遇到的问题
Gazebo意外退出的问题,可能的原因:
(1)虚拟机运行ubuntu时,开启了3D加速,关掉,请参见《Gazebo问题修复 - CSDN博客》
(2)Gazebo版本问题,这个我不是很确定,但默认自带的Gazebo7.0折腾了我很久,刚一运行没多久,再运行个rviz,就很容易崩,我觉得可能是Gazebo很占资源,加上本人笔记本不算快,再同时运行rviz、gmapping等节点,导致Gazebo不太稳定,但是,我升级了Gazebo7.11.0后,同样的操作,程序意外结束的情况就变得很少了!如果你的Gazebo也常常意外终止,可以考虑一下换个版本。