Go to the documentation of this file. 1 #ifndef SOBEC_HORIZON_MANAGER
2 #define SOBEC_HORIZON_MANAGER
25 boost::shared_ptr<crocoddyl::CostModelResidual> cone_;
26 boost::shared_ptr<crocoddyl::CostModelResidual> force_cost_;
27 pinocchio::Force force_;
28 std::vector<Eigen::VectorXd> warm_xs_;
29 std::vector<Eigen::VectorXd> warm_us_;
30 Eigen::VectorXd new_ref_;
32 Eigen::VectorXd command_torque_;
33 Eigen::VectorXd tr_error_;
34 Eigen::VectorXd K_tr_error_;
38 std::set<std::string> active_contacts_;
44 const Eigen::VectorXd &x0,
45 const std::vector<AMA> &runningModels,
46 const AMA &terminalModel);
49 const Eigen::VectorXd &x0,
50 const std::vector<AMA> &runningModels,
51 const AMA &terminalModel);
54 AMA ama(
const unsigned long time);
55 IAM iam(
const unsigned long time);
57 DAM dam(
const unsigned long time);
59 ADA ada(
const unsigned long time);
60 IAD iad(
const unsigned long time);
61 DAD dad(
const unsigned long time);
62 pinocchio::Data
pinData(
const unsigned long time);
66 boost::shared_ptr<crocoddyl::StateMultibody>
state(
const unsigned long time);
67 boost::shared_ptr<crocoddyl::ActuationModelFloatingBase>
actuation(
68 const unsigned long time);
71 const std::string &nameCostActuation,
72 const Eigen::VectorXd &reference);
74 const std::string &nameCostActuation);
76 const std::string &nameCostActuation,
77 const Eigen::VectorXd &
x);
79 const std::string &nameCostActuation,
80 const std::string &nameCostState);
82 const pinocchio::SE3 &ref_placement);
84 const std::string &nameCost,
85 const Eigen::Matrix3d &ref_rotation);
87 const Eigen::Matrix3d &ref_rotation);
89 const std::string &nameCost,
92 const pinocchio::SE3 &ref_placement);
96 const unsigned long time,
const std::string &nameCostFootPose);
98 const std::string &nameCostFootPose);
102 const pinocchio::Motion &ref_velocity);
104 const std::string &nameContacttLF);
106 const std::string &nameContactRF);
108 const std::string &nameContactLF);
110 const std::string &nameContactRF);
119 void setSwingingLF(
const unsigned long time,
const std::string &nameContactLF,
120 const std::string &nameContactRF,
121 const std::string &nameForceContactLF);
122 void setSwingingRF(
const unsigned long time,
const std::string &nameContactLF,
123 const std::string &nameContactRF,
124 const std::string &nameForceContactRF);
126 const std::string &nameContactLF,
127 const std::string &nameContactRF);
129 const std::string &nameCost,
const eVector2 &XYpose,
130 const double &orientation);
133 const std::string &nameFootForceCost);
135 const std::string &nameFootForceCost);
137 const std::set<std::string> &
get_contacts(
const unsigned long time);
144 unsigned long size();
146 void solve(
const Eigen::VectorXd &measured_x,
const std::size_t ddpIteration,
147 const bool is_feasible =
false);
148 const Eigen::VectorXd &
currentTorques(
const Eigen::VectorXd &measured_x);
154 #endif // SOBEC_HORIZON_MANAGER
boost::shared_ptr< crocoddyl::IntegratedActionDataEuler > IAD
Definition: fwd.hpp:146
void initialize(const HorizonManagerSettings &horizonSettings, const Eigen::VectorXd &x0, const std::vector< AMA > &runningModels, const AMA &terminalModel)
Definition: horizon_manager.cpp:18
IAM terminaliam()
Definition: horizon_manager.cpp:45
void setActuationReference(const unsigned long time, const std::string &nameCostActuation, const Eigen::VectorXd &reference)
Definition: horizon_manager.cpp:143
void setDoubleSupport(const unsigned long time, const std::string &nameContactLF, const std::string &nameContactRF)
Definition: horizon_manager.cpp:309
Eigen::Vector2d eVector2
Definition: fwd.hpp:144
IAD iad(const unsigned long time)
Definition: horizon_manager.cpp:76
Cost costs(const unsigned long time)
Definition: horizon_manager.cpp:62
void setTerminalPoseReference(const std::string &nameCost, const pinocchio::SE3 &ref_placement)
Definition: horizon_manager.cpp:192
std::string leftFootName
Definition: horizon_manager.hpp:15
boost::shared_ptr< crocoddyl::SolverFDDP > DDP
Definition: fwd.hpp:155
HorizonManager()
Definition: horizon_manager.cpp:9
void solve(const Eigen::VectorXd &measured_x, const std::size_t ddpIteration, const bool is_feasible=false)
Definition: horizon_manager.cpp:374
boost::shared_ptr< crocoddyl::ActuationModelFloatingBase > actuation(const unsigned long time)
Definition: horizon_manager.cpp:98
Contact contacts(const unsigned long time)
Definition: horizon_manager.cpp:68
boost::shared_ptr< crocoddyl::StateMultibody > state(const unsigned long time)
Definition: horizon_manager.cpp:91
void setTerminalTranslationReference(const std::string &nameCost, const eVector3 &ref_translation)
Definition: horizon_manager.cpp:206
void setRotationReference(const unsigned long time, const std::string &nameCost, const Eigen::Matrix3d &ref_rotation)
Definition: horizon_manager.cpp:169
Definition: horizon_manager.hpp:13
void setPoseReference(const unsigned long time, const std::string &nameCost, const pinocchio::SE3 &ref_placement)
Definition: horizon_manager.cpp:161
pinocchio::Data pinData(const unsigned long time)
Definition: horizon_manager.cpp:87
const std::set< std::string > & get_contacts(const unsigned long time)
Definition: horizon_manager.cpp:368
Eigen::VectorXd getActuationReference(const unsigned long time, const std::string &nameCostActuation)
Definition: horizon_manager.cpp:151
boost::shared_ptr< crocoddyl::ContactModelMultiple > Contact
Definition: fwd.hpp:154
boost::shared_ptr< crocoddyl::DifferentialActionModelContactFwdDynamics > DAM
Definition: fwd.hpp:150
void activateContactRF(const unsigned long time, const std::string &nameContactRF)
Definition: horizon_manager.cpp:108
void setForceReference(const unsigned long time, const std::string &nameCost, const eVector6 &reference)
Definition: horizon_manager.cpp:265
Definition: horizon_manager.hpp:19
AMA ama(const unsigned long time)
Definition: horizon_manager.cpp:36
boost::shared_ptr< crocoddyl::ActionModelAbstract > AMA
Definition: fwd.hpp:147
DAM terminaldam()
Definition: horizon_manager.cpp:56
Definition: activation-quad-ref.hpp:19
void setTerminalDCMReference(const std::string &nameCost, const eVector3 &ref_translation)
Definition: horizon_manager.cpp:199
void removeContactLF(const unsigned long time, const std::string &nameContactLF)
Definition: horizon_manager.cpp:113
boost::shared_ptr< crocoddyl::CostModelSum > Cost
Definition: fwd.hpp:153
void setTranslationReference(const unsigned long time, const std::string &nameCost, const eVector3 &ref_translation)
Definition: horizon_manager.cpp:184
const eVector3 & getFootTorque(const unsigned long time, const std::string &nameFootForceCost)
Definition: horizon_manager.cpp:328
const pinocchio::SE3 & getFootPoseReference(const unsigned long time, const std::string &nameCostFootPose)
Definition: horizon_manager.cpp:220
int supportSize(const unsigned long time)
Definition: horizon_manager.cpp:358
void activateContactLF(const unsigned long time, const std::string &nameContacttLF)
Definition: horizon_manager.cpp:103
void setBalancingTorque(const unsigned long time, const std::string &nameCostActuation, const Eigen::VectorXd &x)
Definition: horizon_manager.cpp:123
void setTerminalPoseCoM(const std::string &nameCost, const eVector3 &ref_placement)
Definition: horizon_manager.cpp:213
void set_ddp(const DDP &ddp)
Definition: horizon_manager.hpp:151
void removeContactRF(const unsigned long time, const std::string &nameContactRF)
Definition: horizon_manager.cpp:118
void setVelocityRefCOM(const unsigned long time, const std::string &nameCost, const eVector3 &ref_placement)
Definition: horizon_manager.cpp:240
void setSwingingLF(const unsigned long time, const std::string &nameContactLF, const std::string &nameContactRF, const std::string &nameForceContactLF)
Definition: horizon_manager.cpp:291
bool initialized_
Definition: horizon_manager.hpp:52
Cost terminalCosts()
Definition: horizon_manager.cpp:66
ADA ada(const unsigned long time)
Definition: horizon_manager.cpp:72
boost::shared_ptr< crocoddyl::ActionDataAbstract > ADA
Definition: fwd.hpp:148
const pinocchio::SE3 & getTerminalFootPoseReference(const std::string &nameCostFootPose)
Definition: horizon_manager.cpp:229
void setSurfaceInequality(const unsigned long time, const std::string &nameCost, const eVector2 &XYpose, const double &orientation)
Definition: horizon_manager.cpp:256
Eigen::Matrix< double, 6, 1 > eVector6
Definition: fwd.hpp:141
void setSwingingRF(const unsigned long time, const std::string &nameContactLF, const std::string &nameContactRF, const std::string &nameForceContactRF)
Definition: horizon_manager.cpp:300
void setTerminalRotationReference(const std::string &nameCost, const Eigen::Matrix3d &ref_rotation)
Definition: horizon_manager.cpp:177
DAD dad(const unsigned long time)
Definition: horizon_manager.cpp:81
void setWrenchReference(const unsigned long time, const std::string &nameCost, const eVector6 &reference)
Definition: horizon_manager.cpp:276
std::string rightFootName
Definition: horizon_manager.hpp:16
void recede()
Definition: horizon_manager.cpp:349
boost::shared_ptr< crocoddyl::IntegratedActionModelEuler > IAM
Definition: fwd.hpp:145
unsigned long size()
Definition: horizon_manager.cpp:353
void setVelocityRefFeet(const unsigned long time, const std::string &nameCost, const pinocchio::Motion &ref_velocity)
Definition: horizon_manager.cpp:248
const eVector3 & getFootForce(const unsigned long time, const std::string &nameFootForceCost)
Definition: horizon_manager.cpp:316
DDP get_ddp()
Definition: horizon_manager.hpp:150
const Eigen::VectorXd & currentTorques(const Eigen::VectorXd &measured_x)
Definition: horizon_manager.cpp:393
Eigen::Vector3d eVector3
Definition: fwd.hpp:143
DAM dam(const unsigned long time)
Definition: horizon_manager.cpp:50
boost::shared_ptr< crocoddyl::DifferentialActionDataContactFwdDynamics > DAD
Definition: fwd.hpp:152
IAM iam(const unsigned long time)
Definition: horizon_manager.cpp:40