1. graph_slam 学习
关于graph-slam的学习详细参照教材<<Probabilistic Robotics>> 2005版 第11章
图优化实际上是解一种非线性最小二乘问题,主要用于离线的slam优化,也有用在在线的方式的。 最小二乘解决的就是偏差全局最小的问题,再在原基础量上
叠加最小偏差量即为最优量。 图优化将问题全部抽象成 node(点)与edge(边)的问题。。
1.1 组成: 图优化的图形简化见下图
点: 每个t时刻的机器人位置robot_pos 2d(x,y,theta),与t时刻观察到的landmark_pos(rou,theta)<极坐标的样式 > 作为点;
边: 不同时刻的robot_pos 之间距离作为边 (t 时刻量与t-1时刻运动预测量偏差),t 时刻 robot_pos 与 landmark_pos 间的距离作为边(我称为虚拟边,,它在后面的矩阵稀疏化过程中会简化转成 跨时刻的 robot_pos 相应连接关系)
1.2 目的:
通过预测与观测的比较 : 使得当前时刻 取得的机器人位置与landmark位置偏差全局最小。
1.3 说明:
1) 需要初始的位置,迭代最优。
2) 稀疏矩阵的应用: 如图所示,每个格子占据表示的是robot_pos 与landmark_pos的关联关系。m3在t=2.3.4的时刻都可以观察到。robot_pos本来就有t=2,3间的
关系,假如我把m3简化调,必须引进robot_pos在t=2,4见的联系(x2->x4),如下右图。
1.4 图优化的过程伪代码: 算法的总体框架如下:
1) 初始化起始点。运动预测量(运动模型)
2) 转化为信息矩阵的形式(具体还没弄清为什么转到 information?,IF有更稳定),建立整个关联矩阵。
3) 矩阵稀疏化。去landmark点,建立Xi与Xj间的联系。
4) 系统状态更新(机器人状态与landmark 状态)。
说明:详细说明参见书本介绍与相应的推导。
1.5 图优化相应的资源
基于优化方法的机器人同步定位与地图创建(SLAM)后端(Back-end)设计技术收集
RGBD-SLAM
论文:
Hierarchical Optimization on Manifolds for Online 2D and 3D Mapping;(2010)
g2o: A General Framework for Graph Optimization;(2011)
Experimental Analysis of Dynamic Covariance Scaling for Robust Map Optimization Under Bad Initial Estimates;(2014)
2. g2o简单turorial:
论文: g2o: A General Framework for Graph Optimization;(2011)
开源代码 g2o
g2o的框架结构如下图所示:
任何业绩的质变都来自于量变的积累。