centroidal_control_collection
|
State-space model of CoM-ZMP dynamics with CoM jerk input and ZMP output. More...
#include <CommonModels.h>
Public Member Functions | |
ComZmpModelJerkInput (double com_height) | |
Constructor. More... | |
Public Member Functions inherited from CCC::StateSpaceModel< 3, 1, 1 > | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | StateSpaceModel (int state_dim=StateDim, int input_dim=InputDim, int output_dim=OutputDim) |
Constructor. More... | |
virtual | ~StateSpaceModel ()=default |
Destructor. More... | |
int | stateDim () const |
Gets the state dimension. More... | |
int | inputDim () const |
Gets the input dimension. More... | |
int | outputDim () const |
Gets the output dimension. More... | |
StateDimVector | stateEq (const StateDimVector &x, const InputDimVector &u) const |
Calculate the continuous state equation. More... | |
StateDimVector | stateEqDisc (const StateDimVector &x, const InputDimVector &u) const |
Calculate the discrete state equation. More... | |
OutputDimVector | observEq (const StateDimVector &x) const |
Calculate the observation equation. More... | |
OutputDimVector | observEq (const StateDimVector &x, const InputDimVector &u) const |
Calculate the observation equation. More... | |
void | calcDiscMatrix (double dt) |
Calculate the discrete system matrices \(\boldsymbol{A}_d, \boldsymbol{B}_d, \boldsymbol{e}_d\). More... | |
Additional Inherited Members | |
Public Types inherited from CCC::StateSpaceModel< 3, 1, 1 > | |
using | StateDimVector = Eigen::Matrix< double, StateDim, 1 > |
Type of state vector. More... | |
using | InputDimVector = Eigen::Matrix< double, InputDim, 1 > |
Type of input vector. More... | |
using | OutputDimVector = Eigen::Matrix< double, OutputDim, 1 > |
Type of output vector. More... | |
Public Attributes inherited from CCC::StateSpaceModel< 3, 1, 1 > | |
const int | state_dim_ |
State dimension. More... | |
const int | input_dim_ |
Input dimension. More... | |
const int | output_dim_ |
Output dimension. More... | |
Eigen::Matrix< double, StateDim, StateDim > | A_ |
Matrix \(\boldsymbol{A}\) of continuous state equation. More... | |
Eigen::Matrix< double, StateDim, InputDim > | B_ |
Matrix \(\boldsymbol{B}\) of continuous state equation. More... | |
Eigen::Matrix< double, OutputDim, StateDim > | C_ |
Matrix \(\boldsymbol{C}\) of observation equation. More... | |
Eigen::Matrix< double, OutputDim, InputDim > | D_ |
Matrix \(\boldsymbol{D}\) of observation equation. More... | |
StateDimVector | E_ |
Offset vector \(\boldsymbol{e}\) of continuous state equation. More... | |
OutputDimVector | F_ |
Offset vector \(\boldsymbol{f}\) of observation equation. More... | |
double | dt_ |
Discretization timestep [sec] (zero if discrete coefficients are not initialized) More... | |
Eigen::Matrix< double, StateDim, StateDim > | Ad_ |
Matrix \(\boldsymbol{A}_d\) of discrete state equation. More... | |
Eigen::Matrix< double, StateDim, InputDim > | Bd_ |
Matrix \(\boldsymbol{B}_d\) of discrete state equation. More... | |
StateDimVector | Ed_ |
Offset vector \(\boldsymbol{e}_d\) of discrete state equation. More... | |
State-space model of CoM-ZMP dynamics with CoM jerk input and ZMP output.
Dynamics is expressed by the following equation.
\begin{align*} \ddot{c}_x = \dfrac{g}{c_z} (c_x - z_x) \end{align*}
\(\boldsymbol{c}\) and \(\boldsymbol{z}\) are CoM and ZMP.
This can be represented as a linear time-invariant system as follows.
\begin{align*} \boldsymbol{\dot{x}} &= \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{bmatrix} \boldsymbol{x} + \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} u \\ y &= \begin{bmatrix} 1 & 0 & - \dfrac{c_z}{g} \end{bmatrix} \boldsymbol{x} \end{align*}
State, control input, and output are expressed as follows.
\begin{align*} \boldsymbol{x} = \begin{bmatrix} c_x \\ \dot{c}_x \\ \ddot{c}_x \end{bmatrix}, u = \dddot{c}_x, y = z_x \end{align*}
Definition at line 32 of file CommonModels.h.
CCC::ComZmpModelJerkInput::ComZmpModelJerkInput | ( | double | com_height | ) |
Constructor.
com_height | height of robot CoM [m] |