Calico
A visual-inertial calibration library designed for rapid problem construction and debugging.
Public Member Functions | Friends | List of all members
calico::Pose3< T > Class Template Reference

#include <typedefs.h>

Public Member Functions

 Pose3 (const Eigen::Quaternion< T > &q, const Eigen::Vector3< T > &t)
 
Eigen::Quaternion< T > & rotation ()
 Rotation accessor.
 
const Eigen::Quaternion< T > & rotation () const
 
Eigen::Vector3< T > & translation ()
 Translation accessor.
 
const Eigen::Vector3< T > & translation () const
 
void SetRotation (const Eigen::Vector4< T > &q)
 
Eigen::Vector4< T > GetRotation () const
 
void SetTranslation (const Eigen::Vector3< T > &t)
 Translation setter for python bindings.
 
Eigen::Vector3< T > GetTranslation () const
 Translation getter for python bindings.
 
Pose3 operator* (const Pose3< T > &T_b_a) const
 
Eigen::Vector3< T > operator* (const Eigen::Vector3< T > &p) const
 
Pose3< T > inverse () const
 
bool isApprox (const Pose3< T > &pose) const
 Convenience method for checking if two poses are close in value.
 

Friends

std::ostream & operator<< (std::ostream &os, const Pose3< T > &pose)
 

Detailed Description

template<typename T>
class calico::Pose3< T >

Pose3 class. This class mainly serves as a container for \(SE(3)\) rigid body transforms.

Member Function Documentation

◆ GetRotation()

template<typename T >
Eigen::Vector4<T> calico::Pose3< T >::GetRotation ( ) const
inline

Rotation getter as a 4-vector for python bindings. Returned quaternion will be in the order \(\left[w, x, y, z\right]\)

◆ inverse()

template<typename T >
Pose3<T> calico::Pose3< T >::inverse ( ) const
inline

Returns the inverse of this transform \(\mathbf{T}^{-1}\). Usage:

Pose3<T> T_rigidbody_world = ...;
Pose3<T> T_world_rigidbody = T_rigidbody_world.inverse();

◆ operator*() [1/2]

template<typename T >
Eigen::Vector3<T> calico::Pose3< T >::operator* ( const Eigen::Vector3< T > &  p) const
inline

Operator for transforming an Eigen 3-vector by a Pose3 object. Usage:

Pose3<T> T_world_rigidbody = ...;
Eigen::Vector3<T> t_rigidbody_point = ...;
Eigen::Vector3<T> t_world_point = T_world_rigidbody * t_rigidbody_point;

◆ operator*() [2/2]

template<typename T >
Pose3 calico::Pose3< T >::operator* ( const Pose3< T > &  T_b_a) const
inline

Operator for multiplying two Pose3 objects. Usage:

Pose3<T> T_world_rigidbody = ...;
Pose3<T> T_rigidbody_sensor = ...;
Pose3<T> T_world_sensor = T_world_rigidbody * T_rigidbody_sensor;

◆ SetRotation()

template<typename T >
void calico::Pose3< T >::SetRotation ( const Eigen::Vector4< T > &  q)
inline

Rotation setter as a 4-vector quaternion for python bindings. Quaternion vector must be in the order \(\left[w, x, y, z\right]\)

Friends And Related Function Documentation

◆ operator<<

template<typename T >
std::ostream& operator<< ( std::ostream &  os,
const Pose3< T > &  pose 
)
friend

Operator for printing a Pose3 object. Usage:

Pose3<T> T = ...;
std::cout << T << std::endl;
>> q: w, x, y, z, t: x, y, z

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