gtsam 4.2
gtsam
Loading...
Searching...
No Matches
gtsam::Pose2 Class Reference

Detailed Description

A 2D pose (Point2,Rot2).

Inheritance diagram for gtsam::Pose2:

Advanced Interface

GTSAM_EXPORT friend std::ostream & operator<< (std::ostream &os, const Pose2 &p)
 Output stream operator.
static std::pair< size_t, size_t > translationInterval ()
 Return the start and end indices (inclusive) of the translation component of the exponential map parameterization.
static std::pair< size_t, size_t > rotationInterval ()
 Return the start and end indices (inclusive) of the rotation component of the exponential map parameterization.

Standard Constructors

 Pose2 ()
 default constructor = origin
 Pose2 (const Pose2 &pose)
 copy constructor
 Pose2 (double x, double y, double theta)
 construct from (x,y,theta)
 Pose2 (double theta, const Point2 &t)
 construct from rotation and translation
 Pose2 (const Rot2 &r, const Point2 &t)
 construct from r,t
 Pose2 (const Matrix &T)
 Constructor from 3*3 matrix.

Advanced Constructors

 Pose2 (const Vector &v)
 Construct from canonical coordinates \( [T_x,T_y,\theta] \) (Lie algebra).
static boost::optional< Pose2Align (const Point2Pairs &abPointPairs)
 Create Pose2 by aligning two point pairs A pose aTb is estimated between pairs (a_point, b_point) such that a_point = aTb * b_point Note this allows for noise on the points but in that case the mapping will not be exact.
static boost::optional< Pose2Align (const Matrix &a, const Matrix &b)

Testable

GTSAM_EXPORT void print (const std::string &s="") const
 print with optional string
GTSAM_EXPORT bool equals (const Pose2 &pose, double tol=1e-9) const
 assert equality up to a tolerance

Group

GTSAM_EXPORT Pose2 inverse () const
 inverse
Pose2 operator* (const Pose2 &p2) const
 compose syntactic sugar
static Pose2 Identity ()
 identity for group operation

Lie Group

GTSAM_EXPORT Matrix3 AdjointMap () const
 Calculate Adjoint map Ad_pose is 3*3 matrix that when applied to twist xi \( [T_x,T_y,\theta] \), returns Ad_pose(xi).
Vector3 Adjoint (const Vector3 &xi) const
 Apply AdjointMap to twist xi.
static GTSAM_EXPORT Pose2 Expmap (const Vector3 &xi, ChartJacobian H=boost::none)
 Exponential map at identity - create a rotation from canonical coordinates \( [T_x,T_y,\theta] \).
static GTSAM_EXPORT Vector3 Logmap (const Pose2 &p, ChartJacobian H=boost::none)
 Log map at identity - return the canonical coordinates \( [T_x,T_y,\theta] \) of this rotation.
static GTSAM_EXPORT Matrix3 adjointMap (const Vector3 &v)
 Compute the [ad(w,v)] operator for SE2 as in [Kobilarov09siggraph], pg 19.
static Vector3 adjoint (const Vector3 &xi, const Vector3 &y)
 Action of the adjointMap on a Lie-algebra vector y, with optional derivatives.
static Vector3 adjointTranspose (const Vector3 &xi, const Vector3 &y)
 The dual version of adjoint action, acting on the dual space of the Lie-algebra vector space.
static Matrix3 adjointMap_ (const Vector3 &xi)
static Vector3 adjoint_ (const Vector3 &xi, const Vector3 &y)
static Matrix3 wedge (double vx, double vy, double w)
 wedge for SE(2):
static GTSAM_EXPORT Matrix3 ExpmapDerivative (const Vector3 &v)
 Derivative of Expmap.
static GTSAM_EXPORT Matrix3 LogmapDerivative (const Pose2 &v)
 Derivative of Logmap.

Group Action on Point2

GTSAM_EXPORT Point2 transformTo (const Point2 &point, OptionalJacobian< 2, 3 > Dpose=boost::none, OptionalJacobian< 2, 2 > Dpoint=boost::none) const
 Return point coordinates in pose coordinate frame.
Matrix transformTo (const Matrix &points) const
 transform many points in world coordinates and transform to Pose.
GTSAM_EXPORT Point2 transformFrom (const Point2 &point, OptionalJacobian< 2, 3 > Dpose=boost::none, OptionalJacobian< 2, 2 > Dpoint=boost::none) const
 Return point coordinates in global frame.
Matrix transformFrom (const Matrix &points) const
 transform many points in Pose coordinates and transform to world.
Point2 operator* (const Point2 &point) const
 syntactic sugar for transformFrom

Standard Interface

double x () const
 get x
double y () const
 get y
double theta () const
 get theta
const Point2t () const
 translation
const Rot2r () const
 rotation
const Point2translation () const
 translation
const Rot2rotation () const
 rotation
GTSAM_EXPORT Matrix3 matrix () const
GTSAM_EXPORT Rot2 bearing (const Point2 &point, OptionalJacobian< 1, 3 > H1=boost::none, OptionalJacobian< 1, 2 > H2=boost::none) const
 Calculate bearing to a landmark.
GTSAM_EXPORT Rot2 bearing (const Pose2 &pose, OptionalJacobian< 1, 3 > H1=boost::none, OptionalJacobian< 1, 3 > H2=boost::none) const
 Calculate bearing to another pose.
GTSAM_EXPORT double range (const Point2 &point, OptionalJacobian< 1, 3 > H1=boost::none, OptionalJacobian< 1, 2 > H2=boost::none) const
 Calculate range to a landmark.
GTSAM_EXPORT double range (const Pose2 &point, OptionalJacobian< 1, 3 > H1=boost::none, OptionalJacobian< 1, 3 > H2=boost::none) const
 Calculate range to another pose.

Public Types

typedef Rot2 Rotation
 Pose Concept requirements.
typedef Point2 Translation
Public Types inherited from gtsam::LieGroup< Pose2, 3 >
enum  
typedef OptionalJacobian< N, N > ChartJacobian
typedef Eigen::Matrix< double, N, N > Jacobian
typedef Eigen::Matrix< double, N, 1 > TangentVector

Classes

struct  ChartAtOrigin

Friends

class boost::serialization::access

Additional Inherited Members

Public Member Functions inherited from gtsam::LieGroup< Pose2, 3 >
SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
const Pose2derived () const
Pose2 inverse (ChartJacobian H) const
Pose2 expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
TangentVector logmap (const Pose2 &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
Pose2 retract (const TangentVector &v) const
 retract as required by manifold concept: applies v at *this
TangentVector localCoordinates (const Pose2 &g) const
 localCoordinates as required by manifold concept: finds tangent vector between *this and g
Static Public Member Functions inherited from gtsam::LieGroup< Pose2, 3 >
static Pose2 Retract (const TangentVector &v)
 Retract at origin: possible in Lie group because it has an identity.
static TangentVector LocalCoordinates (const Pose2 &g)
 LocalCoordinates at origin: possible in Lie group because it has an identity.

Constructor & Destructor Documentation

◆ Pose2()

gtsam::Pose2::Pose2 ( double x,
double y,
double theta )
inline

construct from (x,y,theta)

Parameters
xx coordinate
yy coordinate
thetaangle with positive X-axis

Member Function Documentation

◆ bearing() [1/2]

Rot2 gtsam::Pose2::bearing ( const Point2 & point,
OptionalJacobian< 1, 3 > H1 = boost::none,
OptionalJacobian< 1, 2 > H2 = boost::none ) const

Calculate bearing to a landmark.

Parameters
point2D location of landmark
Returns
2D rotation \( \in SO(2) \)

◆ bearing() [2/2]

Rot2 gtsam::Pose2::bearing ( const Pose2 & pose,
OptionalJacobian< 1, 3 > H1 = boost::none,
OptionalJacobian< 1, 3 > H2 = boost::none ) const

Calculate bearing to another pose.

Parameters
pointSO(2) location of other pose
Returns
2D rotation \( \in SO(2) \)

◆ range() [1/2]

double gtsam::Pose2::range ( const Point2 & point,
OptionalJacobian< 1, 3 > H1 = boost::none,
OptionalJacobian< 1, 2 > H2 = boost::none ) const

Calculate range to a landmark.

Parameters
point2D location of landmark
Returns
range (double)

◆ range() [2/2]

double gtsam::Pose2::range ( const Pose2 & point,
OptionalJacobian< 1, 3 > H1 = boost::none,
OptionalJacobian< 1, 3 > H2 = boost::none ) const

Calculate range to another pose.

Parameters
point2D location of other pose
Returns
range (double)

◆ rotationInterval()

std::pair< size_t, size_t > gtsam::Pose2::rotationInterval ( )
inlinestatic

Return the start and end indices (inclusive) of the rotation component of the exponential map parameterization.

Returns
a pair of [start, end] indices into the tangent space vector

◆ transformFrom()

Matrix gtsam::Pose2::transformFrom ( const Matrix & points) const

transform many points in Pose coordinates and transform to world.

Parameters
points2*N matrix in Pose coordinates
Returns
points in world coordinates, as 2*N Matrix

◆ transformTo()

Matrix gtsam::Pose2::transformTo ( const Matrix & points) const

transform many points in world coordinates and transform to Pose.

Parameters
points2*N matrix in world coordinates
Returns
points in Pose coordinates, as 2*N Matrix

◆ translationInterval()

std::pair< size_t, size_t > gtsam::Pose2::translationInterval ( )
inlinestatic

Return the start and end indices (inclusive) of the translation component of the exponential map parameterization.

Returns
a pair of [start, end] indices into the tangent space vector

◆ wedge()

Matrix3 gtsam::Pose2::wedge ( double vx,
double vy,
double w )
inlinestatic

wedge for SE(2):

Parameters
xi3-dim twist (v,omega) where omega is angular velocity v (vx,vy) = 2D velocity
Returns
xihat, 3*3 element of Lie algebra that can be exponentiated

The documentation for this class was generated from the following files:
  • /tmp/gtsam-4.2-docs.H5EUbA/src/gtsam/geometry/Pose2.h
  • /tmp/gtsam-4.2-docs.H5EUbA/src/gtsam/geometry/Pose2.cpp