#include <sobec/walk-with-traj/wbc_horizon.hpp>

| Public Member Functions | |
| WBCHorizon () | |
| WBCHorizon (const WBCHorizonSettings &settings, const RobotDesigner &design, const HorizonManager &horizon, const Eigen::VectorXd &q0, const Eigen::VectorXd &v0, const std::string &actuationCostName) | |
| void | initialize (const WBCHorizonSettings &settings, const RobotDesigner &design, const HorizonManager &horizon, const Eigen::VectorXd &q0, const Eigen::VectorXd &v0, const std::string &actuationCostName) | 
| void | updateSupportTiming () | 
| const Eigen::VectorXd & | shapeState (const Eigen::VectorXd &q, const Eigen::VectorXd &v) | 
| void | setForceAlongHorizon () | 
| std::vector< Support > | generateSupportCycle () | 
| void | generateFullHorizon (ModelMaker &mm, const Experiment &experiment) | 
| bool | timeToSolveDDP (int iteration) | 
| void | iterate (const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool is_feasible) | 
| void | iterate (int iteration, const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool is_feasible) | 
| void | iterateNoThinking (const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool is_feasible) | 
| void | iterateNoThinking (int iteration, const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool is_feasible) | 
| void | iterateNoThinkingWithDelay (const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool contact_left, bool contact_right, bool is_feasible) | 
| void | recedeWithCycle () | 
| void | goToNextDoubleSupport () | 
| WBCHorizonSettings & | get_settings () | 
| const Eigen::VectorXd & | get_x0 () const | 
| void | set_x0 (const Eigen::VectorXd &x0) | 
| HorizonManager & | get_fullHorizon () | 
| void | set_fullHorizon (const HorizonManager &fullHorizon) | 
| HorizonManager & | get_horizon () | 
| void | set_horizon (const HorizonManager &horizon) | 
| RobotDesigner & | get_designer () | 
| void | set_designer (const RobotDesigner &designer) | 
| const std::vector< int > & | get_land_LF () | 
| const std::vector< int > & | get_land_RF () | 
| const std::vector< int > & | get_takeoff_LF () | 
| const std::vector< int > & | get_takeoff_RF () | 
| const int & | get_horizon_iteration () | 
| const std::vector< pinocchio::SE3 > & | getPoseRef_LF () | 
| const pinocchio::SE3 & | getPoseRef_LF (unsigned long time) | 
| void | setPoseRef_LF (const std::vector< pinocchio::SE3 > &ref_LF_poses) | 
| void | setPoseRef_LF (const pinocchio::SE3 &ref_LF_pose, unsigned long time) | 
| const std::vector< pinocchio::SE3 > & | getPoseRef_RF () | 
| const pinocchio::SE3 & | getPoseRef_RF (unsigned long time) | 
| void | setPoseRef_RF (const std::vector< pinocchio::SE3 > &ref_RF_poses) | 
| void | setPoseRef_RF (const pinocchio::SE3 &ref_RF_pose, unsigned long time) | 
| const eVector3 & | getCoMRef () | 
| void | setCoMRef (eVector3 ref_com) | 
| const Eigen::Matrix3d & | getBaseRotRef () | 
| void | setBaseRotRef (Eigen::Matrix3d ref_base_rotation) | 
| const eVector3 & | getVelRef_COM () | 
| void | setVelRef_COM (eVector3 ref_com_vel) | 
| bool | horizonEnd () | 
| std::vector< pinocchio::SE3 > & | ref_LF_poses () | 
| std::vector< pinocchio::SE3 > & | ref_RF_poses () | 
| eVector3 & | ref_com () | 
| Eigen::Matrix3d & | ref_base_rot () | 
| eVector3 & | ref_com_vel () | 
| Protected Member Functions | |
| void | updateStepTrackerReferences () | 
| void | updateStepTrackerLastReference () | 
| void | updateNonThinkingReferences () | 
| Protected Attributes | |
| WBCHorizonSettings | settings_ | 
| RobotDesigner | designer_ | 
| HorizonManager | horizon_ | 
| HorizonManager | fullHorizon_ | 
| eVector3 | ref_com_vel_ | 
| eVector3 | ref_com_ | 
| eVector3 | ref_dcm_ | 
| Eigen::Matrix3d | ref_base_rotation_ | 
| Eigen::VectorXd | x0_ | 
| int | horizon_iteration_ | 
| double | yaw_left_ | 
| double | yaw_right_ | 
| std::vector< int > | takeoff_RF_ | 
| std::vector< int > | takeoff_LF_ | 
| std::vector< int > | land_RF_ | 
| std::vector< int > | land_LF_ | 
| std::vector< pinocchio::SE3 > | ref_LF_poses_ | 
| std::vector< pinocchio::SE3 > | ref_RF_poses_ | 
| bool | initialized_ = false | 
| std::vector< unsigned long > | controlled_joints_id_ | 
| Eigen::VectorXd | x_internal_ | 
| bool | time_to_solve_ddp_ = false | 
| sobec::WBCHorizon::WBCHorizon | ( | ) | 
| sobec::WBCHorizon::WBCHorizon | ( | const WBCHorizonSettings & | settings, | 
| const RobotDesigner & | design, | ||
| const HorizonManager & | horizon, | ||
| const Eigen::VectorXd & | q0, | ||
| const Eigen::VectorXd & | v0, | ||
| const std::string & | actuationCostName | ||
| ) | 
| void sobec::WBCHorizon::generateFullHorizon | ( | ModelMaker & | mm, | 
| const Experiment & | experiment | ||
| ) | 
| std::vector< Support > sobec::WBCHorizon::generateSupportCycle | ( | ) | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| void sobec::WBCHorizon::goToNextDoubleSupport | ( | ) | 
| 
 | inline | 
| void sobec::WBCHorizon::initialize | ( | const WBCHorizonSettings & | settings, | 
| const RobotDesigner & | design, | ||
| const HorizonManager & | horizon, | ||
| const Eigen::VectorXd & | q0, | ||
| const Eigen::VectorXd & | v0, | ||
| const std::string & | actuationCostName | ||
| ) | 
The posture required here is the full robot posture in the order of pinicchio
| void sobec::WBCHorizon::iterate | ( | const Eigen::VectorXd & | q_current, | 
| const Eigen::VectorXd & | v_current, | ||
| bool | is_feasible | ||
| ) | 
| void sobec::WBCHorizon::iterate | ( | int | iteration, | 
| const Eigen::VectorXd & | q_current, | ||
| const Eigen::VectorXd & | v_current, | ||
| bool | is_feasible | ||
| ) | 
| void sobec::WBCHorizon::iterateNoThinking | ( | const Eigen::VectorXd & | q_current, | 
| const Eigen::VectorXd & | v_current, | ||
| bool | is_feasible | ||
| ) | 
| void sobec::WBCHorizon::iterateNoThinking | ( | int | iteration, | 
| const Eigen::VectorXd & | q_current, | ||
| const Eigen::VectorXd & | v_current, | ||
| bool | is_feasible | ||
| ) | 
| void sobec::WBCHorizon::iterateNoThinkingWithDelay | ( | const Eigen::VectorXd & | q_current, | 
| const Eigen::VectorXd & | v_current, | ||
| bool | contact_left, | ||
| bool | contact_right, | ||
| bool | is_feasible | ||
| ) | 
| void sobec::WBCHorizon::recedeWithCycle | ( | ) | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| void sobec::WBCHorizon::setForceAlongHorizon | ( | ) | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| const Eigen::VectorXd & sobec::WBCHorizon::shapeState | ( | const Eigen::VectorXd & | q, | 
| const Eigen::VectorXd & | v | ||
| ) | 
| bool sobec::WBCHorizon::timeToSolveDDP | ( | int | iteration | ) | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| void sobec::WBCHorizon::updateSupportTiming | ( | ) | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
Form to use this class: 1) The function iterate produces the torques to command. 2) All cost references must be updated separtely in the control loop.
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected |