Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NavDetectGround() makes flair deroute to holding point and kills motors. #2444

Open
danielwillemsen opened this issue Jun 21, 2019 · 3 comments

Comments

@danielwillemsen
Copy link
Contributor

In many rotorcraft flight plans, the flare block is structured the following way:
<block name="flare"> <exception cond="NavDetectGround()" deroute="Holding point"/> <exception cond="!nav_is_in_flight()" deroute="landed"/> <call_once fun="NavStartDetectGround()"/> <stay climb="nav_descend_vspeed" vmode="climb" wp="TD"/> </block>

It seems that the flair is often derouted to holding point, this causes the airframe to fall out of the sky. This has been noticed when flying the course2018_orangeavoid_cyberzoo Bebop aircraft. However, also when using different (custom) airframes, based on a default bebop with optitrack with different flight plans (a modified version of rotorcraft_basic) this happens. It has only been tested with bebop airframes.

For course2018_orangeavoid_cyberzoo:

  • It happens very often, except when the takeoff is performed very smoothly by limiting the amount of throttle used.
  • It does not happen if THRESHOLD_GROUND_DETECT is set tot a very high value (= 100 m/s^2).

#530 is possibly related.

@gautierhattenberger
Copy link
Member

The detection is done based on accelerometer threshold. So if you have a strong noise or if the limit is set too low or two high, it will not work correctly (either cut to soon or too late).

So the first thing is to adjust the threshold according to your aircraft (https://github.com/paparazzi/paparazzi/blob/master/sw/airborne/firmwares/rotorcraft/autopilot_firmware.c#L77) or find a better criteria/filter (https://github.com/paparazzi/paparazzi/blob/master/sw/airborne/firmwares/rotorcraft/autopilot_firmware.c#L212).

You can also try to deroute to a block that continuously reduce the throttle rather than cutting it.

@fvantienen
Copy link
Member

I would love to have a feature which detects a free-fall and then quickly starts the motors back again. So I think a module for landing rotorcraft would be ideal which could also include this safety feature.

My thoughts about how this module should work:

  • Start to descend with a constant speed and does a ground detection
  • Whenever ground is detected set thrust to a minimum (but keep props turning)
  • If free-fall is detected go to step 1 and quickly spin-up the propellors
  • If the props are ~3 seconds at a minimum and no free-fall then turn the props off

@OpenUAS
Copy link
Contributor

OpenUAS commented Oct 31, 2019

A freefall detector is somewhere in Wilco work I recall, we tested throwing hand launch and monitored for top of freefall. Btw take alook at flightplan "openuas_rotorcraft_simple.xml" for some other less error prone landing ideas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants