2021@SDUSC
2021年12月28日
概述
经过这半个学期的学习,我对于SLAM经历了一个从一无所知到逐渐了解的充实的学习过程。
在学习的过程中,在收获关于SLAM、cpp的知识的同时,也得到了自主学习研究相关的经验和技巧。对于问题的解决能力得到了进一步的提升,对于陌生的代码阅读技能也有了一定的长进。
回顾这三个月的学习:我的学习内容可以大致概括如下:
- 开课到十月一日:对于ros系统的熟悉认识了解
- 十月份:开始对于LVI-SLAM的分析,主要是对于雷达部分的分析和总结
- 十一月份:对于视觉部分的分析,分析的主要部分是visual_estimator里的initial文件夹
- 十二月份:对于视觉部分的分析,分析的主要部分是visual_estimator里的factor文件夹
主要的分析内容包含了:
雷达部分
feature Extraction
分析的是特征提取,主要是用来处理雷达得到数据,并对其进行进一步的处理,包括:
- 得到的数据存放转化成点云,存放在相应的数据结构当中
- 计算当前得到帧每点的曲率
- 标记不同的点,被遮挡的和被标记的
- 使用上述的三个功能函数来处理数据
视觉部分
estimator
分析的范围包括了两个部分,分别是initial文件夹和factor文件夹
initial
initial文件夹下有四个主要的函数,分别是:initial_alignment, initial_ex_rotation,initial_sfm和solve_5pts。
这几个函数的功能是相关的,都是用来初始化系统参数。
包括了估计旋转外参数、利用sfm求取特征点和位姿在参考坐标下的值,利用相机旋转约束来标定IMU角速度偏差、以及利用平移来估计重力和各个bk帧的尺度、优化标定重力,确定世界坐标系,确定各点在世界坐标系下的参数等等。
factor
这个文件的主要功能是非线性优化,与google的ceres库联系紧密。
包括了两部分的优化:
- 与ceres库紧密联系的:
- 边缘化因子
- imu因子
- projection因子
- 使用内部函数进行的边缘化
回顾这一系列的学习成果,结合小组中其他同学的工作,我深感自己对于ROS系统的理解才刚刚开始入门,要想深入了解透彻这部分的内容,还需要很长的道路要走。尤其是关于数学变换部分的原理,自己还需要进一步的提升加强。
版权声明:本文为m0_49088083原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。