farm-ng-core
sophus::Pose3< TScalar > Class Template Reference

#include <pose3.h>

Public Types

using Scalar = TScalar
 
using Isometry = Isometry3< Scalar >
 
using Tangent = typename Isometry::Tangent
 
using Rotation = typename Isometry::Rotation
 
using Params = typename Isometry::Params
 

Public Member Functions

 Pose3 (Isometry const &a_from_b, std::string const &frame_a, std::string const &frame_b, Tangent const &tangent_in_b=Tangent::Zero())
 
std::string const & frameA () const
 
std::string & frameA ()
 
std::string const & frameB () const
 
std::string & frameB ()
 
Isometry const & aFromB () const
 
IsometryaFromB ()
 
Tangent const & tangentInB () const
 Rate of change of the pose a_from_b represented in frame b. More...
 
TangenttangentInB ()
 Mutable version of tangentInB. More...
 
Tangent const & tangentOfBInA () const
 
TangenttangentOfBInA ()
 
Isometry bFromA () const
 Pose of entity b in the a frame. More...
 
Tangent log () const
 
Eigen::Vector< Scalar, 3 > translation () const
 
Eigen::VectorBlock< Params, 3 > translation ()
 
Rotation rotation () const
 
void setRotation (Rotation const &rotation)
 
Pose3 inverse () const
 Inverse of the pose (and its velocity). More...
 
Pose3 evolve (double dt) const
 Evolves the pose by a small increment dt. More...
 

Static Public Member Functions

static Tangent changeTangentOrigin (sophus::Isometry3F64 const &foo_from_bar, Tangent const &tangent_in_bar)
 Changes origin frame of tangent vector from frame bar to frame foo. More...
 

Friends

Expected< Tangenterror (Pose3 const &lhs_a_from_b, Pose3 const &rhs_a_from_b)
 
Expected< Pose3operator* (Pose3 const &lhs, Pose3 const &rhs)
 
Expected< Pose3operator* (Pose3 const &lhs, Expected< Pose3 > const &rhs)
 
Expected< Pose3operator* (Expected< Pose3 > const &lhs, Expected< Pose3 > const &rhs)
 
Expected< Pose3operator* (Expected< Pose3 > const &lhs, Pose3 const &rhs)
 

Member Typedef Documentation

◆ Isometry

template<class TScalar >
using sophus::Pose3< TScalar >::Isometry = Isometry3<Scalar>

◆ Params

template<class TScalar >
using sophus::Pose3< TScalar >::Params = typename Isometry::Params

◆ Rotation

template<class TScalar >
using sophus::Pose3< TScalar >::Rotation = typename Isometry::Rotation

◆ Scalar

template<class TScalar >
using sophus::Pose3< TScalar >::Scalar = TScalar

◆ Tangent

template<class TScalar >
using sophus::Pose3< TScalar >::Tangent = typename Isometry::Tangent

Constructor & Destructor Documentation

◆ Pose3()

template<class TScalar >
sophus::Pose3< TScalar >::Pose3 ( Isometry const &  a_from_b,
std::string const &  frame_a,
std::string const &  frame_b,
Tangent const &  tangent_in_b = Tangent::Zero() 
)
inline

Member Function Documentation

◆ aFromB() [1/2]

template<class TScalar >
Isometry& sophus::Pose3< TScalar >::aFromB ( )
inline

◆ aFromB() [2/2]

template<class TScalar >
Isometry const& sophus::Pose3< TScalar >::aFromB ( ) const
inline

◆ bFromA()

template<class TScalar >
Isometry sophus::Pose3< TScalar >::bFromA ( ) const
inline

Pose of entity b in the a frame.

◆ changeTangentOrigin()

template<class TScalar >
static Tangent sophus::Pose3< TScalar >::changeTangentOrigin ( sophus::Isometry3F64 const &  foo_from_bar,
Tangent const &  tangent_in_bar 
)
inlinestatic

Changes origin frame of tangent vector from frame bar to frame foo.

◆ evolve()

template<class TScalar >
Pose3 sophus::Pose3< TScalar >::evolve ( double  dt) const
inline

Evolves the pose by a small increment dt.

It is assumed that the egocentric velocity of the rigid body b stays constant.

◆ frameA() [1/2]

template<class TScalar >
std::string& sophus::Pose3< TScalar >::frameA ( )
inline

◆ frameA() [2/2]

template<class TScalar >
std::string const& sophus::Pose3< TScalar >::frameA ( ) const
inline

◆ frameB() [1/2]

template<class TScalar >
std::string& sophus::Pose3< TScalar >::frameB ( )
inline

◆ frameB() [2/2]

template<class TScalar >
std::string const& sophus::Pose3< TScalar >::frameB ( ) const
inline

◆ inverse()

template<class TScalar >
Pose3 sophus::Pose3< TScalar >::inverse ( ) const
inline

Inverse of the pose (and its velocity).

◆ log()

template<class TScalar >
Tangent sophus::Pose3< TScalar >::log ( ) const
inline

◆ rotation()

template<class TScalar >
Rotation sophus::Pose3< TScalar >::rotation ( ) const
inline

◆ setRotation()

template<class TScalar >
void sophus::Pose3< TScalar >::setRotation ( Rotation const &  rotation)
inline

◆ tangentInB() [1/2]

template<class TScalar >
Tangent& sophus::Pose3< TScalar >::tangentInB ( )
inline

Mutable version of tangentInB.

◆ tangentInB() [2/2]

template<class TScalar >
Tangent const& sophus::Pose3< TScalar >::tangentInB ( ) const
inline

Rate of change of the pose a_from_b represented in frame b.

In other words tangent_in_b_ is the relative linear and angular velocity of the rigid body b (with respect to frame a) and this velocity is expressed in frame b.

◆ tangentOfBInA() [1/2]

template<class TScalar >
Tangent& sophus::Pose3< TScalar >::tangentOfBInA ( )
inline

◆ tangentOfBInA() [2/2]

template<class TScalar >
Tangent const& sophus::Pose3< TScalar >::tangentOfBInA ( ) const
inline

◆ translation() [1/2]

template<class TScalar >
Eigen::VectorBlock<Params, 3> sophus::Pose3< TScalar >::translation ( )
inline

◆ translation() [2/2]

template<class TScalar >
Eigen::Vector<Scalar, 3> sophus::Pose3< TScalar >::translation ( ) const
inline

Friends And Related Function Documentation

◆ error

template<class TScalar >
Expected<Tangent> error ( Pose3< TScalar > const &  lhs_a_from_b,
Pose3< TScalar > const &  rhs_a_from_b 
)
friend

◆ operator* [1/4]

template<class TScalar >
Expected<Pose3> operator* ( Expected< Pose3< TScalar > > const &  lhs,
Expected< Pose3< TScalar > > const &  rhs 
)
friend

◆ operator* [2/4]

template<class TScalar >
Expected<Pose3> operator* ( Expected< Pose3< TScalar > > const &  lhs,
Pose3< TScalar > const &  rhs 
)
friend

◆ operator* [3/4]

template<class TScalar >
Expected<Pose3> operator* ( Pose3< TScalar > const &  lhs,
Expected< Pose3< TScalar > > const &  rhs 
)
friend

◆ operator* [4/4]

template<class TScalar >
Expected<Pose3> operator* ( Pose3< TScalar > const &  lhs,
Pose3< TScalar > const &  rhs 
)
friend

for notation simplicity, let's introduce the following three frames:

a := lhs.frameA() mid := lhs.frameB() == rhs.frameA() b := rhs.frameB()

We aim to calculate the pose of a_from_b and its velocity velocity_of_b_wrt_a_in_b.


The documentation for this class was generated from the following file: