cartographer-project / cartographer

Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
Apache License 2.0
7.04k stars 2.24k forks source link

Different quaternion multiplication in rotation_parameterization.h #1851

Open TonyLiuWHU opened 2 years ago

TonyLiuWHU commented 2 years ago

Here, in rotation_parameterization.h, quaternion multiplication is differently used in "YawOnlyQuaternionPlus" and "ConstantYawQuaternionPlus" as follow: struct YawOnlyQuaternionPlus { ... ceres::QuaternionProduct(q_delta, x, x_plus_delta); return true; } };

struct ConstantYawQuaternionPlus { template bool operator()(const T x, const T delta, T x_plus_delta) const { ... ceres::QuaternionProduct(x, q_delta, x_plus_delta); return true; } }; Can anyone explain why it is different for "q delta_q" and "q_delta * q" in these two stuct?