"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.
Finally, an update about my project:
I have converted the telemetry log into subtitles, so You can see what's going on. This video explains a "Thermalling method for Model Glider Autopilots" in more detail.
I am gradually replacing my autopilot code with MatrixPilot. Please have a look and feel free to comment.
Local Endurance Thermalling mission in MP
Currently I fly with a Topmodel CZ Linea with an Auav3 autopilot and a Topmodel CZ Fantasy with a UDB5 autopilot board.
Recently I removed my "ATV autopilot pic-chip", so that I now have a 'MatrixPilot only' solution.
I wrote a LOGO script and some extra commands.
!!!!! The code is public and free to use !!!!!
I posted al the needed code and mods here: (May 24 '14)
"Support for (E-)Glider local endurance thermalling mission in MP"
Post on MatrixPilot forum
Special thanks to the MatrixPilot development team.
MatrixPilot got upgraded with the helical turn method. I changed my code to follow this development.
To add the auto land function, i needed better brake control. After that i created the auto landing script.
The codebase has moved to Git. My code is here: https://github.com/KeesGuijt/MatrixPilot.
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.