TVM  0.9.4
tvm::robot::Contact Class Reference

#include <tvm/robot/Contact.h>

Inheritance diagram for tvm::robot::Contact:
Collaboration diagram for tvm::robot::Contact:

Classes

struct  Id
 
struct  View
 

Public Member Functions

 SET_OUTPUTS (Contact, F1Position, F1Jacobian, F1Velocity, F1NormalAcceleration, F2Position, F2Jacobian, F2Velocity, F2NormalAcceleration) Contact(FramePtr f1
 
const Framef1 () const
 
const Framef2 () const
 
const std::vector< sva::PTransformd > & f1Points () const
 
const sva::PTransformd & X_f1_f2 () const
 
const sva::PTransformd & X_f2_f1 () const
 
const std::vector< sva::PTransformd > & f2Points () const
 
const View f1View () const
 
const View f2View () const
 
const Idid () 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
 

Public Attributes

FramePtr f2
 
FramePtr std::vector< sva::PTransformd > points
 
FramePtr std::vector< sva::PTransformd > int ambiguityId = 0)
 

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< Contact >
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

Represent a contact between two frames

The node forwards the signals of each frame.

Outputs:

  • F1Position/F1Jacobian/F1Velocity/F1NormalAcceleration: proxy for the first frame Position/Jacobian/Velocity/NormalAcceleration signals
  • F2Position/F2Jacobian/F2Velocity/F2NormalAcceleration: proxy for the second frame Position/Jacobian/Velocity/NormalAcceleration signals

Member Function Documentation

◆ f1()

const Frame& tvm::robot::Contact::f1 ( ) const
inline

Return the first frame in the contact

◆ f1Points()

const std::vector<sva::PTransformd>& tvm::robot::Contact::f1Points ( ) const
inline

Return the contact points in f1

◆ f1View()

const View tvm::robot::Contact::f1View ( ) const
inline

Return a contact view from f1 perspective

◆ f2()

const Frame& tvm::robot::Contact::f2 ( ) const
inline

Return the second frame in the contact

◆ f2Points()

const std::vector<sva::PTransformd>& tvm::robot::Contact::f2Points ( ) const
inline

Return the contact points in f2

◆ f2View()

const View tvm::robot::Contact::f2View ( ) const
inline

Return a contact view from f2 perspective

◆ id()

const Id& tvm::robot::Contact::id ( ) const
inline

Return the contact's unique id

◆ SET_OUTPUTS()

tvm::robot::Contact::SET_OUTPUTS ( Contact  ,
F1Position  ,
F1Jacobian  ,
F1Velocity  ,
F1NormalAcceleration  ,
F2Position  ,
F2Jacobian  ,
F2Velocity  ,
F2NormalAcceleration   
)

Constructor

Represent a contact between frame f1 and f2, the contacts points are provided in f1 frame. Importantly, it assumes the frame position are already known.

Parameters
f1Contact frame f1
f2Contact frame f2
pointsContact points expressed in f1
ambiguityIdIf the "same" contact must exist multiple times

◆ X_f1_f2()

const sva::PTransformd& tvm::robot::Contact::X_f1_f2 ( ) const
inline

Initial transformation between frame 1 and frame 2

◆ X_f2_f1()

const sva::PTransformd& tvm::robot::Contact::X_f2_f1 ( ) const
inline

Initial transformation between frame 2 and frame 1

Member Data Documentation

◆ ambiguityId

FramePtr std::vector<sva::PTransformd> int tvm::robot::Contact::ambiguityId = 0)

◆ f2

FramePtr tvm::robot::Contact::f2

◆ points

FramePtr std::vector<sva::PTransformd> tvm::robot::Contact::points

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