CSCE 452/752 Robotics and Spatial Intelligence, Fall 2024
3. Differential drive locomotion
Wheeled locomotion
Let's focus on a very common form of robot locomotion:
terrestrial
locomotion using
wheels.
Key ideas:
- Types of wheels
- Differential drive systems
- States and actions
Types of wheels
Drive wheels use friction against the ground to move the robot.
Steered wheels can 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.

Depending on the design, drive wheels may or may not
be able to be controlled independently.

Some wheels may be both driven and steered.
States, actions, transitions
The
state describes what is happening at a given point in time.
Definition
The
state $x \in X$ is the collection
of all aspects of the robot and the environment that can impact
the future.

You may also see the terms
pose or
configuration used mostly synonymously with state.

A state is “Everything you need to know about the
past in order to predict the future.”
Actions describe what the robot does.
Definition
The
action $u \in U$ is the collection of choices the robot makes
at a particular time.
A
state transition equation describes
how actions change the state.
$$ x^\prime = f(x,u) $$
Differential drive
A
differential drive robot has two independent
non-steered drive wheels along a common axis.

Notation:
- $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
State: Position and orientation:
$$(x,y,\theta)$$
Action: Wheel velocities and amount of time:
$$ (v_l, v_r, \Delta t) $$
Diff drive state transitions
How do such actions change the state?
Key idea: The robot moves with a constant angular velocity around a
point called the instantaneous center of curvature.
So to understand the robot's motion, we need to compute:
- the ICC, and
- the angular velocity of the rotation about the ICC.

Remember: All wheels rotate around the ICC with the same
angular velocity.
Use definition of angular velocity:
$$ \omega = \frac{v_r}{R+\frac{l}{2}} = \frac{v_l}{R-\frac{l}{2}} $$
Then solve (assuming for now $v_r \ne v_l$) for $R$ and $\omega$:
$$ R = \left(\frac{l}{2}\right) \frac{v_r + v_l}{v_r - v_l} $$
$$ \omega = \frac{v_r - v_l}{l} $$
Updating the state
Starting at state $(x,y,\theta)$,
executing action $(v_l, v_r, \Delta t)$,
what is the new state $(x^\prime, y^\prime, \theta^\prime)$?
Location of ICC:
$$ c = [x - R\sin(\theta), y + R\cos(\theta)] $$
New state:
$$
\left[ \begin{matrix} x^\prime \\ y^\prime \\ \theta^\prime \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:
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.