Drake
Frame< T > Class Template Referenceabstract

Frame is an abstract class representing a material frame (also called a physical frame), meaning that it is associated with a material point of a Body. More...

#include <drake/multibody/multibody_tree/frame.h>

Inheritance diagram for Frame< T >:
Collaboration diagram for Frame< T >:

Public Member Functions

const Body< T > & get_body () const
 Returns a const reference to the body associated to this Frame. More...
 
virtual Isometry3< T > CalcPoseInBodyFrame (const systems::Context< T > &context) const =0
 Returns the pose X_BF of this frame F in the body frame B associated with this frame. More...
 
virtual Isometry3< T > CalcOffsetPoseInBody (const systems::Context< T > &context, const Isometry3< T > &X_FQ) const
 Given the offset pose X_FQ of a frame Q in this frame F, this method computes the pose X_BQ of frame Q in the body frame B to which this frame is attached. More...
 
Does not allow copy, move, or assignment
 Frame (const Frame &)=delete
 
Frameoperator= (const Frame &)=delete
 
 Frame (Frame &&)=delete
 
Frameoperator= (Frame &&)=delete
 

Protected Member Functions

 Frame (const Body< T > &body)
 

Detailed Description

template<typename T>
class drake::multibody::Frame< T >

Frame is an abstract class representing a material frame (also called a physical frame), meaning that it is associated with a material point of a Body.

A material frame can be used to apply forces and torques to a multibody system, and can be used as an attachment point for force-producing elements like joints, actuators, and constraints. Despite its name, Frame is not the most general frame representation in Drake; see FrameBase for a more-general discussion.

The pose and motion of a Frame object is always calculated relative to the BodyFrame of the body with which it is associated, and every Frame object can report which Body object that is. Concrete classes derived from Frame differ only in how those kinematic properties are calculated. For soft bodies that calculation may depend on the body's deformation state variables. A Frame on a rigid body will usually have a fixed offset from its BodyFrame, but that is not required – a frame that moves with respect to its BodyFrame can still be a material frame on that rigid body.

As always in Drake, runtime numerical quantities are stored in a Context. A Frame object does not store runtime values, but provides methods for extracting frame-associated values (such as the Frame object's kinematics) from a given Context.

Template Parameters
TThe scalar type. Must be a valid Eigen scalar.

Constructor & Destructor Documentation

Frame ( const Frame< T > &  )
delete
Frame ( Frame< T > &&  )
delete
Frame ( const Body< T > &  body)
inlineexplicitprotected

Member Function Documentation

virtual Isometry3<T> CalcOffsetPoseInBody ( const systems::Context< T > &  context,
const Isometry3< T > &  X_FQ 
) const
inlinevirtual

Given the offset pose X_FQ of a frame Q in this frame F, this method computes the pose X_BQ of frame Q in the body frame B to which this frame is attached.

In other words, if the pose of this frame F in the body frame B is X_BF, this method computes the pose X_BQ of frame Q in the body frame B as X_BQ = X_BF * X_FQ. In particular, if this isthe body frame B, i.e.X_BFis the identity transformation, this method directly returnsX_FQ`. Specific frame subclasses can override this method to provide faster implementations if needed.

Reimplemented in BodyFrame< T >, and BodyFrame< double >.

Here is the caller graph for this function:

virtual Isometry3<T> CalcPoseInBodyFrame ( const systems::Context< T > &  context) const
pure virtual

Returns the pose X_BF of this frame F in the body frame B associated with this frame.

In particular, if this is the body frame B, this method directly returns the identity transformation.

Implemented in BodyFrame< T >, BodyFrame< double >, and FixedOffsetFrame< T >.

Here is the caller graph for this function:

const Body<T>& get_body ( ) const
inline

Returns a const reference to the body associated to this Frame.

Here is the caller graph for this function:

Frame& operator= ( const Frame< T > &  )
delete
Frame& operator= ( Frame< T > &&  )
delete

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