估计是Euroc吧,还是初始化设置的点太少了
判断mState==OK//判断是否为初始化成功状态 是 此时情况为:初始化成功 判断(mVelocity.empty() && !pCurrentMap->isImuInitialized()) || mCurrentFrame.mnId<mnLastRelocFrameId+2 //判断是否有当前帧速度,imu初始化是否成功或者当前帧是否刚进行重定位(不超过2帧) 是 bOK=TrackReferenceKeyFrame() //此时...
ORB-SLAM3中IMU初始化由LocalMapping线程中的InitializeIMU函数完成。 主要是完成重力方向RwgRwg和尺度scale的估算,总共进行三次。 InitializeIMU函数包含两部分:InertialOptimization 和 FullInertialBA InertialOptimization函数 纯IMU的优化,固定关键帧位姿,优化重力方向、尺度、关键帧速度和偏置 FullInertialBA函数 根据上一...
但是,它仅限于针孔单目相机,并且其初始化速度太慢,在一些具有挑战性的场景中失败。在这项工作中,我们在ORB-SLAM-VI的基础上提供了一种快速准确的IMU初始化技术,以及一个能够实现单目惯性和立体惯性SLAM的开源SLAM库,带有针孔和鱼眼相机。 A 基本概念 B IMU初始化 C 跟踪和建图 D 稳健跟踪 5 地图合并与回环检...
短期的失败:利用IMU的读数估计位姿,把地图点投影到估计的相机位姿上,然后在一个大的image窗口中做匹配,匹配的结果包含在VIO优化中。在大多说情况下可以恢复视觉跟踪,但是如果超过5s还没有恢复。进入下一个状态。 长期的失败:重新进行视觉惯导的初始化构建一个地图,这个地图成为active地图。
实现了基于最大后验估计的IMU快速初始化方法。 实现了基于多子图系统Atlas。 论文中还提到另一个创新点:实现了无需离线校正的双目相机模型,主要实现想法是将双目的两个摄像机看做两个单目相机,中间存在一个仿射变化,观测公共区域中的共同特征点来实现校正的方式,但在双目系统初始化的代码注释中,却强调了输入的双目...
实现了基于最大后验估计的IMU快速初始化方法。 实现了基于多子图系统Atlas。 论文中还提到另一个创新点:实现了无需离线校正的双目相机模型,主要实现想法是将双目的两个摄像机看做两个单目相机,中间存在一个仿射变化,观测公共区域中的共同特征点来实现校正的方式,但在双目系统初始化的代码注释中,却强调了输入的双目...
在IMU初始化阶段引入MAP思想,提高了初始化速度,并且极大提高了鲁棒性,精确度提升明显. 多子地图系统大大提高了系统召回率,ORBSLAM3在视觉信息缺乏甚至丢失时具有更高的鲁棒性.当跟丢目标时将会重建一个子地图,并在回环loop closing过程中与之前的非活动地图合并.故ORB-SLAM3是第一个可以重用历史所有算法得到的信息...
bool Tracking::NeedNewKeyFrame(){//如果是imu模式,没初始化之前每隔0.25s就插入关键帧if(((mSensor == System::IMU_MONOCULAR) || (mSensor == System::IMU_STEREO)) &&!mpAtlas->GetCurrentMap()->isImuInitialized()) {if (mSensor == System::IMU_MONOCULAR && (mCurrentFrame.mTimeStamp-m...