hovren / kontiki

Toolkit for continuous-time structure from motion
MIT License
127 stars 34 forks source link

SE(3) / Sim(3) vs separate rotation, translation and scaling #6

Closed w-hc closed 9 months ago

w-hc commented 9 months ago

Hi Hannes

I want ask you about your thoughts on treating SE(3) / Sim(3) as a single object vs treating them as separate parts.

Libraries like sophus and manif do provide support for SE3, and LieTorch even provides support for Sim3. But the expressions involved in their jacobian become increasingly complex and sometimes do not have closed forms.

I was looking online for a discussion on the relative merit of these two approaches, and found your paper, Trajectory Representation and Landmark Projection for Continous Time Structure from Motion (https://arxiv.org/abs/1805.02543). Here you have a comparison in the case of spline interpolation. I want to ask whether you think the same would hold true in a pose-graph optimization setup, or some SLAM setup.

hovren commented 9 months ago

Hi,

The paper you cite only deals with spline interpolation in different spaces. In that case there is a difference between separate interpolation of R3 and SO(3) vs SE(3) which is both mathematical and practical.

For a pose graph where you have discrete parameters to optimize I don't think you will have much of a difference. It is possible that there are differences in how fast an optimization process converges, or that one representation allows for a slightly faster implementation. But this is not something I have investigated.

w-hc commented 9 months ago

Thanks a lot for the quick response!