gtsam  3.2.0
gtsam
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gtsam::Pose2 Class Reference
+ Inheritance diagram for gtsam::Pose2:

Group

Pose2 inverse (boost::optional< Matrix & > H1=boost::none) const
 inverse transformation with derivatives
 
Pose2 compose (const Pose2 &p2, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 compose this transformation onto another (first *this and then p2)
 
Pose2 operator* (const Pose2 &p2) const
 compose syntactic sugar
 
Pose2 between (const Pose2 &p2, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 Return relative pose between p1 and p2, in p1 coordinate frame.
 
static Pose2 identity ()
 identity for group operation
 

Manifold

size_t dim () const
 Dimensionality of tangent space = 3 DOF.
 
Pose2 retract (const Vector &v) const
 Retraction from R^3 \( [T_x,T_y,\theta] \) to Pose2 manifold neighborhood around current pose.
 
Vector localCoordinates (const Pose2 &p2) const
 Local 3D coordinates \( [T_x,T_y,\theta] \) of Pose2 manifold neighborhood around current pose.
 
static size_t Dim ()
 Dimensionality of tangent space = 3 DOF - used to autodetect sizes.
 

Lie Group

Matrix 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)
 
Vector Adjoint (const Vector &xi) const
 
static Pose2 Expmap (const Vector &xi)
 Exponential map at identity - create a rotation from canonical coordinates \( [T_x,T_y,\theta] \).
 
static Vector Logmap (const Pose2 &p)
 Log map at identity - return the canonical coordinates \( [T_x,T_y,\theta] \) of this rotation.
 
static Matrix wedge (double vx, double vy, double w)
 wedge for SE(2): More...
 

Advanced Interface

class boost::serialization::access
 
static std::pair< size_t, size_t > translationInterval ()
 Return the start and end indices (inclusive) of the translation component of the exponential map parameterization. More...
 
static std::pair< size_t, size_t > rotationInterval ()
 Return the start and end indices (inclusive) of the rotation component of the exponential map parameterization. More...
 

Public Member Functions

Standard Constructors
 Pose2 ()
 default constructor = origin
 
 Pose2 (const Pose2 &pose)
 copy constructor
 
 Pose2 (double x, double y, double theta)
 construct from (x,y,theta) More...
 
 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)
 
Testable
void print (const std::string &s="") const
 print with optional string
 
bool equals (const Pose2 &pose, double tol=1e-9) const
 assert equality up to a tolerance
 
Group Action on Point2
Point2 transform_to (const Point2 &point, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 Return point coordinates in pose coordinate frame.
 
Point2 transform_from (const Point2 &point, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 Return point coordinates in global frame.
 
Point2 operator* (const Point2 &point) const
 syntactic sugar for transform_from
 
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
 
Matrix matrix () const
 
Rot2 bearing (const Point2 &point, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 Calculate bearing to a landmark. More...
 
Rot2 bearing (const Pose2 &point, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 Calculate bearing to another pose. More...
 
double range (const Point2 &point, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 Calculate range to a landmark. More...
 
double range (const Pose2 &point, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
 Calculate range to another pose. More...
 
- Public Member Functions inherited from gtsam::DerivedValue< Pose2 >
virtual Value * clone_ () const
 Create a duplicate object returned as a pointer to the generic Value interface. More...
 
virtual void deallocate_ () const
 Destroy and deallocate this object, only if it was originally allocated using clone_().
 
virtual boost::shared_ptr< Value > clone () const
 Clone this value (normal clone on the heap, delete with 'delete' operator)
 
virtual bool equals_ (const Value &p, double tol=1e-9) const
 equals implementing generic Value interface
 
virtual Value * retract_ (const Vector &delta) const
 Generic Value interface version of retract.
 
virtual Vector localCoordinates_ (const Value &value2) const
 Generic Value interface version of localCoordinates.
 
virtual Value & operator= (const Value &rhs)
 Assignment operator.
 
 operator const Pose2 & () const
 Conversion to the derived class.
 
 operator Pose2 & ()
 Conversion to the derived class.
 
- Public Member Functions inherited from gtsam::Value
virtual ~Value ()
 Virutal destructor.
 

Static Public Attributes

static const size_t dimension = 3
 

Public Types

typedef Rot2 Rotation
 Pose Concept requirements.
 
typedef Point2 Translation
 

Additional Inherited Members

- Protected Member Functions inherited from gtsam::DerivedValue< Pose2 >
DerivedValue< Pose2 > & operator= (const DerivedValue< Pose2 > &rhs)
 Assignment operator, protected because only the Value or DERIVED assignment operators should be used. More...
 

Constructor & Destructor Documentation

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

Rot2 gtsam::Pose2::bearing ( const Point2 &  point,
boost::optional< Matrix & >  H1 = boost::none,
boost::optional< Matrix & >  H2 = boost::none 
) const

Calculate bearing to a landmark.

Parameters
point2D location of landmark
Returns
2D rotation \( \in SO(2) \)
Rot2 gtsam::Pose2::bearing ( const Pose2 &  point,
boost::optional< Matrix & >  H1 = boost::none,
boost::optional< Matrix & >  H2 = boost::none 
) const

Calculate bearing to another pose.

Parameters
pointSO(2) location of other pose
Returns
2D rotation \( \in SO(2) \)
double gtsam::Pose2::range ( const Point2 &  point,
boost::optional< Matrix & >  H1 = boost::none,
boost::optional< Matrix & >  H2 = boost::none 
) const

Calculate range to a landmark.

Parameters
point2D location of landmark
Returns
range (double)
double gtsam::Pose2::range ( const Pose2 &  point,
boost::optional< Matrix & >  H1 = boost::none,
boost::optional< Matrix & >  H2 = boost::none 
) const

Calculate range to another pose.

Parameters
point2D location of other pose
Returns
range (double)
static 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
static 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
static Matrix 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: