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
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?
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?