centroidal_control_collection
FootGuidedControl.h
Go to the documentation of this file.
1 /* Author: Masaki Murooka */
2 
3 #pragma once
4 
5 #include <memory>
6 
7 #include <Eigen/Core>
8 
9 #include <CCC/Constants.h>
10 
11 namespace CCC
12 {
24 {
25 public:
27  struct RefData
28  {
30  double transit_start_zmp = 0;
31 
33  double transit_end_zmp = 0;
34 
36  double transit_start_time = 0;
37 
39  double transit_duration = 0;
40  };
41 
46  using InitialParam = double;
47 
48 public:
52  FootGuidedControl1d(double com_height) : omega_(std::sqrt(constants::g / com_height)) {}
53 
60  double planOnce(const RefData & ref_data, const InitialParam & initial_param, double current_time) const;
61 
62 protected:
64  double omega_ = 0;
65 };
66 
75 {
76 public:
78  struct RefData
79  {
81  Eigen::Vector2d transit_start_zmp = Eigen::Vector2d::Zero();
82 
84  Eigen::Vector2d transit_end_zmp = Eigen::Vector2d::Zero();
85 
87  double transit_start_time = 0;
88 
90  double transit_duration = 0;
91  };
92 
97  using InitialParam = Eigen::Vector2d;
98 
99 public:
103  FootGuidedControl(double com_height) : fgc_1d_(std::make_shared<FootGuidedControl1d>(com_height)) {}
104 
111  Eigen::Vector2d planOnce(const RefData & ref_data, const InitialParam & initial_param, double current_time) const;
112 
113 protected:
115  std::shared_ptr<FootGuidedControl1d> fgc_1d_;
116 };
117 } // namespace CCC
CCC::constants::g
constexpr double g
Gravitational acceleration [m/s^2].
Definition: Constants.h:10
CCC::FootGuidedControl::FootGuidedControl
FootGuidedControl(double com_height)
Constructor.
Definition: FootGuidedControl.h:103
CCC::FootGuidedControl::RefData::transit_end_zmp
Eigen::Vector2d transit_end_zmp
Transition end ZMP [m].
Definition: FootGuidedControl.h:84
CCC::FootGuidedControl::InitialParam
Eigen::Vector2d InitialParam
Initial parameter.
Definition: FootGuidedControl.h:97
Constants.h
CCC::FootGuidedControl1d
Foot-guided control for one-dimensional motion.
Definition: FootGuidedControl.h:23
CCC::FootGuidedControl1d::RefData::transit_start_zmp
double transit_start_zmp
Transition start ZMP [m].
Definition: FootGuidedControl.h:30
CCC::FootGuidedControl::fgc_1d_
std::shared_ptr< FootGuidedControl1d > fgc_1d_
Foot-guided control for one-dimensional motion.
Definition: FootGuidedControl.h:115
CCC::FootGuidedControl1d::omega_
double omega_
Time constant for inverted pendulum dynamics.
Definition: FootGuidedControl.h:64
CCC::FootGuidedControl::RefData::transit_duration
double transit_duration
Transition duration [s].
Definition: FootGuidedControl.h:90
CCC::FootGuidedControl::planOnce
Eigen::Vector2d planOnce(const RefData &ref_data, const InitialParam &initial_param, double current_time) const
Plan one step.
CCC
Definition: CommonModels.h:7
CCC::FootGuidedControl::RefData::transit_start_time
double transit_start_time
Transition start time [s].
Definition: FootGuidedControl.h:87
CCC::FootGuidedControl1d::RefData
Reference data.
Definition: FootGuidedControl.h:27
CCC::FootGuidedControl1d::RefData::transit_duration
double transit_duration
Transition duration [s].
Definition: FootGuidedControl.h:39
CCC::FootGuidedControl::RefData
Reference data.
Definition: FootGuidedControl.h:78
CCC::FootGuidedControl
Foot-guided control.
Definition: FootGuidedControl.h:74
CCC::FootGuidedControl1d::InitialParam
double InitialParam
Initial parameter.
Definition: FootGuidedControl.h:46
CCC::FootGuidedControl::RefData::transit_start_zmp
Eigen::Vector2d transit_start_zmp
Transition start ZMP [m].
Definition: FootGuidedControl.h:81
CCC::FootGuidedControl1d::RefData::transit_start_time
double transit_start_time
Transition start time [s].
Definition: FootGuidedControl.h:36
CCC::FootGuidedControl1d::FootGuidedControl1d
FootGuidedControl1d(double com_height)
Constructor.
Definition: FootGuidedControl.h:52
CCC::FootGuidedControl1d::RefData::transit_end_zmp
double transit_end_zmp
Transition end ZMP [m].
Definition: FootGuidedControl.h:33
CCC::FootGuidedControl1d::planOnce
double planOnce(const RefData &ref_data, const InitialParam &initial_param, double current_time) const
Plan one step.