20 #include <gtsam/config.h> 59 R_(pose.R_), t_(pose.t_) {
72 R_(T(0, 0), T(0, 1), T(0, 2), T(1, 0), T(1, 1), T(1, 2), T(2, 0), T(2, 1),
73 T(2, 2)), t_(T(0, 3), T(1, 3), T(2, 3)) {
96 void print(
const std::string&
s =
"")
const;
132 Pose3 interpolateRt(
const Pose3&
T,
double t)
const;
148 Matrix6 AdjointMap()
const;
156 Vector6 Adjoint(
const Vector6& xi_b,
161 Vector6 AdjointTranspose(
const Vector6&
x,
180 static Matrix6 adjointMap(
const Vector6& xi);
185 static Vector6
adjoint(
const Vector6& xi,
const Vector6&
y,
190 static Matrix6
adjointMap_(
const Vector6 &xi) {
return adjointMap(xi);}
191 static Vector6
adjoint_(
const Vector6 &xi,
const Vector6 &y) {
return adjoint(xi, y);}
196 static Vector6 adjointTranspose(
const Vector6& xi,
const Vector6& y,
201 static Matrix6 ExpmapDerivative(
const Vector6& xi);
204 static Matrix6 LogmapDerivative(
const Pose3& xi);
221 static Matrix3 ComputeQforExpmapDerivative(
222 const Vector6& xi,
double nearZeroThreshold = 1
e-5);
235 return (
Matrix(4, 4) << 0., -wz, wy, vx, wz, 0., -wx, vy, -wy, wx, 0., vz, 0., 0., 0., 0.).finished();
392 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 394 friend class boost::serialization::access;
395 template<
class Archive>
396 void serialize(Archive & ar,
const unsigned int ) {
397 ar & BOOST_SERIALIZATION_NVP(R_);
398 ar & BOOST_SERIALIZATION_NVP(t_);
403 #ifdef GTSAM_USE_QUATERNIONS 443 template <
typename T>
void print(const Matrix &A, const string &s, ostream &stream)
static Matrix6 adjointMap_(const Vector6 &xi)
Point3 t_
Translation gPp, from global origin to pose frame origin.
StridedVectorType vy(make_vector(y, *n, std::abs(*incy)))
std::ostream & operator<<(std::ostream &os, const Dih6 &m)
std::vector< Pose3 > Pose3Vector
Rot3_ rotation(const Pose3_ &pose)
void adjoint(const MatrixType &m)
std::string serialize(const T &input)
serializes to a string
Rot3 R_
Rotation gRp, between global and pose frame.
Rot2 R(Rot2::fromAngle(0.1))
Pose2_ Expmap(const Vector3_ &xi)
static Pose3 Identity()
identity for group operation
Pose3_ transformPoseTo(const Pose3_ &p, const Pose3_ &q)
static Matrix wedge(double wx, double wy, double wz, double vx, double vy, double vz)
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
EIGEN_DEVICE_FUNC const InverseReturnType inverse() const
Represents a 3D point on a unit sphere.
Pose3 operator*(const Pose3 &T) const
compose syntactic sugar
Point3_ transformFrom(const Pose3_ &x, const Point3_ &p)
Point3_ translation(const Pose3_ &pose)
StridedVectorType vx(make_vector(x, *n, std::abs(*incx)))
static std::pair< size_t, size_t > rotationInterval()
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Pose3(const Rot3 &R, const Point3 &t)
Matrix wedge< Pose3 >(const Vector &xi)
Base class and basic functions for Lie types.
static std::pair< size_t, size_t > translationInterval()
Point3 operator*(const Point3 &point) const
static const Pose3 pose(Rot3(Vector3(1, -1, -1).asDiagonal()), Point3(0, 0, 0.5))
std::vector< std::pair< Pose3, Pose3 > > Pose3Pairs
ofstream os("timeSchurFactors.csv")
Both LieGroupTraits and Testable.
Double_ range(const Point2_ &p, const Point2_ &q)
#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW
static Vector6 adjoint_(const Vector6 &xi, const Vector6 &y)
Line3 transformTo(const Pose3 &wTc, const Line3 &wL, OptionalJacobian< 4, 6 > Dpose, OptionalJacobian< 4, 4 > Dline)
std::pair< Pose3, Pose3 > Pose3Pair
Map< Matrix< T, Dynamic, Dynamic, ColMajor >, 0, OuterStride<> > matrix(T *data, int rows, int cols, int stride)
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
std::vector< Point3Pair > Point3Pairs
3D rotation represented as a rotation matrix or quaternion
static Similarity2 Align(const Point2Pairs &d_abPointPairs, const Rot2 &aRb, const Point2Pair ¢roids)
This method estimates the similarity transform from differences point pairs, given a known or estimat...