区分陀螺仪与加速度计

为了区分“陀螺仪”和“加速度计”,先只记一句最核心的话:

加速度计:看“直线方向上的加速”

陀螺仪:看“绕某个轴转得多快”

注意:陀螺仪主要测的不是角度,而是角速度。


用平衡车来区分最直观

假设车这样竖着:

        │
        │
      [IMU]
     O────O

情况一:车不移动,但慢慢向前倒

        /
       /
     [IMU]
    O────O

这时候车体发生了旋转

陀螺仪会说:

“我检测到你正在绕某个轴旋转,比如 \(20^\circ/s\)。”

也就是:

\[\dot\theta=20^\circ/s \]

这就是我们直立 PD 里的 D 最喜欢的信息。


情况二:车完全竖直,但猛地向前加速

        │
        │
      [IMU]  →→→
     O────O

车体没有旋转:

\[\dot\theta\approx0 \]

所以陀螺仪基本会说:

“没怎么转。”

但是加速度计会说:

“我检测到水平方向有很大的加速度。”

所以:

直着向前冲:加速度计有反应,陀螺仪基本没反应


情况三:车斜着放在那里,一动不动

       /
      /
    [IMU]

现在它没有旋转:

\[\dot\theta=0 \]

所以陀螺仪:

“没动。”

但是加速度计仍然能感受到重力在三个轴上的分量

因此它可以根据重力方向判断:

“虽然你没在动,但你现在是斜着的。”

这也是最容易让人混淆的地方:

为什么叫“加速度计”,却还能测倾角?

因为它不是直接测“倾角”。

它是看到:

\[g \]

在不同轴上的投影,然后我们根据重力方向反推出倾角

所以:

加速度计不是直接测角度

而是:

测XYZ方向的加速度/重力分量,推算倾角


这样记

传感器 最核心的问题
加速度计 Accelerometer “我现在受到哪个方向的加速度?”
陀螺仪 Gyroscope “我现在绕哪个轴转得多快?”

MPU6050里面各有三轴:

加速度计:

\[a_x,\ a_y,\ a_z \]

陀螺仪:

\[\omega_x,\ \omega_y,\ \omega_z \]

所以比如:

\[\omega_y=30^\circ/s \]

意思不是:

当前倾角30°。

而是:

当前正在绕Y轴以每秒30°的速度旋转。

这一点非常关键。


三个画面,建立肌肉记忆

汽车直线猛踩油门:

→→→

线加速度,没有明显旋转:

加速度计 ✅
陀螺仪 ❌

手机放桌面上原地旋转:

旋转

陀螺仪 ✅

手机斜着静止不动:

/

陀螺仪:

\[\omega\approx0 \]

但加速度计可以根据重力方向推算它是倾斜的。


所以不要背“谁短期准、谁长期准”。

先把更底层的区别钉死:

Accelerometer → 直线加速度/重力方向

Gyroscope → 旋转角速度


因此以后看到这三个问题,可以直接这样想:

现在在平移加速吗?-> 加速度计

现在在旋转吗?-> 陀螺仪

现在倾斜了多少?-> 本身都不直接给,需要推算/融合

最后这一句尤其重要。

陀螺仪并不直接告诉你倾角。

它给:

\[\dot\theta \]

通过积分才能得到:

\[\theta \]

而加速度计也不直接告诉你倾角,它给:

\[a_x,a_y,a_z \]

我们利用重力方向反推出:

\[\theta \]

所以两个传感器最终都可以帮助我们获得“倾角”,但走的路完全不同:

陀螺仪:
角速度
  ↓ 积分
角度
  ↓
短期好,但会漂

加速度计:
XYZ加速度
  ↓ 利用重力方向
角度
  ↓
长期有参考,但运动时受干扰
posted @ 2026-08-26 10:27  icuic  阅读(40)  评论(0)    收藏  举报