TVM  0.9.4
tvm::robot::Frame Class Reference

#include <tvm/robot/Frame.h>

Inheritance diagram for tvm::robot::Frame:
Collaboration diagram for tvm::robot::Frame:

Public Member Functions

 Frame (std::string name, RobotPtr robot, const std::string &body, sva::PTransformd X_b_f)
 
const Robotrobot () const
 
Robotrobot ()
 
rbd::Jacobian & rbdJacobian ()
 
const rbd::Jacobian & rbdJacobian () const
 
const std::string & name () const
 
const sva::PTransformd & position () const
 
const tvm::internal::MatrixWithPropertiesjacobian () const
 
const sva::MotionVecd & velocity () const
 
const sva::MotionVecd & normalAcceleration () const
 
const std::string & body () const
 
- Public Member Functions inherited from tvm::graph::internal::AbstractNode
template<typename EnumT >
bool isUpdateEnabled (EnumT e) const
 
virtual bool isUpdateStaticallyEnabled (int) const
 
virtual bool isUpdateCustomEnabled (int) const
 
virtual ~AbstractNode ()=default
 
void update (int i)
 
- Public Member Functions inherited from tvm::graph::internal::Inputs
virtual ~Inputs ()=default
 
template<typename T , typename EnumI , typename... Args>
void addInput (std::shared_ptr< T > source, EnumI i, Args... args)
 
template<typename T , typename EnumI , typename... Args, typename std::enable_if< std::is_base_of< abstract::Outputs, T >::value, int >::type = 0>
void addInput (T &source, EnumI i, Args... args)
 
template<typename T >
void removeInput (T *source)
 
template<typename T , typename... Args>
void removeInput (T *source, Args... args)
 
template<typename T >
Iterator getInput (T *source)
 
template<typename T >
Iterator getInput (const std::shared_ptr< T > &source)
 
- Public Member Functions inherited from tvm::graph::abstract::Outputs
virtual ~Outputs ()=default
 
template<typename EnumT >
bool isOutputEnabled (EnumT e) const
 
bool isOutputEnabled (int i) const
 
virtual bool isOutputStaticallyEnabled (int) const
 
virtual bool isOutputCustomEnabled (int) const
 

Additional Inherited Members

- Public Types inherited from tvm::graph::internal::AbstractNode
enum class  Update_
 
using UpdateParent = AbstractNode
 
using UpdateBase = AbstractNode
 
- Public Types inherited from tvm::graph::internal::Inputs
using inputs_t = std::unordered_map< abstract::Outputs *, std::set< int > >
 
using store_t = std::unordered_set< std::shared_ptr< abstract::Outputs > >
 
- Public Types inherited from tvm::graph::abstract::Outputs
enum class  Output_
 
using OutputParent = Outputs
 
using OutputBase = Outputs
 
- Static Public Member Functions inherited from tvm::graph::internal::AbstractNode
static constexpr const char * UpdateName (Update_)
 
template<typename EnumT >
static constexpr bool UpdateStaticallyEnabled (EnumT)
 
- Static Public Member Functions inherited from tvm::graph::abstract::Outputs
static constexpr const char * OutputName (Output_)
 
template<typename EnumT >
static constexpr bool OutputStaticallyEnabled (EnumT)
 
- Static Public Attributes inherited from tvm::graph::internal::AbstractNode
static constexpr unsigned int UpdateSize = 0
 
static constexpr auto UpdateBaseName = "AbstractNode"
 
- Static Public Attributes inherited from tvm::graph::abstract::Outputs
static constexpr unsigned int OutputSize = 0
 
static constexpr auto OutputBaseName = "Outputs"
 
- Protected Types inherited from tvm::graph::internal::AbstractNode
using input_dependency_t = std::map< Outputs *, std::set< int > >
 
- Protected Member Functions inherited from tvm::graph::abstract::Node< Frame >
void registerUpdates (EnumT u, void(U::*fn)(), Args... args)
 
void registerUpdates (EnumT u, void(U::*fn)())
 
void addOutputDependency (EnumO o, EnumU u)
 
void addOutputDependency (std::initializer_list< EnumO > os, EnumU u)
 
void addInternalDependency (EnumU1 uDependent, EnumU2 u)
 
void addInputDependency (EnumU u, std::shared_ptr< S > source, EnumO i, Args... args)
 
void addInputDependency (EnumU u, S &source, EnumO i, Args... args)
 
void addDirectDependency (EnumO o, std::shared_ptr< S > source, EnumI i)
 
void addDirectDependency (EnumO o, S &source, EnumI i)
 
- Protected Attributes inherited from tvm::graph::internal::AbstractNode
std::map< int, std::function< void(AbstractNode &)> > updates_
 
std::map< int, std::vector< int > > outputDependencies_
 
std::map< int, std::vector< int > > internalDependencies_
 
std::map< int, input_dependency_tinputDependencies_
 
std::map< int, std::pair< Outputs *, int > > directDependencies_
 
- Protected Attributes inherited from tvm::graph::abstract::Outputs
bool is_node_ = false
 

Detailed Description

A frame belonging to a robot

Provides the frame position, jacobian, velocity and normal acceleration. These signals are correctly initialized on the object's creation.

Outputs:

  • Position: position of the frame in world coordinates
  • Jacobian: jacobian of the frame in world coordinates
  • Velocity: velocity of the frame in world coordinates
  • NormalAcceleration: normal acceleration of the frame in world coordinates

Constructor & Destructor Documentation

◆ Frame()

tvm::robot::Frame::Frame ( std::string  name,
RobotPtr  robot,
const std::string &  body,
sva::PTransformd  X_b_f 
)

Constructor

Creates a frame belonging to a robot

Parameters
nameName of the frame
robotRobot to which the frame is attached
bodyParent body of the frame
X_b_fStatic transformation from the body to the frame

Member Function Documentation

◆ body()

const std::string& tvm::robot::Frame::body ( ) const

Returns the frame's parent body

◆ jacobian()

const tvm::internal::MatrixWithProperties& tvm::robot::Frame::jacobian ( ) const
inline

The frame's jacobian in world coordinates

◆ name()

const std::string& tvm::robot::Frame::name ( ) const
inline

The frame's name

◆ normalAcceleration()

const sva::MotionVecd& tvm::robot::Frame::normalAcceleration ( ) const
inline

The frame's normal acceleration in world coordinates

◆ position()

const sva::PTransformd& tvm::robot::Frame::position ( ) const
inline

The frame's position in world coordinates

◆ rbdJacobian() [1/2]

rbd::Jacobian& tvm::robot::Frame::rbdJacobian ( )
inline

Access the internal Jacobian object to perform extra-computation

◆ rbdJacobian() [2/2]

const rbd::Jacobian& tvm::robot::Frame::rbdJacobian ( ) const
inline

Access the internal Jacobian object to perform extra-computation (const)

◆ robot() [1/2]

Robot& tvm::robot::Frame::robot ( )
inline

Access the robot to which this frame belongs

◆ robot() [2/2]

const Robot& tvm::robot::Frame::robot ( ) const
inline

Access the robot to which this frame belongs (const)

◆ velocity()

const sva::MotionVecd& tvm::robot::Frame::velocity ( ) const
inline

The frame's velocity in world coordinates


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