ROS的SLAM學習:地圖掃描與導航仿真

首先啓動gazebo,ctrl+B啓動gazebo自帶的building模式,構建自己的模型

然後將模型文件命名,然後保存到目錄下(默認的是home目錄)
在這裏插入圖片描述
之後將世界命名,然後保存到mbot_gazebo的worlds文件夾下
在這裏插入圖片描述
並修改mbot_gazebo中你需要用到的機器人模型的launch文件,將原有的參數,替換成自己的(如果這個方法不行,可以不用在創建完模型之後再改參數。可以先修改參數,然後運行launch文件,他會默認成爲一個空的模型文件,之後再進行環境搭建,保存爲你參數設置的名稱)
在這裏插入圖片描述
執行mbot_laser_nav_gazebo.launch文件

  1. 首先進入工作空間
  2. 命令行輸入
source  ./devel/setup.bash
  1. 運行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確立目標點,小車會自動前往該處
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章