crocoddyl  1.8.1
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
ActionModelCodeGenTpl< _Scalar > Class Template Reference
Inheritance diagram for ActionModelCodeGenTpl< _Scalar >:
Collaboration diagram for ActionModelCodeGenTpl< _Scalar >:

Public Types

typedef ActionDataAbstractTpl< Scalar > ActionDataAbstract
 
typedef ActionDataAbstractTpl< ADScalar > ADActionDataAbstract
 
typedef ActionDataCodeGenTpl< ADScalar > ADActionDataCodeGen
 
typedef crocoddyl::ActionModelAbstractTpl< ADScalar > ADBase
 
typedef CppAD::ADFun< CGScalar > ADFun
 
typedef MathBaseTpl< ADScalar >::Matrix3s ADMatrix3s
 
typedef MathBaseTpl< ADScalar >::MatrixXs ADMatrixXs
 
typedef CppAD::AD< CGScalar > ADScalar
 
typedef MathBaseTpl< ADScalar >::Vector3s ADVector3s
 
typedef MathBaseTpl< ADScalar >::VectorXs ADVectorXs
 
typedef ActionModelAbstractTpl< Scalar > Base
 
typedef CppAD::cg::CG< Scalar > CGScalar
 
typedef ActionDataCodeGenTpl< Scalar > Data
 
typedef MathBaseTpl< Scalar >::MatrixXs MatrixXs
 
typedef _Scalar Scalar
 
typedef MathBaseTpl< Scalar >::VectorXs VectorXs
 
- Public Types inherited from ActionModelAbstractTpl< _Scalar >
typedef ActionDataAbstractTpl< Scalar > ActionDataAbstract
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef StateAbstractTpl< Scalar > StateAbstract
 
typedef MathBase::VectorXs VectorXs
 

Public Member Functions

 ActionModelCodeGenTpl (boost::shared_ptr< ADBase > admodel, boost::shared_ptr< Base > model, const std::string &library_name, const std::size_t n_env=0, std::function< void(boost::shared_ptr< ADBase >, const Eigen::Ref< const ADVectorXs > &)> fn_record_env=empty_record_env, const std::string &function_name_calc="calc", const std::string &function_name_calcDiff="calcDiff")
 
void calc (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
 
void calcDiff (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
 
void collect_calcDiffout ()
 
void collect_calcout ()
 
void compileLib ()
 
boost::shared_ptr< ActionDataAbstractcreateData ()
 Create the action data. More...
 
bool existLib () const
 
Eigen::DenseIndex getInputDimension () const
 Dimension of the input vector.
 
void initLib ()
 
void loadLib (const bool generate_if_not_exist=true)
 
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE (ADMatrixXs) RowADMatrixXs
 
void recordCalc ()
 
void recordCalcDiff ()
 
void set_env (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &env_val) const
 
- Public Member Functions inherited from ActionModelAbstractTpl< _Scalar >
 ActionModelAbstractTpl (boost::shared_ptr< StateAbstract > state, const std::size_t nu, const std::size_t nr=0)
 Initialize the action model. More...
 
virtual void calc (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)=0
 Compute the next state and cost value. More...
 
void calc (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 
virtual void calcDiff (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)=0
 Compute the derivatives of the dynamics and cost functions. More...
 
void calcDiff (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 
virtual bool checkData (const boost::shared_ptr< ActionDataAbstract > &data)
 Checks that a specific data belongs to this model.
 
bool get_has_control_limits () const
 Indicates if there are defined control limits.
 
std::size_t get_nr () const
 Return the dimension of the cost-residual vector.
 
std::size_t get_nu () const
 Return the dimension of the control input.
 
const boost::shared_ptr< StateAbstract > & get_state () const
 Return the state.
 
const VectorXs & get_u_lb () const
 Return the control lower bound.
 
const VectorXs & get_u_ub () const
 Return the control upper bound.
 
virtual void print (std::ostream &os) const
 Print relevant information of the action model. More...
 
virtual void quasiStatic (const boost::shared_ptr< ActionDataAbstract > &data, Eigen::Ref< VectorXs > u, const Eigen::Ref< const VectorXs > &x, const std::size_t maxiter=100, const Scalar tol=Scalar(1e-9))
 Computes the quasic static commands. More...
 
VectorXs quasiStatic_x (const boost::shared_ptr< ActionDataAbstract > &data, const VectorXs &x, const std::size_t maxiter=100, const Scalar tol=Scalar(1e-9))
 
void set_u_lb (const VectorXs &u_lb)
 Modify the control lower bounds.
 
void set_u_ub (const VectorXs &u_ub)
 Modify the control upper bounds.
 

Static Public Member Functions

static void empty_record_env (boost::shared_ptr< ADBase >, const Eigen::Ref< const ADVectorXs > &)
 

Protected Attributes

ADFun ad_calc
 
ADFun ad_calcDiff
 
ADVectorXs ad_calcDiffout
 
ADVectorXs ad_calcout
 
boost::shared_ptr< ADActionDataAbstractad_data
 
boost::shared_ptr< ADBasead_model
 
ADVectorXs ad_X
 
ADVectorXs ad_X2
 
bool build_forward
 Options to generate or not the source code for the evaluation function.
 
std::unique_ptr< CppAD::cg::GenericModel< Scalar > > calcDiffFun_ptr
 
std::unique_ptr< CppAD::cg::ModelCSourceGen< Scalar > > calcDiffgen_ptr
 
std::unique_ptr< CppAD::cg::GenericModel< Scalar > > calcFun_ptr
 
std::unique_ptr< CppAD::cg::ModelCSourceGen< Scalar > > calcgen_ptr
 
std::unique_ptr< CppAD::cg::DynamicLib< Scalar > > dynamicLib_ptr
 
std::unique_ptr< CppAD::cg::DynamicModelLibraryProcessor< Scalar > > dynamicLibManager_ptr
 
std::function< void(boost::shared_ptr< ADBase >, const Eigen::Ref< const ADVectorXs > &)> fn_record_env
 A function that updates the environment variables before starting record.
 
const std::string function_name_calc
 Name of the function.
 
const std::string function_name_calcDiff
 
std::unique_ptr< CppAD::cg::ModelLibraryCSourceGen< Scalar > > libcgen_ptr
 
const std::string library_name
 Name of the library.
 
boost::shared_ptr< Basemodel
 < Neutral state
 
const std::size_t n_env
 Size of the environment variables.
 
- Protected Attributes inherited from ActionModelAbstractTpl< _Scalar >
bool has_control_limits_
 Indicates whether any of the control limits is finite.
 
std::size_t nr_
 Dimension of the cost residual.
 
std::size_t nu_
 Control dimension.
 
boost::shared_ptr< StateAbstractstate_
 Model of the state.
 
VectorXs u_lb_
 Lower control limits.
 
VectorXs u_ub_
 Upper control limits.
 
VectorXs unone_
 Neutral state.
 

Additional Inherited Members

- Public Attributes inherited from ActionModelAbstractTpl< _Scalar >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 
- Protected Member Functions inherited from ActionModelAbstractTpl< _Scalar >
void update_has_control_limits ()
 Update the status of the control limits (i.e. if there are defined limits)
 

Detailed Description

template<typename _Scalar>
class crocoddyl::ActionModelCodeGenTpl< _Scalar >

Definition at line 24 of file action-base.hpp.

Member Function Documentation

◆ createData()

boost::shared_ptr<ActionDataAbstract> createData ( )
inlinevirtual

Create the action data.

Returns
the action data

Reimplemented from ActionModelAbstractTpl< _Scalar >.

Definition at line 216 of file action-base.hpp.


The documentation for this class was generated from the following file: