Common dynamic models
The models most robotics problems are actually written in, from the single integrator to a quadrotor on SO(3), with what each one assumes.
In this section, we will explore a variety of common dynamic models used in robotics.
Every model below is written in the continuous-time form \(\dot x = f(x,u)\), with the state dimension, input dimension, and classification stated alongside.
Single integrator
The simplest useful model. You command velocity directly.
$$x = \begin{bmatrix} p_x \\ p_y \end{bmatrix} \in \mathbb{R}^2, \qquad u = \begin{bmatrix} u_x \\ u_y \end{bmatrix} \in \mathbb{R}^2, \qquad \dot{x} = u.$$Linear, fully actuated, and about as easy as control gets: \(A = 0\), \(B = I\). Very very common in multi-robot coordination. Simple to analyze and implement but sometimes too coarse to represent the actual systems.
Double integrator
One step up: you command acceleration, and velocity becomes a state.
$$x = \begin{bmatrix} p \\ v \end{bmatrix} \in \mathbb{R}^{2d}, \qquad u = a \in \mathbb{R}^{d}, \qquad \dot{x} = \begin{bmatrix} 0 & I \\ 0 & 0 \end{bmatrix} x + \begin{bmatrix} 0 \\ I \end{bmatrix} u.$$Still linear and still fully actuated, but now the robot has momentum, which is what makes collision avoidance and braking distance meaningful. Common in safety-critical control papers
Unicycle
The standard model for a wheeled robot that drives forward along its heading and turns, but cannot slide sideways.
$$x = \begin{bmatrix} p_x \\ p_y \\ \psi \end{bmatrix} \in \mathbb{R}^3, \qquad u = \begin{bmatrix} v \\ \omega \end{bmatrix} \in \mathbb{R}^2, \qquad \dot{x} = \begin{bmatrix} v\cos\psi \\ v\sin\psi \\ \omega \end{bmatrix}.$$Nonlinear because of \(\cos\psi\) and \(\sin\psi\), and control-affine:
$$\dot{x} = \underbrace{\begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix}}_{f(x)} + \underbrace{\begin{bmatrix} \cos\psi & 0 \\ \sin\psi & 0 \\ 0 & 1 \end{bmatrix}}_{g(x)} \begin{bmatrix} v \\ \omega \end{bmatrix}.$$Two inputs for three states makes it underactuated, and the inability to move sideways is a nonholonomic constraint, \(\dot p_x \sin\psi - \dot p_y \cos\psi = 0\).
Control a point a distance \(\ell > 0\) ahead of the wheel axis instead of the axis itself. That point obeys single-integrator dynamics, and the required unicycle inputs come from
$$\begin{bmatrix} v \\ \omega \end{bmatrix} = \begin{bmatrix} \cos\psi & \sin\psi \\ -\tfrac{1}{\ell}\sin\psi & \tfrac{1}{\ell}\cos\psi \end{bmatrix} \begin{bmatrix} \dot p_x^{\text{des}} \\ \dot p_y^{\text{des}} \end{bmatrix}.$$This is how single-integrator multi-robot results get run on real differential-drive hardware. The cost is that you control the offset point, not the robot, and orientation is left to take care of itself.
Dubins car
The Dubins car is a simple kinematic model of a vehicle that moves forward with a constant speed and can control its heading rate:
$$x = \begin{bmatrix} p_x \\ p_y \\ \psi \end{bmatrix} \in \mathbb{R}^3, \qquad u = \omega \in \mathbb{R}, \qquad \dot{x} = \begin{bmatrix} v\cos\psi \\ v\sin\psi \\ \omega \end{bmatrix}, \qquad v>0.$$Here, \((p_x,p_y)\) denotes the position, \(\psi\) the heading angle, \(v\) the forward speed, and \(\omega\) the steering or angular velocity. Since the vehicle cannot move sideways and is constrained to move forward, the Dubins car is an underactuated, nonholonomic system. Common to represent an aircraft in 2D flight.
Kinematic and dynamic bicycle
Cars steer rather than turn in place, so the unicycle is the wrong model. The kinematic bicycle lumps each axle into a single wheel:
$$x = \begin{bmatrix} p_x \\ p_y \\ \psi \\ v\end{bmatrix}, \qquad u = \begin{bmatrix} a \\ \delta \end{bmatrix}, \qquad \dot{x} = \begin{bmatrix} v\cos\psi \\ v\sin\psi \\ \dfrac{v}{L}\tan\delta \\ a \end{bmatrix},$$where \(\delta\) is the steering angle and \(L\) the wheelbase. The turn rate now depends on speed, and the steering limit \(|\delta| \le \delta_{\max}\) enforces a minimum turning radius \(R_{\min} = L/\tan\delta_{\max}\).
That no-slip assumption is exactly what fails at speed. The dynamic bicycle replaces it with body-frame velocities and tire forces: the state grows to include longitudinal and lateral velocity \(v_x, v_y\) and yaw rate \(r\), slip angles are computed at each axle,
$$\alpha_f = \delta - \arctan\!\left(\frac{v_y + \ell_f r}{v_x}\right), \qquad \alpha_r = -\arctan\!\left(\frac{v_y - \ell_r r}{v_x}\right),$$and lateral forces follow a tire model - linear \(F_y = -C_\alpha \alpha\) for modest slip, or a Pacejka-style saturating curve near the friction limit. The planar dynamics are then
$$m(\dot v_x - v_y r) = F_{x}, \qquad m(\dot v_y + v_x r) = F_{y,f}\cos\delta + F_{y,r}, \qquad I_z \dot{r} = \ell_f F_{y,f}\cos\delta - \ell_r F_{y,r}.$$Two practical warnings: the model is singular at \(v_x = 0\) because slip angles divide by speed, so implementations blend to the kinematic model at low speed; and the friction coefficient \(\mu\) is rarely known, which makes it a natural place for adaptive or robust methods.
Pendulum, cart-pole, and friends
The canonical underactuated benchmarks. The pendulum with torque input:
$$m\ell^2\ddot\theta = u - b\dot\theta - mg\ell\sin\theta.$$Nonlinear, control-affine, one DOF and one input - fully actuated, and interesting only because of the \(\sin\theta\) and torque limits: if \(|u| < mg\ell\) the pendulum cannot be lifted directly and must be swung up, which is already a nontrivial nonlinear problem.
The cart-pole has configuration \(q = (p, \theta)\) and a single horizontal force on the cart. It is the standard example of underactuation: the pole angle has no actuator of its own and is steered only through cart acceleration. The Acrobot and Pendubot are the two-link versions with one motor, and legged robots in flight phase share the same structure.
Quadrotor
A rigid body with four rotors. State: position \(p \in \mathbb{R}^3\), velocity \(v \in \mathbb{R}^3\), attitude \(R \in SO(3)\), body angular velocity \(\Omega \in \mathbb{R}^3\). Inputs: total thrust \(F \in \mathbb{R}\) and body moment \(M \in \mathbb{R}^3\).
$$\dot p = v, \qquad m\dot v = mg e_3 - F R e_3, \qquad \dot R = R\hat\Omega, \qquad J\dot\Omega + \Omega \times J\Omega = M,$$where \(\hat\Omega\) is the skew-symmetric matrix with \(\hat\Omega a = \Omega \times a\) and \(e_3\) is the vertical unit vector.
Six configuration degrees of freedom against four inputs. The rotational subsystem is fully actuated and fast; the translational subsystem is underactuated and slow, which is why almost every quadrotor stack is a cascade: an outer position loop picks a desired thrust vector, that vector defines a desired attitude, and an inner attitude loop tracks it at high rate.
Discrete-time versions
Any of these becomes a discrete-time model once you fix a sample time. For the linear ones, use exact discretization; the double integrator with sample time \(\Delta t\) is
$$x_{k+1} = \begin{bmatrix} I & \Delta t\, I \\ 0 & I \end{bmatrix} x_k + \begin{bmatrix} \tfrac{1}{2}\Delta t^2 I \\ \Delta t\, I \end{bmatrix} u_k,$$which is exact under a zero-order hold, not an approximation. For the nonlinear ones, RK4 is the usual choice inside an MPC prediction model; Euler is acceptable for the unicycle at 50 Hz or faster but noticeably degrades the bicycle model during hard cornering.
If you add process noise, the stochastic discrete-time form is \(x_{k+1} = F(x_k,u_k) + w_k\) with \(w_k\) zero-mean and covariance \(Q\) - the model an EKF or a particle filter expects.
Side by side
| Model | \(n\) | \(m\) | Linear | Actuation | Typical use |
|---|---|---|---|---|---|
| Single integrator | 2–3 | 2–3 | yes | full | Multi-agent coordination, coverage, consensus |
| Double integrator | 4–6 | 2–3 | yes | full | Collision avoidance, trajectory planning with inertia |
| Unicycle | 3 | 2 | no | under | Ground robots, differential-drive platforms |
| Kinematic bicycle | 4 | 2 | no | under | Low-speed autonomous driving, parking |
| Dynamic bicycle | 6–7 | 2–3 | no | under | High-speed driving, racing, stability control |
| Cart-pole | 4 | 1 | no | under | Benchmark for underactuated control |
| Quadrotor | 12–13 | 4 | no | under | Aerial robotics, aggressive flight |