I think I may have discovered an issue with INS/GPS frame position offsets.
Brief background: I recognized that I never properly set the GPS_POS_X and INS_POS_X parameters on my Rover mower. I set the GPS Y axis offsets for use with GPS yaw, but the fore/aft offsets remained at zero, which probably explains why I can’t completely eliminate oscillation in the navigation controller. But when I set those per the documentation, my previously excellent pivot turns became odd.
The GPS antennas are 0.366m left and right of center, 0.07m aft of the rear axle, about which the mower pivots. The Cube Orange is 0.27m forward of the rear axle, centered left/right. I set the following per the documentation, expecting perfect results:
GPS_POS1_X=-0.07
GPS_POS2_X=-0.07
INS_POS1_X=0.27
INS_POS2_X=0.27
INS_POS3_X=0.27
What I got was this (about a 1 foot radius circle on the position track, despite the mower physically pivoting almost perfectly in place via a manual mode pivot):
After more time messing with position offsets than I care to admit, I discovered that if I lied to the FC and told it that the GPS antennas were exactly as far aft of the INS position as they actually are aft of the physical centroid (GPS_POS*_X=0.20), I could achieve a much cleaner pivot turn:
With those physically strange settings, the pivots in all modes were nearly perfect, where with the settings per the actual measured positions, pivots in auto/acro/steering modes were a bit odd (not purely pivoting in place), and the resulting track on screen showed some radius or diagonal between the start and end of the turn.
However, navigation oscillation was worse if I used the settings that resulted in better pivot turns. On the contrary, if I set the measured/correct ones, I could nearly eliminate navigation oscillation, with the penalty of slightly poor pivot behavior.
I hope I’m explaining this well, since it’s a confusing concept, and I may well have a misconception regarding expected behavior. If it helps, I posted a YouTube video on the subject. Skip to 3:02 if you don’t want a repeat of the background discussion I posted here.
As always, I’m happy to provide .bin logs for any set of parameters tested. I’d include them now, but the logs I have at hand are extremely large due to the length of time I tested and tuned.
Based on a discussion with @ktrussell, it appears this may be unique to 4.1.0, as his observations with the present stable release seem to coincide with pivot behavior expectation, where my observations over the past 2 days using 4.1.0-beta releases do not. Unfortunately, I don’t have a yaw source accurate enough to successfully revert to 4.0.9, so I can’t confirm that suspicion. I do know that the possible issue is present from 4.1.0-beta1 forward.