5#include <Eigen/Geometry>
76 x.
arr_.setConstant(std::numeric_limits<T>::quiet_NaN());
126 x.
arr_ <<
t(0),
t(1),
t(2),
q.w(),
q.x(),
q.y(),
q.z();
287 template<
typename Tout = T,
typename T2>
300 template<
typename Tout = T,
typename T2>
310 template<
typename Tout = T,
typename T2>
328 template<
typename T2>
337 template<
typename T2>
385 template<
typename Tout = T,
typename T2>
420 template<
typename T2>
472 T e = (
b - 2. *
c) / (2. *
a);
524 template<
typename T2>
567 os <<
"SE(3): [ " << x.
t_.x() <<
"i, " << x.
t_.y() <<
"j, " << x.
t_.z() <<
"k ] [ " << x.
q_.w() <<
", " << x.
q_.x()
568 <<
"i, " << x.
q_.y() <<
"j, " << x.
q_.z() <<
"k ]";
SE3< double > SE3d
Definition SE3.h:572
SE3< T > operator*(const double &l, const SE3< T > &r)
Scale a transform by a scalar.
Definition SE3.h:540
std::ostream & operator<<(std::ostream &os, const SE3< T > &x)
Render the transform in a stream.
Definition SE3.h:565
Class representing a member of the manifold, or a 3D rigid body transform.
Definition SE3.h:16
T * data()
Access pointer to all elements of .
Definition SE3.h:229
static SE3 fromVecAndQuat(const Vec3T &t, const SO3< T > &q)
Construct a transform from a translation vector and a rotation object.
Definition SE3.h:123
SE3< Tout > otimes(const SE3< T2 > &x) const
Implementation of group composition: .
Definition SE3.h:288
static SE3 identity()
Obtain an identity transform.
Definition SE3.h:62
SO3< T > q_
Memory-mapped array representing only the rotation component of the transform .
Definition SE3.h:42
SE3 inverse() const
Obtain the inverse transform .
Definition SE3.h:266
Vec6T operator-(const SE3< T2 > &x) const
Invocation of ominus via subtraction.
Definition SE3.h:421
const Map< Vec3T > & t() const
Access the translation vector .
Definition SE3.h:181
Map< Vec3T > t_
Memory-mapped array representing only the translation component of the transform .
Definition SE3.h:38
Mat4T H() const
Convert the transform to matrix representation .
Definition SE3.h:256
Map< Vec3T > & t()
Access the translation vector .
Definition SE3.h:197
SE3 & operator*=(const SE3< T2 > &x)
Invocation of otimes via multiplication.
Definition SE3.h:338
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Map< Vec7T > arr_
Memory-mapped array representing all transform fields in .
Definition SE3.h:34
SE3(const Ref< const Vec7T > &arr)
Create a transform from an array representing all transform fields in .
Definition SE3.h:151
static Mat4T hat(const Vec6T &omega)
Hat operator implementation, which coverts the tangent-space vector representation to the correspondi...
Definition SE3.h:430
static SE3 fromH(const Mat4T &m)
Convert a transform matrix into a transform.
Definition SE3.h:84
Vec3T operator*(const Vec3T &v) const
Transform a vector via multiplication: .
Definition SE3.h:395
SE3 & operator/=(const double &s)
Scale a transform by a scalar.
Definition SE3.h:362
Vec7T array() const
Access all elements of .
Definition SE3.h:221
static SE3 fromVecAndQuat(const Vec3T &tvec, const Vec4T &qvec)
Construct a transform from a translation vector and rotation fields vector.
Definition SE3.h:111
SE3 & operator*=(const double &s)
Scale a transform by a scalar.
Definition SE3.h:350
const Vec7T elements() const
Access all elements of .
Definition SE3.h:213
SO3< T > & q()
Access the rotation .
Definition SE3.h:205
static Vec6T vee(const Mat4T &Omega)
Vee operator implementation, which coverts the Lie algebra representation to a tangent-space vector r...
Definition SE3.h:442
SE3 & operator=(const SE3 &x)
Copy constructor.
Definition SE3.h:319
static SE3 fromVecAndQuat(const T tx, const T ty, const T tz, const T qw, const T qx, const T qy, const T qz)
Construct a transform from the individual fields.
Definition SE3.h:99
SE3 operator/(const double &s) const
Scale a transform by a scalar.
Definition SE3.h:374
SE3(const SE3 &x)
Copy constructor from another transform.
Definition SE3.h:159
SE3 & operator+=(const Vec6T &v)
Invocation of oplus via addition.
Definition SE3.h:411
SE3 operator+(const Vec6T &v) const
Invocation of oplus via addition.
Definition SE3.h:403
SE3(const T *data)
Create a transform from a pointer array representing all transform fields in .
Definition SE3.h:168
SE3 operator*(const SE3< T2 > &x) const
Invocation of otimes via multiplication.
Definition SE3.h:329
SE3< Tout > oplus(const Matrix< T2, 6, 1 > &delta) const
Implementation of tangent space group perturbations: .
Definition SE3.h:301
SE3 copy() const
Get a deep copy of the current transform.
Definition SE3.h:245
static Vec6T Log(const SE3 &x)
Logarithmic chart map implementation: .
Definition SE3.h:460
const T * data() const
Access pointer to all elements of .
Definition SE3.h:237
SE3< T2 > cast() const
Cast the underlying numeric type.
Definition SE3.h:525
SE3()
Create a transform (with garbage data).
Definition SE3.h:145
Matrix< Tout, 3, 1 > operator*(const Matrix< T2, 3, 1 > &v) const
Transform a vector via multiplication: .
Definition SE3.h:386
static Mat4T log(const SE3 &x)
Logarithmic chart map implementation: .
Definition SE3.h:452
static SE3 nans()
Obtain a transform full of NaNs.
Definition SE3.h:73
static SE3 fromVecAndQuat(const Vec3T &tvec, const Quaternion< T > quat)
Construct a transform from a translation vector and an Eigen Quaternion object.
Definition SE3.h:135
const SO3< T > & q() const
Access the rotation .
Definition SE3.h:189
static SE3 Exp(const Vec6T &omega)
Exponential chart map implementation: .
Definition SE3.h:497
static SE3 random()
Obtain a random rigid body transform.
Definition SE3.h:51
static SE3 exp(const Mat4T &Omega)
Exponential chart map implementation: .
Definition SE3.h:489
T & operator[](int i)
Access a field from .
Definition SE3.h:173
SE3 & invert()
Invert the current transform .
Definition SE3.h:276
Matrix< Tout, 6, 1 > ominus(const SE3< T2 > &x) const
Implementation of group subtraction: .
Definition SE3.h:311
Class representing a member of the manifold, or a 3D rotation.
Definition SO3.h:15
static SO3 Exp(const Vec3T &omega)
Exponential chart map implementation: .
Definition SO3.h:681
static Vec3T vee(const Mat3T &Omega)
Vee operator implementation, which coverts the Lie algebra representation to a tangent-space vector r...
Definition SO3.h:640
static Mat3T hat(const Vec3T &omega)
Hat operator implementation, which coverts the tangent-space vector representation to the correspondi...
Definition SO3.h:629
SO3 inverse() const
Obtain the inverse rotation .
Definition SO3.h:400
static Vec3T Log(const SO3 &q)
Logarithmic chart map implementation: .
Definition SO3.h:658