机器人学 —— 机器人感知(Mapping)
对于移动机器人来说,最吸引人的莫过于SLAM,堪称Moving Robot 皇冠上的明珠。Perception 服务于 SLAM,Motion Plan基于SLAM。SLAM在移动机器人整个问题框架中,起着最为核心的作用。为了专注于Mapping,此章我们假设 Location 是已知的。
1、Metric Map
轨迹规划任务是再Metric Map的基础上完成的。当然,层次最高的是语意图,语意图是未来研究的热点方向。获取Metric Map 的难度最大之处在于:1、传感器噪声(May be solved by PGM; 2、机器人在移动(Location 问题);
常见的MAP是基于UGV而言的, 使用的地图是Occupancy Map,与之前在轨迹规划栏目中的图一样,以 0 表示无法到达的区域,以 1 表示可以达到的区域。

2、传感器噪声问题的Naive Solution
解决传感器噪声问题的方法是对传感器进行建模,其模型为概率模型:


对于给定的观测,其factor 如上,当连续N次观测到同一个xy的值时,利用 factor product,即可获得n次观测的Joint CPD ,在Joint CPD 上运行MAP算法,即可获得最终的地图了。在通解的基础上,确实是这样设计算法的,但是我们目前面对的Mapping 问题还太Naive,不需要如此复杂的手段。

此处定义了一个odd,表示发生与否可能性的比值。换言之,就是传感器出错的概率比,这是一个可以估计的量。比如传感器测出有物体的odd是2,没物体的odd是3.
依据Beyes 公式把Odd展开:

其中,p(m = 1|z)/p(m = 0/z) 表示的是测量完成后 odd 的值,它等于 此次测量值 + 之前的odd。


换言之,我们只要定义好先验图与log-odd-meas,就可以了。
3、Mapping Algorithm
所有的东西总是说起来容易做起来难。即使是如此Naive的Map,真正Coding还是很难的。尤其是如何高效的实现Map的更新,此外,机器人每次发出的激光线达上千条,每个位姿都要更新上前个点。对此问题,我设计了并行算法,即使在并行的条件下,生成一次Map也要近20s.
算法流程如下:
1、将激光击中的点变换到全局坐标系下
2、利用Breshenman 算法,获取激光通过的路径
3、获取Occupied Map 与 Free Map
4、更新Map.


左图是单次测量的图,也就是机器人一个位姿的测量结果。显然,在靠近机器人的地方,噪声严重。右图是机器人在空间中移动后最终的Map。
4、3D Mapping
对于2维地图,我们采用 free+occupy 的形式储存空间中的障碍物。然而有障碍物的地方毕竟还是少数,或者说,地图是稀疏的。
对于3维数据而言,我们用3维的空间来描述显然不划算,由其是当空间巨大时。此时我们选择的地图,或者说是数据结构是kd-tree 与 OcTree. 此部分内容在点云相关博客中有过介绍,不赘述。


机器人学 —— 机器人感知(Mapping)的更多相关文章
- 机器人学 —— 机器人感知(Kalman Filter)
对于机器人感知任务而言,经常需要预判物体的运动,保证机器人在物体与自身接触之前进行规避.比如无人机与障碍物的碰撞,足球机器人判断足球的位置.预判的前提是对当前状态进行准确的估计,比如足球的速度,障碍物 ...
- 机器人学 —— 机器人感知(Gaussian Model)
机器人感知是UPNN机器人专项中的最后一门课程,其利用视觉方法来对环境进行感知.与之前提到的机器人视觉不同,机器人感知更侧重于对环境物体的识别与检测.与计算机视觉不同,机器人视觉所识别的物体往往不需要 ...
- 机器人学 —— 机器人感知(Location)
终于完成了Robotic SLAM 所有的内容了.说实话,课程的内容比较一般,但是作业还是挺有挑战性的.最后一章的内容是 Location. Location 是 Mapping 的逆过程.在给定ma ...
- 机器人学 —— 机器人视觉(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 ...
- (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍
首页 视界智尚 算法技术 每日技术 来打我呀 注册 SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...
- 漫谈 SLAM 技术(上)
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:解洪文 导语 随着最近几年机器人.无人机.无人驾驶.VR/AR的火爆,SLAM技术也为大家熟知,被认为是这些领域的关键技术之一.本文对S ...
- 视觉SLAM漫谈 (三): 研究点介绍
1. 前言 读者朋友们大家好!(很久很久)之前,我们为大家介绍了SLAM的基本概念和方法.相信大家对SLAM,应该有了基本的认识.在忙完一堆写论文.博士开题的事情之后,我准备回来继续填坑:为大家介绍S ...
随机推荐
- table 变量
table 变量的行为类似于局部变量,有明确定义的作用域.该作用域为声明该变量的函数.存储过程或批处理. 在存储过程中使用 table 变量与使用临时表相比,减少了存储过程的重新编译量涉及表变量的事务 ...
- log4j2发送消息至Kafka
title: 自定义log4j2发送日志到Kafka tags: log4j2,kafka 为了给公司的大数据平台提供各项目组的日志,而又使各项目组在改动上无感知.做了一番调研后才发现log4j2默认 ...
- iOS10 11跳转系统设置等的URL收集
Settings App-Prefs:root Settings -> About App-Prefs:root=General&path=About Settings -> Ac ...
- ReactNative如何在JS中引用原生自定义控件(rn变化太快,网上很多教程有坑,这个我研究后可用,特意分享)
直接写一个Demo例子,有相关功底的肯定明白,会对特别的地方进行提醒,本文基于https://blog.csdn.net/lintcgirl/article/details/53489490,但是按此 ...
- Cocos Creator下删除AnySDK步骤
1.删除 frameworks/runtime-src/Classes 下的 jsb_anysdk_basic_conversions.cpp manualanysdkbindings.cpp jsb ...
- 解决Everything1.4版本预览时不支持自定义后缀的问题
2017年6月Everything版本升级到了1.4.x 个人使用下来认为最主要的有以下几点 添加预览功能 搜索结果多选 点击目录列即打开文件所在目录(需要设置:常规->结果->双击路径列 ...
- 转发:entos7修改文件夹权限和用户名用户组
Linux系统下经常遇到文件或者文件夹的权限问题,或者是因为文件夹所属的用户问题而没有访问的权限.根据我自己遇到的情况,对这类问题做一个小结.在命令行使用命令“ll”或者“ls -a”,可以查看文件或 ...
- easyui textbox 获取焦点
function Admin_ListAdd() { $('#ListInfo').css({ display: "inherit" }); $("#Department ...
- KADEMLIA算法
一.概述 基于异或距离算法的分布式散列表(DHT), 实现了去中心化的信息存储于查询系统: Kademlia将网络设计为具有160层的二叉树,树最末端的每个叶子看作为节点,节点在树中的位置由同样是16 ...
- haproxy+keepalived(涵盖了lvs,nginx.haproxy比较)
文章转载自: haproxy+keepalived https://cloud.tencent.com/developer/article/1026385 网络四层和七层的区别 https: ...