AC 3.6.9 Crash with IR-Lock and PLND_EST_TYPE enabled

After 2 years this defect was initially reported, it is still open with Arducopter 3.6.9 along with the IR-Lock sensor for precision landing.
When PLND_EST_TYPE is set to 1, the copter gets out of control and goes into a uncontrollable spiral when Precision Loiter is enabled once the IR beacon gets in sight. Unlike during Land mode where you can abort the spiraling by switching into another flight mode, disabling precision loiter does not bring back control.
As long as this defect has not been fixed, please do not enable the kalman filter and keep PLND_EST_TYPE set to 0.

Link to the issue and latest log:

Can you expand on this part a bit? Do you mean switching from PLoiter to Loiter doesn’t stop the death spiral? Stabilize/alt hold?

And as for the issue, as I understand, truly fixing it requires a significant refactor of the precision tracking code, which is why it’s taking so long. @fnoop understands the scope and has done a lot of work on it already, I believe.

That said, I agree that in the meantime the PL EKF option should be hidden or at least have some warning that it is experimental and possibly dangerous.

I did the original refactor nearly 2 years ago:

I did another deep dive a year ago:

Most of the PRs are still sitting waiting to be reviewed.

I don’t have an irlock so don’t know if the problems with irlock are related, however @rmackay9 made this comment on one of the PRs:

As a side note, this PLND_LAG parameter makes it easy to reproduce the bad behaviour users see when the lag does not match their sensor’s lag. If we set PLND_LAG = 160 in SITL we get absolutely crazy roll and pitch wobbles. It’s horrifying actually.

If you have a particular problem with irlock, being a commercial product, can they not help you?

@Anubis I can confirm that switching from PLoiter to Loiter does not stop spiraling. I have not tried to switch to stabilize simply because I wasn’t fast enough until the copter crashed to the ground.

Thanks for your support!
@ThomasSFL - the founder of IR-Lock - has always been extremely helpful. However here I assume a software defect in the PL code.in Arducopter rather than a hardware probem. With PLND_EST_TYPE set to zero IR-Lock works well, however when you enable the kalman filter, the behavior of the drone can become critical, and especially in PLoiter you cant escape the death spiral even when you switch back to loiter.
So as long this is not being fixed, I suggest to add at least a warning note on the usage of the PLND_EST_TYPE parameter to the Precision Landing wiki.

@mtbsteve @fnoop

Thank you for your feedback.

My experience has been that PLND_EST_TYPE = 0 has always been the most robust setting for a wide range of copter builds using IR-LOCK. We recommend PLND_EST_TYPE = 0 on our wiki.

The EKF control method (=1) has worked great for some copters, but it also has a chance of producing unstable control. The EKF PL method (=1) was actually developed for a particular commercial build. It worked great for them, but I don’t recommend it as the default setting.

Best,
Thomas

I agree, also a warning for any vision based system. I have a big fat warning on my vision_landing repo.