1. 程式人生 > >SLAM | 雙目重投影誤差雅克比推導

SLAM | 雙目重投影誤差雅克比推導

1. 雙目重投影誤差項(給的是歸一化座標)

   //i時刻相機座標系下的map point座標
    Eigen::Vector3d pts_camera_i = pts_i / inv_dep_i;
    //i時刻IMU座標系下的map point座標
    Eigen::Vector3d pts_imu_i = qic * pts_camera_i + tic;
    //世界座標系下的map point座標
    Eigen::Vector3d pts_w = Qi * pts_imu_i + Pi;
    //在j時刻imu座標系下的map point座標
    Eigen::Vector3d pts_imu_j = Qj.inverse() * (pts_w - Pj);
    //在j時刻相機座標系下的map point座標
    Eigen::Vector3d pts_camera_j = qic.inverse() * (pts_imu_j - tic);

    double dep_j = pts_camera_j.z();
    Eigen::Vector3d res;
    res[0] = pts_camera_j[0] / dep_j - pts_j[0] ;
    res[1] = pts_camera_j[1] / dep_j - pts_j[1] ;
    //右座標的差值
    res[2] = pts_camera_j[0] / dep_j - bf / dep_j - right_x_j ;

2.優化量(Qi、Pi、Qj、Pj、qic、tic、inv_dep_j)

以對Pi、Qi求導為例:

       (1)誤差項對pts_camera_j求導:

               

         (2)pts_camera_j 對 Pi 、 Ri 求雅克比

             

       (3) pts_camera_j 對 Pj、 Rj 求雅克比類似(2)

       (4) pts_camera_j 對 tic、qic 求雅克比