Autonomous Glider - Yaw not responding due to lack of airspeed

Good evening everyone,

I’m working on an autonomous glider using the Pixhawk Mini and having trouble making it glide towards a set location. I’ve narrowed it down to the yaw not functioning correctly (or at all), which is most likely due to no airspeed sensor. Does anyone know how I would be able to test the yaw of the glider without throwing it and without an airspeed sensor? Moving around with it is fine, but I’m trying to limit that to a jog.

Here’s some background on the project:

  • Pixhawk Mini
  • Autonomous Glider (No RC)
  • No airspeed sensor
  • Mixer file contains: 2 elevators sensing pitch/roll and a rudder sensing yaw
  • The end goal is to drop out from 20,000 ft and have it glide towards a set location

Currently, I’ve tried increasing the parameters that calculate the yaw and running with it in hopes of providing enough acceleration to see how it reacts, but that resulted in the rudder freaking out and going far left then far right.

Right now I’m trying to set the airspeed to say, 20mph, and see if I can trick it to calculating yaw and seeing the rudder move. However, I’m still searching for what will need to be edited in the code.

Any help is extremely appreciated,
Thanks!

Can you expand on exactly what you’ve tried and seen? Have you piloted the vehicle in a manual mode? Stabilized, altitude control, etc?
Can you share a log? http://logs.uaventure.com/

Yaw is only used for coordinated turns and rate control. Meaning turning is primarily done with roll (aileron/elevon) to achieve a desired lateral acceleration for navigation purposes.

Thanks for getting back to me!

Things I’ve tried:
These were all done while stationary and with the hardware set up on a desk.

Manual-
Initially, I checked the operation of the servos in Manual. I used the virtual joysticks on QGC to move the servos: the right one for moving the two elevators on the tail and the left one for moving the rudder. Throttle works as well, but was removed from the mixer since the glider has no propellers.

Stabilized-
Next I checked that the two tail elevators would attempt to keep the glider stabilized (flat, no roll, no pitch). Placing the mode to Stabilized made the tail elevators attempt to correct the glider. Ex, pointing the nose down moved the elevators up and leaning the glider to the left (in a roll) would adjust the left elevator up and right elevator down.

Mission-
I planned a short mission consisting of:

  • Home - at current location, at current altitude
  • Takeoff - a small distance away at relative to home altitude of 0
  • Waypoint - a small distance away at relative to home altitude of 0

Then I armed and placed into Mission mode. The elevators attempted to keep the glider stabilized while the rudder did nothing. I turned the glider in the opposite direction of the location it was supposed to reach and still nothing.

Then I changed the gain parameters of yaw in hopes of raising the sensitivity of acceleration for the yaw. I ran around for a short time while watching the rudder. It would pin to one direction and stay, even while not running. It seemed very sporadic. However, leaning the glider as if in a roll would move the rudder servo.

Just recently I set everything up in a car and had someone drive around in hopes of providing acceleration and getting the yaw to function properly. Again it would move with the roll of the glider. The test/experiment had to end abruptly, so I wasn’t able to try as many things as I planned.

I’ve added the log files for that test in the car along with the mixer file I’m using.
Log: http://logs.uaventure.com/logmuncher/charts/5XLcYawJNiSWdSEKirpV6B/logmuncher.log
Log Plots: http://logs.uaventure.com/view/5XLcYawJNiSWdSEKirpV6B
Mixer:

Your log file is only 5 seconds long, but let’s ignore that for a minute.

What do you expect to be happening? In autonomous flight the vehicle turns by banking (roll actuation), and rudder is only used to dampen yaw. It’s possible to have rudder used in coordinated turns, but in your logs that isn’t enabled.

Have you tried a manual flight with or without throttle? You could try stabilize, altitude, mission modes in the air and quickly switch back to full manual if you don’t like what you’re seeing. Things behave differently on the ground when the vehicle detects that it’s landed.

Takeoff should be some altitude above home, probably 30-50 meters.
Once you get the basics working you’ll need to modify a few things for waypoint navigation as a glider. Waypoints have an acceptance radius and altitude. Presumably you’ll want special treatment for altitude?

The end goal is to launch the glider from an altitude of about 20,000 feet and have it navigate to a set location.

Before I do that, I’m trying to make sure that it will function properly on the ground (it’s starting to sound like that’ll give me problems though). After verifying that I plan on throwing it from high altitudes (like a building or something) to test its flight in Mission mode. Ideally, at this point it would navigate towards the set location.

I haven’t tried any actual flight for this reason, but I have verified that all the servos will function given the correct signal.

It sounds like the rudder won’t be used at all unless I enable it for coordinated turns. Which is fine either way, I just want it to navigate to the waypoint.

Do you have any advice on how I should go about getting this to happen?

And thanks again for the help! This is for a college capstone project and it’s been giving me some real trouble!

I think you should do some manual/stabilized/altitude control flying in order to tune the controller.

Why no airspeed sensor? There’s a parameter called speed weight (FW_T_SPDWEIGHT) that shifts the position controller (TECS) from prioritizing altitude, airspeed, or both. In a glider you’d want to set FW_T_SPDWEIGHT = 2 so that the vehicle only tries to maintain trim airspeed and will pitch down (or up) to do so. Without airspeed I’m not sure what would make sense for a glider.

I suggest you check again roll stabilisation, because what you did describe before acts in the opposite way as it should = disaster :expressionless:
Leaning to the left, left aileron down!
Not completely in agreement about rudder usage, depends on plane geometry, especially on a glider, but anyway …
Ric

Thanks for the replies! I tried to test the stabilization and manual flight earlier today, but had trouble communicating with the Pixhawk Mini and my PC. I believe there was a loose connection, so I’ll have to fix that and try again.

Initially the airspeed sensor wasn’t thought to be needed so we designed the glider without it. So now there’s no room for it, also there’s none available even if we did make the glider bigger. I feel like it sure would make things easier though.

Ric, so to make it lean left the left aileron would be down? If it’s backwards that’s not a huge issue, we can always change it. But these tests were done in Stabilized mode and while moving the glider around with my hand. Unfortunately, I wasn’t able to actually test how the glider handles in the air.

After I get a decent test/figure it out I’ll let post again. Thanks!

No, to roll left, left aileron has to go up, but if you check stabilisation, as I guess you did, when you roll the plane to the left, left aileron has to go down to counteract. Or did I get it completely wrong :joy:?
Ric

Update:
Summary: The glider is a bad design and fails to glide so using the Pixhawk Mini made no noticeable difference. A new glider is being designed.

The last test we tried consisted of placing the glider in stabilization mode and lifting it into the air with a drone then dropping it. We were only able to use stabilization mode due to connectivity issues. I’m not sure what happened there since I’m not able to duplicate the issue.

I was unable to do any tuning. The glider is a poor glider. In fact, it’s basically a brick with wings, so it just fell straight to the ground. The tail elevators were moving but it didn’t make a difference.

It’s now being redesigned with the hopes of generating more lift.

New questions:
Since the glider is being redesigned, I still need to make it glide towards a set location. This brings up some more questions:

  • Testing: Testing it from high altitudes is proving to be difficult and testing it by throwing it doesn’t work very well either. Is there any way I can test that it will navigate towards a set location while holding it?

    For example: set a location, drive around in a car, and check to see that the tail elevators move so that they would direct the glider towards the destination.

  • Servos: I need to turn the servos on at a set altitude. Is there any way I can do this in the firmware? I’ve looked around, but I’m too unfamiliar with the firmware.

Thanks again for any help!

If you can post a log of the attempt I can tell you if the controller was working at all.

Do you want the servos activated at altitude or would something like drop detection be better?

I would gain some confidence that the simple stabilized mode is working correctly, then dropping it to test autonomous navigation won’t be such a big deal. You’ll be able to retake control with RC and land manually.

Hello.

@polem I am doing a similar project, having a glider deployed at 10,000 ft from a rocket and landing in a 2x2 meters net using RTK GPS for positioning. In addition, I also have an airspeed sensor, and a 3rd servo for drag control. I would be interested to know how your project is going now. Did you manage to redesign a new glider with more lift?

All the best,
Sorina

Interesting project @lupusorina! Please share details if you’re able to.

Thanks. Glad to see people interested. So I am part of a team that will participate at the Intercollegiate Rocket Competition.

for this competition, we are developing a rocket that’s flying to 3km and a glider that’s going to be deployed from the rocket. Atm we are done with the rocket, we will do some tests in mid May, so we focus on doing the glider. The glider is folded, will stay inside the rocket until the rocket goes up and then at apogee, it will go out. From there, it will glide down and land in a net

Some specifications for the glider

  • speed max: 25 m/s
  • wingspan: 60 cm
  • airfoil: MH45
  • folded with the wings back
  • components: pixracer v1, servos, airspeed sensor, xbee, batteries, antennas of course, RTK GPS, a small camera (total weight of the components about 200 grams)

Atm, I am doing the mechanical part, which is foam + carbon fibre. I will start soon the algorithm part. If suggestions, let me know

The first thing that comes to mind is to double check the FW controllers usage of true vs indicated airspeed. It will actually start to matter at those altitudes.
https://github.com/PX4/Firmware/blob/master/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp#L2290

The common ms4525 airspeed sensor drifts with temperature. It may be worth extending the new sensor temperature calibration currently implemented for accels, gyro, baro.

To keep the glider disarmed until deployed you could modify FW launch detection or do something else to trigger it.

The only real controller change you probably need is to set FW_T_SPDWEIGHT to 2, which makes the position controller ignore altitude errors and maintain airspeed. You might also want to think through waypoint navigation, and if you need it to work differently without climbing.

1 Like

Tell us please how far you are with your project.
I am an ex modelbuilder and glider pilot. Started to get interest in the subject after giving my grandson a quad drone, amazing technology!
So I got my old models from the cellar and want to equip them with autopilots. At the same time I would like to develop a glider that has flight modes for thermalling etc.