28" ~18kg X8 wobbly loiter

Hello everyone,

we have a ~18kg X8 with 28" props on T-Motor U8II arm ends FC is a Cube Orange, mounted with foam pads that were in the package.

I have set up a FFT-Based notch filter and verified that it works, then I did autotune (multiple times, first without and then with rigidly mounted payload).
In AltHolt the craft flies well, but when in Loiter, expecially when braking it seems wobbly and twitchy.

I have lowered the LOIT_ params a bit, but that didn’t seem to help much.

I will upload a log after the next flight today.

Here is a log with another pitch tuning run and some flying around in Loiter:

I am thankful for any pointers/help!

Try lowering the Yaw P and I a bit to
at least until the rest of the tuning is sorted out and you can verify if values higher than 1.0/0.1 are OK.

Change your Harmonic Notch filter settings as follows:

The question you asked about Loiter stability - it’s affected by vibrations and GPS position. This means the aircraft is constantly trying to correct or follow an ever-changing position. You wont see this affect in Stabilise or Alt Hold since they are not relying on X and Y axis position data in the same way as Loiter.

Vibrations are acceptable, not great, but should be good enough. Anything you can do to reduce vibrations further would be worth the effort.

Your GPS1 has a better, more stable update rate than GPS0, but it takes longer to get a good HDOP.
You might want to set FENCE_ENABLE,1 which will force you to wait for a good 3D fix, especially since this is a big expensive and dangerous aircraft.
Experiment with GPS_GNSS_MODE and GPS_GNSS_MODE2 to find what works best in your area. Maybe 5 for GPS and Galileo or 65 for GPS and GLONASS.
In my area there are lots of Beidou sats visible but they give an unsatisfactory HDOP.
Less constellations can mean a faster fix and more stable position data, better update rate.

You might also want to set the best GPS unit as primary GPS_PRIMARY,1 and GPS_AUTO_SWITCH,4 to avoid unnecessarily switching GPS units.

You can see on the map where the IMUs and the GPS units all think they are positioned - ideally these lines would all be much more closely overlaid.

In that pic you can see GPS0 is more closely aligned with the IMU position than GPS2, but that would be because it gained a good 3D fix first and became the primary GPS by default. Experiment with the GPS_GNSS_MODE values (both GPS units would be set the same) and the Primary/Autoswitch settings.

It will be worth doing another Autotune if that all works out OK.


Thank you very much for your extensive answer!

I changed the tuning and FFT/Notch settings as you suggested and will try them now. The fence was only disabled for some testing flights and I forgot to turn it back on.

One of the GPSs is a M8P and the other is a M8N via a Matek L431 CAN-Bridge. I will try to use RTK for the next flights and see if it makes a big difference, and we might update the second GPS to a M8P too.

Another thing: With wobbly loiter I primarily meant that for example when braking in loiter the copter shakes and wobbles until it hovers again. Flying in a straight line it flies quite stable.

A side question: Is it generally recommended to set GPS_AUTO_CONFIG to 2 to enable automatic configuration for DroneCAN GPSs?

1 Like

At least subjectively the better filter settings seemed to help a ton, post-filter the vibrations look much better in the Log as well:

I disconnected the second GPS and then the M8P was able to get an RTK float solution (with both connected it somehow didn’t work).

At a second flight, the craft at one point violently shook diagonally but was able to catch itself again, I guess it was a combination of the detuned yaw (previously ATC_RAT_YAW_P was around 1.8), not-so-full batteries and a (perhaps irresponsibly) strong commanded yaw change (going from almost full left stick to almost full right stick in less than a second).

We will change over to two M8P-based GPSs and retune all axis.

Edit: here is also the log with the wobble, it’s somewhat later in the log, as I first collected data for log-based compass calibration: