问题描述: ROS 移动机器人建图后,用Navigation导航包执行 起始位置到 目标位置的路径规划和导航行走的过程中。 机器人导航初始化的时候,刚加载地图,如何让移动机器人执行 全局定位 global localization,把max Nparticles的粒子数量均匀撒在整张地图上?

首先 在navigation的launch文件 amcl.launch 或者类似的文件中增加或修改以下内容,让粒子的位置高斯分布协方差大一点。分布广一点。 value值可以是4、8或者类似的值

<param name="initial_cov_xx" value="8"/>
<param name="initial_cov_yy" value="8"/>
<param name="initial_cov_zz" value="8"/>

方法:另开一个命令行控制台窗口,执行一些命令 调用全局定位服务。

  • rosservice call /global_localization "{}"

刚加载地图时如下图所示:

不管是空闲区域 free 还是占用区域 occupied 都撒了粒子。

重新开一个控制台命令行窗口后,执行如下命令 (以下命令,每执行一次,粒子和小车的位置变化一次,但是仍然很难定位准确,只是随机的全局定位貌似。)

  • rosservice call /global_localization "{}"
  • 结果如下所示,粒子遍布整张地图的空闲区域,占用区域没有粒子了。

参考:Robots/TIAGo/Tutorials/Navigation/Localization - ROS Wiki

执行命令:rosservice call /global_localization "{}"

request_nomotion_update (std_srvs/Empty):该服务是手动的来更新粒子并发布新的粒子,可以使用如下命令来调用服务执行更新粒子的操作,该服务一般需要多次调用才能逐渐看到粒子收敛的效果:

如何让粒子撒满地图后,一步一步地收敛,看到粒子收敛的过程,粒子簇的聚类 最后收敛到正确或错误位置后 只剩下一簇粒子堆。

1. 打开终端,打开实际gazebo空间

2. 再打开一个终端,在空间中建图(house 或者其他场景)

3. 再打开一个终端,调用键盘控制小车移动包

4. 再打开一个终端,保存地图

5. 关掉slam建图, 再打开终端调用导航包

6. 按照本文上半部分内容,调节amcl文件内容,调用全局定位服务;

7. 之后根据键盘控制终端的前进后退或者转动的操作,控制小车移动,rviz界面可以查看粒子收敛和移动的步骤过程。 直至最后收敛到正确或者错误的一簇粒子堆。

如何安装ROS turtlebot3软件包和依赖库的参考:

Ubuntu16.04 + ROS kinetic + 激光slam-cartographer ROS + 数据仿真 + Turtlebot3仿真_GGY1102的博客-CSDN博客

机器人学习--ROS/AMCL实现初始化粒子撒满整张地图和分步收敛相关推荐

  1. GMap.NET入门详细教程【2】-------- 初始化并加载一张地图

    GMap.NET入门 下载 GMap.NET,并在VS中添加GMap.NET控件 初始化并加载一张地图 添加标记点.线.多边形 为控件添加事件,在鼠标单击时打点 初始化 双击地图控件,编辑cs代码中的 ...

  2. ROS 导航——SLAM之用Gmapping构建一张地图

    用Gmapping构建一张地图 Gmapping功能包介绍 使用Gmapping功能包的一些准备 /tf 雷达和机器人基座标 里程计 /scan 使用Gmmaping功能包 得到的地图 Gmappin ...

  3. 机器人学习--ROS学习入门

    目前机器人的研发,小打小闹弄个玩具可以用stm32等嵌入式微处理器+ 电机驱动器+ 电机驱动小车玩一下.但是上升到移动机器人自主定位导航和感知环境等高级需求层面,普通嵌入式微处理器处理不了那么多数据, ...

  4. 机器人操作系统ROS(11)Turtlebot3自动避障及其地图构建和导航

    该节需要完成前面一节内容实现turtlebot3正常创建新地图,才可以实现本节的自动避障和导航 自动避障 启动虚拟机器人有环境的仿真 export SVGA_VGPU10=0 source ./dev ...

  5. 机器人学习--定位算法AMCL全局定位方案

    ROS中已经集成了AMCL(自适应蒙特卡洛定位)的解决方案,按照要求测试一般都没问题. 源码或者相关细节分析参考:机器人学习--定位算法AMCL详解_GGY1102的博客-CSDN博客_amcl定位 ...

  6. 在Jetson Nano上学习ROS的记录(版本Ubuntu18.04,课程来源赵虚左老师的《ROS理论与实践》)第十二章 机器人导航(仿真)

    系列文章目录 第一章 ROS空间创建.helloworld的实现.开启多个节点 第二章 话题通信 第三章 服务通信 第四章 参数服务器 第五章 常用指令 第六章 通信机制实操 第七章 ROS通信机制进 ...

  7. 机器人学习--粒子滤波SLAM/MCL定位参考资料+学习经验

    学习材料1: <概率机器人学> 谷歌无人驾驶之父 Sebastian Thrun等人著作. 注释: 可能是本人智商有限,或者是移动机器人学领域的基础知识了解不多. 刚刚看这本书的时候,尤其 ...

  8. 机器人学习--定位算法AMCL详解

    一.基本概念 参考:Robot Localization AMCL原理以及代码_sinat_37011812的博客-CSDN博客 注释:本部分内容CSDN上多个博主都有介绍,不知道谁是原创.暂且附上上 ...

  9. ROS开源包之粒子滤波定位(AMCL)

    虽然现在直接使用amcl定位的很少了,但是它是粒子滤波的典型应用,还是可以了解一下.查阅了很多解读,自己也总结一下,最后在gazebo仿真平台上看看粒子定位跑起来的效果. 0.源码介绍 源码地址: g ...

最新文章

  1. 查看python安装路径
  2. 2000年华中科技大学计算机研究生机试真题 对称矩阵
  3. 微软发文庆祝 .NET 诞生 20 周年纪念日!
  4. jdk 细粒度锁_使用JDK 8轻松进行细粒度排序
  5. 约瑟夫环问题——python
  6. PHP程序显示时出现乱码
  7. Web服务器基础详解
  8. ActivityManagerService解读之Activity启动三探--Activity中Task与Stack
  9. flv 视频播放器代码
  10. Excel:INDEX函数与MATCH函数
  11. 制作动态图表,没有比这个方法更简单的了
  12. 【51单片机快速入门指南】4.2: SSD1306 OLED屏(0.96寸、1.3寸)的I2C控制详解
  13. ADD R0,R1,R2 的理解
  14. 【数据结构】-哈夫曼树以及哈夫曼编码
  15. 语义分割如何走下去?| 文末送书
  16. Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制
  17. slice 和 splice的区别是什么?
  18. 5G基站供配电勘察设计思路的调整分析
  19. 搜狗开启AI之路:招股书90次提到AI,王小川持股超10亿
  20. 学生DW静态网页设计 旅游—我的家乡新密(15页)含论文 新密旅游网页设计制作 简单静态HTML网页作品 我的家乡网页作业成品 学生旅游网站模板

热门文章

  1. Weka加载大数据量内存不足的解决办法
  2. ICCV 2017 DSiam:《Learning Dynamic Siamese Network for Visual Object Tracking》论文笔记
  3. BZOJ 4388 [JOI2012春季合宿]Invitation (线段树、二叉堆、最小生成树)
  4. php 正则匹配字母和数字,正则匹配密码只能是数字和字母组合字符串功能【php与js实现】...
  5. pytorch tensor_[PyTorch 学习笔记] 1.2 Tensor(张量)介绍
  6. ubuntu截图软件deepin scrot
  7. Xcode9学习笔记69 - 创建各种类型的文件(文本、数组、字典、图片)
  8. 廖雪峰python学习笔记——函数式编程
  9. Docker搭建hadoop集群
  10. 获取某几个分类下的前N条数据 mssql语句