29typename SO<N>::MatrixNN
SO<N>::Hat(
const TangentVector& xi) {
35typename SO<N>::TangentVector
SO<N>::Vee(
const MatrixNN& X) {
41 const Matrix X =
Hat(xi / 2.0);
42 size_t n = AmbientDim(xi.size());
43 const auto I = Eigen::MatrixXd::Identity(n, n);
50 const size_t n = R.rows();
51 const auto I = Eigen::MatrixXd::Identity(n, n);
52 const Matrix X = (I - R.matrix_) * (I + R.matrix_).inverse();
58 throw std::runtime_error(
"SO<N>::Expmap only implemented for SO3 and SO4.");
63 throw std::runtime_error(
"SO<N>::Logmap only implemented for SO3.");
67void SO<N>::print(
const std::string& s)
const {
68 std::cout << s <<
matrix_ << std::endl;
typedef and functions to augment Eigen's MatrixXd
Global functions in a separate testing namespace.
Definition chartTesting.h:28
SO inverse() const
inverse of a rotation = transpose
Definition SOn.h:197
static TangentVector Vee(const MatrixNN &X)
Inverse of Hat. See note about xi element order in Hat.
Definition SOn-inl.h:35
MatrixNN matrix_
Rotation matrix.
Definition SOn.h:66
static SO Expmap(const TangentVector &omega)
Exponential map at identity - create a rotation from canonical coordinates.
Definition SOn-inl.h:57
static MatrixNN Hat(const TangentVector &xi)
Hat operator creates Lie algebra element corresponding to d-vector, where d is the dimensionality of ...
Definition SOn-inl.h:29
SO()
Construct SO<N> identity for N >= 2.
Definition SOn.h:83
static TangentVector Logmap(const SO &R)
Log map at identity - returns the canonical coordinates of this rotation.
Definition SOn-inl.h:62
static TangentVector Local(const SO &R)
Inverse of Retract.
Definition SOn-inl.h:49
static SO Retract(const TangentVector &xi)
Retract uses Cayley map.
Definition SOn-inl.h:40