完整任務内容
- 在gazebo中建構一個用于建圖和導航的虛拟環境,可以使用Building Editor工具建立,也可以使用其他功能包中已有的虛拟環境;将前面作業完成的帶傳感器的移動機器人(小車)模型放置到虛拟環境中,使用gmapping 和 hector_slam功能包實作SLAM仿真。
- 在第一題建立完成的地圖上,實作基于move_base和amcl功能包的機器人自主導航仿真。
源碼可在github上搜到
1.啟動例子
三個終端:
roslaunch mbot_gazebo mbot_kinect_nav_gazebo.launch
roslaunch mbot_navigation gmapping_demo.launch
roslaunch mbot_teleop mbot_teleop.launch2
2.地圖生成
rosrun map_server map_saver -f mymap
由于移動得太快了,地圖有點地方計算不明确。
3.用自己的world完成地圖生成
我自己建立了一個world,名叫mymy.world。
生成地圖需要小車運動,我們可以手動操控小車,也可以讓他自助探索。
手動操控
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
roslaunch mbot_teleop mbot_teleop.launch
自主探索
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
roslaunch mbot_navigation exploring_slam_demo.launch
rosrunmbot_navigation exploring_slam.py
最後生成地圖
rosrun map_server map_saver -f mymap
4.用自己生成的地圖進行導航
把加載地圖的launch檔案中的地圖的參數改成我們生成的地圖的檔案名。如下圖:
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
roslaunch mbot_navigation exploring_slam_demo.launch
遇到錯誤:小車不按線路行走:
解決辦法:修改xacro檔案裡面的參數如下圖:
圖檔不知道為啥展示這麼小,我手寫一次路徑吧:
要修改的xacro路徑為:
~/catkin_ws/src/mbot_description/urdf/xacro/gazebo/mbot_base_gazebo.xacro
這樣小車就能按照路線導航了:
參考連結:
https://blog.csdn.net/weixin_44479297/article/details/95218005,
https://blog.csdn.net/yanwumuxi/article/details/80097294