ORB_SLAM2--TrackWithMotionModel()

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

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,则返回成功追踪。

你可能感兴趣的:(视觉SLAM)