7 #include <qp_solver_collection/QpSolverCollection.h> 
   66                            double horizon_duration,
 
   68                            QpSolverCollection::QpSolverType qp_solver_type = QpSolverCollection::QpSolverType::Any,
 
   81                   double control_dt = -1);
 
   85   double procOnce(
const std::vector<RefData> & ref_data_seq,
 
  134     EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 
  137     Eigen::Vector2d 
zmp = Eigen::Vector2d::Zero();
 
  146     EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 
  165       double horizon_duration,
 
  167       QpSolverCollection::QpSolverType qp_solver_type = QpSolverCollection::QpSolverType::Any,
 
  186                            double control_dt = -1);
 
  190   std::shared_ptr<IntrinsicallyStableMpc1d> 
mpc_1d_;
 
QP-based MPC with stability constraint for one-dimensional CoM-ZMP model.
 
double omega_
Time constant for inverted pendulum dynamics.
 
Eigen::MatrixXd P_
Constant matrix dependent on horizon_dt (defined in equation (7) in the paper)
 
double planOnce(const std::function< RefData(double)> &ref_data_func, const InitialParam &initial_param, double current_time, double control_dt=-1)
Plan one step.
 
double horizon_dt_
Discretization timestep in horizon [sec].
 
WeightParam weight_param_
Weight parameter.
 
int horizon_steps_
Number of steps in horizon.
 
QpSolverCollection::QpCoeff qp_coeff_
QP coefficients.
 
double lambda_
Constant value dependent on omega and horizon_dt.
 
IntrinsicallyStableMpc1d(double com_height, double horizon_duration, double horizon_dt, QpSolverCollection::QpSolverType qp_solver_type=QpSolverCollection::QpSolverType::Any, const WeightParam &weight_param=WeightParam())
Constructor.
 
std::shared_ptr< QpSolverCollection::QpSolver > qp_solver_
QP solver.
 
double procOnce(const std::vector< RefData > &ref_data_seq, const InitialParam &initial_param, double current_time, double control_dt)
Process one step.
 
QP-based MPC with stability constraint for CoM-ZMP model.
 
std::shared_ptr< IntrinsicallyStableMpc1d > mpc_1d_
One-dimensional linear MPC.
 
Eigen::Vector2d planOnce(const std::function< RefData(double)> &ref_data_func, const InitialParam &initial_param, double current_time, double control_dt=-1)
Plan one step.
 
std::vector< IntrinsicallyStableMpc1d::RefData > ref_data_seq_y_
Reference data sequence of y.
 
std::vector< IntrinsicallyStableMpc1d::RefData > ref_data_seq_x_
Reference data sequence of x.
 
IntrinsicallyStableMpc(double com_height, double horizon_duration, double horizon_dt, QpSolverCollection::QpSolverType qp_solver_type=QpSolverCollection::QpSolverType::Any, const IntrinsicallyStableMpc1d::WeightParam &weight_param=IntrinsicallyStableMpc1d::WeightParam())
Constructor.
 
double planned_zmp
Current ZMP planned in previous step [m].
 
double capture_point
Capture point [m].
 
std::array< double, 2 > zmp_limits
Min/max limits of ZMP [m].
 
WeightParam(double _zmp=1.0, double _zmp_vel=1e-3)
Constructor.
 
double zmp_vel
ZMP velocity weight.
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Vector2d capture_point
Capture point [m].
 
Eigen::Vector2d planned_zmp
Current ZMP planned in previous step [m].
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Vector2d zmp
ZMP [m].
 
std::array< Eigen::Vector2d, 2 > zmp_limits
Min/max limits of ZMP [m].