ORB_SLAM2--TrackWithMotionModel()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16481211/article/details/83578725

根据运动模型进行位姿计算,完成追踪。

step1

首先根据上一帧的位姿和上一帧相机运动的速度来估计当前位姿。
mCurrentFrame.SetPose(mVelocity*mLastFrame.mTcw);将当前帧的初始位姿设为上一帧位姿乘上一帧位姿的变化速度,得到当前的R,T

step2

通过投影的方式匹配当前帧和上一帧,并追踪上一帧的地图点
int nmatches = matcher.SearchByProjection(mCurrentFrame,mLastFrame,th,mSensor==System::MONOCULAR);
如果投影后匹配的点数小于20,就认为失败

step3

优化位姿并将地图点分为局外点和局内点
Optimizer::PoseOptimization(&mCurrentFrame);

step4

去除局外点,如果当前模型下的局内点数量大于10,则返回成功追踪。

猜你喜欢

转载自blog.csdn.net/qq_16481211/article/details/83578725