Press "Enter" to skip to content

Differential Drive

There are many different robotics drivetrains, one of the most common drive types that you will encounter is the Differential Drive. This control scheme is praised for its simplicity, ease of implementation, and ability to be used in many situations.

Some examples of differential drive robots include, but are not limited to:

As you can see, there are many uses for a system such as this! In this article I will discuss the kinematic model and derive the mathematical model, as well as build-up an example robot and show how we can improve its performance with simple control systems. Let’s begin!

The Kinematic Model

Let’s establish our known constraints for a simple robot, Let’s call our little mechanical friend Turbo!

Right away we know Turbo has a pair of wheels that share an axis, these wheels are allowed to spin independently of each other either in the positive or negative direction of our choice. Let’s define some parameter’s of Turbo. Each wheel will have the same radius, r, and the distance between the wheels will be defined as, l.

Intuitively, we understand that if both wheels spin with the exact same angular velocity, Turbo will move forward perfectly straight. Therefore, if we were to cause a difference between the angular velocity’s of the wheels V_L or V_R, we would get a corresponding change in the angular velocity of the system, \omega, hence we will see Turbo make a curved path. Now, you can visualize this just like when you draw a circle or arc with a compass, the marking end is the robots’ path and the anchor is where the center of the curve is. This anchor point is known as the Instantaneous Center of Curvature (I.C.C). This isn’t going to be useful to us if we can’t control this behavior or predict where our robot is going to go, we need some equations and visuals to help us work with Turbo!

A visual of Turbo’s characteristics. Place holder for my drawing.

\omega = \frac{\Delta\theta}{\Delta t}

v = \frac{r \Delta\theta}{\Delta t} = r \omega