ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真

gazebo 中能仿真真实世界,包括很多物理属性,比如惯性,碰撞等。对于没有真实机器人和场地条件的情况下,作用十分强大。
在本篇文章中,我会介绍如何在Gazebo中实现小车的定位与导航仿真,我会将所用代码上传,你可以使用他自带的虚拟环境,也可以像我一样,自行创建一个虚拟世界。
首先启动gazebo,ctrl+B启动gazeb自带的building模式
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第1张图片

然后在构建好后,保存至./gazebo/moduls
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第2张图片

创建一个空白文档,我取名为chen.world,并填写下列代码

ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第3张图片
并修改launch文件,将原有的world文档,替换成chen.world
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第4张图片
执行mbot_laser_nav_gazebo.launch文件

ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第5张图片ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第6张图片
再开一个终端启动gmapping_demo.launch
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第7张图片
再开一个终端启动mbot_teleop.launch,通过键盘控制小车
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第8张图片
在通过键盘控制小车,将整个封闭空间全部扫描完后,查看rviz
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第9张图片
再开一个终端输入命令rosrun map_server map_saver -f chen_gmapping保存地图

ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第10张图片
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第11张图片

再开一个终端启动hector_demo.launch
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第12张图片
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第13张图片

再开一个终端启动mbot_teleop.launch,通过键盘控制小车
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第14张图片
在通过键盘控制小车,将整个封闭空间全部扫描完后,查看rviz
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第15张图片
再开一个终端输入命令rosrun map_server map_saver -f chen_gmapping保存地图
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第16张图片
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第17张图片

在实现我们的自动导航前,我们需要将我们之前做的地图写入到程序中,先将地图移动到mbot_navigation/map下
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第18张图片

然后修改代码如下图,将这里地图改为之前我们创建的地图的名字
ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第19张图片

开一个终端启动nav_cloister_demo.launch

ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第20张图片

会弹出rviz,如果这里你的实际地图与导航预测地图不同可以使用2D Pose Extimate,确立方向,使地图重合

ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第21张图片
然后就可以使用2D Nav Coat确立目标点,小车会自动前往该处

ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真_第22张图片

你可能感兴趣的:(ROS机器人SLAM学习:自建虚拟世界与Gazebo定位与导航仿真)