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