Go to the documentation of this file. 1 #ifndef SOBEC_WBC_HORIZON
2 #define SOBEC_WBC_HORIZON
4 #include <pinocchio/fwd.hpp>
8 #include <ndcurves/bezier_curve.h>
9 #include <ndcurves/fwd.h>
10 #include <ndcurves/piecewise_curve.h>
11 #include <ndcurves/polynomial.h>
12 #include <ndcurves/se3_curve.h>
90 const Eigen::VectorXd &v0,
const std::string &actuationCostName);
94 const Eigen::VectorXd &q0,
const Eigen::VectorXd &v0,
95 const std::string &actuationCostName);
99 const Eigen::VectorXd &
shapeState(
const Eigen::VectorXd &q,
100 const Eigen::VectorXd &v);
110 void iterate(
const Eigen::VectorXd &q_current,
111 const Eigen::VectorXd &v_current,
bool is_feasible);
113 void iterate(
int iteration,
const Eigen::VectorXd &q_current,
114 const Eigen::VectorXd &v_current,
bool is_feasible);
116 const Eigen::VectorXd &v_current,
bool is_feasible);
119 const Eigen::VectorXd &v_current,
bool is_feasible);
121 const Eigen::VectorXd &v_current,
122 bool contact_left,
bool contact_right,
195 #endif // SOBEC_WBC_HORIZON
Eigen::VectorXd x_internal_
Definition: wbc_horizon.hpp:83
const int & get_horizon_iteration()
Definition: wbc_horizon.hpp:149
double min_force
Definition: wbc_horizon.hpp:37
std::vector< unsigned long > controlled_joints_id_
Definition: wbc_horizon.hpp:82
void set_x0(const Eigen::VectorXd &x0)
Definition: wbc_horizon.hpp:131
int T
Definition: wbc_horizon.hpp:28
const pinocchio::SE3 & getPoseRef_LF(unsigned long time)
Definition: wbc_horizon.hpp:153
void iterate(const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool is_feasible)
Definition: wbc_horizon.cpp:176
int totalSteps
Definition: wbc_horizon.hpp:27
void updateSupportTiming()
Definition: wbc_horizon.cpp:403
Definition: wbc_horizon.hpp:23
const std::vector< pinocchio::SE3 > & getPoseRef_RF()
Definition: wbc_horizon.hpp:163
std::vector< int > takeoff_RF_
Definition: wbc_horizon.hpp:68
void set_horizon(const HorizonManager &horizon)
Definition: wbc_horizon.hpp:139
std::vector< Support > generateSupportCycle()
Definition: wbc_horizon.cpp:130
std::vector< int > takeoff_LF_
Definition: wbc_horizon.hpp:68
void iterateNoThinking(const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool is_feasible)
Definition: wbc_horizon.cpp:201
const Eigen::VectorXd & get_x0() const
Definition: wbc_horizon.hpp:130
const std::vector< int > & get_takeoff_RF()
Definition: wbc_horizon.hpp:147
const std::vector< pinocchio::SE3 > & getPoseRef_LF()
Definition: wbc_horizon.hpp:152
WBCHorizon()
Definition: wbc_horizon.cpp:5
Experiment
Definition: model_factory.hpp:22
bool initialized_
Definition: wbc_horizon.hpp:79
HorizonManager horizon_
Definition: wbc_horizon.hpp:53
std::vector< int > land_LF_
Definition: wbc_horizon.hpp:68
eVector3 & ref_com()
Definition: wbc_horizon.hpp:189
double yaw_right_
Definition: wbc_horizon.hpp:65
const pinocchio::SE3 & getPoseRef_RF(unsigned long time)
Definition: wbc_horizon.hpp:164
int Tstep
Definition: wbc_horizon.hpp:31
Definition: designer.hpp:28
RobotDesigner & get_designer()
Definition: wbc_horizon.hpp:141
void setPoseRef_LF(const pinocchio::SE3 &ref_LF_pose, unsigned long time)
Definition: wbc_horizon.hpp:159
HorizonManager & get_horizon()
Definition: wbc_horizon.hpp:138
Definition: horizon_manager.hpp:19
Eigen::VectorXd x0_
Definition: wbc_horizon.hpp:61
const Eigen::VectorXd & shapeState(const Eigen::VectorXd &q, const Eigen::VectorXd &v)
Definition: wbc_horizon.cpp:379
std::vector< pinocchio::SE3 > & ref_RF_poses()
Definition: wbc_horizon.hpp:188
void setPoseRef_RF(const pinocchio::SE3 &ref_RF_pose, unsigned long time)
Definition: wbc_horizon.hpp:170
void setForceAlongHorizon()
Definition: wbc_horizon.cpp:69
std::vector< pinocchio::SE3 > ref_LF_poses_
Definition: wbc_horizon.hpp:76
bool horizonEnd()
Definition: wbc_horizon.hpp:184
void setCoMRef(eVector3 ref_com)
Definition: wbc_horizon.hpp:175
Definition: wbc_horizon.hpp:42
double support_force
Definition: wbc_horizon.hpp:38
Definition: activation-quad-ref.hpp:19
const eVector3 & getVelRef_COM()
Definition: wbc_horizon.hpp:182
std::vector< int > land_RF_
Definition: wbc_horizon.hpp:68
const std::vector< int > & get_takeoff_LF()
Definition: wbc_horizon.hpp:146
void setPoseRef_LF(const std::vector< pinocchio::SE3 > &ref_LF_poses)
Definition: wbc_horizon.hpp:156
WBCHorizonSettings & get_settings()
Definition: wbc_horizon.hpp:128
eVector3 ref_dcm_
Definition: wbc_horizon.hpp:58
WBCHorizonSettings settings_
Definition: wbc_horizon.hpp:51
int TdoubleSupport
Definition: wbc_horizon.hpp:29
const eVector3 & getCoMRef()
Definition: wbc_horizon.hpp:174
int ddpIteration
Definition: wbc_horizon.hpp:32
Eigen::Matrix3d ref_base_rotation_
Definition: wbc_horizon.hpp:59
double yaw_left_
Definition: wbc_horizon.hpp:64
void updateStepTrackerReferences()
Definition: wbc_horizon.cpp:273
bool time_to_solve_ddp_
Definition: wbc_horizon.hpp:84
int TsingleSupport
Definition: wbc_horizon.hpp:30
HorizonManager fullHorizon_
Definition: wbc_horizon.hpp:54
double simu_step
Definition: wbc_horizon.hpp:35
void generateFullHorizon(ModelMaker &mm, const Experiment &experiment)
Definition: wbc_horizon.cpp:160
eVector3 ref_com_vel_
Definition: wbc_horizon.hpp:56
eVector3 & ref_com_vel()
Definition: wbc_horizon.hpp:191
void recedeWithCycle()
Definition: wbc_horizon.cpp:356
void set_designer(const RobotDesigner &designer)
Definition: wbc_horizon.hpp:142
void iterateNoThinkingWithDelay(const Eigen::VectorXd &q_current, const Eigen::VectorXd &v_current, bool contact_left, bool contact_right, bool is_feasible)
Definition: wbc_horizon.cpp:228
bool timeToSolveDDP(int iteration)
Definition: wbc_horizon.cpp:171
void set_fullHorizon(const HorizonManager &fullHorizon)
Definition: wbc_horizon.hpp:134
void setVelRef_COM(eVector3 ref_com_vel)
Definition: wbc_horizon.hpp:183
void setPoseRef_RF(const std::vector< pinocchio::SE3 > &ref_RF_poses)
Definition: wbc_horizon.hpp:167
Eigen::Matrix3d & ref_base_rot()
Definition: wbc_horizon.hpp:190
unsigned long size()
Definition: horizon_manager.cpp:353
void initialize(const WBCHorizonSettings &settings, const RobotDesigner &design, const HorizonManager &horizon, const Eigen::VectorXd &q0, const Eigen::VectorXd &v0, const std::string &actuationCostName)
Definition: wbc_horizon.cpp:15
Definition: model_factory.hpp:79
const std::vector< int > & get_land_LF()
Definition: wbc_horizon.hpp:144
void setBaseRotRef(Eigen::Matrix3d ref_base_rotation)
Definition: wbc_horizon.hpp:178
void goToNextDoubleSupport()
Definition: wbc_horizon.cpp:365
double Dt
Definition: wbc_horizon.hpp:34
eVector3 ref_com_
Definition: wbc_horizon.hpp:57
void updateNonThinkingReferences()
Definition: wbc_horizon.cpp:317
std::vector< pinocchio::SE3 > & ref_LF_poses()
Definition: wbc_horizon.hpp:187
const std::vector< int > & get_land_RF()
Definition: wbc_horizon.hpp:145
RobotDesigner designer_
Definition: wbc_horizon.hpp:52
const Eigen::Matrix3d & getBaseRotRef()
Definition: wbc_horizon.hpp:177
int horizon_iteration_
Definition: wbc_horizon.hpp:63
Eigen::Vector3d eVector3
Definition: fwd.hpp:143
void updateStepTrackerLastReference()
Definition: wbc_horizon.cpp:302
HorizonManager & get_fullHorizon()
Definition: wbc_horizon.hpp:133
int Nc
Definition: wbc_horizon.hpp:40
std::vector< pinocchio::SE3 > ref_RF_poses_
Definition: wbc_horizon.hpp:76