l710025 发表于 2014-5-7 16:22:47

卡尔曼 陀螺仪、倾角传感器融合 C代码 一段语句看不懂

本帖最后由 Ricky 于 2014-5-8 14:10 编辑

void stateUpdate(const float q_m){

      float q;
      float Pdot;

      /* Unbias our gyro */
      q = q_m - q_bias;
      /*
         * Compute the derivative of the covariance matrix
         * (equation 22-1)
         *      Pdot = A*P + P*A' + Q //????????????
         *
         */
      Pdot = Q_angle - P - P;      /* 0,0 */
      Pdot = - P;                        /* 0,1 */
      Pdot = - P;                         /* 1,0 */
      Pdot = Q_gyro;                        /* 1,1 */

      /* Store our unbias gyro estimate */
      rate = q;

      /*
         * Update our angle estimate
         * angle += angle_dot * dt
         *       += (gyro - gyro_bias) * dt
         *       += q * dt
         */
      angle += q * dt;
      /* Update the covariance matrix */
      P += Pdot * dt;
      P += Pdot * dt;
      P += Pdot * dt;
      P += Pdot * dt;
}

上面一串问号开始到最后,不太懂。



卡尔曼公式 (原文件名:QQ截图未命名4.png)
不是应该向上边1.10式那样么,那样直接就能算出协方差啊,怎么程序中还要先算出Pdot = A*P + P*A' + Q ,再P += Pdot * dt;来更新协方差?angle += q * dt;中的dt是积分求角度,可P += Pdot * dt;不知道怎么理解了。P.S.从“(equation 22-1)” 看出这个程序应该出自哪篇文章,找了好久没找到,谁知道发一下。谢啦!

lauren 发表于 2014-5-7 20:26:50

我说,用卡尔曼滤波,看懂太累了。不如知道导入哪几个量之后输出啥近似实际值=。=

曹惊博 发表于 2014-10-19 19:36:03

呵呵,对我帮助很大
:lol:lol:lol:lol:lol:lol:lol
:D:D:D:D:D:D:D:D:D
;P;P;P;P;P;P;P;P;P
页: [1]
查看完整版本: 卡尔曼 陀螺仪、倾角传感器融合 C代码 一段语句看不懂