6 #ifndef __pinocchio_data_hpp__ 7 #define __pinocchio_data_hpp__ 9 #include "pinocchio/spatial/fwd.hpp" 10 #include "pinocchio/spatial/se3.hpp" 11 #include "pinocchio/spatial/force.hpp" 12 #include "pinocchio/spatial/motion.hpp" 13 #include "pinocchio/spatial/inertia.hpp" 14 #include "pinocchio/multibody/fwd.hpp" 15 #include "pinocchio/multibody/joint/joint-generic.hpp" 16 #include "pinocchio/container/aligned-vector.hpp" 19 #include <Eigen/Cholesky> 24 template<
typename _Scalar,
int _Options,
template<
typename,
int>
class JointCollectionTpl>
27 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
29 typedef _Scalar Scalar;
30 enum { Options = _Options };
32 typedef JointCollectionTpl<Scalar,Options> JointCollection;
42 typedef pinocchio::Index Index;
43 typedef pinocchio::JointIndex JointIndex;
44 typedef pinocchio::GeomIndex GeomIndex;
45 typedef pinocchio::FrameIndex FrameIndex;
46 typedef std::vector<Index> IndexVector;
54 typedef Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic,Options> MatrixXs;
55 typedef Eigen::Matrix<Scalar,Eigen::Dynamic,1,Options> VectorXs;
56 typedef Eigen::Matrix<Scalar,3,1,Options> Vector3;
66 typedef Eigen::Matrix<Scalar,6,Eigen::Dynamic,Options>
Matrix6x;
68 typedef Eigen::Matrix<Scalar,3,Eigen::Dynamic,Options>
Matrix3x;
70 typedef Eigen::Matrix<Scalar,6,6,Options> Matrix6;
71 typedef Eigen::Matrix<Scalar,6,6,Eigen::RowMajor | Options> RowMatrix6;
72 typedef Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor | Options> RowMatrixXs;
182 typename Inertia::Matrix6
Itmp;
329 Matrix3x staticRegressor;
336 explicit DataTpl(
const Model & model);
339 void computeLastChild(
const Model & model);
340 void computeParents_fromRow(
const Model & model);
349 #include "pinocchio/multibody/data.hxx" 351 #endif // ifndef __pinocchio_data_hpp__ DataTpl(const Model &model)
Default constructor of pinocchio::Data from a pinocchio::Model.
MatrixXs ddq_dv
Partial derivative of the joint acceleration vector with respect to the joint velocity.
JointDataVector joints
Vector of pinocchio::JointData associated to the pinocchio::JointModel stored in model, encapsulated in JointDataAccessor.
Matrix6x dFda
Variation of the forceset with respect to the joint acceleration.
RowMatrixXs Minv
The inverse of the joint space inertia matrix (a square matrix of dim model.nv).
Eigen::LLT< MatrixXs > llt_JMinvJt
Cholesky decompostion of .
Matrix3x Jcom
Jacobien of center of mass.
container::aligned_vector< Force > oh
Vector of spatial momenta expressed in the world frame.
container::aligned_vector< Vector3 > vcom
Vector of subtree center of mass linear velocities expressed in the root joint of the subtree...
std::vector< int > lastChild
Index of the last child (for CRBA)
Matrix6x UDinv
Used in computeMinverse.
VectorXs Dinv
Diagonal inverse of the joint space intertia matrix obtained by a Cholesky Decomposition.
container::aligned_vector< Motion > a_gf
Vector of joint accelerations due to the gravity field.
container::aligned_vector< Motion > a
Vector of joint accelerations expressed at the centers of the joints frames.
MatrixXs dtau_dq
Partial derivative of the joint torque vector with respect to the joint configuration.
MatrixXs JMinvJt
Inverse of the operational-space inertia matrix.
container::aligned_vector< Inertia > oYcrb
Inertia quantities expressed in the world frame.
TangentVectorType dq_after
Generalized velocity after impact.
A Plucker coordinate frame attached to a parent joint inside a kinematic tree.
MatrixXs sDUiJt
Temporary corresponding to .
Matrix6x dFdq
Variation of the forceset with respect to the joint configuration.
Inertia Ig
Centroidal Composite Rigid Body Inertia.
container::aligned_vector< Force > h
Vector of spatial momenta expressed in the local frame of the joint.
Matrix6x dAdv
Variation of the spatial acceleration set with respect to the joint velocity.
Matrix6x Ag
Centroidal Momentum Matrix.
TangentVectorType u
Intermediate quantity corresponding to apparent torque [ABA].
VectorXs torque_residual
Temporary corresponding to the residual torque .
Matrix6x dFdv
Variation of the forceset with respect to the joint velocity.
container::aligned_vector< Matrix6x > Fcrb
Spatial forces set, used in CRBA and CCRBA.
Matrix6x dAg
Centroidal Momentum Matrix Time Variation.
container::aligned_vector< SE3 > oMi
Vector of absolute joint placements (wrt the world).
VectorXs ConfigVectorType
Dense vectorized version of a joint configuration vector.
std::vector< int > nvSubtree_fromRow
Subtree of the current row index (used in Cholesky Decomposition).
Force dhg
Centroidal momentum time derivative.
Matrix6x dAdq
Variation of the spatial acceleration set with respect to the joint configuration.
MatrixXs ddq_dq
Partial derivative of the joint acceleration vector with respect to the joint configuration.
Matrix6x dHdq
Variation of the spatial momenta with respect to the joint configuration.
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > Matrix6x
The 6d jacobian type (temporary)
MatrixXs M
The joint space inertia matrix (a square matrix of dim model.nv).
Matrix6x dJ
Derivative of the Jacobian with respect to the time.
Inertia::Matrix6 Itmp
Temporary for derivative algorithms.
VectorXs g
Vector of generalized gravity (dim model.nv).
container::aligned_vector< typename Inertia::Matrix6 > Ivx
Left variation of the inertia matrix.
VectorXs nle
Vector of Non Linear Effects (dim model.nv). It corresponds to concatenation of the Coriolis...
container::aligned_vector< Motion > ov
Vector of joint velocities expressed at the origin.
MatrixXs C
The Coriolis matrix (a square matrix of dim model.nv).
container::aligned_vector< Vector3 > acom
Vector of subtree center of mass linear accelerations expressed in the root joint of the subtree...
Eigen::Matrix< Scalar, 3, Eigen::Dynamic, Options > Matrix3x
The 3d jacobian type (temporary)
container::aligned_vector< Motion > v
Vector of joint velocities expressed at the centers of the joints.
TangentVectorType ddq
The joint accelerations computed from ABA.
VectorXs TangentVectorType
Dense vectorized version of a joint tangent vector (e.g. velocity, acceleration, etc). It also handles the notion of co-tangent vector (e.g. torque, etc).
container::aligned_vector< Force > f
Vector of body forces expressed in the local frame of the joint. For each body, the force represents ...
std::vector< Scalar > mass
Vector of subtree mass. In other words, mass[j] is the mass of the subtree supported by joint ...
container::aligned_vector< typename Inertia::Matrix6 > doYcrb
Time variation of the inertia quantities expressed in the world frame.
MatrixXs dtau_dv
Partial derivative of the joint torque vector with respect to the joint velocity. ...
VectorXs D
Diagonal of the joint space intertia matrix obtained by a Cholesky Decomposition. ...
container::aligned_vector< SE3 > oMf
Vector of absolute operationnel frame placements (wrt the world).
VectorXs lambda_c
Lagrange Multipliers corresponding to the contact forces in pinocchio::forwardDynamics.
container::aligned_vector< Force > of
Vector of body forces expressed in the world frame. For each body, the force represents the sum of al...
MatrixXs U
Joint space intertia matrix square root (upper trianglular part) computed with a Cholesky Decompositi...
Matrix6x J
Jacobian of joint placements.
VectorXs tmp
Temporary of size NV used in Cholesky Decomposition.
container::aligned_vector< Motion > oa_gf
Vector of joint accelerations expressed at the origin of the world including gravity contribution...
VectorXs impulse_c
Lagrange Multipliers corresponding to the contact impulses in pinocchio::impulseDynamics.
Main pinocchio namespace.
TangentVectorType tau
Vector of joint torques (dim model.nv).
container::aligned_vector< Vector3 > 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 and expressed in the joint frame . The element com[0] corresponds to the center of mass position of the whole model and expressed in the global frame.
std::vector< int > parents_fromRow
First previous non-zero row in M (used in Cholesky Decomposition).
container::aligned_vector< typename Inertia::Matrix6 > dYcrb
Vector of sub-tree composite rigid body inertia time derivatives . See Data::Ycrb for more details...
Matrix6x IS
Used in computeMinverse.
Matrix6x SDinv
Used in computeMinverse.
container::aligned_vector< typename Inertia::Matrix6 > Yaba
Inertia matrix of the subtree expressed as dense matrix [ABA].
container::aligned_vector< SE3 > iMf
Vector of joint placements wrt to algorithm end effector.
std::vector< int > nvSubtree
Dimension of the subtree motion space (for CRBA)
Matrix6x dVdq
Variation of the spatial velocity set with respect to the joint configuration.
Scalar kinetic_energy
Kinetic energy of the model.
container::aligned_vector< typename Inertia::Matrix6 > vxI
Right variation of the inertia matrix.
Matrix6 M6tmp
Temporary for derivative algorithms.
container::aligned_vector< SE3 > liMi
Vector of relative joint placements (wrt the body parent).
container::aligned_vector< Inertia > Ycrb
Vector of sub-tree composite rigid body inertias, i.e. the apparent inertia of the subtree supported ...
container::aligned_vector< Motion > oa
Vector of joint accelerations expressed at the origin of the world.
Force hg
Centroidal momentum quantity.
Scalar potential_energy
Potential energy of the model.