- 博客(6)
- 收藏
- 关注
原创 ORB_SLAM3:System类构造函数梳理及自己的理解
然后读取yaml配置文件的System.LoadAtlasFromFile和System.LoadAtlasFromFile,将对应的值分别赋值给成员变量mStrLoadAtlasFromFile和mStrLoadAtlasFromFile,activeLC代表是否激活回环,默认是开着的,但是会根据配置文件中的loopClosing值确定;初始化一些参数,将跟踪的mState设为NO_IMAGES_YET,读取yaml配置文件的Camera和ORBextractor对应的参数,最后读取IMU参数。
2023-04-16 21:12:59
408
原创 ORB_SLAM3:IMU初始化过程梳理以及自己的理解
因为无法保证世界坐标系(单目初始化参考关键帧)的Z轴正好与重力方向平行,二者有角度,计算该角度的过程就是IMU初始化的过程。IMU初始化过程中不断优化尺度,在单目相机的视觉SLAM中,尺度指的是场景中真实物体的物理尺寸与它在相机图像中所对应的像素距离之间的比例关系。IMU的确定性误差厂家已经标定好,我们应用时得到的加速度和角速度值只包含随机性误差,随机误差需要实时估计。
2023-04-16 18:54:04
4956
1
原创 ORB_SLAM3:单目+IMU的LocalMapping线程流程梳理
最后更新生成树的连接,就是找当前关键帧的父关键帧(共视程度最高的那个关键帧),建立双向连接关系,将当前关键帧作为其子关键帧,且所有关键帧只有一个父关键帧(初始化参考关键帧无父关键帧),最后将当前关键帧插入到地图中;//,存储的是共有的地图点数 >= th的关键帧,或者当前关键帧与所有关键帧共有的地图点数都小于th则会把权重最大的加入。1)取出列表中最前面的关键帧,记为当前关键帧(mpCurrentKeyFrame),然后在原来的列表里删掉该关键帧;
2023-03-19 22:14:04
822
原创 ORB_SLAM3:在ROS(noetic)环境下编译报错的解决方式
Failed to invoke rospack to get compile flags for package 'ORB_SLAM3'. Look above for errors from rospack itself. Aborting. Please fix the broken dependency! ORB_SLAM3:在ROS(noetic)环境下编译报错的解决方式 sudo rosdep init后还是报下面的错误 rosdep update
2023-03-11 22:04:38
2284
1
原创 ORB_SLAM3:单目+IMU初始化流程梳理
5、提取完特征点后先用OpenCV的矫正函数对特征点去畸变,然后计算去畸变后图像边界(此过程一般是在第一帧或者是相机标定参数发生变化之后进行),最后将特征点分配到图像网格中(每个固定大小的网格记录其里面特征点的索引),目的是加快后期的特征点匹配。2、满足上面的条件后对当前帧与初始化参考帧进行特征点匹配,mvIniMatches容器的索引为初始化参考帧的特征点序号,若初始化参考帧中的该特征点与当前帧有匹配,则该容器对应的值为当前帧特征点序号,否则为-1;该函数先是对一些状态进行判断,做出相应的处理。
2023-03-07 21:58:17
2533
原创 ORB_SLAM3:单目+IMU初始化时—初始化帧与当前帧需要满足的条件
恢复R、t过程中初始化失败时,mbReadyToInitializate = true,不需重新创建了单目初始化参考帧,下一帧图像是在创建了单目初始化参考帧的情况下进行初始化。2、单目初始化参考帧的下一帧提取的特征点数目必须大于100个,否则mbReadyToInitializate = false,需重新创建单目初始化参考帧;1)重建出的点数要大于90%的匹配点与50的最大值,F分解出的4组R、t应该只有一组很好的解(nsimilar不能大于1),否则初始化失败。
2023-02-15 22:06:44
822
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人