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

终于完成了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)的更多相关文章
- 机器人学 —— 机器人感知(Kalman Filter)
对于机器人感知任务而言,经常需要预判物体的运动,保证机器人在物体与自身接触之前进行规避.比如无人机与障碍物的碰撞,足球机器人判断足球的位置.预判的前提是对当前状态进行准确的估计,比如足球的速度,障碍物 ...
- 机器人学 —— 机器人感知(Gaussian Model)
机器人感知是UPNN机器人专项中的最后一门课程,其利用视觉方法来对环境进行感知.与之前提到的机器人视觉不同,机器人感知更侧重于对环境物体的识别与检测.与计算机视觉不同,机器人视觉所识别的物体往往不需要 ...
- 机器人学 —— 机器人感知(Mapping)
对于移动机器人来说,最吸引人的莫过于SLAM,堪称Moving Robot 皇冠上的明珠.Perception 服务于 SLAM,Motion Plan基于SLAM.SLAM在移动机器人整个问题框架中 ...
- 机器人学 —— 机器人视觉(Bundle Adjustment)
今天完成了机器人视觉的所有课程以及作业,确实是受益匪浅啊! 最后一个话题是Bundle Adjustment. 机器人视觉学中,最顶尖的方法. 1.基于非线性优化的相机位姿估计 之前已经在拟合一篇中, ...
- Robot Perception for Indoor Navigation《室内导航中的机器人感知》
Felix Endres 论文下载 Technische Fakult¨ atAlbert-Ludwigs-Universit¨ at Freiburg Betreuer: Prof. Dr. Wol ...
- ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料
ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...
- ROS会议 ROSCon 2017
----ROSCon2012-2017----来源链接:https://roscon.ros.org 近三年ROSCon(2015-2017)都会将会议视频录像和文档公开~以下为机 ...
- 做一个能对标阿里云的前端APM工具(下)
上篇请访问这里做一个能对标阿里云的前端APM工具(上) 样本多样性问题 上一小节中的实施方案是微观的,即单次性的.具体的.但是从宏观上看,我需要保证性能测试是公允的,符合大众预期的.为了达到这种效果, ...
- (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍
首页 视界智尚 算法技术 每日技术 来打我呀 注册 SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...
随机推荐
- vue中的v-cloak
问题 在使用vue时,HTML 绑定 Vue实例,在页面加载时会闪烁类似{{msg}}这样的信息.可能会导致用户体验不好. 使用v-cloak v-cloak就能解决这个问题. (1)用法 这个指令保 ...
- mac 本地跨域
完全退出chrome后终端下输入以下命令: chrome49以前版本 open -a "Google Chrome" --args --disable-web-security c ...
- java C 类自动转换规则
C类型转换规则
- 如何在MyBatis中优雅的使用枚举
问题 在编码过程中,经常会遇到用某个数值来表示某种状态.类型或者阶段的情况,比如有这样一个枚举: public enum ComputerState { OPEN(10), //开启 CLOSE( ...
- Exception in thread "main" java.lang.StackOverflowError at java.util.ArrayList$SubList.rangeCheckForAdd(Unknown Source)
Exception in thread "main" java.lang.StackOverflowError at java.util.ArrayList$SubList.ran ...
- C#实现无物理边距 可打印区域的绘图\打印 z
经常在开发实际的应用程序中,需要用到图形绘制和打印程序.如何实现完整的精确打印和绘图是需要注意许多细节地方的.最近在遇到打印问题的时候,仔细研究一阵,总结这篇博文,写得有点杂乱,看文要还请费点神. 基 ...
- Huawei® ENSP & VRP CheatSheet
#################### 系统命令 #################### system-view sysname display current-configuration und ...
- org.springframework.web.method.HandlerMethod 与 org.springframework.messaging.handler.HandlerMethod 转换失败
Springmvc hander.getclassclass org.springframework.web.method.HandlerMethod HandlerMethod.classclass ...
- Docker搭建带有访问认证的私有仓库
2017年06月10日 17:30:26 阅读数:2581 以下步骤均为本人亲自踩坑,历经数次失败,最终搭建成功 一.环境信息: 操作系统:CentOS 7 Docker版本:1.12.5 (更高版本 ...
- Android设置屏幕旋转后保存数据
1.onCreate()方法中最后判断需要保存的状态值 if(savedInstanceState != null){ mCurrentIndex = savedInstanceState.getIn ...