终于完成了Robotic SLAM 所有的内容了。说实话,课程的内容比较一般,但是作业还是挺有挑战性的。最后一章的内容是 Location. Location 是 Mapping 的逆过程。在给定map的情况下,需要求取机器人的位姿。

1、Location 的意义

  在机器人导航任务中,location 可以告诉机器人目前位置,以方便闭环控制或者轨迹规划。一般情况下,Location 可以通过GPS,WIFI 等方式完成。GPS的定位精度在3.5米左右,WIFI则大于10米。对于机器人、无人汽车而言,这样的精度显然是不可接受的。激光雷达在10m的距离可以达到cm的精度,双目视觉在4m可以达到10cm的精度,与GPS相比有一定优势,此外,这种非在线的定位方式可以在室内使用。

  Location 最大的难度来自于测量误差。里程计的计数误差,测量与里程计的不统一等。所以我们需要一种算法,能够较高精度的确定机器人的位姿。

2、Location 的流程

  Location的流程可以总结为以下:1、确定机器人的初始位姿;2、求取传感器测量结果;3、利用粒子滤波器基于当前位姿与机器人测量结果估计机器人下一步的位姿。

  此处粒子滤波器的作用似乎与卡尔曼滤波器相似,但是粒子滤波器可以有非0的均值(编码器读数),可以有非正太分布(你关我怎样采样),可以有非线性解(反正是大力出奇迹,什么解不可能?)

  机器人初始位姿确定略过。传感器测量结果的获取又叫做地图的 Registration. 这是一个我们非常熟悉的词 —— 配准。配准的作用是将测量结果与地图结果相匹配。匹配所使用的方式是概率图的 factor product. 对于给定位姿,如果测量结果与实际地图匹配成功则给正分,否则给负分。至于给多少正分,多少负分,需要进行 tuning....这个 tuning 也是作业的核心。tuning 的关键是一定要对测量结果进行可视化,如果第一帧都匹配不上,那后面必跑飞。如果第一帧匹配上了,那么后面才有调的可能性。

  

3.粒子滤波器

  基于粒子滤波器的机器人位姿估计是一个大模块,其pipeline如下:

  1.针对初始位姿,给定一堆粒子,每个粒子就是一个位姿,粒子可以是均匀分布的,也可以是正太分布的,也可以是任意你喜欢的分布。针对每个粒子算 Registration 的分数

       

      

  2.利用已知的转移关系——编码器,惯性传感器,whatever,给出这堆粒子下一步的位姿。注意,粒子是带着它的分数转移的。

  3.针对转移后的粒子重采样——根据转移关系的噪声,重新采样一次粒子转移后的结果。计算并更新配准分数。

  4.计算有效粒子数目,如果小于粒子总数,则重新采样。如果和粒子总数相等,则回到2.

  

  总而言之,粒子滤波器叫做“多party参政制” 个个都有可能当总统。每个转移相当于一次大选,而与地图的配准结果相当于选票。尽管最后我们会选择一个得票最多的,但是我们也不允许一party独大(n_effective)。Resampling则是如果某个party的理念确实优秀,那么允许其分身,分身后加上噪声保证了意见的多样性。

  所以粒子滤波器总能给出较好的结果。

机器人学 —— 机器人感知(Location)的更多相关文章

  1. 机器人学 —— 机器人感知(Kalman Filter)

    对于机器人感知任务而言,经常需要预判物体的运动,保证机器人在物体与自身接触之前进行规避.比如无人机与障碍物的碰撞,足球机器人判断足球的位置.预判的前提是对当前状态进行准确的估计,比如足球的速度,障碍物 ...

  2. 机器人学 —— 机器人感知(Gaussian Model)

    机器人感知是UPNN机器人专项中的最后一门课程,其利用视觉方法来对环境进行感知.与之前提到的机器人视觉不同,机器人感知更侧重于对环境物体的识别与检测.与计算机视觉不同,机器人视觉所识别的物体往往不需要 ...

  3. 机器人学 —— 机器人感知(Mapping)

    对于移动机器人来说,最吸引人的莫过于SLAM,堪称Moving Robot 皇冠上的明珠.Perception 服务于 SLAM,Motion Plan基于SLAM.SLAM在移动机器人整个问题框架中 ...

  4. 机器人学 —— 机器人视觉(Bundle Adjustment)

    今天完成了机器人视觉的所有课程以及作业,确实是受益匪浅啊! 最后一个话题是Bundle Adjustment. 机器人视觉学中,最顶尖的方法. 1.基于非线性优化的相机位姿估计 之前已经在拟合一篇中, ...

  5. Robot Perception for Indoor Navigation《室内导航中的机器人感知》

    Felix Endres 论文下载 Technische Fakult¨ atAlbert-Ludwigs-Universit¨ at Freiburg Betreuer: Prof. Dr. Wol ...

  6. ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料

    ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...

  7. ROS会议 ROSCon 2017

    ----ROSCon2012-2017----来源链接:https://roscon.ros.org           近三年ROSCon(2015-2017)都会将会议视频录像和文档公开~以下为机 ...

  8. 做一个能对标阿里云的前端APM工具(下)

    上篇请访问这里做一个能对标阿里云的前端APM工具(上) 样本多样性问题 上一小节中的实施方案是微观的,即单次性的.具体的.但是从宏观上看,我需要保证性能测试是公允的,符合大众预期的.为了达到这种效果, ...

  9. (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍

          首页 视界智尚 算法技术 每日技术 来打我呀 注册     SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...

随机推荐

  1. JAVA自学作业02

    JAVA自学作业02 1.什么是标识符?由哪些部分组成?常见的命名规则有哪些? 标识符是用户为变量的内存空间所定义的字符序列: 可以由字母.下划线.美元符号以及数字组成,但数字不可作为首字符.标识符不 ...

  2. 常见问题2:html+css效果综合整理

    1.---文本框提示文字颜色--placeholder属性 <input type="text" placeholder="请输入提示文字" /> ...

  3. pygame 笔记-5 模块化&加入敌人

    上一节,已经用OOP方法,把几个类抽象出来了,但是都集中在一个.py文件中,代码显得很冗长,这一节复用模块化的思想,把这个大文件拆分成几个小文件: 先把主角Player单独放到一个文件player.p ...

  4. 下一代微服务 ~ Service Mesh

    微服务(Microservices) 微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服 ...

  5. A Sample Linker Script

    from:http://www.hertaville.com/a-sample-linker-script.html A sample script file that will work with ...

  6. 洛谷P1048 采药

    题目OJ地址 https://www.luogu.org/problemnew/show/P1048 https://vijos.org/p/1104 题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世 ...

  7. Mac下多版本JDK安装

    1.下载 JDK1.6官方未提供1.6的mac版本,需要去apple的开发者网站 JDK1.7.JDK1.8可以去Oracle官方下载 此处提供网盘下载地址: 链接: http://pan.baidu ...

  8. 2、金融之关于BOLL

    一.BOLL(1)什么是BOLL线☆ BOLL指标又叫布林线指标(Bolinger Bands),是由约翰·布林格(John Bollinger)根据统计学中的标准差原理设计出来的一种非常简单实用的技 ...

  9. Effective Java 第三版——77. 不要忽略异常

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  10. Linux Shell函数返回值

    转:http://blog.csdn.net/ithomer/article/details/7954577 Shell函数返回值,一般有3种方式:return,argv,echo 1) return ...