class
CoMZMPControllerCoMZMPController implements the following control law.
where is the CoM position and the ZMP position. The gains and depends on the orientation of a frame rigidly attached to the CoM (B) w.r.t. the inertial frame (I). The rotation matrix depends only on the yaw angle.
Base classes
-
template<class _Input, class _Output>class BipedalLocomotion::System::Advanceable<CoMZMPControllerInput, CoMZMPControllerOutput>
- Basic class that represents a discrete system.
Public functions
-
auto initialize(std::weak_ptr<const ParametersHandler::
IParametersHandler> handler) -> bool override - Initialize the controller.
- auto getOutput() const -> const Output& final
- Get the the controller output.
- auto isOutputValid() const -> bool final
- Determines the validity of the object retrieved with getOutput()
- auto advance() -> bool final
- Compute the control law.
- auto setInput(const Input& input) -> bool final
- Set the input of the advanceable block.
- void setSetPoint(Eigen::Ref<const Eigen::Vector2d> CoMVelocity, Eigen::Ref<const Eigen::Vector2d> CoMPosition, Eigen::Ref<const Eigen::Vector2d> ZMPPosition)
- Set the desired set-point.
- void setFeedback(Eigen::Ref<const Eigen::Vector2d> CoMPosition, Eigen::Ref<const Eigen::Vector2d> ZMPPosition, const manif::SO2d& I_R_B)
- Set the state feedback.
- void setFeedback(Eigen::Ref<const Eigen::Vector2d> CoMPosition, Eigen::Ref<const Eigen::Vector2d> ZMPPosition, const double angle)
- Set the state feedback.
Function documentation
bool BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: initialize(std::weak_ptr<const ParametersHandler:: IParametersHandler> handler) override
Initialize the controller.
Parameters | |
---|---|
handler | pointer to the parameter handler. |
Returns | true in case of success/false otherwise. |
const Output& BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: getOutput() const final
Get the the controller output.
Returns | The velocity of the CoM. |
---|
bool BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: isOutputValid() const final
Determines the validity of the object retrieved with getOutput()
Returns | True if the object is valid, false otherwise. |
---|
bool BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: advance() final
Compute the control law.
Returns | True if the advance is successfull. |
---|
bool BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: setInput(const Input& input) final
Set the input of the advanceable block.
Parameters | |
---|---|
input | the CoMZMPControllerInput struct |
Returns | true in case of success and false otherwise. |
void BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: setSetPoint(Eigen::Ref<const Eigen::Vector2d> CoMVelocity,
Eigen::Ref<const Eigen::Vector2d> CoMPosition,
Eigen::Ref<const Eigen::Vector2d> ZMPPosition)
Set the desired set-point.
Parameters | |
---|---|
CoMVelocity | a 2d-vector containing the x and y coordinate of the CoM velocity. |
CoMPosition | a 2d-vector containing the x and y coordinate of the CoM position. |
ZMPPosition | a 2d-vector containing the x and y coordinate of the ZMP position. |
void BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: setFeedback(Eigen::Ref<const Eigen::Vector2d> CoMPosition,
Eigen::Ref<const Eigen::Vector2d> ZMPPosition,
const manif::SO2d& I_R_B)
Set the state feedback.
Parameters | |
---|---|
CoMPosition | a 2d-vector containing the x and y coordinate of the CoM position. |
ZMPPosition | a 2d-vector containing the x and y coordinate of the ZMP position. |
I_R_B | rotation matrix that brings a vector expressed in the frame rigidly attached to the CoM (B) to the inertial frame (I). |
void BipedalLocomotion:: SimplifiedModelControllers:: CoMZMPController:: setFeedback(Eigen::Ref<const Eigen::Vector2d> CoMPosition,
Eigen::Ref<const Eigen::Vector2d> ZMPPosition,
const double angle)
Set the state feedback.
Parameters | |
---|---|
CoMPosition | a 2d-vector containing the x and y coordinate of the CoM position. |
ZMPPosition | a 2d-vector containing the x and y coordinate of the ZMP position. |
angle | the yaw angle (in radians) represents the rotation matrix. The rotation brings a vector expressed in the frame rigidly attached to the CoM (B) to the inertial frame (I). The yaw angle allows the user to have different gains on the forward and lateral walking direction. |