baidu / ICE-BA

Apache License 2.0
706 stars 233 forks source link

about callback function #11

Closed niannianmeng closed 6 years ago

niannianmeng commented 6 years ago

In the callback function, slidingwindow.Xs are obtained, I think the Xs represent the word 3D points. is it right? According to the GetSlidingWindow function , the Xs are obtained by C.ApplyInversely(x). does it mean Rotation_KeyFrame (x-Translation_KeyFrame)? but when i want to get image coordinates for the feature point of each frame by Rotation_frame.inverse()Xs-Translation_frame, I found the points drift when the image motion happen. anyone can help me for this question?

liuhaomin commented 6 years ago

"does it mean Rotation_KeyFrame *(x-Translation_KeyFrame)" It's R^T (x - t)

" image coordinates for the feature point of each frame by Rotation_frame.inverse()Xs-Translation_frame" It's R X + t which equals to R (X - p). The class CameraPose does not store translation but position p = -R^T * t. Please see comments in https://github.com/baidu/ICE-BA/blob/3e2bfe76f34edac61400f875aa2901f989a4c2c7/Backend/IBA/IBA_datatype.h#L62

niannianmeng commented 6 years ago

Hi, haomin, thanks a lot for your explanation. I still have a doubt that R is represented in the camera coordinate system, right? Do we need to convert it to the imu coordinate system by m_Ru and m_Pu?

liuhaomin commented 6 years ago

R is represented in the camera coordinate system. If you want IMU pose rather than camera pose, you have to do the conversion.

niannianmeng commented 6 years ago

Ok, thanks for your reply.

wangjio commented 6 years ago

The problem has been solved.