在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

3、下载Gazobo的模型包。
完整安装ROS后自带的Gazebo没有相应的模型文件,启动empty_world.launch后可能出现黑屏,此时的gazebo里面啥模型也没有,必须下载相应的模型文件,并复制到~/.gazebo/models文件夹下,注意,这是一个隐藏文件夹。下载模型库的方法见另一位博主笔记:《Gazebo问题修复 - CSDN博客》,里面有稍微快一些的下载链接。

4、安装turtlebot相关包

$ sudo apt-get install ros-kinetic-turtlebot-*

turtlebot这个机器人以后经常会用到

仿真演示

下面启动一个仿真程序来做个演示,这个示例程序也是ROS官网给出的示例,很多入门教程都是以此为基础。

1、启动Gazebo并加载机器人、环境模型

roslaunch turtlebot_gazebo turtlebot_world.launch

在gazebo中运行turtlebot机器人模拟gmapping的slam过程_第1张图片

2、启动键盘遥控节点

roslaunch turtlebot_teleop keyboard_teleop.launch --screen

在gazebo中运行turtlebot机器人模拟gmapping的slam过程_第2张图片
此时,选中该命令窗口,按照提示,使用键盘上的u、i等键就可以看见机器人的Gazebo窗口中运动。

3、运行gmapping

roslaunch turtlebot_gazebo gmapping_demo.launch

4、开启rviz观察建图过程

roslaunch turtlebot_rviz_launchers view_navigation.launch

在gazebo中运行turtlebot机器人模拟gmapping的slam过程_第3张图片
此图是我运行的结果,虽然难看了点,但还算运行通了。

遇到的问题

Gazebo意外退出的问题,可能的原因:

(1)虚拟机运行ubuntu时,开启了3D加速,关掉,请参见《Gazebo问题修复 - CSDN博客》
(2)Gazebo版本问题,这个我不是很确定,但默认自带的Gazebo7.0折腾了我很久,刚一运行没多久,再运行个rviz,就很容易崩,我觉得可能是Gazebo很占资源,加上本人笔记本不算快,再同时运行rviz、gmapping等节点,导致Gazebo不太稳定,但是,我升级了Gazebo7.11.0后,同样的操作,程序意外结束的情况就变得很少了!如果你的Gazebo也常常意外终止,可以考虑一下换个版本。

你可能感兴趣的:(机器人,linux,ROS程序开发自学笔记)