天天看點

【嵌入式應用6】機器人定位與導航仿真

完整任務内容

  1. 在gazebo中建構一個用于建圖和導航的虛拟環境,可以使用Building Editor工具建立,也可以使用其他功能包中已有的虛拟環境;将前面作業完成的帶傳感器的移動機器人(小車)模型放置到虛拟環境中,使用gmapping 和 hector_slam功能包實作SLAM仿真。
  2. 在第一題建立完成的地圖上,實作基于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
           
【嵌入式應用6】機器人定位與導航仿真
【嵌入式應用6】機器人定位與導航仿真

2.地圖生成

rosrun map_server map_saver -f mymap
           

由于移動得太快了,地圖有點地方計算不明确。

【嵌入式應用6】機器人定位與導航仿真

3.用自己的world完成地圖生成

我自己建立了一個world,名叫mymy.world。

生成地圖需要小車運動,我們可以手動操控小車,也可以讓他自助探索。

手動操控
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
           
roslaunch mbot_teleop mbot_teleop.launch
           
【嵌入式應用6】機器人定位與導航仿真
自主探索
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
           
roslaunch mbot_navigation exploring_slam_demo.launch
           
rosrunmbot_navigation exploring_slam.py
           
【嵌入式應用6】機器人定位與導航仿真
最後生成地圖
rosrun map_server map_saver -f mymap
           
【嵌入式應用6】機器人定位與導航仿真

4.用自己生成的地圖進行導航

把加載地圖的launch檔案中的地圖的參數改成我們生成的地圖的檔案名。如下圖:

【嵌入式應用6】機器人定位與導航仿真
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

【嵌入式應用6】機器人定位與導航仿真

這樣小車就能按照路線導航了:

【嵌入式應用6】機器人定位與導航仿真

參考連結:

https://blog.csdn.net/weixin_44479297/article/details/95218005,

https://blog.csdn.net/yanwumuxi/article/details/80097294

繼續閱讀