8 Multirotor (1D)
8.1 Dynamics
- Parameters
- state space \(\mathcal{X}\)
- action space \(\mathcal{U}\)
- mass \(m\) [kg]
- gravity \(g\) [\(m/s^2\)]
- State: \(\mathbf{x}= \begin{pmatrix}z, \dot z\end{pmatrix}^\top \in \mathcal{X}\) [m, m/s] (height and vertical velocity of the robot in the world frame)
- Action: \(\mathbf{u}= \begin{pmatrix} f_1 \end{pmatrix}^\top \in \mathcal{U}\) [N] (upward thrust)
- Dynamics: \[ \begin{aligned} \mathbf{\dot x} = f(\mathbf x, \mathbf u) = \begin{pmatrix} \dot z\\ \frac{f_1}{m} - g \end{pmatrix} \end{aligned} \]
8.2 Differential Flatness
Pick flat outputs \(\mathbf{z}(t) = (z(t))^\top\), i.e., the position of the robot. Then we can compute all necessary variables if \(\mathbf{z}(t)\) is at least C2-continuous. \[ \begin{aligned} \mathbf{x}(t) &= g_x(\mathbf{z}, \dot{\mathbf{z}}) = \left(z, \dot z \right)\\ \mathbf{u}(t) &= g_u(\ddot{\mathbf{z}}) = \left( m ( \ddot z + g ) \right) \end{aligned} \]
NoteDerivation
Follows directly from the dynamics.