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

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.
the bottom of a robot vacuum cleaner
a Toyota Camry
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.
illustration of the notation for differential drive locomotion
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:
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:
differential drive robots moving straight ahead and rotating in place

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:
  1. Rotate in place until the robot is facing its destination.
  2. Move forward to the destination.
  3. Rotate to the correct orientation.