Soaring/Gliding for Planes

Looking forward to trying out the soaring code in 3.8. Unfortunately I am waaaay too deep into aerial mapping with Pix4D, initially with Phantom 4 Pro, but now launching a MyTwinDream build that will run Arduplane 3.8, making use of terrain following for some large mapping missions, and hopefully incorporating Reach RTK GPS. I might be a while in this current bent, but look forward to ArduSoar shortly after that.

Kelly

Hi @Samuel_Tabor, please read this:

https://github.com/ArduPilot/ardupilot/issues/6773

Any news in this topic ? I’m realy interested in soaring functions. For this UAV motoglider:

Plane is designed for using a termal conditions so automatic functions for this should do a really very long flights.

1 Like

ArduPlane supports Soaring. Install an Autopilot and let us know how you go. :slight_smile:

I would say the update is, yes it works :wink:

Interesting bit of research from the Microsoft team. This extends the current soaring capability by replacing the normal heading/navigation controller with a specific soaring guidance controller. This numerically optimises the trajectory to maximise lift and improve the estimate of the thermal position and strength. Should result in very smooth flightpaths and improved thermal centreing!


Happy soaring!

3 Likes

How to use Soar mode correctly on the flight controller Pixhawk 4?
I want to experience the soaring mode using Holybro Pixhawk 4. For my experiments I built a glider DG-808S with a size of wings of 4 meters.
I have Pixhawk 4 with firmware 3.9.4. I realized that this SOAR_ENABLE mode is implemented for AUTO, FBWB or CRUISE. How to build a flight plan AUTO there is also necessary for waypoints to specify the altitude, and for the SOAR mode, I previously had to install SOAR_ALT_MIN and SOAR_ALT_CUTOFF here is unclear what to put in the waypoints in height, because there is no clarity as he plans to the next point. However, there is a calculation of the error of hitting the height on the waypoint, but this is also uncertainty. The Pixhawk itself includes a "throttle " If the plane reaches the SOAR_ALT_MIN height, so it is necessary to set the parameters for the motor max and minimum? However I think that it is not enough, it is not clear how will gain height, with what angle (pitch) What parameter to set on lifting? As for the planning is clear in the description says: The TECS needs to be set up to fly the aircraft at a consistent airspeed when gliding To achieve this, set TECS_SPDWEIGHT to 2.0, set SOAR_ENABLE to 1 and set SOAR_VSPEED to a large number, say 50.0. This means that the aircraft will glide but will never begin thermalling. Set SOAR_ALT_CUTOFF to an altitude you feel comfortable with. It should be high enough to allow a good length of time to be spent gliding. Launch the aircraft and put it in AUTO mode. It should climb to SOAR_ALT_CUTOFF and then begin a gliding descent. Watch the telemetry graphs or look at the Dataflash logs. Is the aircraft maintaining the demanded airspeed? The demanded airspeed can be seen in the Dataflash log as TECS.spdem, and via telemetry you can use NAV_CONTROLLER_OUTPUT.aspd_error. You will probably need to increase PTCH2SRV_IMAX and TECS_INTEG_GAIN to achieve good airspeed tracking in gliding flight.How to use SOAR_ENABLE_CH A channel that includes the SOAR mode at what point should it be enabled?

Hi Aleksandr,

I think there’s a few questions there.

Any altitude above SOAR_ALT_CUTOFF like it say in the docs.

Throttle and pitch limits work as normal. You have to set these up using the standard TECS tuning methods.

Set SOAR_ENABLE_CH to the channel number you want to use. When this channel is below 1700 soaring will not occur - the effect is the same as setting SOAR_ENABLE=0.

Hope that helps
Sam

Thanks for the quick and understandable reply and attention to my questions ! I wanted to know in what sequence to include the modes SOAR_ENABLE_CH and AUTO. Is it possible to first use the mode of SOAR_ENABLE_CH then turn on AUTO or first AUTO then turn SOAR_ENABLE_CH? ? Can I enable this mode SOAR_ENABLE_CH at any time modes AUTO, FBWB or CRUISE?

Yes you can use SOAR_ENABLE_CH with any of those modes with SOAR_ENABLE=1. Or you can leave SOAR_ENABLE_CH set to 0 - in which case soaring is always enabled when SOAR_ENABLE=1.

Hi Sam! Thanks for the reply? Your answer helped to understand how to adjust the mode SOAR. When the weather on the street will be good I’ll do tests and will send report about the results of the mode SOAR

Sam,

I stumbled across this thread and have been planning to try “Ardu-Soar.” Do you think a Volantex Phoenix 2400 would be a good starting point for this? I have no experience with thermaling but was curious about trying it before I saw this. The Radian is now only available as an XL and only has an expensive stabilizer that will be ripped out. It also has a lot of dihedral. Seems a lot less interesting than the Radian Pro which you cannot get any more.

I then looked at the link you supplied to the work on Partially Observable Markov Decision Process (POMDP) by the Microsoft team. What an absolute gem this quiet corner of Ardupilot is – it deserves a lot more attention. I see you are working to port this back to master. When I get more time I am going to try to understand the mathematics of this and fire it up in SITL. This is why I love hanging around Ardupilot. All sorts of amazing things happen on the fringes.

I see that POMDP is optimized ideally for a co-processor and that you are looking at using tables on the SD card to shoehorn this into master. How is that going? Could it be made to run on a Raspberry PiOw? It would be easy enough to slap that on top of an F405 Wing for example.

Hi Marc

I think the Phoenix 2400 would be a good start. I actually had a Phoenix 2000 set up at one point but didn’t get to test soaring on it. The construction is good - very robust. It does like to fly a good bit faster than a Radian.

I was doing quite a bit on the POMDP - you can find my version in a more recent branch from master, and slightly changed for simplicity/readability, here https://github.com/samuelctabor/ardupilot/tree/Soar-POMDP-master .

I got as far as testing it against the vanilla soaring code in SITL. Unfortunately I found that the SITL environment was giving some non-repeatable results, even after disabling all the RNGs I could find. This made it quite hard to thoroughly assess the advantages of the more complex method. I’ll get back to it when I have some time. Computationally it is actually OK on the Pixhawk - the Microsoft team did their flights that way.

Sam

What am I supposed to do? Can it be a bug in the program?

In the program message: SOAR_POLAR_K value is out f range. I have (http://ardupilot.org/plane/docs/soaring.html?highlight=soar) SOAR_POLAR_K = 16X3,5/0,56 = 100 http://ardupilot.org/plane/docs/parameters.html#soar-polar-k-cl-factor
SOAR_POLAR_K: Cl factor
Note: This parameter is for advanced users
Cl factor 2mg/(rho*S)
Range Units
0 - 0.5 square meter per square second
Is it a mistake Range 0-0,5?

For exampleб RSS-2018_Radian_Pro_parameters.param SOAR_POLAR_K,40.1

It’s fine to hit OK. I’ll fix the range of the parameter in the code to avoid this warning in future.

Thanks for the quick reply! I continue to work on this project. Is the value of parameters for a glider with an area of 0.56 square meters and 3,5 kg suitable for use SOAR_POLAR_B,0.031 SOAR_POLAR_CD0,0.027 ? For Radian_Pro is SOAR_POLAR_B,0.033 SOAR_POLAR_CD0,0.042.

Hello, I’m new here and that’s my first post.
I’m using ArduPlane 3.10.0 (04.05.2019) on MATEK-405 wing and my ASW17 from HYPE is flying very well.
Since some weeks I tested the SOARing option, but I’m not really satisfied with the results. If there are thermals, it works fine, but if there are no thermals, it seems, that the plane is falling from one stall to the next.
I had no and I will not install a speed-sensor, because my aim is to equip my existing scale-sailplanes with ArduPlane.

Now my question:
I would like to test the TECS_SYNAIRSPEED option. But the cryptic warning “Do not enable this option unless you fully understand the limitations of a synthetic airspeed estimate” made me unsecure. I understood that that option is resulting in an estimated airspeed only, but that should be better as using no airspeed at all (except the GPS-groundspeed?).
So what’s the risk?
If my plane is in trouble I can fly it MANUAL - so I tend to try out that option.
What do you suggest?

Hi Willy,

Yes soaring will definitely not work without an airspeed sensor as the documentation says. In fact in the next version I am going to check this automatically and turn soaring off in this situation.

I haven’t tested TECS_SYNAIRSPEED but I would expect it to work better than no airspeed sensor at all.

Airspeed sensors are very easy to install and will make your plane fly a lot better and more reliably - highly recommended!

Sam

Hi Sam,

I thank you for your quick feedback.

I will test TECS_SYNAIRSPEED and will report here.
If it works (as a less-than-ideal solution) it would be helpful to let exist the option of SOARing with no airspeed-sensor and give just an additional hint in the documentation.
But first let’s see if it really will work.