1 #ifndef miqp_quadruped_h
2 #define miqp_quadruped_h
8 #include "drake/solvers/mathematical_program.h"
10 #include "drake/solvers/osqp_solver.h"
12 #include "drake/solvers/branch_and_bound.h"
14 #include "drake/common/symbolic.h"
23 using drake::solvers::MatrixXDecisionVariable;
107 void theta_limits(drake::solvers::MathematicalProgram &prog,
int n_steps,
int n_legs,
DecVars &decision_variables);
void step_sequence(drake::solvers::MathematicalProgram &prog, int n_steps, double step_span, DecVars &decision_variables)
void theta_limits(drake::solvers::MathematicalProgram &prog, int n_steps, int n_legs, DecVars &decision_variables)
DecVars_res get_decvars_res(DecVars_res_raw &decision_variables_raw, int n_steps, int n_legs, Leg step_sequence[])
Eigen::Vector4d get_big_M(Terrain terrain)
void one_stone_per_foot(drake::solvers::MathematicalProgram &prog, int n_steps, DecVars &decision_variables)
void minimize_step_length(drake::solvers::MathematicalProgram &prog, int n_steps, int n_legs, DecVars &decision_variables)
void relative_position_limits(drake::solvers::MathematicalProgram &prog, int n_steps, int n_legs, double step_span, double step_height, DecVars &decision_variables)
void foot_in_stepping_stone(drake::solvers::MathematicalProgram &prog, Terrain &terrain, int n_steps, DecVars &decision_variables)
DecVars add_decision_variables(drake::solvers::MathematicalProgram &prog, Terrain &terrain, int n_steps, int n_legs)
Eigen::Array< Eigen::MatrixXd, Eigen::Dynamic, 1 > get_uncompressed_arrays(Eigen::MatrixXd &arr, Eigen::MatrixXd &sequence_offset, int n_steps, int n_legs, Leg step_sequence[])
void set_initial_and_goal_position(drake::solvers::MathematicalProgram &prog, int n_steps, double length_legs, Leg step_sequence[], Terrain &terrain, DecVars &decision_variables, bool enforce_goal_hard=true)
void writeMatToFile(Eigen::MatrixXd &mat, std::string filename)
void geometry_limits(drake::solvers::MathematicalProgram &prog, int n_steps, int n_legs, double length_legs, Leg step_sequence[], Terrain &terrain, double bbox_len, DecVars &decision_variables)
void writeDecVarsToFile(DecVars_res &decision_variables, std::string base_name="footstep_planner")
void minimize_remaining_length(drake::solvers::MathematicalProgram &prog, Terrain &terrain, int n_steps, int n_legs, DecVars &decision_variables)
Eigen::MatrixXd sequence_offset
Eigen::MatrixXd stone_rear_right
Eigen::MatrixXd position_ts
Eigen::MatrixXd position_rear_left
Eigen::MatrixXd position_rear_right
Eigen::MatrixXd position_front_right
Eigen::MatrixXd stone_front_right
Eigen::MatrixXd stone_rear_left
Eigen::MatrixXd stone_front_left
Eigen::MatrixXd position_front_left
MatrixXDecisionVariable position
MatrixXDecisionVariable bin_cos
MatrixXDecisionVariable stone
MatrixXDecisionVariable bin_sin
MatrixXDecisionVariable lin_sin
MatrixXDecisionVariable theta
MatrixXDecisionVariable lin_cos