记录一下,自己老犯错。公式编辑犯懒 i- w表示第i帧相机坐标系到世界坐标系的转换。
假设空间点为P(x,y,z)。第一帧作为世界坐标系原点好了。第i帧的位姿有Ti-w( 第i帧相机坐标系到世界坐标系的转化矩阵,包含R,t).同理第i+1帧的位姿变换有T(i+1)-w。那么根据公式
P = Ri-w*xi + ti-w (1)
P = R(i + 1)-w*x(i + 1) + t(i+1)-w (2)
联立两个公式就得到 第i帧到第i + 1帧的变换矩阵。
x(i + 1) = ( R(i + 1)-w)inv * (Ri-w)*xi + ( R(i + 1)-w)inv *(ti-w - t(i+1)-w)。
可见 第i帧到第i+1帧转换。第i+1帧的转换矩阵在前。 老犯错 。。。。。
看下dso中的应用,在做对极线搜索的函数traceNewCoarse中。应用如下
SE3 hostToNew = fh->PRE_worldToCam * host->PRE_camToWorld;
表示的是老的关键帧到当前帧(new)的位姿变换。可见 是当前帧的位姿在前。
再看lsd中的应用 ,在函数updateKeyframe中。
refToKf = activeKeyFrame->getScaledCamToWorld().inverse() * frame->getScaledCamToWorld();
表示的是参考帧到关键帧的位姿变换,ref是参考帧 就是frame Kf是关键帧就是keyFrame。
莫搞混 莫搞混