PX4 / PX4-Autopilot

PX4 Autopilot Software
https://px4.io
BSD 3-Clause "New" or "Revised" License
8.46k stars 13.5k forks source link

Add auto-transition based on requested velocity profile #3252

Closed LorenzMeier closed 8 years ago

LorenzMeier commented 8 years ago

Should have this for VTOLs at some point.

LorenzMeier commented 8 years ago

Note that #3251 needs to be fixed first.

sanderux commented 8 years ago

I suggest adding a MIS_FAILS_TRANS or VT_FAILS_TRANS parameter that controls the behavior of a failed transition in mission mode. RTL seems like a reasonable default setting.

sanderux commented 8 years ago

@LorenzMeier said: "Although I believe the better pattern would be to add support to DO_SET_SPEED and perform the transition automatically based on the desired travel velocity (and distance to the next waypoint with hover time). That would allow to auto-script something."

I think this would be a good option for tiltrotors, tiltwings and tailsitters. But for standard VTOL i think it would be problematic. When for example a DO_SET_SPEED of 5m/s is set and a transition speed of 10m/s the vehicle would tilt forward (nose down). If after that a DO_SET_SPEED of 15m/s is given the vehicle would transition with it's nose still down. Not a desirable situation i think.

I do think that LAND (at least in failsafe) should transition back to MC as the home position might not be suitable for FW landings.

Perhaps some sort of AUTO_TRANSITION_SPEED could be set and default to 0 for standard VTOL

LorenzMeier commented 8 years ago

I don't see the argument with nose down. Its up to the transition controller to get that right, and its always a consideration for any transition (be it manually triggered or autonomous). Transitioning depends on desired speed and expected distance to cover and is something that the vehicle can do significantly better than the operator. You're over-burdening the operator during flight planning by assuming he will pre-plan the velocity profile in his head.

It means you're assuming a very technical operator, which spoils the whole concept of autonomous flight to a significant degree.

sanderux commented 8 years ago

Thats also true. The vtol mixer could level the vehicle before transitioning and the navigator could decide to transition if speed and distance meet the criteria. Is there already a distance estimator for an entire mission? Or should it only be based on the next waypoint?

i would suggest entire mission as that would give the operator the option to direct the plane into the wind to transition.

LorenzMeier commented 8 years ago

image

I quickly sketched a 4D concept for a mission. The integral defines when to transition.

sanderux commented 8 years ago

I understand, the entire mission length doesnt always imply transitioning. So on a 10m stretch at 20m/s and a 2km stretch (in a different heading) after that at the same speed would transition before the 10m stretch, but if there is a hover event or a speed decrease within x distance it would not?

LorenzMeier commented 8 years ago

What I forgot to draw is the minimum transition profile and the transition cost: The minimum transition profile is the minimum distance you need to accelerate, transition, fly, transition back, decelerate. That is (modulo wind) a known fixed quantity of N seconds / N meters. The second metric is transition cost: The whole action likely has an energy premium to it compared to a multi rotor mode hover at slower speed. When both metrics are met the system would transition forward. The back transition is way easier: If the system sees the need to get below a certain minimum speed, it has to transition back.

sanderux commented 8 years ago

Could the cost factor not be a part of the airframe's params? MIS_VT_TRANS_SPEED=10m/s // minimum airspeed to consider transition MIS_VT_MIN_DISTANCE=500m // minimum horizontal distance at speeds > transition speed to consider transition MIS_VT_MIN_TRANS_DIST=20m // minimum distance to next waypoint to consider transitioning

sanderux commented 8 years ago

and perhaps; MIS_VT_MC_TRANS_DIST=10m // distance required to transition back to MC this one in case of only a LAND instruction at the end of a long high speed stretch, the navigator could look ahead and anticipate the land by transitioning back a few meters before the waypoint is reached and proceeding in MC mode for the final meters before landing.

sanderux commented 8 years ago

The later might be better expressed in seconds as this would of course depend on speed

DonLakeFlyer commented 8 years ago

Just FYI for QGC support: QGC now tracks which mission commands are supported by firmware type. So if new commands are added to PX4 Stack you need to notify me so I can update the list in QGC and have them show up.

LorenzMeier commented 8 years ago

Done. I have renamed and moved this to a next release.

LorenzMeier commented 8 years ago

We do it explicitly right now. removing it.