A differential drive mobile robot has a movement based on two separately driven wheels placed on either side of the robot body. Thus, it is able to change its direction by varying the relative rate of rotation of its wheels. The mechanism is very simple since it does not require a steer. This makes this mobile robot very popular.

Sketch of a differential drive mobile robot.

1. Dynamics

Assume that the robot is able to access and control the angular velocities of its wheels. Let u_R and u_L denote the angular velocities of right and left wheels, respectively. Usage of stepper motors or closed-loop control of DC motors with optical encoders can achieve this. Thus, the inputs of the robots are u_R and u_L. We aim to represent the differential equation which characterizes the positions x and y of the center point and heading \psi of the body.

The robot has the knowledge of linear velocities of two points on its body owing to the ability to access u_R and u_L. Figure 1 represents those velocities as v_R and v_L. Those are v_R(t) = r u_R(t) and v_L(t) = r u_L(t) (see: angular velocity). The angular velocity of the robot body is 2w(t)d = v_R(t) - v_L(t) (see: rigid body). Using the same identity, the linear velocity of the center point is w(t)d = v_R(t) - v(t). After algebraic manipulations, we derive

    \begin{align*}w(t) &= \dfrac{r}{2d}u_R(t) - \dfrac{r}{2d}u_L(t), \\v(t) &= \dfrac{r}{2}u_R(t) + \dfrac{r}{2}u_L(t).\end{align*}

Note that v(t) \cos(\psi(t)) and v(t) \sin(\psi(t)) are the linear velocities of the center point in \hat{x}_w and \hat{y}_w directions, respectively. The differential drive mobile robot dynamics are given by

    \begin{equation*}\dot{q}(t) = \left[ \begin{matrix} \dot{\psi}(t) \\ \dot{x}(t) \\ \dot{y}(t) \end{matrix}\right] = \left[\begin{matrix} -\frac{r}{2d} & \frac{r}{2d} \\ \frac{1}{2}r\cos(\psi(t)) & \frac{1}{2}r\cos(\psi(t)) \\ \frac{1}{2}r\sin(\psi(t)) & \frac{1}{2}r\sin(\psi(t)) \end{matrix}\right] \left[\begin{matrix} u_L(t) \\ u_R(t) \end{matrix}\right],\end{equation*}

where \psi \in \mathbb{R} is the heading direction, x \in \mathbb{R} is the \hat{x}_w-position, y \in \mathbb{R} is the \hat{y}_w-position, r > 0 is the radius of the wheels, 2d > 0 is the distance between the wheels, u_R \in \mathbb{R} is the angular velocity of the right wheel, and u_L \in \mathbb{R} is the angular velocity of the left wheel. The same dynamics can be represented in terms of w(t) and v(t) as

(1)   \begin{equation*}\dot{q}(t) = \left[\begin{matrix} \dot{\psi}(t) \\ \dot{x}(t) \\ \dot{y}(t) \end{matrix}\right] =\left[\begin{matrix} 1 & 0 \\ 0 & \cos(\psi(t)) \\ 0 & \sin(\psi(t)) \end{matrix}\right] \left[\begin{matrix} w(t) \\ v(t) \end{matrix}\right].\end{equation*}

2. Control

The system in (1) has a special structure \dot{q}(t) = G(x)u(t) where x \in \mathbb{R}^n, u \in \mathbb{R}^m, and G(x) \in \mathbb{R}^{n \times m}. The systems of this form are \emph{nonholonomic control systems}. Although the system in (1) is controllable; yet, there exists no continuous feedback law that stabilizes the origin (\psi, x, y) = (0, 0, 0). Please see the detailed discussion in Chapter 4.2 of [1].

Theorem (see Corollary 4.2 in [1]). The system in (1) cannot be asymptotically stabilized by a continuous feedback law.

Dr. Liberzon offers a switching control approach to stabilize the origin (or any set-point (\psi_d, x_d, y_d)) in [1].

3. Simulation

4. References

[1] Liberzon, D. (2003). Switching in systems and control. Springer Science & Business Media.