12#include "pinocchio/fwd.hpp" 13#include "pinocchio/macros.hpp" 15#include "pinocchio/utils/std-vector.hpp" 16#include "pinocchio/utils/reference.hpp" 17#include "pinocchio/utils/check.hpp" 19#include "pinocchio/math.hpp" 20#include "pinocchio/multibody.hpp" 22#include "pinocchio/algorithm/proximal.hpp" 23#include "pinocchio/algorithm/rnea.hpp" 24#include "pinocchio/constraints.hpp" 42 class PointContactConstraintModelVector,
43 class PointContactConstraintDataVector,
45 typename VectorLikeResult>
47 const PointContactConstraintModelVector & constraint_models,
48 const PointContactConstraintDataVector & constraint_datas,
49 const Eigen::MatrixBase<VectorLikeC> & c_ref,
50 const Eigen::MatrixBase<VectorLikeResult> & _lambda,
51 ProximalSettingsTpl<Scalar> & settings,
52 bool solve_ncp =
true);
82 template<
typename,
int>
class JointCollectionTpl,
83 typename ConfigVectorType,
84 typename TangentVectorType1,
85 typename TangentVectorType2,
86 class PointContactConstraintModelVector,
87 class PointContactConstraintDataVector,
88 typename VectorLikeGamma,
89 typename VectorLikeLam>
91 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
92 DataTpl<Scalar, Options, JointCollectionTpl> & data,
93 const Eigen::MatrixBase<ConfigVectorType> & q,
94 const Eigen::MatrixBase<TangentVectorType1> & v,
95 const Eigen::MatrixBase<TangentVectorType2> & a,
97 const PointContactConstraintModelVector & constraint_models,
98 PointContactConstraintDataVector & constraint_datas,
99 const Eigen::MatrixBase<VectorLikeGamma> & constraint_correction,
100 const Eigen::MatrixBase<VectorLikeLam> & _lambda_sol,
101 ProximalSettingsTpl<Scalar> & settings,
102 bool solve_ncp =
true);
106#include "pinocchio/src/algorithm/contact-inverse-dynamics.hxx" Main pinocchio namespace.
bool contactInverseDynamics(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 > &a, const Scalar dt, const PointContactConstraintModelVector &constraint_models, PointContactConstraintDataVector &constraint_datas, const Eigen::MatrixBase< VectorLikeGamma > &constraint_correction, const Eigen::MatrixBase< VectorLikeLam > &_lambda_sol, ProximalSettingsTpl< Scalar > &settings, bool solve_ncp=true)
The Contact Inverse Dynamics algorithm. It computes the inverse dynamics in the presence of contacts,...
bool computeInverseDynamicsConstraintForces(const PointContactConstraintModelVector &constraint_models, const PointContactConstraintDataVector &constraint_datas, const Eigen::MatrixBase< VectorLikeC > &c_ref, const Eigen::MatrixBase< VectorLikeResult > &_lambda, ProximalSettingsTpl< Scalar > &settings, bool solve_ncp=true)
Compute the contact forces given a target velocity of contact points.