LPE Feedback

Last night I flew master with LPE enabled and immediately followed up a 2nd flight with a change to INAV.

PixRacer / GPS only

I noted the following differences:

-INAV altitude is much smoother.
-LPE seems much more responsive to BARO changes but the response is almost like too much and then too little. The effect is audible from the aircraft. I wonder if there is a current draw penalty for that behavior.
-LPE position hold was very solid, altitude excluded.
-INAV using the same settings has a pronounced toilet bowl movement for me. LPE does not exhibit this.
-Overall feeling during flights was INAV is smoother and more predictable.

LPE LOG: http://logs.uaventure.com/view/f7ckv9aTfuEss7VoXipQe7
INAV LOG: http://logs.uaventure.com/view/Wdi59ZGLdmsdhdRX63Bmx5

I hope this helps.

2 Likes

Helps a ton, thanks! @jgoppert It would be great if you could chime in and have a look at the log.

@PKocmoud Can you try to lower the MPC_VEL_P gain significantly and if that does not help, reduce the MPC_POS_P (try both independently)?

It looks like your controller is unstable. I’m not sure yet why. But its certainly worth trying.

After running the numbers, the baro standard deviation for hover is 3x what I have on the iris with a pixhawk. So this is probably why it isn’t tuned properly. I have it set to 1 m in the parameters, but this also accounts for long term drift. So I think you need to set LPE_BAR_Z to 2 or 3. This is sort of a chicken or the egg type of problem though, so see comment below.

Baro variance
iris, pixhawk, jgoppert: 0.35 m
250 quad, pixracer, pkocmoud: 1.2 m

@PKocmoud Could you set your pixracer on the ground level for a bit, that will take all other variables out of the equation and we can compare raw data to make sure it really is the sensor difference causing this.

Here is another comparison of the standard deviation of local z during hover for the 3 flights:

In [80]:
pl.sqrt(data_pkocmoud.LPOS_Z.var())
Out[80]:
0.34392730770541818

In [78]:
pl.sqrt(data_pkocmoud_inav.LPOS_Z.var())
Out[78]:
0.17970352544275056
In [76]:

pl.sqrt(data_jmg.LPOS_Z.var())
Out[76]:
0.11418901826433966

If we get the same performance from a static test of the vehicle sitting on the ground, then I think we can say that it is the control gains that need to be adjusted as @LorenzMeier proposed.