#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 |