在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資料夾下,注意,這是一個隱藏資料夾。下載模型庫的方法見另一位博主筆記:
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也常常意外終止,可以考慮一下換個版本。