Projects: Mobile Robot using Dubins’ Path

Fig. 1: Top view of the robot.
The robot is powered either by 4 x AA batteries or an external power source, as shown here.
The red LED indicates the system status.
Fig. 2: Underside of the robot.
The frame is constructed from a Meccano (Erector) kit. A solder breadboard is used to wire all the modules together.
This mobile robot can navigate a pre-determined Dubins Path [1] using dead reckoning. The path is programmed offline and comprises a combination of geometric primitives (straight lines + curves). The robot determines its position online using feedback from the wheel position sensors and the accurate execution of whatever maneuvers were performed since it left the initial position.

The robot has a Differential Drive configuration. Two DC motors with built-in gearbox and encoder are located at the front of the robot and a small metal ball caster at the rear provides balance. The software was written in C language on an Atmel ATmega128 microcontroller. Each motor is driven via a H-Bridge chip and PWM from the microcontroller. The encoder sensors are connected to a digital counter circuit implemented on an Altera EPM7128S PLD (Programmable Logic Device). The rotational position of each wheel is an 8-bit value that gets passed to the microcontroller.

In order to measure the dead reckoning error, some initial experiments were conducted and the robot was able to trace a circle or square on a hard, flat surface with negligible error. The square obviously involves making turns in-place, with zero radius. However, these zero radius turns can result is larger heading error and so the Dubins path was more accurate over longer distances.

Fig. 3: Block diagram of the robot’s embedded system architecture.
Fig. 4: Circuit diagram.
Fig. 7: Equations-of-motion for a differential-drive robot model.
Fig. 5: Close-up view of Micro- controller board and PLD.
Fig. 6: Diagram explaining how to correct dead-reckoning errors for a differential-drive robot.

This was a team project with C. K. Jung & T. J. Kim.

[1] L. E. Dubins, “On Curves of Minimal Length with a Constraint on Average Curvature, and with
Prescribed Initial and Terminal Positions and Tangents”, American Journal of Mathematics, July 1957