Robotics Library  0.6.2
Public Member Functions | Protected Attributes | List of all members
rl::mdl::Dynamic Class Reference

#include <Dynamic.h>

Inheritance diagram for rl::mdl::Dynamic:
Inheritance graph
[legend]

Public Member Functions

 Dynamic ()
 
virtual ~Dynamic ()
 
void calculateCentrifugalCoriolis ()
 
void calculateCentrifugalCoriolis (::rl::math::Vector &V)
 Calculate centrifugal and Coriolis vector. More...
 
void calculateGravity ()
 
void calculateGravity (::rl::math::Vector &G)
 Calculate gravity vector. More...
 
void calculateMassMatrix ()
 
void calculateMassMatrix (::rl::math::Matrix &M)
 Calculate mass matrix. More...
 
void calculateMassMatrixInverse ()
 
void calculateMassMatrixInverse (::rl::math::Matrix &invM)
 Calculate mass matrix inverse. More...
 
void calculateOperationalMassMatrixInverse ()
 
void calculateOperationalMassMatrixInverse (const ::rl::math::Matrix &J, const ::rl::math::Matrix &invM, ::rl::math::Matrix &invMx) const
 Calculate operational space mass matrix inverse. More...
 
Modelclone () const
 
void eulerCauchy (const ::rl::math::Real &dt)
 Integrate with Euler-Cauchy. More...
 
void forwardDynamics ()
 
const ::rl::math::VectorgetCentrifugalCoriolis () const
 
const ::rl::math::VectorgetGravity () const
 
const ::rl::math::MatrixgetMassMatrixInverse () const
 
const ::rl::math::MatrixgetMassMatrix () const
 
const ::rl::math::MatrixgetOperationalMassMatrixInverse () const
 
void getWorldGravity (::rl::math::Real &x, ::rl::math::Real &y, ::rl::math::Real &z) const
 
void getWorldGravity (::rl::math::Vector &xyz) const
 
void inverseDynamics ()
 
void inverseForce ()
 
void rungeKuttaNystrom (const ::rl::math::Real &dt)
 Integrate with Runge-Kutta-Nystrom. More...
 
void setWorldGravity (const ::rl::math::Real &x, const ::rl::math::Real &y, const ::rl::math::Real &z)
 
void setWorldGravity (const ::rl::math::Vector &xyz)
 
virtual void update ()
 
- Public Member Functions inherited from rl::mdl::Kinematic
 Kinematic ()
 
virtual ~Kinematic ()
 
Modelclone () const
 
bool calculateInversePosition (const ::rl::math::Transform &x, const ::std::size_t &leaf=0, const ::rl::math::Real &delta=::std::numeric_limits< ::rl::math::Real >::infinity(), const ::rl::math::Real &epsilon=1.0e-3f, const ::std::size_t &iterations=1000)
 Resolved motion rate control. More...
 
void calculateJacobian ()
 
void calculateJacobian (::rl::math::Matrix &J)
 Calculate Jacobian matrix. More...
 
void calculateJacobianDerivative ()
 
void calculateJacobianDerivative (::rl::math::Vector &Jdqd)
 Calculate Jacobian derivative matrix. More...
 
void calculateJacobianInverse (const ::rl::math::Real &lambda=0.0f, const bool &doSvd=true)
 
void calculateJacobianInverse (const ::rl::math::Matrix &J, ::rl::math::Matrix &invJ, const ::rl::math::Real &lambda=0.0f, const bool &doSvd=true) const
 Calculate Jacobian matrix inverse. More...
 
::rl::math::Real calculateManipulabilityMeasure () const
 Calculate manipulability measure. More...
 
::rl::math::Real calculateManipulabilityMeasure (const ::rl::math::Matrix &J) const
 
void forwardAcceleration ()
 
void forwardPosition ()
 
void forwardVelocity ()
 
const ::rl::math::MatrixgetJacobian () const
 
const ::rl::math::VectorgetJacobianDerivative () const
 
const ::rl::math::MatrixgetJacobianInverse () const
 
bool isSingular () const
 Check if current configuration is singular. More...
 
bool isSingular (const ::rl::math::Matrix &J) const
 
- Public Member Functions inherited from rl::mdl::Metric
 Metric ()
 
virtual ~Metric ()
 
void clip (::rl::math::Vector &q) const
 
Modelclone () const
 
::rl::math::Real distance (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2) const
 
void interpolate (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2, const ::rl::math::Real &alpha, ::rl::math::Vector &q) const
 
::rl::math::Real inverseOfTransformedDistance (const ::rl::math::Real &d) const
 
bool isValid (const ::rl::math::Vector &q) const
 
::rl::math::Real maxDistanceToRectangle (const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
 
::rl::math::Real minDistanceToRectangle (const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
 
::rl::math::Real minDistanceToRectangle (const ::rl::math::Real &q, const ::rl::math::Real &min, const ::rl::math::Real &max, const ::std::size_t &cuttingDimension) const
 
::rl::math::Real newDistance (const ::rl::math::Real &dist, const ::rl::math::Real &oldOff, const ::rl::math::Real &newOff, const int &cuttingDimension) const
 
void step (const ::rl::math::Vector &q1, const ::rl::math::Vector &qdot, ::rl::math::Vector &q2) const
 
::rl::math::Real transformedDistance (const ::rl::math::Real &d) const
 
::rl::math::Real transformedDistance (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2) const
 
- Public Member Functions inherited from rl::mdl::Model
 Model ()
 
virtual ~Model ()
 
void add (Compound *compound, const Frame *a, const Frame *b)
 
void add (Frame *frame)
 
void add (Transform *transform, const Frame *a, const Frame *b)
 
bool areColliding (const ::std::size_t &i, const ::std::size_t &j) const
 
Modelclone () const
 
void getAcceleration (::rl::math::Vector &qdd) const
 
void getAccelerationUnits (::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
 
::std::size_t getBodies () const
 
BodygetBody (const ::std::size_t &i) const
 
::std::size_t getDof () const
 
::std::size_t getDofPosition () const
 
const ::rl::math::TransformgetFrame (const ::std::size_t &i) const
 
JointgetJoint (const ::std::size_t &i) const
 
::std::size_t getJoints () const
 
const ::rl::math::MotionVectorgetOperationalAcceleration (const ::std::size_t &i) const
 
::std::size_t getOperationalDof () const
 
const ::rl::math::ForceVectorgetOperationalForce (const ::std::size_t &i) const
 
const ::rl::math::TransformgetOperationalPosition (const ::std::size_t &i) const
 
const ::rl::math::MotionVectorgetOperationalVelocity (const ::std::size_t &i) const
 
const ::std::string & getManufacturer () const
 
void getMaximum (::rl::math::Vector &max) const
 
void getMinimum (::rl::math::Vector &min) const
 
const ::std::string & getName () const
 
void getPosition (::rl::math::Vector &q) const
 
void getPositionUnits (::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
 
void getTorque (::rl::math::Vector &tau) const
 
void getTorqueUnits (::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
 
void getSpeed (::rl::math::Vector &speed) const
 
void getSpeedUnits (::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
 
void getVelocity (::rl::math::Vector &qd) const
 
void getVelocityUnits (::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
 
bool isColliding (const ::std::size_t &i) const
 
void replace (Compound *compound, Transform *transform)
 
void replace (Transform *transform, Compound *compound)
 
void remove (Compound *compound)
 
void remove (Frame *frame)
 
void remove (Transform *transform)
 
void setAcceleration (const ::rl::math::Vector &qdd)
 
void setManufacturer (const ::std::string &manufacturer)
 
void setName (const ::std::string &name)
 
void setOperationalVelocity (const ::std::size_t &i, const ::rl::math::MotionVector &v) const
 
void setPosition (const ::rl::math::Vector &q)
 
void setTorque (const ::rl::math::Vector &tau)
 
void setVelocity (const ::rl::math::Vector &qd)
 
::rl::math::Transformtool (const ::std::size_t &i=0)
 
const ::rl::math::Transformtool (const ::std::size_t &i=0) const
 
::rl::math::Transformworld ()
 
const ::rl::math::Transformworld () const
 

Protected Attributes

::rl::math::Vector G
 
::rl::math::Matrix invM
 
::rl::math::Matrix invMx
 
::rl::math::Matrix M
 
::rl::math::Vector V
 
- Protected Attributes inherited from rl::mdl::Kinematic
::rl::math::Matrix invJ
 
::rl::math::Matrix J
 
::rl::math::Vector Jdqd
 
- Protected Attributes inherited from rl::mdl::Model
::std::vector< Body * > bodies
 
::std::vector< Element * > elements
 
::std::vector< Frame * > frames
 
::std::vector< Joint * > joints
 
::std::vector< Vertexleaves
 
::std::string manufacturer
 
::std::string name
 
Vertex root
 
::std::vector< Edgetools
 
::std::vector< Transform * > transforms
 
Tree tree
 

Additional Inherited Members

- Protected Types inherited from rl::mdl::Model
typedef ::boost::adjacency_list< ::boost::listS, ::boost::listS, ::boost::bidirectionalS, ::boost::property< ::boost::vertex_color_t, Compound *, ::boost::shared_ptr< Frame > >, ::boost::property< ::boost::edge_weight_t, Compound *, ::boost::shared_ptr< Transform > >, ::boost::no_property, ::boost::listS > Tree
 
typedef ::boost::graph_traits< Tree >::edge_descriptor Edge
 
typedef ::boost::graph_traits< Tree >::edge_iterator EdgeIterator
 
typedef ::std::pair< EdgeIterator, EdgeIteratorEdgeIteratorPair
 
typedef ::boost::graph_traits< Tree >::in_edge_iterator InEdgeIterator
 
typedef ::std::pair< InEdgeIterator, InEdgeIteratorInEdgeIteratorPair
 
typedef ::boost::graph_traits< Tree >::out_edge_iterator OutEdgeIterator
 
typedef ::std::pair< OutEdgeIterator, OutEdgeIteratorOutEdgeIteratorPair
 
typedef ::boost::graph_traits< Tree >::vertex_descriptor Vertex
 
typedef ::boost::graph_traits< Tree >::vertex_iterator VertexIterator
 
typedef ::std::pair< VertexIterator, VertexIteratorVertexIteratorPair
 
- Protected Member Functions inherited from rl::mdl::Model
void update (const Vertex &u)
 

Constructor & Destructor Documentation

◆ Dynamic()

rl::mdl::Dynamic::Dynamic ( )

◆ ~Dynamic()

rl::mdl::Dynamic::~Dynamic ( )
virtual

Member Function Documentation

◆ calculateCentrifugalCoriolis() [1/2]

void rl::mdl::Dynamic::calculateCentrifugalCoriolis ( )

◆ calculateCentrifugalCoriolis() [2/2]

void rl::mdl::Dynamic::calculateCentrifugalCoriolis ( ::rl::math::Vector V)

Calculate centrifugal and Coriolis vector.

Precondition
setPosition()
setVelocity()
Side Effects:
inverseDynamics()

setAcceleration()

setGravity()

◆ calculateGravity() [1/2]

void rl::mdl::Dynamic::calculateGravity ( )

◆ calculateGravity() [2/2]

void rl::mdl::Dynamic::calculateGravity ( ::rl::math::Vector G)

Calculate gravity vector.

Precondition
setPosition()
setWorldGravity()
Side Effects:
inverseDynamics()

setVelocity()

setAcceleration()

◆ calculateMassMatrix() [1/2]

void rl::mdl::Dynamic::calculateMassMatrix ( )

◆ calculateMassMatrix() [2/2]

void rl::mdl::Dynamic::calculateMassMatrix ( ::rl::math::Matrix M)

Calculate mass matrix.

Precondition
setPosition()
Side Effects:
inverseDynamics()

setAcceleration()

setVelocity()

setWorldGravity()

◆ calculateMassMatrixInverse() [1/2]

void rl::mdl::Dynamic::calculateMassMatrixInverse ( )

◆ calculateMassMatrixInverse() [2/2]

void rl::mdl::Dynamic::calculateMassMatrixInverse ( ::rl::math::Matrix invM)

Calculate mass matrix inverse.

Precondition
setPosition()
Side Effects:
forwardDynamics()

setTorque()

setVelocity()

setWorldGravity()

◆ calculateOperationalMassMatrixInverse() [1/2]

void rl::mdl::Dynamic::calculateOperationalMassMatrixInverse ( )

◆ calculateOperationalMassMatrixInverse() [2/2]

void rl::mdl::Dynamic::calculateOperationalMassMatrixInverse ( const ::rl::math::Matrix J,
const ::rl::math::Matrix invM,
::rl::math::Matrix invMx 
) const

Calculate operational space mass matrix inverse.

◆ clone()

Model * rl::mdl::Dynamic::clone ( ) const

◆ eulerCauchy()

void rl::mdl::Dynamic::eulerCauchy ( const ::rl::math::Real dt)

Integrate with Euler-Cauchy.

Precondition
setPosition()
setVelocity()
Postcondition
getAcceleration()
getPosition()
getVelocity()

◆ forwardDynamics()

void rl::mdl::Dynamic::forwardDynamics ( )

◆ getCentrifugalCoriolis()

const ::rl::math::Vector & rl::mdl::Dynamic::getCentrifugalCoriolis ( ) const

◆ getGravity()

const ::rl::math::Vector & rl::mdl::Dynamic::getGravity ( ) const

◆ getMassMatrix()

const ::rl::math::Matrix & rl::mdl::Dynamic::getMassMatrix ( ) const

◆ getMassMatrixInverse()

const ::rl::math::Matrix & rl::mdl::Dynamic::getMassMatrixInverse ( ) const

◆ getOperationalMassMatrixInverse()

const ::rl::math::Matrix & rl::mdl::Dynamic::getOperationalMassMatrixInverse ( ) const

◆ getWorldGravity() [1/2]

void rl::mdl::Dynamic::getWorldGravity ( ::rl::math::Real x,
::rl::math::Real y,
::rl::math::Real z 
) const

◆ getWorldGravity() [2/2]

void rl::mdl::Dynamic::getWorldGravity ( ::rl::math::Vector xyz) const

◆ inverseDynamics()

void rl::mdl::Dynamic::inverseDynamics ( )

◆ inverseForce()

void rl::mdl::Dynamic::inverseForce ( )

◆ rungeKuttaNystrom()

void rl::mdl::Dynamic::rungeKuttaNystrom ( const ::rl::math::Real dt)

Integrate with Runge-Kutta-Nystrom.

Precondition
setPosition()
setVelocity()
Postcondition
getAcceleration()
getPosition()
getVelocity()

◆ setWorldGravity() [1/2]

void rl::mdl::Dynamic::setWorldGravity ( const ::rl::math::Real x,
const ::rl::math::Real y,
const ::rl::math::Real z 
)

◆ setWorldGravity() [2/2]

void rl::mdl::Dynamic::setWorldGravity ( const ::rl::math::Vector xyz)

◆ update()

void rl::mdl::Dynamic::update ( )
virtual

Reimplemented from rl::mdl::Kinematic.

Member Data Documentation

◆ G

::rl::math::Vector rl::mdl::Dynamic::G
protected

◆ invM

::rl::math::Matrix rl::mdl::Dynamic::invM
protected

◆ invMx

::rl::math::Matrix rl::mdl::Dynamic::invMx
protected

◆ M

::rl::math::Matrix rl::mdl::Dynamic::M
protected

◆ V

::rl::math::Vector rl::mdl::Dynamic::V
protected

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