完整任务内容
- 在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