Notes · Common dynamic models

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}.$$
x y px py ψ v ω
Three states, two inputs. The robot can go forward and turn, but the sideways direction is unreachable at any instant.

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\).

Near-identity diffeomorphism

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}\).

δ L rear axle steered front wheel
The kinematic bicycle assumes the wheels roll without slipping - a good assumption at parking-lot speeds and a bad one on a racetrack.

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.

F R e₃ holds it up moves it sideways mg
Thrust only ever points along the body axis. Horizontal motion has to be bought with attitude, which is what makes the quadrotor underactuated.

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\)LinearActuationTypical use
Single integrator2–32–3yesfullMulti-agent coordination, coverage, consensus
Double integrator4–62–3yesfullCollision avoidance, trajectory planning with inertia
Unicycle32nounderGround robots, differential-drive platforms
Kinematic bicycle42nounderLow-speed autonomous driving, parking
Dynamic bicycle6–72–3nounderHigh-speed driving, racing, stability control
Cart-pole41nounderBenchmark for underactuated control
Quadrotor12–134nounderAerial robotics, aggressive flight