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 Wed May 28 2025 02:41:16