add logmap expression
parent
9e032e4511
commit
e0425f3548
|
|
@ -138,4 +138,21 @@ Point2_ uncalibrate(const Expression<CALIBRATION>& K, const Point2_& xy_hat) {
|
||||||
return Point2_(K, &CALIBRATION::uncalibrate, xy_hat);
|
return Point2_(K, &CALIBRATION::uncalibrate, xy_hat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// logmap
|
||||||
|
// TODO(dellaert): Should work but fails because of a type deduction conflict.
|
||||||
|
// template <typename T>
|
||||||
|
// gtsam::Expression<typename gtsam::traits<T>::TangentVector> logmap(
|
||||||
|
// const gtsam::Expression<T> &x1, const gtsam::Expression<T> &x2) {
|
||||||
|
// return gtsam::Expression<typename gtsam::traits<T>::TangentVector>(
|
||||||
|
// x1, &T::logmap, x2);
|
||||||
|
// }
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
gtsam::Expression<typename gtsam::traits<T>::TangentVector> logmap(
|
||||||
|
const gtsam::Expression<T> &x1, const gtsam::Expression<T> &x2) {
|
||||||
|
return Expression<typename gtsam::traits<T>::TangentVector>(
|
||||||
|
gtsam::traits<T>::Logmap, between(x1, x2));
|
||||||
|
}
|
||||||
|
|
||||||
} // \namespace gtsam
|
} // \namespace gtsam
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,12 @@ TEST(SlamExpressions, unrotate) {
|
||||||
const Point3_ q_ = unrotate(R_, p_);
|
const Point3_ q_ = unrotate(R_, p_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(SlamExpressions, logmap) {
|
||||||
|
Pose3_ T1_(0);
|
||||||
|
Pose3_ T2_(1);
|
||||||
|
const Vector6_ l = logmap(T1_, T2_);
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
int main() {
|
int main() {
|
||||||
TestResult tr;
|
TestResult tr;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue