The robot has to accurately re-draw a pre-recorded GPS track, using its internal sensors. To tackle the navigation problem (briefly summarized as ‘WHERE AM I NOW’ and ‘WHERE DO I NEED TO GO’) the robot needs to be able to find its location and heading direction. As the robot has no visual input, no beacons for triangulating, no micro-GPS for its own localization, it has to rely on dead reckoning only.
On cloudy days in ancient times, sailors had to rely on a compass, a knotted robe (or chip log) and extrapolation for maintaining their course. Normally they would have an additional absolute position measure too, namely the sun, which could be measured using a sextant. Just as the sailors did on those days, our robot has to rely on a compass and on odometric sensors on the wheels (optical sensors counting wheel revolutions).
The reason for not having a system with beacons was the trade-off we had to make between a simple and reliable system and the accuracy of resulting drawing. More components such as optical or RF-responder beacons, as are used in harbors or factory floors, would increase the accuracy of the robot’s positioning, but also increase the chance of failure. (more stuff means that more things can go wrong)
The worst ‘enemy’ of the robot’s accuracy is the amount of slip in the wheels. We use 4 motorized wheels, instead of the more common ‘2 motorized wheels + caster’ configuration. This 4-wheel configuration has been chosen in order to be able to work on a rough surface. When doing a spot-turn, the 4-wheel configuration will always require some amount of slippage. This amount can be assumed to be fairly constant when driving on a flat surface. On a flat surface it is possible to draw a reasonably accurate drawing, provided that the amount of slippage is constant.
The drawings at the Graz exhibition were made this way. Especially because the drawn figure does a runaround, the accumulation of tiny rotation errors will show when the robot has to return at its starting point. The following plot shows the recorded GPS track
With accumulation of errors, caused by slippage, the figure quickly becomes unrecognizable. Especially after the Graz exhibition we were in doubt whether the approach taken (i.e., no additional navigation beacons) was ever going to work. Simulation showed however that adding a compass for correcting and compensating for angular slippage could make the robot’s patterns more recognizable and accurate. The following figure shows a number of track runs, where a compass (still with some deviation) has been used.
As you can see, the figures are not completely the same, but every realization is at least recognizable.
The pairs of motors on the left and right side are controlled on a low level by two separate PID control loops. Using the encoder data as a feedback signal, the motors are position controlled. In order to travel at a certain velocity, a set point trajectory is generated from the given robot instruction (such as ‘forward 100’) given a velocity of for example 20cm/sec. This 100 cm is divided into a part for speeding up, a part traveling at the constant given velocity, and a part for slowing down. Example graphs are shown in the next figure:
Using this strategy has led to a fairly accurate results, as shown in the last research trip to Cameroon. Unfortunately the compass could only be used during the first couple of workshops, due to a failing connector….. Oh, well.. we live and learn, don’t we?