博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SLAM总结(一)
阅读量:4126 次
发布时间:2019-05-25

本文共 785 字,大约阅读时间需要 2 分钟。

1.概述

SLAM(机器人同时定位与建图):本质上是一个系统,主要分为四部分:传感器数据输入,i前端数据处理(关键帧匹配),后端数据优化(滤波器),和闭环检测。
SLAM理论中,主要解决三大问题:定位,建图,路径规划。
通过红外传感器配合深度传感器接收到的数据和预先的标定结果,可以得到环境的景深数据,以kinect为例,通过深度摄像机kinetic采集并经过一系列数据得到的深度数据,可以得到每一个像素点的三维坐标(x,y,z)。
2.定位
定位通过比较两帧图片中关键像素点之间的位移来实现。此处为相机相对姿态估计,解决这个问题最经典的方法是ICP(迭代最近点)方法。使用这个方法之前,需要,得到两帧图像之间的一组匹配点。即两帧图像上的同一个点。这就涉及到了特征点的提取和匹配。原则上,找到四组匹配点,就可以使用openCV的SolvePnPRANSAC函数或者PCL的ICP算法来求解。
在这里插入图片描述
R为相机的姿态,C为相机的标定矩阵。R是不断运动的,而C是每一个相机的固有参数。然后可以找到匹配点。

3.slam端优化理论

定位部分,基于相邻帧之间的匹配,一旦其中一个帧出现了偏移,由于后面帧的计算都依赖于前一个帧,这样就会有累积误差的存在。为了解决这个问题,可以多对比几个特征点并且对前几个特征点进行比较。
在这里插入图片描述
简而言之,SLAM要做的事情即根据运动方程,已知U和Z,确定所有的机器人位置XP和路标位置XL。这被建模为一个优化问题,U,Z约束下优化XP和XL,目标函数即平方误差和最小:
在这里插入图片描述
可以采用数值法寻找梯度,这种思路在计算机视觉里,也叫做Bundle Adjustment。
4.闭环检测
闭环检测的主要目的就是,如果对比到当前帧和之前某一帧重合度极高,或者根据机器人的位置是否与之前某一个位置相同,那么可以将之前帧的计算结果当作当前帧的计算结果,减少重复计算。

参考链接:

转载地址:http://teqpi.baihongyu.com/

你可能感兴趣的文章
Java 集合学习一 HashSet
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
层在页面中的定位
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第四章 - 程序计数器
查看>>
第七章 - 本地方法栈
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
JDBC核心技术 - 下篇
查看>>
一篇搞懂Java反射机制
查看>>
MySQL主从复制不一致的原因以及解决方法
查看>>
RedisTemplate的key默认序列化器问题
查看>>