by Kisssys » Thu Aug 09, 2012 1:49 pm
The default PID's are way too slow for me also.
You might try these PID's, they will not fix the rate imbalance though.
// YAW rate PID
#define DEFAULT_CTRL_YAW_RTE_P 300.0f
#define DEFAULT_CTRL_YAW_RTE_I 0.15f
#define DEFAULT_CTRL_YAW_RTE_D 50.0f
#define DEFAULT_CTRL_YAW_RTE_F 0.25f
#define DEFAULT_CTRL_YAW_RTE_PM 150.0f
#define DEFAULT_CTRL_YAW_RTE_IM 150.0f
#define DEFAULT_CTRL_YAW_RTE_DM 150.0f
#define DEFAULT_CTRL_YAW_RTE_OM 300.0f
If you can compile the source code you can change the code in control.c about line 105. This should solve the rate of turn difference but may cause you to get it to overshoot badly after centering or go back the opposite direction while turning. I've not had that problem after I got the yaw rates up a little higher.
from this
if (fabsf(compassDifference(navData.holdHeading + yaw, AQ_YAW) < 90.0f)) {
controlData.yaw = compassNormalize(controlData.yaw + yaw);
navData.holdHeading = compassNormalize(navData.holdHeading + yaw);
}
to this
// if (fabsf(compassDifference(navData.holdHeading + yaw, AQ_YAW) < 90.0f)) {
controlData.yaw = compassNormalize(controlData.yaw + yaw);
navData.holdHeading = compassNormalize(navData.holdHeading + yaw);
// }
This shows up to those who are more active with yaw.
Steve
Kisssys