【问题标题】:How do I calculate tilt angle from mpu6050?如何从 mpu6050 计算倾斜角度?
【发布时间】:2017-12-17 17:24:14
【问题描述】:

我正在构建一个自平衡机器人,我已经成功配置了陀螺仪 mpu6050,现在我有六个读数 Ax、Ay、Az 和 Gx、Gy、Gz。我的问题是如何从 Ax,Ay,Az 和 Gx,Gy,Gz 计算倾斜角?

这是我目前所知道的,如果我错了,请纠正我:

我可以计算在水平位置测量的 G 中的重力为 Ax=Ay=0 和 Az=1。我用它来查找倾斜角度为angle_accel = arctg( Ay / sqrt( Ax^2 + Az^2 ) )。但我不确定我的倾斜是否在 Ay 方向?

我可以通过积分得到陀螺角。我的陀螺仪在 1 秒内被读取 (Gx) 590 次。 float angle; //gyro angle angle = angle + Gx; //sum 590 times i.e angle += Gx*590; //END when 1 second is complete

这会给我正确的角度吗? 自平衡机器人是否在 Gx 方向倾斜?

【问题讨论】:

    标签: c embedded gyroscope mpu6050


    【解决方案1】:

    在理想情况下,您可以积分两倍的角加速度。但是在实践中,有一个重要的偏差:它不能正常工作。

    唯一可行的解​​决方案是合并来自加速度计、陀螺仪和磁力计的数据。这就是我们所说的AHRS。有两种可行的解决方案:

    • 卡尔曼滤波器:难以理解,但正确实施时可靠
    • Madgwick's algorithm:更容易实现,但不太可靠

    On this page,你会找到一个带有 MPU-9250 的实现(源代码和示例),它是你的 MPU-6050 的老大哥

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      相关资源
      最近更新 更多