参考书:高博十四讲、多视图几何、自主移动机器人导论(中文版)
正值毕设开题之际,对半年来一步步入坑视觉SLAM进行一个简要的小结.
>> 经典vSLAM模型
参考:slambook p24(slam问题形成)
1. 运动方程
2. 观测方程
>> 整个视觉slam分为前端、后端和闭环检测
参考:orb-slam前端后端那张图
1. 前端:建图,视觉里程计(特征提取和匹配)
2. 后端:优化
\quad
2.1 为什么流行优化算法?(参考slambook p24,EKF、PF、非线性优化比较)
3. 闭环检测:词袋
>> 李群李代数
1. 为什么要引入李代数(参考slambook p74)
2. 欧拉角(gimbal lock)、四元数、旋转矩阵(自我约束,很难用于优化)都属于过参数化,旋转向量有三个自由度
>> SLAM状态估计—贝叶斯滤波器
1. 最大后验概率->转换为->最大似然(参考slambook:107)
2. 如何转换为最小二乘
\quad
2.1 最小二乘分为:线性最小二乘和非线性最小二乘(这部分参考CSDN博客)
\quad
2.2 求解线性最小二乘(SVD、QR)
\quad
2.3 求解非线性最小二乘的方法(梯度下降法、高斯牛顿法、LM…)
3. 引出协方差,协方差的作用
\quad
3.1 协方差的直观理解(参考slambook p109),多个误差(加权的
)平方和
\quad
3.2 信息矩阵的引出,协方差的逆(解释为什么是协方差的逆,参考slambook:p108高维高斯分布的概率密度函数)
>> 特征点
1. orb特征点的优势,旋转不变性(如何实现的,灰度质心法)、尺度不变性(图像金字塔,参考印象笔记)
\quad
1.1 环境(自然)特征点
\quad
1.2 人工landmarker,棋盘格(checkerboard)、aruco
2. 特征匹配
\quad
2.1 汉明距离
\quad
2.2 匹配方法:暴力匹配、FLANN匹配
\qquad
参考稀疏点生成栅格地图
那篇论文的实现
\quad
2.3 orb-slam源码中那个静态表格
\qquad
参考:http://www.cnblogs.com/ronny/p/4083537.html
>> 纯视觉SLAM涉及到的多视图几何
1. 对极几何:原理、构造、求解、分解得到R、t
2. 单应矩阵(Homography)
\quad
2.1 推导(使用地面模型—参见笔记)
\quad
2.2 求解、分解
3. 三角化:使用该方法构建稀疏地图(生成MapPoints)
4. PnP
\quad
4.1直接线性变换(DLT)
\qquad
将相机的位姿当作普通矩阵进行求解,含有12个未知数,解得的R不一定是
S
O
3
SO3
SO3,所以需要一步近似
\quad
4.2 至少3对3D-2D的匹配点(该方法可用于单目绝对尺度的恢复)
\quad
4.3 bundle adjustment
5. ICP
>> 图优化
参照论文《A Tutorial on Graph-Based SLAM》
1. 基于图优化的SLAM有两个任务
\quad
1.1 前端: 从测量值中构造图结构
\quad
1.2 后端: 图优化
2. 非线性优化库:g2o、ceres
\quad
2.1 g2o优化时如果不指定解析求导的雅可比,将使用数值求导(慢、精度差)
\quad
2.2 可将ceres自动求导嵌入到g2o中,效果优于直接使用数值求导
>> 纯视觉SLAM的弊端
1. 单目尺度
\quad
1.1 尺度漂移
\quad
1.2 尺度不确定性(每次初始化尺度有可能都不一样)
2. 跟踪易丢失
\quad
原因:相机发生纯旋转、相机运动过快、物体遮挡、卷帘门扭曲、无特征点的白墙等
>> 绝对尺度恢复方法
1. 各种绝对尺度恢复方法
\quad
1.1 使用其它先验信息,比如,走廊的宽度、汽车的大小、人的身高、人工landmarker大小等
\quad
1.2 使用深度学习的方法进行深度估计
\quad
1.3 融合其它能提供尺度信息的传感器,如,IMU、轮式里程计、Lidar等
2. 阅读过很多论文,在这里踩坑不少
3. VIO和融合里程计(地面机器人带有里程计,稳定性高于IMU)优势
>> 预积分
>> 轮式里程计
1. 航迹推演
2. 里程计误差模型
\quad
1.1 确定性参数
\quad
1.2 非确定性参数
\quad
1.3 运动方向的垂直方向误差累积更快
3. 标定确定性参数
4. 标定非确定性参数(雷达与里程计)
>> 相机内参标定
参考:https://www.cnblogs.com/star91/p/6012425.html
1. 相机内参标定
\quad
1.1 转换为BA优化问题
\quad
1.2 各种标定工具比较
\qquad
opencv、ROS(在线采集)、matlab(精度高)、CamOdoCal
\quad
1.3 有畸变,无畸变相机,相机选型—参考CSDN博客
2. 几种相机内参模型—参考《CamOdoCal: Automatic Intrinsic and Extrinsic Calibration…》
- Pinhole camera model
- Unified projection model (
MEI is used in the fisheye camera (large FOV camera), which PINHOLE can not model.
) - Equidistant fish-eye model
>> 里程计与相机的外参标定
为什么要进行外参标定,参考论文《Extrinsic and intrinsic sensor calibration》