Removed obsolete methods (but link error!)
parent
449ba1f37a
commit
21b97ddedf
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file Quaternion.h
|
* @file Quaternion.h
|
||||||
* @brief Unit tests for unit quaternions
|
* @brief Lie Group wrapper for Eigen Quaternions
|
||||||
* @author Frank Dellaert
|
* @author Frank Dellaert
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
|
@ -34,6 +34,7 @@ struct MakeQuaternionChart: LieGroupChart<
|
||||||
typedef typename manifold::traits::TangentVector<Q>::type Omega;
|
typedef typename manifold::traits::TangentVector<Q>::type Omega;
|
||||||
|
|
||||||
/// Exponential map given axis/angle representation of Lie algebra
|
/// Exponential map given axis/angle representation of Lie algebra
|
||||||
|
/// TODO: obsolete? But see if not called now in Rot3Q
|
||||||
static Q Expmap(const _Scalar& angle, const Eigen::Ref<const Omega>& axis) {
|
static Q Expmap(const _Scalar& angle, const Eigen::Ref<const Omega>& axis) {
|
||||||
return Q(Eigen::AngleAxis<_Scalar>(angle, axis));
|
return Q(Eigen::AngleAxis<_Scalar>(angle, axis));
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +49,6 @@ struct MakeQuaternionChart: LieGroupChart<
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// retract, simply be converting omega to AngleAxis
|
|
||||||
static Q Retract(const Q& p, const Eigen::Ref<const Omega>& omega) {
|
|
||||||
return p * Expmap(omega);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// We use our own Logmap, as there is a slight bug in Eigen
|
/// We use our own Logmap, as there is a slight bug in Eigen
|
||||||
static Omega Logmap(const Q& q) {
|
static Omega Logmap(const Q& q) {
|
||||||
using std::acos;
|
using std::acos;
|
||||||
|
|
@ -79,18 +75,15 @@ struct MakeQuaternionChart: LieGroupChart<
|
||||||
return (angle / s) * q.vec();
|
return (angle / s) * q.vec();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// local is our own, as there is a slight bug in Eigen
|
|
||||||
static Omega Local(const Q& q1, const Q& q2) {
|
|
||||||
return Logmap(q1.inverse() * q2);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Define group traits
|
||||||
#define QUATERNION_TEMPLATE typename _Scalar, int _Options
|
#define QUATERNION_TEMPLATE typename _Scalar, int _Options
|
||||||
#define QUATERNION_TYPE Eigen::Quaternion<_Scalar,_Options>
|
#define QUATERNION_TYPE Eigen::Quaternion<_Scalar,_Options>
|
||||||
GTSAM_GROUP_IDENTITY(QUATERNION_TEMPLATE, QUATERNION_TYPE)
|
GTSAM_GROUP_IDENTITY(QUATERNION_TEMPLATE, QUATERNION_TYPE)
|
||||||
GTSAM_MULTIPLICATIVE_GROUP(QUATERNION_TEMPLATE, QUATERNION_TYPE)
|
GTSAM_MULTIPLICATIVE_GROUP(QUATERNION_TEMPLATE, QUATERNION_TYPE)
|
||||||
|
|
||||||
|
// Define manifold traits
|
||||||
#define QUATERNION_TANGENT Eigen::Matrix<_Scalar, 3, 1, _Options, 3, 1>
|
#define QUATERNION_TANGENT Eigen::Matrix<_Scalar, 3, 1, _Options, 3, 1>
|
||||||
#define QUATERNION_CHART MakeQuaternionChart<_Scalar,_Options>
|
#define QUATERNION_CHART MakeQuaternionChart<_Scalar,_Options>
|
||||||
GTSAM_MANIFOLD(QUATERNION_TEMPLATE, QUATERNION_TYPE, 3, QUATERNION_TANGENT,
|
GTSAM_MANIFOLD(QUATERNION_TEMPLATE, QUATERNION_TYPE, 3, QUATERNION_TANGENT,
|
||||||
|
|
@ -98,8 +91,8 @@ GTSAM_MANIFOLD(QUATERNION_TEMPLATE, QUATERNION_TYPE, 3, QUATERNION_TANGENT,
|
||||||
|
|
||||||
/// Define Eigen::Quaternion to be a model of the Lie Group concept
|
/// Define Eigen::Quaternion to be a model of the Lie Group concept
|
||||||
namespace traits {
|
namespace traits {
|
||||||
template<typename S, int O>
|
template<typename _Scalar, int _Options>
|
||||||
struct structure_category<Eigen::Quaternion<S, O> > {
|
struct structure_category<Eigen::Quaternion<_Scalar,_Options> > {
|
||||||
typedef lie_group_tag type;
|
typedef lie_group_tag type;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue