mc_rtc  2.12.0
StabilizerStandingState.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2019 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 
7 #include <mc_control/fsm/State.h>
8 #include <mc_planning/Pendulum.h>
10 
11 namespace mc_tasks
12 {
13 namespace lipm_stabilizer
14 {
15 struct StabilizerTask;
16 }
17 } // namespace mc_tasks
18 
19 namespace mc_control
20 {
21 namespace fsm
22 {
23 
40 {
41  void configure(const mc_rtc::Configuration & config) override;
42 
43  void start(Controller &) override;
44 
45  bool run(Controller &) override;
46 
47  void teardown(Controller &) override;
48 
49 protected:
58  void targetCoP(const Eigen::Vector3d & cop);
59 
70  void targetCoM(const Eigen::Vector3d & com);
71 
77  double copHeight() const;
78 
79 protected:
80  std::shared_ptr<mc_tasks::lipm_stabilizer::StabilizerTask> stabilizerTask_ = nullptr;
82  bool hasCompletion_ = false;
85  Eigen::Vector3d dcmThreshold_ = Eigen::Vector3d{0.01, 0.01, 0.01};
89  double K_ = 5;
90  double D_ = 0.;
92  double comHeight_ = 0;
93  Eigen::Vector3d comTarget_ = Eigen::Vector3d::Zero();
94  Eigen::Vector3d copTarget_ = Eigen::Vector3d::Zero();
96  bool optionalGUI_ = true;
98  std::string robot_ = "";
99  std::string anchorFrameFunction_ = "";
101  false;
102 };
103 
104 } // namespace fsm
105 } // namespace mc_control
Definition: CompletionCriteria.h:11
Definition: StabilizerStandingState.h:12
Definition: Controller.h:50
Simple state to control and stabilize the CoM of a biped-like robot using the LIPMStabilizer.
Definition: StabilizerStandingState.h:40
std::string robot_
Definition: StabilizerStandingState.h:98
void targetCoP(const Eigen::Vector3d &cop)
Targets a given Cop. The CoM height will be automatically set at comHeight_ above this CoP....
double K_
Definition: StabilizerStandingState.h:89
std::string anchorFrameFunction_
Definition: StabilizerStandingState.h:99
void teardown(Controller &) override
void configure(const mc_rtc::Configuration &config) override
bool run(Controller &) override
Eigen::Vector3d dcmThreshold_
Definition: StabilizerStandingState.h:85
void start(Controller &) override
Eigen::Vector3d copTarget_
Definition: StabilizerStandingState.h:94
bool ownsAnchorFrameCallback_
Definition: StabilizerStandingState.h:100
bool optionalGUI_
Definition: StabilizerStandingState.h:96
double D_
Definition: StabilizerStandingState.h:90
mc_rtc::Configuration config_
Definition: StabilizerStandingState.h:81
mc_planning::Pendulum pendulum_
Definition: StabilizerStandingState.h:87
std::shared_ptr< mc_tasks::lipm_stabilizer::StabilizerTask > stabilizerTask_
Definition: StabilizerStandingState.h:80
Eigen::Vector3d comTarget_
Definition: StabilizerStandingState.h:93
double comHeight_
Definition: StabilizerStandingState.h:92
bool hasCompletion_
Definition: StabilizerStandingState.h:82
double copHeight() const
CoP height from contacts.
void targetCoM(const Eigen::Vector3d &com)
Freely target a CoM position. The corresponding CoP position will be computed as the projection of th...
Definition: State.h:59
Definition: Pendulum.h:18
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166
Definition: StabilizerTask.h:57