Zonda is a propeller-driven autonomous vehicle.
It is meant as a experimentation platform and to help gaining experiences with the development of an autonomous control.
Before I start developing software for the autonomous airplane Flobo,
I can debug problems on ground, which would perhaps have expensive consequences in air later.
Rendered CAD model
The vehicle consists of plywood and wooden slats and is encased with balsa.
It is painted and foil covered. The motor is a Speed Gear 700, which propels a pusher propeller.
Like a model airplane the chassis has two wheels suspended by 4mm steel wire and a steerable nose gear wheel in front.
The nose wheel is steered via a servo.
Sensors and Control
Until now the only active sensor is the GPS.
I use a SAM LS module by u-Blox that has an update rate of 4 Hz (tested up to 5 Hz).
Further I inserted an IMU and an anemometer, however those data are not being processed yet.
The installation of the ultrasonic sensor is planned for future.
Zonda can be steered by remote control.
For changing between autonomous mode and remote control use I my selfmade servo switch.
The autonomous control is taken over by the Gumstix module.
This reads the GPS data and regulates the nose wheel servo and the speed controller.
Furthermore it supervises the voltage level of its own current supply as well as the R/C system.
The sensors are connected up by serial interface or I2C bus.
A serial interface is led outward, so that the Gumstix can be programmed by laptop in field.
Before test drive
Controlling is done by a simple C program.
It reads instructions from a route file and processes it step by step.
At start the program opens a connection to the GPS, I2C interface, log file and instruction file.
If a sufficient GPS measurement (Number of satellites >= 5) is guaranteed, the actual processing begins.
With each arriving GPS data record, the current position is compared with the target position.
Depending on current speed the nose wheel is controlled into target direction.
The speed control steers on the basis of a given speed.
All arriving sensor data and important results of computation are stored in a log file,
which can be evaluated at home with a special software.
goto 49.81397 8.76039
goto 49.81400 8.76013
goto 49.81430 8.76069
goto 49.81460 8.76125
Sample route file
The first test run was much surprising.
The vehicle did not head for the given target, but went away from it.
The source code analysis turned out that the direction control had a sign error.
After the problem was fixed, the first success in heading controll appeared.
However new problems arose:
It turned out that the control loop from GPS measurement via propeller up to the acceleration of the vehicle had a relatively long reaction time.
The PID regulation for the speed had much trouble with this.
After accelerating the vehicle briefly, throttle was reduced to nearly zero before reaching the target speed, which braked the vehicle again.
The PI regulation used now regulates somewhat better, but parameters are not yet good.
I tried using Google Earth to determine the target positions.
However during the test runs it turned out that these positions have an offset to the real point of 12 meters.
Thus one should not rely on the accuracy of Google Earth and always re-check in field.
(Meanwhile GE improved precision for my test area.)
The accuracy of GPS positions was always sufficient with past tests and did not deviate more than a few meters.
However the GPS module probably had brief black-out during a test, so that the controller did not receive any data for some seconds.
The software was thus blocked and unable to regulate steering.
The vehicle went far beyond target and had to be remote controlled.
This problem must be fixed now with a non blocking GPS interface.