razayunus / ManhattanSLAM

A Planar RGB-D SLAM which utilizes Manhattan World structure to provide optimal camera pose trajectory while also providing a sparse reconstruction containing points, lines and planes, and a dense surfel-based reconstruction.
Other
151 stars 40 forks source link

The question about "int Optimizer::TranslationOptimization(ORB_SLAM2::Frame *pFrame)" #6

Open kola-hash opened 1 year ago

kola-hash commented 1 year ago

Hi razayunus First of all, thank you very much for your contribution, the product of your work is really amazing!

When I was reading the source code and the paper《ManhattanSLAM: Robust Planar Tracking and Mapping Leveraging Mixture of Manhattan Frames》, I didn't understand some questions. I wish you can help me. As mentioned in the paper, when Manhattan frame is detected during position optimization, Manhattan coordinates can be used to initialize the rotation matrix of the current frame, so the function "Optimizer::TranslationOptimization(*)" only optimizes the translation vector, However, I notice that the update function(oplusImpl(const double update)) for VertexSE3Expmap node also involves updating the rotation matrix as follows: virtual void oplusImpl(const double *update) { Eigen::Map update(update_); setEstimate(SE3Quat::exp(update) * estimate()); } So I'm confused, will the rotation matrix of the camera be changed during optimization? Looking forward to your reply, thanks again.