Reverse Thrust Approach/Land

I was test flying all day today and one of the things that’s been bugging me is the long approach to landing. Now my plane is kind of on the heavier side, and anything over 8 degrees glideslope leads to a long landing. Would something like this be possible to implement on px4? I know ardupilot has a reverse thrust feature, but I have never tried it myself.

It’s definitely possible, but we may have to go through a lot of code to allow a negative thrust.

I think the harder part is figuring when to effectively apply the reverse thrust.

There are also other ways landing could be optimized. That glideslope angle corresponds to a given airspeed for your vehicle. We could have additional phases where you descend faster (steeper).

Setting up landing is really 2 waypoints. The actual LAND, and then the previous waypoint to line up the approach. One thing you might want to try is using MAV_CMD_NAV_LOITER_TO_ALT as that earlier waypoint. You can use this to descend in a tight loiter, then exit the loiter on a tangent when the heading is aligned towards landing (params #1 and #4).

That’s what I thought. It would take a lot to add it in.

It could be applied when the plane hits glide slope/approach, using it only to keep the airspeed in check on the descent, and maybe just cutting throttle completely at flare.

As for landing optimization maybe something like a pre-flare? After a steep descent it could hit pre-flare and pull up slightly before hitting the actual flare? I messed around with FW_LND_HVIRT today and got the plane to land semi-accurately with a high angle of approach and then a flare farther down from the land waypoint. It was pretty random if whether it would land short or long.

I’ll try it next time. I’ve heard of certain autopilots having a rally to land which sounds very similar.

I wrote the reverse thrust feature in Ardupilot. It works really good. I can do a 15-20 degree approach with a Skywalker x8 with pin point landings in all wind conditions.

Here’s another example of it landing where I’m standing but move out of the way just as it lands. This particular landing test was with a pair of 25 foot streamers added for excessive drag using the exact same settings to see if the controller compensated well during the land, which it did. I can’t remember what the glide slope angle was on this one but as you can see in the video it is relatively steep for an aircraft of that size.

Reverse thrust really helps with helical lands too. Here’s a MAV_CMD_NAV_LOITER_TO_ALT with a tangent exit with a land point ahead with 15deg final slope. Same plane (no streamers), same settings - only a mission change.

I usually don’t come to this forum to talk about Ardupilot, I consider it rude. I only do it because Ardupilot was brought up regarding having this feature but with unknown performance and usage. It was asked how it can be done in px4 so I am providing examples of it in Ardupilot for px4 inspiration.

Here’s the wiki:
http://ardupilot.org/plane/docs/automatic-landing.html#reverse-thrust-landing

That’s actually pretty impressive. I’ve used ardupilot in the past but never tried a reverse thrust landing, and I have never seen a good video of it until now. The Skywalker x8 is a pretty large plane too if I’m not mistaken.

Do you think something like this would be possible to implement into px4?

I took another look at the fixed wing controllers with respect to adding reverse thrust, and I think it could be pretty straightforward actually. The main difficulty I think would be handling it properly in TECS, and testing of course.

Finding a good speed controller to use might also be difficult.

I believe there are ways to actually flash certain speed controllers to allow it to use reverse thrust. Specifically BLheli and SimonK ones, described by the ardupilot guide.

I’m always available for testing anything fixedwing (as long as my planes stop flying away).