1)在gazebo中构建一个用于建图和导航的虚拟环境,可以使用Building Editor工具创建,也可以使用其他功能包中已有的虚拟环境;将前面作业完成的带传感器的移动机器人(小车)模型放置到虚拟环境中,使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,随作业一同提交。
① 首先使用gmapping将要执行的launch文件中内容修改成自己建立的虚拟环境

② 然后就可以执行教材上的命令,之后在gazebo就出现了自己的虚拟环境和rviz上的地图

③ 执行移动命令后可以对机器人进行控制,绕地图一周,配置好地图。大概的地图情况如下图

④ 然后保存地图,最开始我的虚拟机里没有map_server,所以出现了找不到这个包的情况

⑤ 然后我就通过以下命令下载了map_server

⑥ 下载成功后就可以运行保存地图的命令了

⑦ 完成后会有两个文件保存在根目录下,分别是yaml文件和pgm文件

⑧ 可以看到pgm是形成的地图,而yaml是一些参数



我们可以通过画图软件来对pgm进行操作,比如在某个地方加上黑线,实际上就是在虚拟环境中加上一堵墙,这里就不展示了。
我们再用 hector_slam功能包来制作地图
1.首先下载hector_slam功能包

2.然后打开gazebo


3.再打开rviz通过hector_slam构建地图

4.启动控制机器人移动的程序开始控制机器人

5.可以看到因为我控制机器人的速度快,然后还有多处旋转,所以得到的地图和本身的有很大差异

但是还是同样的保存下来

6.同样在根目录可以看到yaml和pgm文件

7.查看这两个文件内容

2)在第一题建立完成的地图上,实现基于move_base和amcl功能包的机器人自主导航仿真。
① 首先下载move_base包

② 下载完成后可以进行导航仿真,打开上一题创建好的地图,在打开之前需要修改一些内容,修改mbot_laser_nav_gazebo.launch中的一个内容,把如图的地方修改成自己保存的yaml文件。
在修改之前要记得把之前保存的yaml文件和pgm文件转到mbot_navigation文件夹下的maps文件夹,否则修改之后会报错。



③ 然后就打开这个launch文件

④ 这里我们可以点击rviz的2d new goal来让机器人移动



⑤ 下面开始实现机器人的自主导航仿真
因为我之前建立的模型有两个封闭环境,还有一个门,在执行py文件的时候选择的点有时候会很难到达,所以我重新建立了一个模型来实现自主导航仿真,建议刚开始不要用很复杂的环境。

然后同样的把mbot_laser_nav_gazebo.launch文件的world改为新创建的world名字,

⑥ 然后打开rviz



⑦ 最后打开可以控制机器人移动的py文件

⑧ 可以看到rviz上机器人开始根据py文件的数据前往一个个点

最后形成一个比较完整的地图

⑨ 然后保存地图

⑩ 同样在根目录下可以看到两个文件

⑪ 然后查看这两个文件


可以看到自主导航的结果和我们之前自己操作的结果差不多。
在用hector_slam功能包来构建地图的时候,因为机器人的速度比较快,然后还在移动的同时多处旋转,所以造成地图有很大的差异,所以我个人认为还是gmapping比较好。然后在自主导航仿真这一部分,我发现程序在设置点,机器人前往这些点的路线是最优路线。并没有考虑障碍物,然后在行进的过程中发现有障碍物,会反应一段时间再进行改变,然后最开始因为我构建的模型是两个封闭环境,内部的那个封闭环境有门可以进出,最开始机器人是在内部的环境中,然后程序设置的第一个点在两个封闭环境的过道中的话,机器人就找不到那个门出去,就一直卡在哪里。 所以我建议最开始的时候还是建立一个简单的模型会有利于实验的进行。

ROS机器人SLAM学习:Gazebo定位与导航自主仿真相关推荐

  1. ROS机器人SLAM学习:Gazebo定位与导航仿真

    ROS机器人SLAM学习:Gazebo定位与导航仿真 一. 在 gazebo 中构建一个用于建图和导航的虚拟环境,可以使用 Building Editor工具创建,也可以使用其他功能包中已有的虚拟环境 ...

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

    gazebo 中能仿真真实世界,包括很多物理属性,比如惯性,碰撞等.对于没有真实机器人和场地条件的情况下,作用十分强大. 在本篇文章中,我会介绍如何在Gazebo中实现小车的定位与导航仿真,我会将所用 ...

  3. ROS机器人操作系统学习笔记(一)--基本概念

    ROS机器人操作系统学习教程(一)–基本概念 1. 基本概念 1.1 ROS背景 机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便.功 ...

  4. ROS机器人操作系统学习笔记(三)ROS通信架构

    ROS机器人操作系统学习笔记(三)ROS通信架构 ROS的通信架构是ROS的灵魂,也是整个ROS正常运行的关键所在.ROS通信架构包括各种数据的处理,进程的运行,消息的传递等等.本章主要介绍了通信架构 ...

  5. ROS机器人操作系统学习(二)

    ROS机器人操作系统学习(二) ROS概念 通信机制+开发工具+应用功能+生态系统 提高机器人研发中的软件复用率 通信机制 松耦合分布式通信 开发工具 应用功能 生态系统 节点与节点管理器 话题与服务 ...

  6. 基于ROS+镭神激光雷达+amcl定位、导航的智能车学习记录

    目录 一.背景 二. 难点之避障学习 三.比赛实参 一.背景 背景 目前大火的智能车.机器人.无人驾驶技术,现基于嵌入式系统.人工智能.机器人定位与导航基础 开展了第十四届全国大学生智能汽车竞赛-室外 ...

  7. ROS机器人编程学习(一)——机器人软件平台

    前言: 今天是2020年9月1日,Slender博客正式启用!从新的学年开始从头记录每一阶段的学习进程,有时间的话也会把以往的学习内容整理放上来. 今天开始从头学习<ROS机器人编程>(哦 ...

  8. ROS机器人系统学习笔记(一)--------ROS安装与配置

    一.ROS概述 ROS的全名是RobotOperating System,即机器人操作系统起源于2007年斯坦福大学人工智能实验室的项目与机器人技术公司WillowGarage的个人机器人项目(Per ...

  9. 视觉SLAM学习--视觉定位比赛(CVPR2020)

    竞赛简单说明:CVPR 2020 视觉定位挑战赛冠军方案 - 云+社区 - 腾讯云 (tencent.com) 竞赛官网:Benchmarking Long-term Visual Localizat ...

最新文章

  1. 闭包,sync使用细节
  2. 春天的事务管理,图解事务传播行为
  3. 标准C语言第四版答案第十章,谭浩强C语言 第十章课后习题
  4. Flask学习笔记之:jinja2变量过滤器以及自定义过滤器
  5. 巨建华担任BCF理事
  6. Separating Axis Theorem(SAT)
  7. 商务部关于促进电子商务规范发展的意见
  8. 给大家分享两套WordPress收费主题
  9. 四元数船舶领域Quaternion ship domain
  10. 你好,再见;你好,幸会!
  11. 输入一个18位的身份证号码,从中提取出生日期
  12. 转:Chrome浏览器查看网站登录 Cookie 信息的方法
  13. 塔科夫为什么远程服务器返回错误,逃离塔科夫登陆错误解决教程
  14. chrom提示某个网站或应用发生了数据泄露导致您的密码外泄, 要怎么操作? chrom是怎么检测你使用的密码被泄露?
  15. iOS测试之接口测试总结
  16. vue实现只保持一个子菜单的展开
  17. 读《庄子》(1) [收藏]
  18. 【扫盲】女孩暗示你可以和她上床的十种表示【原创】
  19. 干饭了干饭了!Java8种排序算法下饭总结
  20. 云应用程序架构:阿里云国际版服务器托管注意事项

热门文章

  1. 算法笔记(胡凡)刷题收获@Kaysen
  2. tkintertools 模块实战一:任务清单小工具
  3. 解读京东“拉黑门”:被拐弯的真相
  4. 图片如何进行格式转换?图片格式怎么改成jpg?
  5. 了解传统教育培训机构的痛点
  6. 来把三子棋吗?创建属于你的三子棋。
  7. 《R数据科学》学习笔记|Note5:使用dplyr进行数据转换(下)
  8. [XJTUSE]计算机图形学第二章作业,使用OpenGL编程实现DDA、中点画线和Bresenham算法和中点画圆法
  9. Python几种基本的字符串格式化方法
  10. 【沐风老师】教你在3dMax中使用Greeble插件结合变形修改器建模