5 #ifndef __pinocchio_contact_dynamics_hpp__ 6 #define __pinocchio_contact_dynamics_hpp__ 8 #include "pinocchio/multibody/model.hpp" 9 #include "pinocchio/multibody/data.hpp" 43 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType,
typename TangentVectorType1,
typename TangentVectorType2,
44 typename ConstraintMatrixType,
typename DriftVectorType>
46 forwardDynamics(
const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
47 DataTpl<Scalar,Options,JointCollectionTpl> & data,
48 const Eigen::MatrixBase<ConfigVectorType> & q,
49 const Eigen::MatrixBase<TangentVectorType1> & v,
50 const Eigen::MatrixBase<TangentVectorType2> & tau,
51 const Eigen::MatrixBase<ConstraintMatrixType> & J,
52 const Eigen::MatrixBase<DriftVectorType> & gamma,
53 const Scalar inv_damping = 0.);
83 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename TangentVectorType,
84 typename ConstraintMatrixType,
typename DriftVectorType>
86 forwardDynamics(
const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
87 DataTpl<Scalar,Options,JointCollectionTpl> & data,
88 const Eigen::MatrixBase<TangentVectorType> & tau,
89 const Eigen::MatrixBase<ConstraintMatrixType> & J,
90 const Eigen::MatrixBase<DriftVectorType> & gamma,
91 const Scalar inv_damping = 0.);
127 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType,
typename TangentVectorType1,
typename TangentVectorType2,
128 typename ConstraintMatrixType,
typename DriftVectorType>
133 const Eigen::MatrixBase<ConfigVectorType> & q,
134 const Eigen::MatrixBase<TangentVectorType1> & v,
135 const Eigen::MatrixBase<TangentVectorType2> & tau,
136 const Eigen::MatrixBase<ConstraintMatrixType> & J,
137 const Eigen::MatrixBase<DriftVectorType> & gamma,
138 const Scalar inv_damping,
139 const bool updateKinematics)
158 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
159 typename ConstraintMatrixType,
typename KKTMatrixType>
162 const Eigen::MatrixBase<ConstraintMatrixType> & J,
163 const Eigen::MatrixBase<KKTMatrixType> & MJtJ_inv);
188 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType,
typename TangentVectorType,
typename ConstraintMatrixType>
192 const Eigen::MatrixBase<ConfigVectorType> & q,
193 const Eigen::MatrixBase<TangentVectorType> & v_before,
194 const Eigen::MatrixBase<ConstraintMatrixType> & J,
195 const Scalar r_coeff = 0.,
196 const Scalar inv_damping = 0.);
220 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType,
typename TangentVectorType,
typename ConstraintMatrixType>
224 const Eigen::MatrixBase<TangentVectorType> & v_before,
225 const Eigen::MatrixBase<ConstraintMatrixType> & J,
226 const Scalar r_coeff = 0.,
227 const Scalar inv_damping = 0.);
256 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType,
typename TangentVectorType,
typename ConstraintMatrixType>
261 const Eigen::MatrixBase<ConfigVectorType> & q,
262 const Eigen::MatrixBase<TangentVectorType> & v_before,
263 const Eigen::MatrixBase<ConstraintMatrixType> & J,
264 const Scalar r_coeff,
265 const bool updateKinematics)
275 #include "pinocchio/algorithm/contact-dynamics.hxx" 277 #endif // ifndef __pinocchio_contact_dynamics_hpp__ void getKKTContactDynamicMatrixInverse(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< KKTMatrixType > &MJtJ_inv)
Computes the inverse of the KKT matrix for dynamics with contact constraints, [[M JT]...
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & impulseDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v_before, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Scalar r_coeff=0., const Scalar inv_damping=0.)
Compute the impulse dynamics with contact constraints. Internally, pinocchio::crba is called...
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).
Main pinocchio namespace.
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & forwardDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< DriftVectorType > &gamma, const Scalar inv_damping=0.)
Compute the forward dynamics with contact constraints. Internally, pinocchio::computeAllTerms is call...