"Cruise control" for an e-glider.
I am building an e-glider that is controlled normally until you release the sticks. Then the autopilot kicks in and keeps the model around and starts looking for thermals or starts the motor when the glider is too low. No waypoints, its all about finding thermals.
Here is a video of my first long autonomous flight.
Why an ATV?
- Wider search area
- More control (confidence) when further out
- Longer flight times, more searching
- Less effort / concentration
- More time to look around to find thermals (e.g. birds)
- Safety (failure transmitter / receiver)
- More efficient turning
- More efficient use of motor
- More options for trimming, mixing, speed, engine power
- Documenting flights, instructive
The unit can navigate in an circular area of 400 m in diameter. The model remains between 100 and 300 m altitude, using the engine if needed. The pilot can fly model until one releases the controls. In case of problems, including failure of the transmitter, the unit automatically land in the middle of the area.
An on-board camera allows video from the cockpit to be viewed after the flight. On the ground, I have a receiver that displays information about altitude, climb rate, airspeed etc. The data is also stored for later processing.
My goal is to develop techniques to have an e-glider autonomous fly as long and efficiently as possible. It is a challenge to make the electronics as small and simple as possible. My first goal was to have 100 m gain in a single autonomous flight using thermals, and I did.
I named my project ATV, which stands for Autonomous Thermalling Vehicle (and because I think the ESA variant is a wonderful piece of technology).
The unit starts with the electric motor. It then climbs to 200m, then the engine is switched off while full throttle is still given on the transmitter. When the unit has dropped to 100m, this suppression of the engine will be lifted, and the engine will start again.
Through four parameters, a semi circular area is defined within which the unit should remain. Once the aircraft is outside this area turns will be used to automatically bring it back in the area. It will only be flown within visual range.
When the unit reaches 200 m, the motor will turn off and it will search for thermals. Only if there is good reception of the RC controller and GPS receiver is good and the height is between 100 and 300, there a right turn will be started as soon as rising air is detected.
Currently I fly with a Reichard Champion and a Topmodel CZ Fantasy . These models are just big enough for all the electronics to fit, and have decent performance. The heart of the autopilot is a micro-controller of Microchip, the PIC18F2550.
For the GPS receiver I have a GPS SkyTraq with updates every 1 second.
To measure the altitude and airspeed I use the VAT / VAM 300 with VAT GS by ELV.
I use an FMA CoPilot for stabilization.
I have two XBEEPRO modules for telemetry, which also supports a beep vario on the ground.
I couldn't agree with you more. Thermalling is addictive. Even more so in my part of the country, I live not far from the sea, with wind usually coming from the sea. But I wind comes from land, then chances improve. I too have to keep my model from "leaving into space". We have an altitude limit of 300m (1000 ft), so i programmed the butterfly-function (airbrakes) to gradually deploy above 300m. Also, the termalling code is turned off above 300m. It is nice to see how the model then gets glued to the altitudelimit as the thermal moves by. But sometimes even these measures aren't enough, and the model keeps climbing. I allways monitor the flight for these moments. Gotta love it.
My motor is at the front, and sometimes starts windmilling on its own. Stability is not that bad then. I have also thought about modifiing an ESC so it can generate power and motor braking can be controlled at will. It's not that crazy.
Good luck with your project.
I dont think that falcons will attack it =) Most of the birds ignore my rc plane =)
About that generator idea - I've thought about it already. The main concern is the efficiency of generators - it is lower than 100%, so not all energy could be used. Another thing - we just have to try and measure.
GliderUAV, how long can your software be aloft? Have you tried something like 6 hours or more? Thermals tend to change and to stop.
I'm still trying to make longer flights, but possiblilties are limited where I live. But if I don't need to use all of the the battery for motorclimbs, then there is plenty for running the servo's and electronics for serveral hours. The software has no time constraints.
I received a question about how I wrote my navigationcode.
1. I store the GPS position when I start the motor for the first time
2. A fixed value is coded to limit max distance to the centre
3. Every second, the distance North/South and East/West between the startuppoint and the current location is calculated.
4. the two distances are devided by the fixed factor (2) to form x and y coordinates for an array
5. a lookup is performed in this array:
-- aimed right of centre, for left turns
const byte NavMatrixSoft= --
30, 30, 22, 22, 22, 7, 7, 7,165,165,
30, 30, 22, 0, 0, 0, 0, 7,165,165,
68, 68, 0, 0, 0, 0, 0, 0,142,142,
68, 0, 0, 0, 0, 0, 0, 0, 0,142,
68, 0, 0, 0, 0, 0, 0, 0, 0,142,
52, 0, 0, 0, 0, 0, 0 ,0, 0,157,
52, 0, 0, 0, 0, 0, 0, 0, 0,157,
52, 52, 0, 0, 0, 0, 0, 0,157,157,
75, 75,105, 0, 0, 0, 0,112,120,120,
} -- headings / 2
6. If the found value is 0 then no action is taken. If the value is not 0 then the value is multiplied by two, and the autopilot will turn to this new heading, bringing the aircraft back in the area.
This method is simple, has a small footprint and is low on CPU-load. I found the aircraft will fly a random pattern in the area, so few spots are missed in search for updrafts.