13.1.2.2 A differential drive

Most indoor mobile robots do not move like a car. For example, consider the mobile robotics platform shown in Figure 13.2a. This is an example of the most popular way to drive indoor mobile robots. There are two main wheels, each of which is attached to its own motor. A third wheel (not visible in Figure 13.2a) is placed in the rear to passively roll along while preventing the robot from falling over.

Figure 13.2: (a) The Pioneer 3-DX8 (courtesy of ActivMedia Robotics: MobileRobots.com), and many other mobile robots use a differential drive. In addition to the two drive wheels, a caster wheel (as on the bottom of an office chair) is placed in the rear center to prevent the robot from toppling over. (b) The parameters of a generic differential-drive robot.
\begin{figure}\begin{center}
\begin{tabular}{ccc}
\psfig{file=figs/pioneer.ps,wi...
...ffdrive.eps,width=2.6in} \\
(a) & & (b)
\end{tabular}
\end{center}\end{figure}

Figure 13.3: (a) Pure translation occurs when both wheels move at the same angular velocity; (b) pure rotation occurs when the wheels move at opposite velocities.
\begin{figure}\begin{center}
\begin{tabular}{ccc}
\psfig{file=figs/diffdrive2.ep...
...drive2b.eps,width=1.8in} \\
(a) & & (b)
\end{tabular}
\end{center}\end{figure}

To construct a simple model of the constraints that arise from the differential drive, only the distance $ L$ between the two wheels, and the wheel radius, $ r$, are necessary. See Figure 13.2b. The action vector $ u = (u_r,u_l)$ directly specifies the two angular wheel velocities (e.g., in radians per second). Consider how the robot moves as different actions are applied. See Figure 13.3. If $ u_l = u_r > 0$, then the robot moves forward in the direction that the wheels are pointing. The speed is proportional to $ r$. In general, if $ u_l = u_r$, then the distance traveled over a duration $ t$ of time is $ r t u_l$ (because $ t u_l$ is the total angular displacement of the wheels). If $ u_l = -u_r \not = 0$, then the robot rotates clockwise because the wheels are turning in opposite directions. This motivates the placement of the body-frame origin at the center of the axle between the wheels. By this assignment, no translation occurs if the wheels rotate at the same rate but in opposite directions.

Based on these observations, the configuration transition equation is

\begin{displaymath}\begin{split}{\dot x}& = \frac{r}{2} (u_l + u_r) \cos \theta ...
...theta  {\dot \theta}& = \frac{r}{L} (u_r - u_l) . \end{split}\end{displaymath} (13.16)

The translational part contains $ \cos \theta$ and $ \sin \theta$ parts, just like the simple car because the differential drive moves in the direction that its drive wheels are pointing. The translation speed depends on the average of the angular wheel velocities. To see this, consider the case in which one wheel is fixed and the other rotates. This initially causes the robot to translate at $ 1/2$ of the speed in comparison to both wheels rotating. The rotational speed $ {\dot \theta}$ is proportional to the change in angular wheel speeds. The robot's rotation rate grows linearly with the wheel radius but reduces linearly with respect to the distance between the wheels.

It is sometimes preferable to transform the action space. Let $ u_\omega = (u_r + u_l)/2$ and $ u_\psi = u_r - u_l$. In this case, $ u_\omega $ can be interpreted as an action variable that means ``translate,'' and $ u_\psi$ means ``rotate.'' Using these actions, the configuration transition equation becomes

\begin{displaymath}\begin{split}{\dot x}& = r u_\omega \cos \theta  {\dot y}& ...
...sin \theta  {\dot \theta}& = \frac{r}{L} u_\psi . \end{split}\end{displaymath} (13.17)

In this form, the configuration transition equation resembles (13.15) for the simple car (try setting $ u_\psi = \tan
u_\phi$ and $ u_s = r u_\omega$). A differential drive can easily simulate the motions of the simple car. For the differential drive, the rotation rate can be set independently of the translational velocity. The simple car, however, has the speed $ u_s$ appearing in the $ {\dot \theta}$ expression. Therefore, the rotation rate depends on the translational velocity.

Figure 13.4: The shortest path traversed by the center of the axle is simply the line segment that connects the initial and goal positions in the plane. Rotations appear to be cost-free.
\begin{figure}\centerline{\psfig{file=figs/diffdrive3.eps,width=4.5in}}\end{figure}

Recall the question asked about shortest paths for the Reeds-Shepp and Dubins cars. The same question for the differential drive turns out to be uninteresting because the differential drive can cause the center of its axle to follow any continuous path in $ {\mathbb{R}}^2$. As depicted in Figure 13.4, it can move between any two configurations by: 1) first rotating itself to point the wheels to the goal position, which causes no translation; 2) translating itself to the goal position; and 3) rotating itself to the desired orientation, which again causes no translation. The total distance traveled by the center of the axle is always the Euclidean distance in $ {\mathbb{R}}^2$ between the two desired positions.

This may seem like a strange effect due to the placement of the coordinate origin. Rotations seem to have no cost. This can be fixed by optimizing the total amount of wheel rotation or time required, if the speed is held fixed [64]. Suppose that $ u_r,u_l \in
\{-1,0,1\}$. Determining the minimum time required to travel between two configurations is quite interesting and is covered in Section 15.3. This properly takes into account the cost of rotating the robot, even if it does not cause a translation.

Steven M LaValle 2020-08-14