机器人学 —— 机器人感知(Location)

  终于完成了Robotic SLAM 全部的内容了。说实话,课程的内容比较通常,可是做业仍是挺有挑战性的。最后一章的内容是 Location. Location 是 Mapping 的逆过程。在给定map的状况下,须要求取机器人的位姿。算法

一、Location 的意义

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

  Location 最大的难度来自于测量偏差。里程计的计数偏差,测量与里程计的不统一等。因此咱们须要一种算法,可以较高精度的肯定机器人的位姿。编码

二、Location 的流程

  Location的流程能够总结为如下:一、肯定机器人的初始位姿;二、求取传感器测量结果;三、利用粒子滤波器基于当前位姿与机器人测量结果估计机器人下一步的位姿。blog

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

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

  

3.粒子滤波器

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

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

       

      

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

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

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

  

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

  因此粒子滤波器总能给出较好的结果。

相关文章
相关标签/搜索