centroidal_control_collection
Classes | Public Member Functions | Public Attributes | List of all members
CCC::DdpSingleRigidBody Class Reference

Differential dynamic programming (DDP) for centroidal model with single rigid-body dynamics (SRBD) approximation. More...

#include <DdpSingleRigidBody.h>

Classes

class  DdpProblem
 DDP problem of centroidal model with single rigid-body dynamics (SRBD) approximation. More...
 
struct  InitialParam
 Initial parameter. More...
 
struct  MotionParam
 Motion parameter. More...
 
struct  RefData
 Reference data. More...
 
struct  WeightParam
 Weight parameter. More...
 

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW DdpSingleRigidBody (double mass, double horizon_dt, int horizon_steps, const WeightParam &weight_param=WeightParam())
 Constructor. More...
 
Eigen::VectorXd planOnce (const std::function< MotionParam(double)> &motion_param_func, const std::function< RefData(double)> &ref_data_func, const InitialParam &initial_param, double current_time)
 Plan one step. More...
 

Public Attributes

std::shared_ptr< DdpProblemddp_problem_
 DDP problem. More...
 
std::shared_ptr< nmpc_ddp::DDPSolver< 12, Eigen::Dynamic > > ddp_solver_
 DDP solver. More...
 
std::array< double, 2 > force_scale_limits_ = {0.0, 1e6}
 Force scale limits (i.e., limits of \(\lambda_i\) in the order of lower, upper) More...
 

Detailed Description

Differential dynamic programming (DDP) for centroidal model with single rigid-body dynamics (SRBD) approximation.

Base link orientation is expressed in ZYX Euler angles.

Todo:
Support other Euler angles

Definition at line 21 of file DdpSingleRigidBody.h.

Constructor & Destructor Documentation

◆ DdpSingleRigidBody()

EIGEN_MAKE_ALIGNED_OPERATOR_NEW CCC::DdpSingleRigidBody::DdpSingleRigidBody ( double  mass,
double  horizon_dt,
int  horizon_steps,
const WeightParam weight_param = WeightParam() 
)

Constructor.

Parameters
massrobot mass [kg]
horizon_dtdiscretization timestep in horizon [sec]
horizon_stepsnumber of steps in horizon
weight_paramobjective weight parameter

Member Function Documentation

◆ planOnce()

Eigen::VectorXd CCC::DdpSingleRigidBody::planOnce ( const std::function< MotionParam(double)> &  motion_param_func,
const std::function< RefData(double)> &  ref_data_func,
const InitialParam initial_param,
double  current_time 
)

Plan one step.

Parameters
motion_param_funcfunction of motion parameter
ref_data_funcfunction of reference data
initial_paraminitial parameter
current_timecurrent time (i.e., start time of horizon) [sec]
Returns
planned force scales

Member Data Documentation

◆ ddp_problem_

std::shared_ptr<DdpProblem> CCC::DdpSingleRigidBody::ddp_problem_

DDP problem.

Definition at line 398 of file DdpSingleRigidBody.h.

◆ ddp_solver_

std::shared_ptr<nmpc_ddp::DDPSolver<12, Eigen::Dynamic> > CCC::DdpSingleRigidBody::ddp_solver_

DDP solver.

Definition at line 401 of file DdpSingleRigidBody.h.

◆ force_scale_limits_

std::array<double, 2> CCC::DdpSingleRigidBody::force_scale_limits_ = {0.0, 1e6}

Force scale limits (i.e., limits of \(\lambda_i\) in the order of lower, upper)

Definition at line 404 of file DdpSingleRigidBody.h.


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