centroidal_control_collection
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
CCC::IntrinsicallyStableMpc1d Class Reference

QP-based MPC with stability constraint for one-dimensional CoM-ZMP model. More...

#include <IntrinsicallyStableMpc.h>

Collaboration diagram for CCC::IntrinsicallyStableMpc1d:
Collaboration graph
[legend]

Classes

struct  InitialParam
 Initial parameter. More...
 
struct  RefData
 Reference data. More...
 
struct  WeightParam
 Weight parameter. More...
 

Public Member Functions

 IntrinsicallyStableMpc1d (double com_height, double horizon_duration, double horizon_dt, QpSolverCollection::QpSolverType qp_solver_type=QpSolverCollection::QpSolverType::Any, const WeightParam &weight_param=WeightParam())
 Constructor. More...
 
double planOnce (const std::function< RefData(double)> &ref_data_func, const InitialParam &initial_param, double current_time, double control_dt=-1)
 Plan one step. More...
 

Protected Member Functions

double procOnce (const std::vector< RefData > &ref_data_seq, const InitialParam &initial_param, double current_time, double control_dt)
 Process one step. More...
 

Protected Attributes

WeightParam weight_param_
 Weight parameter. More...
 
double horizon_dt_ = 0
 Discretization timestep in horizon [sec]. More...
 
int horizon_steps_ = -1
 Number of steps in horizon. More...
 
std::shared_ptr< QpSolverCollection::QpSolver > qp_solver_
 QP solver. More...
 
QpSolverCollection::QpCoeff qp_coeff_
 QP coefficients. More...
 
double omega_ = 0
 Time constant for inverted pendulum dynamics. More...
 
double lambda_ = 0
 Constant value dependent on omega and horizon_dt. More...
 
Eigen::MatrixXd P_
 Constant matrix dependent on horizon_dt (defined in equation (7) in the paper) More...
 

Friends

class IntrinsicallyStableMpc
 

Detailed Description

QP-based MPC with stability constraint for one-dimensional CoM-ZMP model.

See the following for a detailed formulation.

Definition at line 16 of file IntrinsicallyStableMpc.h.

Constructor & Destructor Documentation

◆ IntrinsicallyStableMpc1d()

CCC::IntrinsicallyStableMpc1d::IntrinsicallyStableMpc1d ( double  com_height,
double  horizon_duration,
double  horizon_dt,
QpSolverCollection::QpSolverType  qp_solver_type = QpSolverCollection::QpSolverType::Any,
const WeightParam weight_param = WeightParam() 
)

Constructor.

Parameters
com_heightheight of robot CoM [m]
horizon_durationhorizon duration [sec]
horizon_dtdiscretization timestep in horizon [sec]
qp_solver_typeQP solver type
weight_paramobjective weight parameter

Member Function Documentation

◆ planOnce()

double CCC::IntrinsicallyStableMpc1d::planOnce ( const std::function< RefData(double)> &  ref_data_func,
const InitialParam initial_param,
double  current_time,
double  control_dt = -1 
)

Plan one step.

Parameters
ref_data_funcfunction of reference data
initial_paraminitial parameter
current_timecurrent time (i.e., start time of horizon) [sec]
control_dtcontrol timestep used to calculate ZMP (if omitted, horizon_dt is used)
Returns
planned ZMP

◆ procOnce()

double CCC::IntrinsicallyStableMpc1d::procOnce ( const std::vector< RefData > &  ref_data_seq,
const InitialParam initial_param,
double  current_time,
double  control_dt 
)
protected

Process one step.

Friends And Related Function Documentation

◆ IntrinsicallyStableMpc

friend class IntrinsicallyStableMpc
friend

Definition at line 18 of file IntrinsicallyStableMpc.h.

Member Data Documentation

◆ horizon_dt_

double CCC::IntrinsicallyStableMpc1d::horizon_dt_ = 0
protected

Discretization timestep in horizon [sec].

Definition at line 95 of file IntrinsicallyStableMpc.h.

◆ horizon_steps_

int CCC::IntrinsicallyStableMpc1d::horizon_steps_ = -1
protected

Number of steps in horizon.

Definition at line 98 of file IntrinsicallyStableMpc.h.

◆ lambda_

double CCC::IntrinsicallyStableMpc1d::lambda_ = 0
protected

Constant value dependent on omega and horizon_dt.

Definition at line 110 of file IntrinsicallyStableMpc.h.

◆ omega_

double CCC::IntrinsicallyStableMpc1d::omega_ = 0
protected

Time constant for inverted pendulum dynamics.

Definition at line 107 of file IntrinsicallyStableMpc.h.

◆ P_

Eigen::MatrixXd CCC::IntrinsicallyStableMpc1d::P_
protected

Constant matrix dependent on horizon_dt (defined in equation (7) in the paper)

Definition at line 113 of file IntrinsicallyStableMpc.h.

◆ qp_coeff_

QpSolverCollection::QpCoeff CCC::IntrinsicallyStableMpc1d::qp_coeff_
protected

QP coefficients.

Definition at line 104 of file IntrinsicallyStableMpc.h.

◆ qp_solver_

std::shared_ptr<QpSolverCollection::QpSolver> CCC::IntrinsicallyStableMpc1d::qp_solver_
protected

QP solver.

Definition at line 101 of file IntrinsicallyStableMpc.h.

◆ weight_param_

WeightParam CCC::IntrinsicallyStableMpc1d::weight_param_
protected

Weight parameter.

Definition at line 92 of file IntrinsicallyStableMpc.h.


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