hku-mars / BALM

An efficient and consistent bundle adjustment for lidar mapping
GNU General Public License v2.0
700 stars 151 forks source link

关于修正状态更新的问题 #50

Open HeXu1 opened 10 months ago

HeXu1 commented 10 months ago

你好 感谢贵团队开源这么优秀的框架 我有一个关于修正状态更新的问题:为什么在迭代更新状态时平移的更新没有乘以误差的旋转,有什么理论依据可以参考么? 类似代码如下(摘自balmclass.hpp void damping_iter()): so3_temp = SO3::exp(dxi.block<3, 1>(0, 0)) so3_pose; t_temp = t_pose + dxi.block<3, 1>(3, 0); 我的理解是这里的 t_temp =SO3::exp(dxi.block<3, 1>(0, 0)) t_pose + dxi.block<3, 1>(3, 0); 但是我这么改了结果又不是很好。 期待回复,再次感谢!

Zale-Liu commented 3 months ago

You can see the left update in the paper. [dR & dp // 0 & 1 ] [R & p // 0 & 1] = [dR R & dR p + dp // 0 & 1]. It is the update in SE3. You can use the right update in the source code. Its update is similar to yours. R = R dR; p = p + dp; rightupdate