1. 程式人生 > >ROS學習--(十九)使用Gazebo模擬器

ROS學習--(十九)使用Gazebo模擬器

Stage模擬器是模擬二維平面的模擬器,而Gazebo則是三維的,可以自己在地圖上新增幾何體。
先按前面的教程做完,安裝了turltebot,啟動Gazebo模擬器

$ roslaunch turtlebot_gazebo turtlebot_world.launch

這樣就啟動成功了,第一次啟動可能要等個幾分鐘或十幾分鍾,因為要從網路上獲取模型的更新,如果開啟後發現視窗中什麼都沒有,則看看終端有沒沒有說是在獲取更新之類的資訊。

先執行一下命令$ sudo apt-get install ros-indigo-turtlebot-apps ros-indigo-turtlebot-rviz-launchers

接下來控制模擬機器人移動,有兩種方法,一種是通過手柄,一種是用鍵盤
鍵盤:$ roslaunch turtlebot_teleop keyboard_teleop.launch --screen
羅技手柄:$ roslaunch turtlebot_teleop logitech.launch --screen

接著在開一個RViz,Gazebo相當於模擬現實世界,而RViz獲得對周圍的事物的感測器資訊。

接下來我們試著建立地圖

roslaunch turtlebot_gazebo gmapping_demo.launch

如果運行了這條命令列後報錯,那麼就要執行一下步驟
先下載壓縮包ros-indigo-gmapping_1.3.7.orig.tar.gz,這個只能自己找了。
下載完後將目錄轉到~/catkin_ws/src
執行tar xvf ../../ros-indigo-gmapping_1.3.7.orig.tar.gz


意思是將壓縮包解壓。
然後執行mv ros-indigo-gmapping-1.3.7/ gmapping
將資料夾移動到src/gmapping,到catkin_ws下的src資料夾中看,應該有gmapping。
然後進入該資料夾的src資料夾中,開啟slam_gmapping.cpp,找到409行,將FLT_EPSILON改為0。003。儲存,退出
回到終端,執行以下命令你個

cd ..
catkin_make
sudo cp devel/lib/gampping/slam_gmapping* /opt/ros/indigo/lib/gmapping/

再次執行roslaunch turtlebot_gazebo gmapping_demo.launch,再執行roslaunch turtlebot_rviz_launchers view_navigation.launch就可以看到下圖


控制模擬機器人運動,可以看到地圖正在豐富(如果遇到rviz開啟連機器人都沒有顯示或者打不開提示rviz程序死掉的,試試source /opt/ros/indigo/setup.bash)

儲存地圖 $ rosrun map_server map_saver -f /tmp/my_map

關掉所有終端,從第一步開始重新做起,但最後一步是開啟地圖而不是儲存

roslaunch turtlebot_gazebo amcl_demo.launch map_file:=<full path to your map file>

這裡我們的路徑就是/tmp/my_map,yaml