高级会员
- 积分
- 652
- 威望
- 303
- 贡献
- 207
- 兑换币
- 180
- 注册时间
- 2012-11-1
- 在线时间
- 71 小时
|
Rgyo=0.02,GRAVITY_ADJUST_TIME_CONSTANT 为3s,
红为加速度计,黄为陀螺仪,蓝为融合后。
程序为:
float fDeltaValue;
g_fGravityAngle = (VOLTAGE_GRAVITY - GRAVITY_OFFSET) * GRAVITY_ANGLE_RATIO;
g_fGyroscopeAngleSpeed = -(AngleYspeed() - GYROSCOPE_Y_OFFSET)*GYROSCOPE_ANGLE_RATIO;
g_fCarAngle = g_fGyroscopeAngleIntegral;
fDeltaValue = (int16)((g_fGravityAngle - g_fCarAngle) / GRAVITY_ADJUST_TIME_CONSTANT);
g_fGyroscopeAngleIntegral += (g_fGyroscopeAngleSpeed + fDeltaValue) / GYROSCOPE_ANGLE_SIGMA_FREQUENCY;
陀螺仪跟踪总有延时,也有少许过冲,我的理解是:①,延时通过减小加速度计补偿时间常数TZ,但是只有减小到很小(0.2s官方为3s)才行,这无疑增大了加速度计的补偿量;②,过冲通过减小陀螺仪的比例系数Rgyo,(0.8官方为0.32)
这样改了之后融合波行能很好跟踪加速度计的变化,这无疑减小了陀螺仪的影响。问题是融合波很接近加速度计的,并没有完全滤掉加速度计的噪声,有很多毛刺,也就无法直立,
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|