Control Libraries 7.4.0
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
state_representation::DualQuaternionTwist Class Reference

Class to represent a Twist in Dual Quaternion space. More...

#include <DualQuaternionTwist.hpp>

Inheritance diagram for state_representation::DualQuaternionTwist:
state_representation::DualQuaternionState state_representation::SpatialState state_representation::State

Public Member Functions

 DualQuaternionTwist (const std::string &name, const std::string &reference="world")
 Constructor with name and reference frame provided.
 
 DualQuaternionTwist (const DualQuaternionTwist &state)
 Copy constructor of a DualQuaternionTwist.
 
 DualQuaternionTwist (const std::string &name, const Eigen::Vector3d &linear_velocity, const Eigen::Vector3d &angular_velocity, const Eigen::Vector3d &position, const std::string &reference)
 Construct a DualQuaternionTwist from a position given as a vector of coordinates, a linear and an angular velocities.
 
const Eigen::Vector3d & get_position () const
 Getter of the position attribute.
 
const Eigen::Vector3d & get_linear_velocity () const
 Getter of the linear_velocity attribute.
 
const Eigen::Vector3d get_angular_velocity () const
 Getter of the angular_velocity attribute.
 
void set_linear_velocity (const Eigen::Vector3d &linear_velocity)
 Setter of the linear_velocity.
 
void set_angular_velocity (const Eigen::Vector3d &angular_velocity)
 Setter of the angular_velocity.
 
void set_position (const Eigen::Vector3d &position)
 Setter of the position.
 
void operator= (const DualQuaternionState &q)
 Overload the = operator to create a twist from a DualQuaternionState. Note that the linear velocity will be computed from the value of the dual and the current position.
 
void initialize ()
 Initialize the DualQuaternionPose to a zero value.
 
const DualQuaternionTwist copy () const
 Return a copy of the DualQuaternionTwist.
 
- Public Member Functions inherited from state_representation::DualQuaternionState
 DualQuaternionState ()
 Empty constructor.
 
 DualQuaternionState (const std::string &name, const std::string &reference="world")
 Constructor with name and reference frame provided.
 
 DualQuaternionState (const DualQuaternionState &state)
 Copy constructor.
 
 DualQuaternionState (const std::string &name, const Eigen::Quaterniond &primary, const Eigen::Quaterniond &dual, const std::string &reference="world")
 Construct a DualQuaternion from two quaternions.
 
const Eigen::Quaterniond & get_primary () const
 Getter of the primary attribute.
 
const Eigen::Quaterniond & get_dual () const
 Getter of the dual attribute.
 
void set_primary (const Eigen::Quaterniond &primary)
 Setter of the primary attribute.
 
void set_dual (const Eigen::Quaterniond &dual)
 Setter of the dual attribute.
 
DualQuaternionStateoperator*= (const DualQuaternionState &q)
 Overload the *= operator.
 
const DualQuaternionState operator* (const DualQuaternionState &p) const
 Overload the * operator.
 
const DualQuaternionState conjugate () const
 compute the conjugate of the current DualQuaternion
 
const DualQuaternionState copy () const
 Return a copy of the DualQuaternionState.
 
- Public Member Functions inherited from state_representation::SpatialState
 SpatialState ()
 Empty constructor.
 
 SpatialState (const std::string &name, const std::string &reference_frame="world")
 Constructor with name and reference frame specification.
 
 SpatialState (const SpatialState &state)
 Copy constructor from another spatial state.
 
SpatialStateoperator= (const SpatialState &state)
 Copy assignment operator that has to be defined to the custom assignment operator.
 
const std::string & get_reference_frame () const
 Getter of the reference frame as const reference.
 
virtual void set_reference_frame (const std::string &reference_frame)
 Setter of the reference frame.
 
bool is_incompatible (const State &state) const override
 Check if the spatial state is incompatible for operations with the state given as argument.
 
- Public Member Functions inherited from state_representation::State
 State ()
 Empty constructor.
 
 State (const std::string &name)
 Constructor with name specification.
 
 State (const State &state)
 Copy constructor from another state.
 
virtual ~State ()=default
 Virtual destructor.
 
Stateoperator= (const State &state)
 Copy assignment operator that has to be defined to the custom assignment operator.
 
const StateTypeget_type () const
 Getter of the type attribute.
 
const std::string & get_name () const
 Getter of the name attribute.
 
bool is_empty () const
 Getter of the empty attribute.
 
const std::chrono::time_point< std::chrono::steady_clock > & get_timestamp () const
 Getter of the timestamp attribute.
 
virtual void set_name (const std::string &name)
 Setter of the name attribute.
 
void reset_timestamp ()
 Reset the timestamp attribute to now.
 
virtual void set_data (const Eigen::VectorXd &data)
 Set the data of the state from an Eigen vector.
 
virtual void set_data (const std::vector< double > &data)
 Set the data of the state from a std vector.
 
virtual void set_data (const Eigen::MatrixXd &data)
 Set the data of the state from an Eigen matrix.
 
double get_age () const
 Get the age of the state, i.e. the time since the last modification.
 
bool is_deprecated (double time_delay) const
 Check if the state is deprecated given a certain time delay.
 
template<typename DurationT >
bool is_deprecated (const std::chrono::duration< int64_t, DurationT > &time_delay) const
 Check if the state is deprecated given a certain time delay.
 
virtual void reset ()
 Reset the object to a post-construction state.
 
 operator bool () const noexcept
 Boolean operator for the truthiness of a state.
 

Friends

std::ostream & operator<< (std::ostream &os, const DualQuaternionTwist &state)
 Overload the ostream operator for printing.
 

Additional Inherited Members

- Protected Member Functions inherited from state_representation::SpatialState
std::string to_string () const override
 Convert the state to its string representation.
 
- Protected Member Functions inherited from state_representation::State
void set_type (const StateType &type)
 Setter of the state type attribute.
 
void set_empty (bool empty=true)
 Setter of the empty attribute.
 
void assert_not_empty () const
 Throw an exception if the state is empty.
 

Detailed Description

Class to represent a Twist in Dual Quaternion space.

Definition at line 10 of file DualQuaternionTwist.hpp.

Constructor & Destructor Documentation

◆ DualQuaternionTwist() [1/3]

state_representation::DualQuaternionTwist::DualQuaternionTwist ( const std::string &  name,
const std::string &  reference = "world" 
)
explicit

Constructor with name and reference frame provided.

name the name of the state

reference the name of the reference frame

Definition at line 4 of file DualQuaternionTwist.cpp.

◆ DualQuaternionTwist() [2/3]

state_representation::DualQuaternionTwist::DualQuaternionTwist ( const DualQuaternionTwist state)

Copy constructor of a DualQuaternionTwist.

Definition at line 9 of file DualQuaternionTwist.cpp.

◆ DualQuaternionTwist() [3/3]

state_representation::DualQuaternionTwist::DualQuaternionTwist ( const std::string &  name,
const Eigen::Vector3d &  linear_velocity,
const Eigen::Vector3d &  angular_velocity,
const Eigen::Vector3d &  position,
const std::string &  reference 
)
explicit

Construct a DualQuaternionTwist from a position given as a vector of coordinates, a linear and an angular velocities.

Definition at line 12 of file DualQuaternionTwist.cpp.

Member Function Documentation

◆ copy()

const DualQuaternionTwist state_representation::DualQuaternionTwist::copy ( ) const

Return a copy of the DualQuaternionTwist.

Returns
the copy

Definition at line 36 of file DualQuaternionTwist.cpp.

◆ get_angular_velocity()

const Eigen::Vector3d state_representation::DualQuaternionTwist::get_angular_velocity ( ) const
inline

Getter of the angular_velocity attribute.

Definition at line 101 of file DualQuaternionTwist.hpp.

◆ get_linear_velocity()

const Eigen::Vector3d & state_representation::DualQuaternionTwist::get_linear_velocity ( ) const
inline

Getter of the linear_velocity attribute.

Definition at line 97 of file DualQuaternionTwist.hpp.

◆ get_position()

const Eigen::Vector3d & state_representation::DualQuaternionTwist::get_position ( ) const
inline

Getter of the position attribute.

Definition at line 93 of file DualQuaternionTwist.hpp.

◆ initialize()

void state_representation::DualQuaternionTwist::initialize ( )
virtual

Initialize the DualQuaternionPose to a zero value.

Reimplemented from state_representation::DualQuaternionState.

Definition at line 30 of file DualQuaternionTwist.cpp.

◆ operator=()

void state_representation::DualQuaternionTwist::operator= ( const DualQuaternionState q)

Overload the = operator to create a twist from a DualQuaternionState. Note that the linear velocity will be computed from the value of the dual and the current position.

Definition at line 24 of file DualQuaternionTwist.cpp.

◆ set_angular_velocity()

void state_representation::DualQuaternionTwist::set_angular_velocity ( const Eigen::Vector3d &  angular_velocity)
inline

Setter of the angular_velocity.

Definition at line 111 of file DualQuaternionTwist.hpp.

◆ set_linear_velocity()

void state_representation::DualQuaternionTwist::set_linear_velocity ( const Eigen::Vector3d &  linear_velocity)
inline

Setter of the linear_velocity.

Definition at line 105 of file DualQuaternionTwist.hpp.

◆ set_position()

void state_representation::DualQuaternionTwist::set_position ( const Eigen::Vector3d &  position)
inline

Setter of the position.

Definition at line 117 of file DualQuaternionTwist.hpp.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const DualQuaternionTwist state 
)
friend

Overload the ostream operator for printing.

Parameters
osthe ostream to happend the string representing the state to
statethe state to print
Returns
the appended ostream

Definition at line 41 of file DualQuaternionTwist.cpp.


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