|
| Dynamic () |
|
virtual | ~Dynamic () |
|
void | calculateCentrifugalCoriolis () |
| Calculate centrifugal and Coriolis vector. More...
|
|
void | calculateCentrifugalCoriolis (::rl::math::Vector &V) |
| Calculate centrifugal and Coriolis vector. More...
|
|
void | calculateGravity () |
| Calculate gravity vector. More...
|
|
void | calculateGravity (::rl::math::Vector &G) |
| Calculate gravity vector. More...
|
|
void | calculateMassMatrix () |
| Calculate joint space mass matrix. More...
|
|
void | calculateMassMatrix (::rl::math::Matrix &M) |
| Calculate joint space mass matrix. More...
|
|
void | calculateMassMatrixInverse () |
| Calculate joint space mass matrix inverse. More...
|
|
void | calculateMassMatrixInverse (::rl::math::Matrix &invM) |
| Calculate joint space mass matrix inverse. More...
|
|
void | calculateOperationalMassMatrixInverse () |
| Calculate operational space mass matrix inverse. More...
|
|
void | calculateOperationalMassMatrixInverse (const ::rl::math::Matrix &J, const ::rl::math::Matrix &invM, ::rl::math::Matrix &invMx) const |
| Calculate operational space mass matrix inverse. More...
|
|
Model * | clone () const |
|
void | eulerCauchy (const ::rl::math::Real &dt) |
| Integration via Euler-Cauchy. More...
|
|
void | forwardDynamics () |
| Forward dynamics via articulated-body algorithm. More...
|
|
const ::rl::math::Vector & | getCentrifugalCoriolis () const |
| Access calculated centrifugal and Coriolis vector. More...
|
|
const ::rl::math::Vector & | getGravity () const |
| Access calculated gravity vector. More...
|
|
const ::rl::math::Matrix & | getMassMatrixInverse () const |
| Access calculated joint space mass matrix inverse. More...
|
|
const ::rl::math::Matrix & | getMassMatrix () const |
| Access calculated joint space mass matrix. More...
|
|
const ::rl::math::Matrix & | getOperationalMassMatrixInverse () const |
| Access calculated operational space mass matrix inverse. More...
|
|
void | getWorldGravity (::rl::math::Real &x, ::rl::math::Real &y, ::rl::math::Real &z) const |
|
void | getWorldGravity (::rl::math::Vector &xyz) const |
|
void | inverseDynamics () |
| Inverse dynamics via recursive Newton-Euler algorithm. More...
|
|
void | inverseForce () |
|
void | rungeKuttaNystrom (const ::rl::math::Real &dt) |
| Integration via Runge-Kutta-Nyström. 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 () |
|
| Kinematic () |
|
virtual | ~Kinematic () |
|
Model * | clone () 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 (const bool &inWorldFrame=true) |
| Calculate Jacobian matrix. More...
|
|
void | calculateJacobian (::rl::math::Matrix &J, const bool &inWorldFrame=true) |
| Calculate Jacobian matrix. More...
|
|
void | calculateJacobianDerivative (const bool &inWorldFrame=true) |
| Calculate Jacobian derivative vector. More...
|
|
void | calculateJacobianDerivative (::rl::math::Vector &Jdqd, const bool &inWorldFrame=true) |
| Calculate Jacobian derivative vector. More...
|
|
void | calculateJacobianInverse (const ::rl::math::Real &lambda=0.0f, const bool &doSvd=true) |
| Calculate Jacobian matrix inverse. More...
|
|
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 |
| Calculate manipulability measure. More...
|
|
void | forwardAcceleration () |
|
void | forwardPosition () |
|
void | forwardVelocity () |
|
const ::rl::math::Matrix & | getJacobian () const |
| Access calculated Jacobian matrix. More...
|
|
const ::rl::math::Vector & | getJacobianDerivative () const |
| Access calculated Jacobian derivative vector. More...
|
|
const ::rl::math::Matrix & | getJacobianInverse () const |
| Access calculated Jacobian matrix inverse. More...
|
|
bool | isSingular () const |
| Check if current configuration is singular. More...
|
|
bool | isSingular (const ::rl::math::Matrix &J) const |
| Check if current configuration is singular. More...
|
|
| Metric () |
|
virtual | ~Metric () |
|
void | clip (::rl::math::Vector &q) const |
|
Model * | clone () 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 | normalize (::rl::math::Vector &q) 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 |
|
::rl::math::Real | transformedDistance (const ::rl::math::Real &q1, const ::rl::math::Real &q2, const ::std::size_t &i) const |
|
| 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 |
|
Model * | clone () const |
|
::rl::math::Vector | generatePositionGaussian (const ::rl::math::Vector &rand, const ::rl::math::Vector &mean, const ::rl::math::Vector &sigma) const |
|
::rl::math::Vector | generatePositionUniform (const ::rl::math::Vector &rand) const |
|
::rl::math::Vector | getAcceleration () const |
|
::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > | getAccelerationUnits () const |
|
::std::size_t | getBodies () const |
|
Body * | getBody (const ::std::size_t &i) const |
|
::std::size_t | getDof () const |
|
::std::size_t | getDofPosition () const |
|
const ::rl::math::Transform & | getFrame (const ::std::size_t &i) const |
|
const ::rl::math::Matrix & | getGammaPosition () const |
|
const ::rl::math::Matrix & | getGammaVelocity () const |
|
const ::rl::math::Matrix & | getGammaPositionInverse () const |
|
const ::rl::math::Matrix & | getGammaVelocityInverse () const |
|
::rl::math::Vector | getHomePosition () const |
|
Joint * | getJoint (const ::std::size_t &i) const |
|
::std::size_t | getJoints () const |
|
const ::rl::math::MotionVector & | getOperationalAcceleration (const ::std::size_t &i) const |
|
::std::size_t | getOperationalDof () const |
|
const ::rl::math::ForceVector & | getOperationalForce (const ::std::size_t &i) const |
|
const ::rl::math::Transform & | getOperationalPosition (const ::std::size_t &i) const |
|
const ::rl::math::MotionVector & | getOperationalVelocity (const ::std::size_t &i) const |
|
const ::std::string & | getManufacturer () const |
|
::rl::math::Vector | getMaximum () const |
|
::rl::math::Vector | getMinimum () const |
|
const ::std::string & | getName () const |
|
::rl::math::Vector | getPosition () const |
|
::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > | getPositionUnits () const |
|
::rl::math::Vector | getTorque () const |
|
::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > | getTorqueUnits () const |
|
::rl::math::Vector | getSpeed () const |
|
::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > | getSpeedUnits () const |
|
::rl::math::Vector | getVelocity () const |
|
::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > | getVelocityUnits () 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 | setGammaPosition (const ::rl::math::Matrix &gammaPosition) |
|
void | setGammaVelocity (const ::rl::math::Matrix &gammaVelocity) |
|
void | setHomePosition (const ::rl::math::Vector &home) |
|
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::Transform & | tool (const ::std::size_t &i=0) |
|
const ::rl::math::Transform & | tool (const ::std::size_t &i=0) const |
|
::rl::math::Transform & | world () |
|
const ::rl::math::Transform & | world () const |
|
void rl::mdl::Dynamic::rungeKuttaNystrom |
( |
const ::rl::math::Real & |
dt | ) |
|
Integration via Runge-Kutta-Nyström.
\[ \vec{q}_{i + 1} = \vec{q}_{i} + \Delta t \, \dot{\vec{q}}_{i} + \frac{\Delta t}{3} (\vec{k}_{1} + \vec{k}_{2} + \vec{k}_{3}) \]
\[ \dot{\vec{q}}_{i + 1} = \dot{\vec{q}}_{i} + \frac{1}{3} (\vec{k}_{1} + 2 \vec{k}_{2} + 2 \vec{k}_{3} + \vec{k}_{4}) \]
\[ \ddot{\vec{q}} = f(t, \vec{q}, \dot{\vec{q}}) \]
\[ t_{i + 1} = t_{i} + \Delta t \]
\[ \vec{k}_{1} = \frac{\Delta t}{2} \, f(t_{i}, \vec{q}_{i}, \dot{\vec{q}}_{i}) \]
\[ \vec{k}_{2} = \frac{\Delta t}{2} \, f(t_{i} + \frac{\Delta t}{2}, \vec{q}_{i} + \frac{\Delta t}{2} \, \dot{\vec{q}}_{i} + \frac{\Delta t}{4} \, \vec{k}_{1}, \dot{\vec{q}}_{i} + \vec{k}_{1}) \]
\[ \vec{k}_{3} = \frac{\Delta t}{2} \, f(t_{i} + \frac{\Delta t}{2}, \vec{q}_{i} + \frac{\Delta t}{2} \, \dot{\vec{q}}_{i} + \frac{\Delta t}{4} \, \vec{k}_{1}, \dot{\vec{q}}_{i} + \vec{k}_{2}) \]
\[ \vec{k}_{4} = \frac{\Delta t}{2} \, f(t_{i} + \Delta t, \vec{q}_{i} + \Delta t \, \dot{\vec{q}}_{i} + \Delta t \, \vec{k}_{3}, \dot{\vec{q}}_{i} + 2 \vec{k}_{3}) \]
- Parameters
-
[in] | dt | Integration time step \(\Delta t\) |
- Precondition
- setPosition()
-
setVelocity()
-
setTorque()
- Postcondition
- getPosition()
-
getVelocity()
-
getAcceleration()
- See also
- forwardDynamics()