se3::Data Class Reference

#include <multibody/model.hpp>

Collaboration diagram for se3::Data:
[legend]

List of all members.

Public Types

typedef Eigen::Matrix< double,
3, Eigen::Dynamic > 
Matrix3x
 The 3d jacobian type (temporary)
typedef SE3::Vector3 Vector3

Public Member Functions

 Data (const Model &model)
 Default constructor of se3::Data from a se3::Model.

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW
typedef Eigen::Matrix< double,
6, Eigen::Dynamic > 
Matrix6x
 The 6d jacobian type (temporary)
const Modelmodel
 A const reference to the reference model.
JointDataVector joints
 Vector of se3::JointData associated to the se3::JointModel stored in model.
std::vector< Motiona
 Vector of joint accelerations.
std::vector< Motiona_gf
 Vector of joint accelerations due to the gravity field.
std::vector< Motionv
 Vector of joint velocities.
std::vector< Forcef
 Vector of body forces.
std::vector< SE3oMi
 Vector of absolute joint placements (wrt the world).
std::vector< SE3liMi
 Vector of relative joint placements (wrt the body parent).
Eigen::VectorXd tau
 Vector of joint torques (dim model.nv).
Eigen::VectorXd nle
 Vector of Non Linear Effects (dim model.nv).
std::vector< SE3oMof
 Vector of absolute operationnel frame placements (wrt the world).
std::vector< InertiaYcrb
 Vector of sub-tree composite rigid body inertias, i.e. the apparent inertia of the subtree supported by the joint.
Eigen::MatrixXd M
 The joint space inertia matrix (a square matrix of dim model.nv).
Eigen::VectorXd ddq
 The joint accelerations computed from ABA.
std::vector< Inertia::Matrix6 > Yaba
 Inertia matrix of the subtree expressed as dense matrix [ABA].
Eigen::VectorXd u
 Intermediate quantity corresponding to apparent torque [ABA].
Matrix6x Ag
 Centroidal Momentum Matrix.
Force hg
 Centroidal momentum quantity.
Inertia Ig
 Centroidal Composite Rigid Body Inertia.
std::vector< Matrix6xFcrb
 Spatial forces set, used in CRBA and CCRBA.
std::vector< int > lastChild
 Index of the last child (for CRBA)
std::vector< int > nvSubtree
 Dimension of the subtree motion space (for CRBA)
Eigen::MatrixXd U
 Joint space intertia matrix square root (upper trianglular part) computed with a Cholesky Decomposition.
Eigen::VectorXd D
 Diagonal of the joint space intertia matrix obtained by a Cholesky Decomposition.
Eigen::VectorXd tmp
 Temporary of size NV used in Cholesky Decomposition.
std::vector< int > parents_fromRow
 First previous non-zero row in M (used in Cholesky Decomposition).
std::vector< int > nvSubtree_fromRow
 Subtree of the current row index (used in Cholesky Decomposition).
Matrix6x J
 Jacobian of joint placements.
std::vector< SE3iMf
 Vector of joint placements wrt to algorithm end effector.
std::vector< Eigen::Vector3d > com
 Vector of subtree center of mass positions expressed in the root joint of the subtree. In other words, com[j] is the CoM position of the subtree supported by joint \( j \) and expressed in the joint frame \( j \). The element com[0] corresponds to the center of mass position of the whole model and expressed in the global frame.
std::vector< Eigen::Vector3d > vcom
 Vector of subtree center of mass linear velocities expressed in the root joint of the subtree. In other words, vcom[j] is the CoM linear velocity of the subtree supported by joint \( j \) and expressed in the joint frame \( j \). The element vcom[0] corresponds to the velocity of the CoM of the whole model expressed in the global frame.
std::vector< Eigen::Vector3d > acom
 Vector of subtree center of mass linear accelerations expressed in the root joint of the subtree. In other words, acom[j] is the CoM linear acceleration of the subtree supported by joint \( j \) and expressed in the joint frame \( j \). The element acom[0] corresponds to the acceleration of the CoM of the whole model expressed in the global frame.
std::vector< double > mass
 Vector of subtree mass. In other words, mass[j] is the mass of the subtree supported by joint \( j \). The element mass[0] corrresponds to the total mass of the model.
Matrix3x Jcom
 Jacobien of center of mass.
double kinetic_energy
 Kinetic energy of the model.
double potential_energy
 Potential energy of the model.
Eigen::MatrixXd JMinvJt
 Inverse of the operational-space inertia matrix.
Eigen::LLT< Eigen::MatrixXd > llt_JMinvJt
 Cholesky decompostion of .
Eigen::VectorXd lambda_c
 Lagrange Multipliers corresponding to the contact forces in se3::forwardDynamics.
Eigen::MatrixXd sDUiJt
 Temporary corresponding to \( \sqrt{D} U^{-1} J^{\top} \).
Eigen::VectorXd torque_residual
 Temporary corresponding to the residual torque \( \tau - b(q,\dot{q}) \).
Eigen::VectorXd dq_after
 Generalized velocity after impact.
Eigen::VectorXd impulse_c
 Lagrange Multipliers corresponding to the contact impulses in se3::impulseDynamics.

Member Typedef Documentation

typedef Eigen::Matrix<double,3,Eigen::Dynamic> se3::Data::Matrix3x

The 3d jacobian type (temporary)


Constructor & Destructor Documentation

se3::Data::Data ( const Model model)

Default constructor of se3::Data from a se3::Model.

Parameters:
[in]modelThe model structure of the rigid body system.

Member Data Documentation

std::vector<Motion> se3::Data::a_gf

Vector of joint accelerations due to the gravity field.

Referenced by se3::CATForwardStep::algo(), and se3::computeAllTerms().

std::vector<Eigen::Vector3d> se3::Data::acom

Vector of subtree center of mass linear accelerations expressed in the root joint of the subtree. In other words, acom[j] is the CoM linear acceleration of the subtree supported by joint \( j \) and expressed in the joint frame \( j \). The element acom[0] corresponds to the acceleration of the CoM of the whole model expressed in the global frame.

Centroidal Momentum Matrix.

Note:
\( hg = Ag \dot{q}\) maps the joint velocity set to the centroidal momentum.
std::vector<Eigen::Vector3d> se3::Data::com

Vector of subtree center of mass positions expressed in the root joint of the subtree. In other words, com[j] is the CoM position of the subtree supported by joint \( j \) and expressed in the joint frame \( j \). The element com[0] corresponds to the center of mass position of the whole model and expressed in the global frame.

Referenced by se3::CATForwardStep::algo(), se3::CATBackwardStep::algo(), and se3::computeAllTerms().

Eigen::VectorXd se3::Data::D

Diagonal of the joint space intertia matrix obtained by a Cholesky Decomposition.

Referenced by se3::forwardDynamics(), and se3::impulseDynamics().

Eigen::VectorXd se3::Data::ddq

The joint accelerations computed from ABA.

Referenced by se3::forwardDynamics().

Eigen::VectorXd se3::Data::dq_after

Generalized velocity after impact.

Referenced by se3::impulseDynamics().

std::vector<Force> se3::Data::f

Vector of body forces.

For each body, the force represents the sum of all external forces acting on the body.

Referenced by se3::CATForwardStep::algo(), and se3::CATBackwardStep::algo().

std::vector<Matrix6x> se3::Data::Fcrb

Spatial forces set, used in CRBA and CCRBA.

Referenced by se3::CATBackwardStep::algo().

Centroidal momentum quantity.

Note:
The centroidal momentum is expressed in the frame centered at the CoM and aligned with the inertial frame.

Centroidal Composite Rigid Body Inertia.

Note:
\( hg = Ig v_{\text{mean}}\) map a mean velocity to the current centroil momentum quantity.
std::vector<SE3> se3::Data::iMf

Vector of joint placements wrt to algorithm end effector.

Eigen::VectorXd se3::Data::impulse_c

Lagrange Multipliers corresponding to the contact impulses in se3::impulseDynamics.

Referenced by se3::impulseDynamics().

Jacobian of joint placements.

Note:
The columns of J corresponds to the basis of the spatial velocities of each joint and expressed at the origin of the inertial frame. In other words, if \( v_{J_{i}} = S_{i} \dot{q}_{i}\) is the relative velocity of the joint i regarding to its parent, then \(J = \begin{bmatrix} ^{0}X_{1} S_{1} & \cdots & ^{0}X_{i} S_{i} & \cdots & ^{0}X_{\text{nj}} S_{\text{nj}} \end{bmatrix} \). This Jacobian has no special meaning. To get the jacobian of a precise joint, you need to call se3::getJacobian

Referenced by se3::CATForwardStep::algo(), se3::CATBackwardStep::algo(), and se3::getFrameJacobian().

Jacobien of center of mass.

Note:
This Jacobian maps the joint velocity vector to the velocity of the center of mass, expressed in the inertia frame. In other words, \( v_{\text{CoM}} = J_{\text{CoM}} \dot{q}\).

Referenced by se3::CATBackwardStep::algo(), and se3::computeAllTerms().

Eigen::MatrixXd se3::Data::JMinvJt

Inverse of the operational-space inertia matrix.

Referenced by se3::forwardDynamics(), and se3::impulseDynamics().

Vector of se3::JointData associated to the se3::JointModel stored in model.

Referenced by se3::computeAllTerms(), se3::emptyForwardPass(), and se3::forwardKinematics().

Kinetic energy of the model.

Referenced by se3::kineticEnergy().

Eigen::VectorXd se3::Data::lambda_c

Lagrange Multipliers corresponding to the contact forces in se3::forwardDynamics.

Referenced by se3::forwardDynamics().

std::vector<int> se3::Data::lastChild

Index of the last child (for CRBA)

Eigen::LLT<Eigen::MatrixXd> se3::Data::llt_JMinvJt

Cholesky decompostion of .

Referenced by se3::forwardDynamics(), and se3::impulseDynamics().

Eigen::MatrixXd se3::Data::M

The joint space inertia matrix (a square matrix of dim model.nv).

Referenced by se3::CATBackwardStep::algo().

std::vector<double> se3::Data::mass

Vector of subtree mass. In other words, mass[j] is the mass of the subtree supported by joint \( j \). The element mass[0] corrresponds to the total mass of the model.

Referenced by se3::CATForwardStep::algo(), se3::CATBackwardStep::algo(), and se3::computeAllTerms().

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<double,6,Eigen::Dynamic> se3::Data::Matrix6x

A const reference to the reference model.

Eigen::VectorXd se3::Data::nle

Vector of Non Linear Effects (dim model.nv).

It corresponds to the Coriolis, centrifugal and gravitational effects.

Note:
In the equation \( M\ddot{q} + b = \tau \), the non linear effects are associated to the \(b\) term.

Referenced by se3::CATBackwardStep::algo(), and se3::forwardDynamics().

std::vector<int> se3::Data::nvSubtree

Dimension of the subtree motion space (for CRBA)

Referenced by se3::CATBackwardStep::algo().

std::vector<int> se3::Data::nvSubtree_fromRow

Subtree of the current row index (used in Cholesky Decomposition).

std::vector<SE3> se3::Data::oMof

Vector of absolute operationnel frame placements (wrt the world).

Referenced by se3::framesForwardKinematics(), and se3::getFrameJacobian().

std::vector<int> se3::Data::parents_fromRow

First previous non-zero row in M (used in Cholesky Decomposition).

Potential energy of the model.

Referenced by se3::potentialEnergy().

Eigen::MatrixXd se3::Data::sDUiJt

Temporary corresponding to \( \sqrt{D} U^{-1} J^{\top} \).

Referenced by se3::forwardDynamics(), and se3::impulseDynamics().

Eigen::VectorXd se3::Data::tau

Vector of joint torques (dim model.nv).

Eigen::VectorXd se3::Data::tmp

Temporary of size NV used in Cholesky Decomposition.

Eigen::VectorXd se3::Data::torque_residual

Temporary corresponding to the residual torque \( \tau - b(q,\dot{q}) \).

Referenced by se3::forwardDynamics().

Eigen::VectorXd se3::Data::u

Intermediate quantity corresponding to apparent torque [ABA].

Eigen::MatrixXd se3::Data::U

Joint space intertia matrix square root (upper trianglular part) computed with a Cholesky Decomposition.

std::vector<Eigen::Vector3d> se3::Data::vcom

Vector of subtree center of mass linear velocities expressed in the root joint of the subtree. In other words, vcom[j] is the CoM linear velocity of the subtree supported by joint \( j \) and expressed in the joint frame \( j \). The element vcom[0] corresponds to the velocity of the CoM of the whole model expressed in the global frame.

Referenced by se3::CATForwardStep::algo(), se3::CATBackwardStep::algo(), and se3::computeAllTerms().

std::vector<Inertia::Matrix6> se3::Data::Yaba

Inertia matrix of the subtree expressed as dense matrix [ABA].

std::vector<Inertia> se3::Data::Ycrb

Vector of sub-tree composite rigid body inertias, i.e. the apparent inertia of the subtree supported by the joint.

Referenced by se3::CATForwardStep::algo(), and se3::CATBackwardStep::algo().