A.T.V. Autonomous Thermalling Vehicle

"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.
  

Reichard Champion ATV 2011 from Glider UAV on Vimeo.

 

2013 Update

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.

 

2014 Update

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.

GliderUav

2015 Update

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.

2016

2017

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Hi. I had a nice flight I want to share with you.

    First of all, my compliments to Bill for making helical turns a reality in MatrixPilot. Control is much smoother now.
    When in auto mode, i can use fly by wire to guide the glider to a new thermal if i find one, just by leaning over the aileron stick a little,
    knowing the turn will be coordinated perfectly (check the yaw string in the video!).

    I combined the new helical turns code with some features to
    support a new AIRFRAME: AIRFRAME_GLIDER. Specifically to make autonomous glider landings possible without a motor. Before I
    was using brakes to limit altitude when in thermals. Now i use brakes to loose altitude when on a glideslope.
    I took the motor control logic and hacked it to control brakes. Then i needed a nice way to integrate this with LOGO.
    To my surprise, it can be done using only SET_ALT() and the F_LAND flag.
    After that i realised that while model crashes can happen sometimes, most damage is caused when the model is allowed
    to accelerate until it meets some unforgiving surface. Overspeed protection can prevent much damage in some cases. It uses the desiredSpeed
    variable and starts braking when aispeed gets above 150% of desiredSpeed.
    With the AIRFRAME_GLIDER i added a LOGO landing example script. It requires the WIND_FROM_ANGLE() command.
    The automatic landing script for LOGO allows to connect to the correct landing circuit, even if wind has shifted after a long flight.
    Depending on the situation of your flying field, you can script left or right circuits for multiple wind directions.
    If there is some charge left, it can use the motor to climb a little first, or use brakes to descend to the starting point of the circuit. The phases of
    the circuit are Downwind, Base and Final. Flareing is not implemented (landing is usually soft enough).

    I had to switch from trunk to the MatrixPilot_wjp_helicalTurns branch. Trunk seemed to work at first (with a few fixes), but then i had some navigation and control issues.
    Also, I found that the "Glide_Airspeed_control" feature no longer works (nor in the wjp branch). With flaps I was able to compensate, so airspeed can still be controlled a bit by LOGO.

    The code can be found here: https://github.com/KeesGuijt/MatrixPilot

    KeesGuijt/MatrixPilot
    Glider Enhancements To An OpenSource Autopilot for longer flights. - KeesGuijt/MatrixPilot
  • Hi hft seeker,

    An ultralight could be controlled by MatrixPilot. However, if you want to use LOGO, as I did, the range you are looking for may be an issue.

    Maybe this is usefull:

    MatrixPilot range

    You could post a question about this on the MP discussion group.

    Thermalling would, on the other hand, be a great way to extend your range!

    Hope this helps,

    Kees

    • T3

      Kees,

      I think that MatrixPilot LOGO has unlimited range, but it has never been tested beyond 32 kilometers.

      However, it should be easy enough to test the LOGO range using HILSIM, so if anyone is interested in using LOGO for long range missions, let me know, I will do some testing to find out.

      Best regards,

      Bill

    • Developer

      Bill Premerlani made a fix to increase range of MatrixPilot some time ago. A person called Florin on the uavdevboard discussion group has tested long range of MatrixPilot on a uavdevboard in HILSIM with X-Plane 10. He flew a large airliner from Europe down past the equator to New Zealand (or may it was Australia) and back using the Autopilot in Autonomous mode. It all worked OK. As Kees says, by posting on the uavdevboard discussion list, you would probably get more answers. 

      Best wishes, Pete

      • T3

        Hi Pete,

        You are correct, I increased the navigation range of MatrixPilot some time ago at Florin's request. It now uses 32 bit integer arithmetic with 1 meter resolution for navigation, so waypoints can be anywhere on the globe and any altitude.

        Regarding MatrixPilot LOGO, it should have unlimited scope as well, provided each LOGO flight segment is no longer than 32 kilometers, but that is a natural fit to the way LOGO works.

        Florin's HILSIM flight with MatrixPilot was from Romania down to Australia, up to Pakistan, then back to Romania. I think he was flying a simulated 747. The flight took 36 hours.

        Florin also recently did a balloon drop of a delta wing glider with MatrixPilot from 30 kilometers altitude and 20 kilometers down wind. The entire mission, from balloon launch to land, took around 3 hours. He has an interesting video that he reconstructed from the flight data showing a simulated view seen from the plane. It was basically tumbling for a while in 1/100 air density, then fluttering when it first encountered some air, and then settled down quite nicely. It flew in a straight line back to over Florin's head, then circled down to him.

        The only modifications we made to MatrixPilot for the balloon launch was to integrate a cutdown function that would release the plane from the balloon either on command or in a fail safe condition.

        Best regards,

        Bill

  • Just found out about this:

    http://diydrones.com/forum/topics/autonomous-soaring?xg_source=acti...

    Very nice!

    Kees

    • Have there been any updates to your UAV devboard code?  I've been tied up heavily with work and haven't even had time to take my plane out in months.  :(

      • Hi Jason,

        Good to hear from you. Too bad you had so little time for your hobby.

        Yes, I have been working on my code. Not too much has changed, but I have made some improvements that I'm dieing to try. I will make a fresh patch for you.

        All the best,

        Kees

  • Kees,

    I have my new PICkit3 and managed to get MatrixPilot installed without any problem.  I'm reviewing your logo code and carrying out the required modifications to MatrixPilot.  I also got my tiny MTK3339 GPS flashed with the DIYdrones firmware to enable binary output and it is working great. I hope to get my UDB5 tied into my computer and run it through some HIL simulations once I get ATV merged with MatrixPilot.

    Right now I am running two spoiler servos, with one reversed, to act as spoilerons.  I could not figure out how to easily get a spoiler configuration working within MatrixPilot, but from my radio I am mixing throttle into my "aileron" channel and it works fine from a manual control standpoint.  The MatrixPilot code will probably require some manual mixing tweaking to get it to understand the configuration while running autonomously. 

    My sailplane is motor-free, so hopefully that won't cause too much of an issue with the ATV code.  Initially I thought I could just use the throttle channel in software for spoiler input, however anytime that MatrixPilot would attempt to use the motor to climb, etc, it would end up deploying the spoilers, likely with a disastrous outcome.  I'm sure I can pick some unused channel and assign that to throttle input within MP, and use the physical throttle channel as a spoiler input within software.  Then it would just be a matter of playing around within servoMix.c to take this new channel and mix it in with the ailerons.

    This plane is a floater though, and without spoilers I am fairly certain that the autopilot is going to come in way too fast if it is forced to land the plane for some reason.  I have a hard enough time manually bringing it in sometimes unless I have lots of room to put it down... so this is a bit of a priority.  :)

    • Hi Jason,

      Good to hear you're making progress.

      From the perspective of the LOGO script, I would go for a modified servo mixer setup.

      - set THROTTLE_INPUT_CHANNEL and THROTTLE_OUTPUT_CHANNEL to CHANNEL_UNUSED.

      - don't use BRAKE_THR_SEL_INPUT_CHANNEL

      - define a SPOILER_INPUT_CHANNEL and SPOILER_OUTPUT_CHANNEL

      - mix autopilotButterflySelected into SPOILER_OUTPUT_CHANNEL for breaking above HEIGHT_TARGET_MAX

      You could setup the failsafe mode to use spoilers extended. This way the landing will be at lower speeds if the radio should fail. Autolanding is possible, but it is not part of the LET script.

      Hope this makes sense, let me know.

      Regards,

      Kees

This reply was deleted.

Activity

DIY Robocars via Twitter
RT @TinkerGen_: "The Tinkergen MARK ($199) is my new favorite starter robocar. It’s got everything — computer vision, deep learning, sensor…
Monday
DIY Robocars via Twitter
Monday
DIY Robocars via Twitter
RT @roboton_io: Join our FREE Sumo Competition 🤖🏆 👉 https://roboton.io/ranking/vsc2020 #sumo #robot #edtech #competition #games4ed https://t.co/WOx…
Nov 16
DIY Drones via Twitter
First impressions of Tinkergen MARK robocar https://ift.tt/36IeZHc
Nov 16
DIY Robocars via Twitter
Our review of the @TinkerGen_ MARK robocar, which is the best on the market right now https://diyrobocars.com/2020/11/15/first-impressions-of-tinkergen-mark-robocar/ https://t.co/ENIlU5SfZ2
Nov 15
DIY Robocars via Twitter
RT @Ingmar_Stapel: I have now explained the OpenBot project in great detail on my blog with 12 articles step by step. I hope you enjoy read…
Nov 15
DIY Robocars via Twitter
RT @DAVGtech: This is a must attend. Click the link, follow link to read the story, sign up. #chaos2020 #digitalconnection #digitalworld ht…
Nov 15
DIY Robocars via Twitter
RT @a1k0n: Got a new chassis for outdoor races (hobbyking Quantum Vandal) but I totally didn't expect that it might cause problems for my g…
Nov 11
DIY Drones via Twitter
First impressions of the Intel OpenBot https://ift.tt/36qkVV4
Nov 10
DIY Robocars via Twitter
Nov 9
DIY Robocars via Twitter
Excellent use of cardboard instead of 3D printing! https://twitter.com/Ingmar_Stapel/status/1324960595318333441
Nov 7
DIY Robocars via Twitter
RT @chr1sa: We've got a record 50 teams competing in this month's @DIYRobocars @donkey_car virtual AI car race. Starting today at 10:00am…
Nov 7
DIY Robocars via Twitter
Nov 6
DIY Robocars via Twitter
RT @a1k0n: Car's view, using a fisheye camera. The ceiling light tracking algorithm gave me some ideas to improve ConeSLAM, and having grou…
Nov 5
DIY Robocars via Twitter
RT @a1k0n: To get ground truth I measured the rug, found the pixel coordinates of its corners, calibrated my phone camera with my standard…
Nov 5
DIY Robocars via Twitter
RT @a1k0n: @DIYRobocars is back in December, but outside. Time to reinvestigate ConeSLAM! I rigged up a quick and dirty ground-truth captur…
Nov 5
More…