Go to the documentation of this file.
5 #ifndef __pinocchio_codegen_code_generator_algo_hpp__
6 #define __pinocchio_codegen_code_generator_algo_hpp__
21 template<
typename _Scalar>
59 CppAD::Independent(
ad_X);
61 Eigen::DenseIndex
it = 0;
74 ad_fun.optimize(
"no_compare_op");
78 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
80 const Eigen::MatrixBase<ConfigVectorType> &
q,
81 const Eigen::MatrixBase<TangentVector1> &
v,
82 const Eigen::MatrixBase<TangentVector2> &
a)
85 Eigen::DenseIndex
it = 0;
98 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
100 const Eigen::MatrixBase<ConfigVectorType> &
q,
101 const Eigen::MatrixBase<TangentVector1> &
v,
102 const Eigen::MatrixBase<TangentVector2> &
a)
105 Eigen::DenseIndex
it = 0;
141 template<
typename _Scalar>
179 CppAD::Independent(
ad_X);
181 Eigen::DenseIndex
it = 0;
193 ad_fun.optimize(
"no_compare_op");
197 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
199 const Eigen::MatrixBase<ConfigVectorType> &
q,
200 const Eigen::MatrixBase<TangentVector1> &
v,
201 const Eigen::MatrixBase<TangentVector2> &
tau)
204 Eigen::DenseIndex
it = 0;
217 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
219 const Eigen::MatrixBase<ConfigVectorType> &
q,
220 const Eigen::MatrixBase<TangentVector1> &
v,
221 const Eigen::MatrixBase<TangentVector2> &
tau)
224 Eigen::DenseIndex
it = 0;
261 template<
typename _Scalar>
295 CppAD::Independent(
ad_X);
297 Eigen::DenseIndex
it = 0;
302 Eigen::DenseIndex it_Y = 0;
306 for (Eigen::DenseIndex j =
i; j <
ad_model.
nv; ++j)
315 ad_fun.optimize(
"no_compare_op");
318 template<
typename ConfigVectorType>
322 Eigen::DenseIndex
it = 0;
329 Eigen::DenseIndex it_Y = 0;
332 for (Eigen::DenseIndex j =
i; j <
ad_model.
nv; ++j)
357 template<
typename _Scalar>
391 CppAD::Independent(
ad_X);
393 Eigen::DenseIndex
it = 0;
398 Eigen::DenseIndex it_Y = 0;
401 for (Eigen::DenseIndex j =
i; j <
ad_model.
nv; ++j)
410 ad_fun.optimize(
"no_compare_op");
413 template<
typename ConfigVectorType>
417 Eigen::DenseIndex
it = 0;
424 Eigen::DenseIndex it_Y = 0;
427 for (Eigen::DenseIndex j =
i; j <
ad_model.
nv; ++j)
450 template<
typename _Scalar>
470 const std::string &
library_name =
"cg_partial_rnea_eval")
499 CppAD::Independent(
ad_X);
501 Eigen::DenseIndex
it = 0;
514 Eigen::DenseIndex it_Y = 0;
523 ad_fun.optimize(
"no_compare_op");
526 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
528 const Eigen::MatrixBase<ConfigVectorType> &
q,
529 const Eigen::MatrixBase<TangentVector1> &
v,
530 const Eigen::MatrixBase<TangentVector2> &
a)
533 Eigen::DenseIndex it_x = 0;
544 Eigen::DenseIndex it_y = 0;
569 template<
typename _Scalar>
589 const std::string &
library_name =
"cg_partial_aba_eval")
618 CppAD::Independent(
ad_X);
620 Eigen::DenseIndex
it = 0;
633 Eigen::DenseIndex it_Y = 0;
642 ad_fun.optimize(
"no_compare_op");
645 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
647 const Eigen::MatrixBase<ConfigVectorType> &
q,
648 const Eigen::MatrixBase<TangentVector1> &
v,
649 const Eigen::MatrixBase<TangentVector2> &
tau)
652 Eigen::DenseIndex it_x = 0;
663 Eigen::DenseIndex it_y = 0;
688 template<
typename _Scalar>
723 Eigen::DenseIndex num_total_constraints = 0;
724 for (
typename ContactModelVector::const_iterator
it =
contact_models.begin();
728 it->size() > 0,
"The dimension of the constraint must be positive");
729 num_total_constraints +=
it->size();
731 return num_total_constraints;
737 const std::string &
function_name =
"partial_constraintDynamics",
738 const std::string &
library_name =
"cg_partial_constraintDynamics_eval")
786 CppAD::Independent(
ad_X);
788 Eigen::DenseIndex
it = 0;
802 Eigen::DenseIndex it_Y = 0;
816 ad_fun.optimize(
"no_compare_op");
819 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
821 const Eigen::MatrixBase<ConfigVectorType> &
q,
822 const Eigen::MatrixBase<TangentVector1> &
v,
823 const Eigen::MatrixBase<TangentVector2> &
tau)
826 Eigen::DenseIndex it_x = 0;
837 Eigen::DenseIndex it_y = 0;
860 Eigen::DenseIndex
nc;
872 template<
typename _Scalar>
907 Eigen::DenseIndex num_total_constraints = 0;
908 for (
typename ContactModelVector::const_iterator
it =
contact_models.begin();
912 it->size() > 0,
"The dimension of the constraint must be positive");
913 num_total_constraints +=
it->size();
915 return num_total_constraints;
922 const std::string &
library_name =
"cg_constraintDynamics_eval")
971 CppAD::Independent(
ad_X);
973 Eigen::DenseIndex
it = 0;
987 ad_fun.optimize(
"no_compare_op");
990 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
992 const Eigen::MatrixBase<ConfigVectorType> &
q,
993 const Eigen::MatrixBase<TangentVector1> &
v,
994 const Eigen::MatrixBase<TangentVector2> &
tau)
997 Eigen::DenseIndex it_x = 0;
1007 Eigen::DenseIndex it_y = 0;
1014 template<
typename ConfigVectorType,
typename TangentVector1,
typename TangentVector2>
1016 const Eigen::MatrixBase<ConfigVectorType> &
q,
1017 const Eigen::MatrixBase<TangentVector1> &
v,
1018 const Eigen::MatrixBase<TangentVector2> &
a)
1021 Eigen::DenseIndex
it = 0;
1063 template<
typename _Scalar>
1078 const std::string &
library_name =
"cg_integrate_eval")
1091 CppAD::Independent(
ad_X);
1093 Eigen::DenseIndex
it = 0;
1100 ad_fun.optimize(
"no_compare_op");
1104 template<
typename ConfigVectorType1,
typename TangentVector,
typename ConfigVectorType2>
1106 const Eigen::MatrixBase<ConfigVectorType1> &
q,
1107 const Eigen::MatrixBase<TangentVector> &
v,
1108 const Eigen::MatrixBase<ConfigVectorType2> &
qout)
1111 Eigen::DenseIndex
it = 0;
1134 template<
typename _Scalar>
1149 const std::string &
library_name =
"cg_difference_eval")
1162 CppAD::Independent(
ad_X);
1164 Eigen::DenseIndex
it = 0;
1171 ad_fun.optimize(
"no_compare_op");
1175 template<
typename ConfigVectorType1,
typename ConfigVectorType2,
typename TangentVector>
1177 const Eigen::MatrixBase<ConfigVectorType1> &
q0,
1178 const Eigen::MatrixBase<ConfigVectorType2> &
q1,
1179 const Eigen::MatrixBase<TangentVector> &
v)
1182 Eigen::DenseIndex
it = 0;
1205 template<
typename _Scalar>
1222 const std::string &
library_name =
"cg_dDifference_eval")
1234 CppAD::Independent(
ad_X);
1236 Eigen::DenseIndex
it = 0;
1248 ad_fun.optimize(
"no_compare_op");
1252 template<
typename ConfigVectorType1,
typename ConfigVectorType2,
typename JacobianMatrix>
1254 const Eigen::MatrixBase<ConfigVectorType1> &
q0,
1255 const Eigen::MatrixBase<ConfigVectorType2> &
q1,
1256 const Eigen::MatrixBase<JacobianMatrix> &
J,
1260 Eigen::DenseIndex
it = 0;
1278 assert(
false &&
"Wrong argument");
1298 #endif // ifndef __pinocchio_codegen_code_generator_algo_hpp__
Eigen::aligned_allocator< ADContactData > ADConstraintDataAllocator
MatrixXs M
The joint space inertia matrix (a square matrix of dim model.nv).
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
RowMatrixXs ddq_dv
Partial derivative of the joint acceleration vector with respect to the joint velocity.
std::vector< ContactModel, ConstraintModelAllocator > ContactModelVector
Base::ADTangentVectorType ADTangentVectorType
TangentVectorType ddq
The joint accelerations computed from ABA.
void buildMap()
build the mapping Y = f(X)
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
std::vector< ADContactModel, ADConstraintModelAllocator > ADContactModelVector
CodeGenRNEADerivatives(const Model &model, const std::string &function_name="partial_rnea", const std::string &library_name="cg_partial_rnea_eval")
void computeRNEADerivatives(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 Eigen::MatrixBase< MatrixType1 > &rnea_partial_dq, const Eigen::MatrixBase< MatrixType2 > &rnea_partial_dv, const Eigen::MatrixBase< MatrixType3 > &rnea_partial_da)
Computes the partial derivatives of the Recursive Newton Euler Algorithms with respect to the joint c...
CodeGenConstraintDynamics(const Model &model, const ContactModelVector &contact_models, const std::string &function_name="constraintDynamics", const std::string &library_name="cg_constraintDynamics_eval")
CodeGenBase< _Scalar > Base
#define PINOCCHIO_CHECK_INPUT_ARGUMENT(...)
Macro to check an assert-like condition and throw a std::invalid_argument exception (with a message) ...
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
Base::ADConfigVectorType ADConfigVectorType
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > VectorXs
void evalFunction(const Eigen::MatrixBase< ConfigVectorType1 > &q0, const Eigen::MatrixBase< ConfigVectorType2 > &q1, const Eigen::MatrixBase< TangentVector > &v)
void computeConstraintDynamicsDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const ProximalSettingsTpl< Scalar > &settings, const Eigen::MatrixBase< MatrixType1 > &ddq_partial_dq, const Eigen::MatrixBase< MatrixType2 > &ddq_partial_dv, const Eigen::MatrixBase< MatrixType3 > &ddq_partial_dtau, const Eigen::MatrixBase< MatrixType4 > &lambda_partial_dq, const Eigen::MatrixBase< MatrixType5 > &lambda_partial_dv, const Eigen::MatrixBase< MatrixType6 > &lambda_partial_dtau)
Eigen::aligned_allocator< ContactData > ConstraintDataAllocator
Base::ADConfigVectorType ADConfigVectorType
CodeGenBase< _Scalar > Base
Base::ADTangentVectorType ADTangentVectorType
pinocchio::RigidConstraintModelTpl< Scalar, Base::Options > ContactModel
CodeGenBase< _Scalar > Base
int nv(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNvVisitor to get the dimension of the joint tangent space.
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
virtual ~CodeGenABADerivatives()
int nq(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNqVisitor to get the dimension of the joint configuration space.
std::vector< ContactData, ConstraintDataAllocator > ContactDataVector
void buildMap()
build the mapping Y = f(X)
ADTangentVectorType ad_dq
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
VectorXs lambda_c
Lagrange Multipliers corresponding to the contact forces in pinocchio::forwardDynamics.
void buildMap()
build the mapping Y = f(X)
Base::ADConfigVectorType ADConfigVectorType
ArgumentPosition
Argument position. Used as template parameter to refer to an argument.
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & crba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Convention convention=Convention::LOCAL)
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid B...
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & aba(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 Convention convention=Convention::LOCAL)
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given t...
Eigen::Matrix< ADScalar, Eigen::Dynamic, 1, Options > ADVectorXs
void buildMap()
build the mapping Y = f(X)
ADTangentVectorType ad_tau
void difference(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Eigen::MatrixBase< ReturnType > &dvout)
Compute the tangent vector that must be integrated during one unit time to go from q0 to q1.
ADConfigVectorType ad_q_plus
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
void evalFunction(const Eigen::MatrixBase< ConfigVectorType1 > &q0, const Eigen::MatrixBase< ConfigVectorType2 > &q1, const Eigen::MatrixBase< JacobianMatrix > &J, const ArgumentPosition arg)
std::vector< ADContactData, ADConstraintDataAllocator > ADContactDataVector
virtual ~CodeGenConstraintDynamics()
Eigen::aligned_allocator< ContactModel > ConstraintModelAllocator
ADContactModelVector ad_contact_models
void buildMap()
build the mapping Y = f(X)
ADTangentVectorType ad_tau
CodeGenBase< _Scalar > Base
CodeGenIntegrate(const Model &model, const std::string &function_name="integrate", const std::string &library_name="cg_integrate_eval")
CodeGenMinv(const Model &model, const std::string &function_name="minv", const std::string &library_name="cg_minv_eval")
const DataTpl< Scalar, Options, JointCollectionTpl >::RowMatrixXs & computeMinverse(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the inverse of the joint space inertia matrix using Articulated Body formulation.
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q)
void buildMap()
build the mapping Y = f(X)
ADTangentVectorType ad_tau
Eigen::DenseIndex constraintDim(const ContactModelVector &contact_models) const
RowMatrixXs ddq_dtau
Partial derivative of the joint acceleration vector with respect to the joint torques.
Base::ADConfigVectorType ADConfigVectorType
CodeGenBase< _Scalar > Base
CodeGenABADerivatives(const Model &model, const std::string &function_name="partial_aba", const std::string &library_name="cg_partial_aba_eval")
void evalJacobian(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
Eigen::aligned_allocator< ContactModel > ConstraintModelAllocator
std::vector< ADContactData, ADConstraintDataAllocator > ADContactDataVector
Base::ADTangentVectorType ADTangentVectorType
void integrate(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< ReturnType > &qout)
Integrate a configuration vector for the specified model for a tangent vector during one unit time.
Base::ADVectorXs ADVectorXs
CppAD::AD< CGScalar > ADScalar
TangentVectorType tau
Vector of joint torques (dim model.nv).
RowMatrixXs Minv
The inverse of the joint space inertia matrix (a square matrix of dim model.nv).
MatrixXs dlambda_dq
Partial derivatives of the constraints forces with respect to the joint configuration,...
void initConstraintDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
Init the forward dynamics data according to the contact information contained in contact_models.
ADTangentVectorType ad_dq
CodeGenBase< _Scalar > Base
ADContactDataVector ad_contact_datas
virtual ~CodeGenRNEADerivatives()
Base::ADConfigVectorType ADConfigVectorType
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > & q0
Base::ADConfigVectorType ADConfigVectorType
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
CodeGenCRBA(const Model &model, const std::string &function_name="crba", const std::string &library_name="cg_crba_eval")
CodeGenBase< _Scalar > Base
Base::ADTangentVectorType ADTangentVectorType
const std::string function_name
Name of the function.
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
Base::ADTangentVectorType ADTangentVectorType
ADModel::ConfigVectorType ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options|Eigen::RowMajor > RowMatrixXs
void buildMap()
build the mapping Y = f(X)
CodeGenDDifference(const Model &model, const std::string &function_name="dDifference", const std::string &library_name="cg_dDifference_eval")
void evalJacobian(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Base::ADConfigVectorType ADConfigVectorType
Base::ADTangentVectorType ADTangentVectorType
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
bool build_jacobian
Options to build or not the Jacobian of he function.
void buildMap()
build the mapping Y = f(X)
void computeABADerivatives(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< MatrixType1 > &aba_partial_dq, const Eigen::MatrixBase< MatrixType2 > &aba_partial_dv, const Eigen::MatrixBase< MatrixType3 > &aba_partial_dtau)
The derivatives of the Articulated-Body algorithm.
void evalJacobian(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
void evalJacobian(const Eigen::MatrixBase< Vector > &x)
ADData::MatrixXs ADMatrixXs
Base::ADMatrixXs ADMatrixXs
RowMatrixXs ddq_dq
Partial derivative of the joint acceleration vector with respect to the joint configuration.
void buildMap()
build the mapping Y = f(X)
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & rnea(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)
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques accordi...
Base::ADConfigVectorType ADConfigVectorType
CodeGenBase< _Scalar > Base
std::vector< ContactData, ConstraintDataAllocator > ContactDataVector
pinocchio::RigidConstraintDataTpl< Scalar, Base::Options > ContactData
Base::ADTangentVectorType ADTangentVectorType
Base::ADConfigVectorType ADConfigVectorType
CodeGenBase< _Scalar > Base
const std::string library_name
Name of the library.
Base::ADTangentVectorType ADTangentVectorType
ADTangentVectorType ad_tau
Eigen::Matrix< ADScalar, Eigen::Dynamic, Eigen::Dynamic, Options > ADMatrixXs
int nv
Dimension of the velocity vector space.
ADModel::TangentVectorType ADTangentVectorType
pinocchio::RigidConstraintDataTpl< ADScalar, Base::Options > ADContactData
std::vector< ContactModel, ConstraintModelAllocator > ContactModelVector
ADData::MatrixXs ADMatrixXs
virtual ~CodeGenConstraintDynamicsDerivatives()
Eigen::DenseIndex getOutputDimension() const
Dimension of the output vector.
CodeGenABA(const Model &model, const std::string &function_name="aba", const std::string &library_name="cg_aba_eval")
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > const Eigen::MatrixBase< ConfigVectorIn2 > & q1
ADData::MatrixXs ADMatrixXs
Base::ADConfigVectorType ADConfigVectorType
Base::ADTangentVectorType ADTangentVectorType
Eigen::DenseIndex getInputDimension() const
Dimension of the input vector.
Eigen::aligned_allocator< ADContactModel > ADConstraintModelAllocator
ADContactModelVector ad_contact_models
CodeGenConstraintDynamicsDerivatives(const Model &model, const ContactModelVector &contact_models, const std::string &function_name="partial_constraintDynamics", const std::string &library_name="cg_partial_constraintDynamics_eval")
CodeGenRNEA(const Model &model, const std::string &function_name="rnea", const std::string &library_name="cg_rnea_eval")
void dDifference(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVector1 > &q0, const Eigen::MatrixBase< ConfigVector2 > &q1, const Eigen::MatrixBase< JacobianMatrix > &J, const ArgumentPosition arg)
Computes the Jacobian of a small variation of the configuration vector into the tangent space at iden...
CodeGenBase< _Scalar > Base
void buildMap()
build the mapping Y = f(X)
void neutral(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ReturnType > &qout)
Return the neutral configuration element related to the model configuration space.
void evalFunction(const Eigen::MatrixBase< Vector > &x)
Base::ADTangentVectorType ADTangentVectorType
void evalFunction(const Eigen::MatrixBase< ConfigVectorType1 > &q, const Eigen::MatrixBase< TangentVector > &v, const Eigen::MatrixBase< ConfigVectorType2 > &qout)
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q)
pinocchio::RigidConstraintModelTpl< ADScalar, Base::Options > ADContactModel
Eigen::DenseIndex constraintDim(const ContactModelVector &contact_models) const
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
std::vector< ADContactModel, ADConstraintModelAllocator > ADContactModelVector
ADConfigVectorType ad_q_plus
Base::ADTangentVectorType ADTangentVectorType
pinocchio::RigidConstraintDataTpl< Scalar, Base::Options > ContactData
Eigen::aligned_allocator< ContactData > ConstraintDataAllocator
Eigen::aligned_allocator< ADContactData > ADConstraintDataAllocator
pinocchio::RigidConstraintModelTpl< Scalar, Base::Options > ContactModel
pinocchio::RigidConstraintModelTpl< ADScalar, Base::Options > ADContactModel
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constraintDynamics(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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
Computes the forward dynamics with contact constraints according to a given list of contact informati...
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
ADContactDataVector ad_contact_datas
CodeGenDifference(const Model &model, const std::string &function_name="difference", const std::string &library_name="cg_difference_eval")
ADData::MatrixXs ADMatrixXs
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
pinocchio::RigidConstraintDataTpl< ADScalar, Base::Options > ADContactData
int nq
Dimension of the configuration vector representation.
void buildMap()
build the mapping Y = f(X)
Eigen::aligned_allocator< ADContactModel > ADConstraintModelAllocator
JointCollectionTpl & model
Main pinocchio namespace.
CodeGenBase< _Scalar > Base
pinocchio
Author(s):
autogenerated on Mon Dec 16 2024 03:41:00