1. 程式人生 > >在gazebo中執行turtlebot機器人模擬gmapping的slam過程

在gazebo中執行turtlebot機器人模擬gmapping的slam過程

在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也常常意外終止,可以考慮一下換個版本。