利用激光强度信息进行SLAM
2017-08-02 19:58
429 查看
利用激光强度信息进行SLAM
本次博客内容较少,主要介绍很久之前看过的一篇关于利用激光强度信息进行SLAM的论文。论文发表在RA-L上,论文整体内容不多,主要讲诉了如何利用激光强度信息进行SLAM,解决了先前依靠距离无法解决的SLAM问题。想法很特别,也很实用。Khan S, Wollherr D, Buss M. Modeling Laser Intensities For Simultaneous Localization and Mapping[J]. IEEE Robotics and Automation Letters, 2016, 1(2): 692-699.
从上图中可以看出,不同的材质,石灰墙和门返回的强度信息往往是不同的,这个因素就是反射率;当然初次之外,反射的强度还和入射角以及距离有关系。若是可以将影响反射强度的入射角和距离进行解耦,只和反射率有关,那么激光强度所有拥有的信息其实就如同视觉一般。这对于后期的扫描匹配、回环检测等等都是有很大的积极影响。
上图反应的则是文章的主体内容,左边是hectorSLAM的效果,右边是论文所提方法达到的效果。其实这有点欺负人的意思,但是实验对比还是很明显的,目前基于距离信息的激光SLAM确实解决轮廓变化不明显的环境,如最上图所示中的环境,门已经和墙壁齐平了,利用hectorSLAM进行匹配,显然容易陷入局部最优,造成建图效果的错乱。
接下来主要从两个方面展开,一个是分析反射强度和反射率的关系以及建模;另外一个则是构建反射率地图进行SLAM,类似于概率地图。
- 反射强度与反射率建模
- 反射率地图构建
反射强度与反射率建模
存在问题
利用激光反射强度进行SLAM,需要解决的首要问题是建立反射强度与外参数之间的关系,根据lambertian reflector假设:Irec∝Prec∝ρcos(α)r2
其中
Irec : 代表强度增量;
Prec : 代表收到的光学功率;
r : 代表距离;
α : 代表入射角;
ρ : 代表物体表面反射率。
上述模型虽然包含了所有的外参数,可以在已知外参数的情况球的反射率与强度增量的关系;但是这样的数学模型过于粗糙,难以对激光扫描器这类较为精密的仪器有合理的解释。具体可以如下图所示:
上图中反应的结果并不是公式反应的那样,总体来说距离变化影响大于角度变化影响。
解决办法
既然无法通过合理的模型获得外参数和光强之间的关系,可以通过相对关系进行近似获得相对反射率;在这种方案下,需要找到一种参照物提供“标准反射率”,白色打印纸是一种很好的选择。具体如下公式所示:Iref∝Pref∝ρreff(r,α)
IrecIref∝PrecPref∝ρf(r,α)ρreff(r,α)=ρρref=ρ′
获得两款激光UTM-30LX和SICK LMS 291-S05的参考反射率(白纸),就如同一张查找表离线存储,在SLAM的过程中需要有这么一个前提。获得的参考反射率如下图所示:
反射率地图构建
概率地图更新:P(gi|z1:t)=[1+1−P(gi|zt)P(gi|zt)1−P(gi|z1:t−1)P(gi|zt−1)P(gi)1−P(gi)]−1
而反射率地图更新公式如下图所示:
Rm(gi|zt)=Rm(gi|zt−1)+iρ′tj−Rm(gi|zt−1)ngi
上述则是一个简单的卡尔曼滤波模型;后续的过程就和hectorSLAM的过程一模一样,包括高斯牛顿的优化、双线性插值等过程,具体过程可以参考博客:http://blog.csdn.net/nksjc/article/details/72779564。
有问题可加群 (移动机器人导航与控制群:199938556) 讨论交流,进群修改备注。
相关文章推荐
- 利用SharePoint Workspace进行信息收集
- 量子通信利用量子力学原理产生密钥对信息进行加密和解密,并采用量子纠缠效应进行密钥分发,被认为是当今最安全的通信系统.有两项特性,一个是不可分割,一个是不可复制
- 利用选择题进行信息关注度研究案例解析
- 利用网站信息进行渗透攻击
- 量子通信利用量子力学原理产生密钥对信息进行加密和解密,并采用量子纠缠效应进行密钥分发,被认为是当今最安全的通信系统.有两项特性,一个是不可分割,一个是不可复制
- python 爬虫利用webdriver 跳过登陆 进行小规模抓取信息
- 利用ArcGIS与arcpy进行栅格属性信息的提取
- scrapy实战——利用CrawlSpider爬取腾讯社招全部岗位信息(进行有一定深度的爬取)
- 利用SharePoint Workspace进行信息收集
- 利用“PHP彩蛋”进行敏感信息获取
- 利用POI对MS Excel进行读写(可以设置写入文件的样式),利用tm-extractor对Word进行读取操作并将信息用(log4j)日志信息显示出
- Cookie的原理解析——利用服务器发送来的Cookie进行判断并保存一些信息
- 用户调研:利用选择题进行信息关注度研究案例解析
- java语言连接mysql数据库并利用XML解析工具DOM生成XML文件,然后利用DOM SAX对所生成XML文件里的详细信息进行解析
- 利用Eclipse-Python简单爬取京东商城书籍信息进行可视化
- 利用metasploit进行信息收集
- 关于利用SIM908 工程模式中的cellid lac 参数值进行基站定位(Sim900和sim908不一样,sim908没有直接读取基站定位信息的指令)
- 利用UDP进行信息传输
- 编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过
- 利用Shodan和Censys进行信息侦查