crocoddyl 1.9.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
 
Loading...
Searching...
No Matches
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. More...
 
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)
 Compute the total cost value for nodes that depends only on the state. 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...
 
virtual void calcDiff (const boost::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Compute the derivatives of the cost functions with respect to the state only. More...
 
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...
 
virtual bool checkData (const boost::shared_ptr< ActionDataAbstract > &data)
 Checks that a specific data belongs to this model. More...
 
virtual boost::shared_ptr< ActionDataAbstractcreateData ()
 Create the action data. More...
 
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. More...
 
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. More...
 
const std::string function_name_calc
 Name of the function. More...
 
const std::string function_name_calcDiff
 
bool has_control_limits_
 Indicates whether any of the control limits is finite. More...
 
std::unique_ptr< CppAD::cg::ModelLibraryCSourceGen< Scalar > > libcgen_ptr
 
const std::string library_name
 Name of the library. More...
 
boost::shared_ptr< Basemodel
 < Neutral state More...
 
const std::size_t n_env
 Size of the environment variables. More...
 
std::size_t nr_
 < Indicates whether any of the control limits More...
 
std::size_t nu_
 < Dimension of the cost residual More...
 
boost::shared_ptr< StateAbstractstate_
 < Control dimension More...
 
VectorXs u_lb_
 < Model of the state More...
 
VectorXs u_ub_
 < Lower control limits More...
 
VectorXs unone_
 < Upper control limits More...
 
- Protected Attributes inherited from ActionModelAbstractTpl< _Scalar >
bool has_control_limits_
 Indicates whether any of the control limits is finite. More...
 
std::size_t nr_
 Dimension of the cost residual. More...
 
std::size_t nu_
 Control dimension. More...
 
boost::shared_ptr< StateAbstractstate_
 Model of the state. More...
 
VectorXs u_lb_
 Lower control limits. More...
 
VectorXs u_ub_
 Upper control limits. More...
 
VectorXs unone_
 Neutral state. More...
 

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 Typedef Documentation

◆ Scalar

typedef _Scalar Scalar

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

◆ Base

typedef ActionModelAbstractTpl<Scalar> Base

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

◆ Data

typedef ActionDataCodeGenTpl<Scalar> Data

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

◆ ActionDataAbstract

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

◆ VectorXs

typedef MathBaseTpl<Scalar>::VectorXs VectorXs

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

◆ MatrixXs

typedef MathBaseTpl<Scalar>::MatrixXs MatrixXs

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

◆ CGScalar

typedef CppAD::cg::CG<Scalar> CGScalar

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

◆ ADScalar

typedef CppAD::AD<CGScalar> ADScalar

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

◆ ADBase

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

◆ ADActionDataAbstract

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

◆ ADActionDataCodeGen

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

◆ ADVectorXs

typedef MathBaseTpl<ADScalar>::VectorXs ADVectorXs

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

◆ ADMatrixXs

typedef MathBaseTpl<ADScalar>::MatrixXs ADMatrixXs

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

◆ ADVector3s

typedef MathBaseTpl<ADScalar>::Vector3s ADVector3s

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

◆ ADMatrix3s

typedef MathBaseTpl<ADScalar>::Matrix3s ADMatrix3s

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

◆ ADFun

typedef CppAD::ADFun<CGScalar> ADFun

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

Constructor & Destructor Documentation

◆ ActionModelCodeGenTpl()

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" 
)
inline

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

Member Function Documentation

◆ empty_record_env()

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

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

◆ recordCalc()

void recordCalc ( )
inline

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

◆ collect_calcout()

void collect_calcout ( )
inline

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

◆ collect_calcDiffout()

void collect_calcDiffout ( )
inline

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

◆ recordCalcDiff()

void recordCalcDiff ( )
inline

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

◆ initLib()

void initLib ( )
inline

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

◆ compileLib()

void compileLib ( )
inline

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

◆ existLib()

bool existLib ( ) const
inline

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

◆ loadLib()

void loadLib ( const bool  generate_if_not_exist = true)
inline

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

◆ set_env()

void set_env ( const boost::shared_ptr< ActionDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  env_val 
) const
inline

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

◆ calc()

void calc ( const boost::shared_ptr< ActionDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
inline

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

◆ calcDiff()

void calcDiff ( const boost::shared_ptr< ActionDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
inline

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

◆ 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.

◆ getInputDimension()

Eigen::DenseIndex getInputDimension ( ) const
inline

Dimension of the input vector.

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

Member Data Documentation

◆ model

boost::shared_ptr<Base> model
protected

< Neutral state

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

◆ ad_model

boost::shared_ptr<ADBase> ad_model
protected

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

◆ ad_data

boost::shared_ptr<ADActionDataAbstract> ad_data
protected

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

◆ function_name_calc

const std::string function_name_calc
protected

Name of the function.

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

◆ function_name_calcDiff

const std::string function_name_calcDiff
protected

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

◆ library_name

const std::string library_name
protected

Name of the library.

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

◆ n_env

const std::size_t n_env
protected

Size of the environment variables.

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

◆ fn_record_env

std::function<void(boost::shared_ptr<ADBase>, const Eigen::Ref<const ADVectorXs>&)> fn_record_env
protected

A function that updates the environment variables before starting record.

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

◆ build_forward

bool build_forward
protected

Options to generate or not the source code for the evaluation function.

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

◆ ad_X

ADVectorXs ad_X
protected

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

◆ ad_X2

ADVectorXs ad_X2
protected

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

◆ ad_calcout

ADVectorXs ad_calcout
protected

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

◆ ad_calcDiffout

ADVectorXs ad_calcDiffout
protected

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

◆ ad_calc

ADFun ad_calc
protected

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

◆ ad_calcDiff

ADFun ad_calcDiff
protected

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

◆ calcgen_ptr

std::unique_ptr<CppAD::cg::ModelCSourceGen<Scalar> > calcgen_ptr
protected

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

◆ calcDiffgen_ptr

std::unique_ptr<CppAD::cg::ModelCSourceGen<Scalar> > calcDiffgen_ptr
protected

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

◆ libcgen_ptr

std::unique_ptr<CppAD::cg::ModelLibraryCSourceGen<Scalar> > libcgen_ptr
protected

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

◆ dynamicLibManager_ptr

std::unique_ptr<CppAD::cg::DynamicModelLibraryProcessor<Scalar> > dynamicLibManager_ptr
protected

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

◆ dynamicLib_ptr

std::unique_ptr<CppAD::cg::DynamicLib<Scalar> > dynamicLib_ptr
protected

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

◆ calcFun_ptr

std::unique_ptr<CppAD::cg::GenericModel<Scalar> > calcFun_ptr
protected

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

◆ calcDiffFun_ptr

std::unique_ptr<CppAD::cg::GenericModel<Scalar> > calcDiffFun_ptr
protected

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

◆ has_control_limits_

bool has_control_limits_
protected

Indicates whether any of the control limits is finite.

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

◆ nr_

std::size_t nr_
protected

< Indicates whether any of the control limits

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

◆ nu_

std::size_t nu_
protected

< Dimension of the cost residual

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

◆ state_

boost::shared_ptr<StateAbstract> state_
protected

< Control dimension

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

◆ u_lb_

VectorXs u_lb_
protected

< Model of the state

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

◆ u_ub_

VectorXs u_ub_
protected

< Lower control limits

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

◆ unone_

VectorXs unone_
protected

< Upper control limits

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


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