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

## 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< Pose2 > | Align (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< Pose2 > | Align (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 Point2 & | t () const
| translation
const Rot2 & | r () const
| rotation
const Point2 & | translation () const
| translation
const Rot2 & | rotation () 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 Pose2 & | derived () 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

  x | x coordinate
  y | y coordinate
  theta | angle 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

  point | 2D 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

  point | SO(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

  point | 2D 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

  point | 2D location of other pose

Returns
  range (double)

## rotationInterval()

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

inline static

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

  points | 2*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

  points | 2*N matrix in world coordinates

Returns
  points in Pose coordinates, as 2*N Matrix

## translationInterval()

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

inline static

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 )

inline static

wedge for SE(2):

Parameters

  xi | 3-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:

- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/geometry/Pose2.h
- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/geometry/Pose2.cpp