Wheeled locomotion
Probably the most common form of robot locomotion is terrestrial locomotion using wheels. Key ideas today:- Types of wheels
- Differential drive systems
Types of wheels
Drive wheels are powered by an actuator, using friction against the ground to move the robot. Steered wheels are powered to rotate relative to the ground, to influence the direction the robot moves. Passive wheels are neither driven nor steered, but can contribute to the robot's stability.

Differential drive
Definition
A differential drive robot has two independent
non-steered drive wheels along a common axis.
- $R$: signed distance from center of robot to ICC.
- $\ell$: distance between the wheels
- $v_l$: linear velocity of left wheel
- $v_r$: linear velocity of right wheel
- $\omega$: angular velocity of rotation around ICC
States and actions for diff drive
States: Position and orientation: \[ (x,y,\theta) \] Actions: Wheel velocities: \[ (v_l, v_r) \] Time: Discrete, explicit. Each time step lasts $\Delta t$.Diff drive state transitions
How do such actions change the state?Main idea of differential drive motion
The robot moves with a constant angular velocity around a point
called the instantaneous center of curvature.
- the ICC, and
- the angular velocity of the rotation about the ICC.
Updating the state
Starting at state $(x_k,y_k,\theta_k)$ and executing action $(v_l, v_r)$. What is the new state $(x_{k+1}, y_{k+1}, \theta_{k+1})$? Location of ICC: \[ c = [x - R\sin(\theta), y + R\cos(\theta)] \] New state: \[ \left[ \begin{matrix} x_{k+1} \\ y_{k+1} \\ \theta_{k+1} \end{matrix} \right] = \left[\begin{matrix} \cos (\omega \Delta t) & -\sin(\omega \Delta t) & 0 \\ \sin (\omega \Delta t) & \cos(\omega \Delta t) & 0 \\ 0 & 0 & 1 \end{matrix}\right] \left[\begin{matrix} x - c_x \\ y - c_y \\ \theta \end{matrix}\right] + \left[\begin{matrix} c_x \\ c_y \\ \omega \Delta t \end{matrix}\right] \]Diff drive special cases
There are two important special cases:- If $v_l = - v_r$, then $R=0$.
The robot rotates in place.
- If $v_l = v_r$, then $R$ is infinite.
The robot moves in a straight line.

Navigating with a differential drive
A diff drive is nonholonomic system because it cannot move directly sideways. Thus, navigating to a given goal state may require a series of actions. One simple solution:- Rotate in place until the robot is facing its destination.
- Move forward to the destination.
- Rotate to the correct orientation.