The copter is using most of its yaw authority only to hold its heading
What ArduPilot says:
- Yaw Imbalance N.N%
To keep its heading the yaw rate controller's I term, filtered, has passed 75% of its limit ATC_RAT_YAW_IMAX (or reached the limit outright). The number in the message is that I term as a percentage of full yaw output. Something twists the copter all the time, and little is left for wind or for turning; if the limit is reached the heading starts to wander. The warning repeats every 10 s while it lasts.
What to do, most likely first
A motor is not upright: a twisted arm or a tilted motor mount turns part of its thrust into a constant yaw torque.
CheckSight along each arm with the copter on a table. In a hover log the two clockwise motors run steadily higher or lower in RCOU than the two anticlockwise ones.
FixStraighten the arm or mount so every motor shaft is square to the frame.
Props or motors are not all alike, or one prop is damaged, so the two spin directions give different torque.
FixFit four props of the same make and size in good condition, and motors of the same type.
The ESCs do not answer the same signal alike: they were calibrated to different PWM ranges.
CheckWith the props off, the motor test at the same percentage spins the motors at visibly different speeds.
FixCalibrate all the ESCs together (props off), or use DShot, which needs no calibration.
Parameters to look at
| Parameter | What it is |
|---|---|
ATC_RAT_YAW_IMAX | Yaw axis rate controller I gain maximum |
ATC_RAT_YAW_I | Yaw axis rate controller I gain |
MOT_YAW_HEADROOM | Matrix Yaw Min |
MOT_PWM_TYPE | Output PWM type |
Where to do it:Setup & Tuning GuideMotor & Prop Bench
The code that sends it
Yaw Imbalance N.N%
ArduCopter/crash_check.cpp Copter::yaw_imbalance_check() · Open in ArduPilot Copter-4.7.1