首先啓動gazebo,ctrl+B啓動gazebo自帶的building模式,構建自己的模型
然後將模型文件命名,然後保存到目錄下(默認的是home目錄)
之後將世界命名,然後保存到mbot_gazebo的worlds文件夾下
並修改mbot_gazebo中你需要用到的機器人模型的launch文件,將原有的參數,替換成自己的(如果這個方法不行,可以不用在創建完模型之後再改參數。可以先修改參數,然後運行launch文件,他會默認成爲一個空的模型文件,之後再進行環境搭建,保存爲你參數設置的名稱)
執行mbot_laser_nav_gazebo.launch文件
- 首先進入工作空間
- 命令行輸入
source ./devel/setup.bash
- 運行launch文件
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
再開一個終端啓動gmapping_demo.launch
roslaunch mbot_navigation gmapping_demo.launch
如果沒有安裝gmapping,可以執行以下命令進行安裝:(以kinetic爲例)
sudo apt-get install ros-kinetic-gmapping
執行成功之後會打開rviz界面:
再開一個終端啓動mbot_teleop.launch,通過鍵盤控制小車
roslaunch mbot_teleop mbot_teleop.launch
將整個封閉空間全部掃描完後,rviz界面圖像如下:
如果要保存地圖的話,可以執行如下命令:(name是你自己命名的,如果要進行導航的話則需要保存地圖)
rosrun map_server map_saver -f name
上面就是整個gmapping的整個過程,接下來是hector_slam
關閉之前的rviz界面,並打開終端Ctrl+C終止進程,避免再打開時卡住,然後運行hector_slam
roslaunch mbot_navigation hector_demo.launch
再開一個終端啓動mbot_teleop.launch,通過鍵盤控制小車,與上述步驟一樣。
將整個封閉空間全部掃描完後,rviz中圖像如下:
保存之後的圖片如下:
接下來就是自主導航
導航之前需要修改一下參數設置,所以需要將之前的gazebo關閉
將mbot_navigation/launch文件中的nav_cloister_demo.launch文件的地圖配置參數修改爲:
終端啓動運行mbot_laser_nav_gazebo.launch
之後再開一個終端輸入roslaunch mbot_navigation nav_cloister_demo.launch
會得到下圖
然後可以使用2D Nav Coat確立目標點,小車會自動前往該處