1. 什么是IMU
IMU全称是Inertial Measurement Unit,也叫惯性测量单元。它是一种测量物体运动状态和姿态的电子设备,通过检测和报告物体的加速度、角速度和姿态信息,实现对物体运动的精确追踪。它不依赖外部信号(如GPS),具有自主性强、高频响应的特点,是惯性导航系统的核心传感器。
2. 基本组成
一个典型的IMU包含以下核心传感器:
- 三轴加速度计:测量线性加速度(单位:m/s²),可推导出倾角。
- 三轴陀螺仪:测量角速度(单位:rad/s 或 °/s),用于计算旋转变化。
- (可选)三轴磁力计:测量磁场方向(单位:μT),辅助校准航向(此时称为AHRS)。
3. 工作原理
IMU通过 “航迹推算” 原理工作:
- 加速度计:基于牛顿第二定律(F=ma),通过微机电系统(MEMS)测量惯性力,静态时可测重力方向。
- 陀螺仪:利用科里奥利力或光学效应(如光纤陀螺)检测旋转角速度。
- 数据融合:
- 原始数据通过滤波算法(如卡尔曼滤波) 融合,减少噪声和漂移误差。
- 结合初始姿态,通过积分计算位置和姿态变化(姿态角:俯仰角、横滚角、偏航角)。
4. 坐标系定义
IMU数据必须基于一个明确的本体坐标系。最常见的是右手坐标系:
- X轴:指向传感器正面或右侧(数据手册会定义)。
- Y轴:指向传感器左侧或正面(与X轴垂直)。
- Z轴:指向上方(垂直于X-Y平面,符合右手定则)。
在解读数据前,必须查阅具体IMU型号的数据手册以确认其坐标系定义!
5. 应用场景
| 领域 | 具体应用 |
|---|---|
| 消费电子 | 智能手机屏幕旋转、游戏控制、运动手环步数检测 |
| 自动驾驶 | 车辆定位辅助(与GPS融合)、姿态稳定控制 |
| 航空航天 | 飞机/无人机导航、飞行姿态控制、导弹制导 |
| 机器人 | 平衡控制(如两轮机器人)、机械臂运动追踪 |
| VR/AR | 头部追踪、手柄动作捕捉 |
| 工业检测 | 平台稳定、振动监测 |
6. 返回数据
6.1. 概要说明
IMU通常输出以下数据(示例格式):
| 数据类型 | 物理量 | 典型单位 | 说明 |
|---|---|---|---|
| 原始数据 | 三轴加速度 | m/s² | 包含重力分量 |
| 三轴角速度 | rad/s | 绕X/Y/Z轴的旋转速率 | |
| (若有)三轴磁场强度 | μT | 地磁场测量值 | |
| 融合数据 | 姿态角(欧拉角) | °(度) | 俯仰(Pitch)、横滚(Roll)、偏航(Yaw) |
| 四元数(Quaternion) | 无单位 | 更稳定的姿态表示(w,x,y,z) | |
| 辅助数据 | 温度 | ℃ | 用于传感器误差补偿 |
| 时间戳 | ms | 数据同步依据 |
6.2. 原始数据
原始数据是最底层的数据,这是IMU芯片直接测量并输出的物理量,未经任何姿态解算。通常以三轴分量的形式提供。
6.2.1. 加速度计数据
- 单位:
m/s²或g(1g ≈ 9.8 m/s²) - 数据说明:
- 三个浮点数:
(accel_x, accel_y, accel_z) - 表示传感器本体坐标系三个轴上感受到的总加速度。
- 关键点:这个“总加速度”是 “运动加速度” 和 “重力加速度” 的矢量之和。
- 当传感器静止水平放置时:
(0, 0, 1g)或(0, 0, 9.8)。Z轴感受到全部重力。 - 当传感器自由落体时:
(0, 0, 0)。重力和运动加速度抵消。 - 当传感器在水平面加速运动时:会在运动方向产生一个非零值。
- 当传感器静止水平放置时:
- 三个浮点数:
6.2.2. 陀螺仪数据
- 单位:
°/s或rad/s - 数据说明:
- 三个浮点数:
(gyro_x, gyro_y, gyro_z) - 表示传感器绕其本体坐标系三个轴旋转的角速度。
- 正值通常代表:绕该轴正方向右手螺旋定则的旋转。
- 示例:
(0, 0, 90)表示传感器正以每秒90度的速度绕Z轴旋转(例如正在水平面上匀速转向)。
- 三个浮点数:
6.2.3. 磁力计数据
- 单位:
µT或Gauss - 数据说明:
- 三个浮点数:
(mag_x, mag_y, mag_z) - 表示传感器本体坐标系三个轴上感受到的地磁场强度分量。
- 这是一个矢量,其方向大致指向地磁北极(需考虑当地磁偏角修正)。
- 注意:原始数据极易受硬铁和软铁干扰,通常需要经过校准和校正后才能用于航向解算。
- 三个浮点数:
6.3. 融合数据(应用层)
融合数据是应用层数据,这是通过算法(如卡尔曼滤波、互补滤波)对上述原始数据进行融合处理后得到的结果,是大多数应用直接使用的数据。
6.3.1. 欧拉角
这是最直观、最常用的姿态表示方式。用三个角描述从“东北天”地理坐标系到传感器本体坐标系的旋转。
- 横滚角:绕X轴旋转的角度。机翼左右倾斜。
- 俯仰角:绕Y轴旋转的角度。机头上下抬升。
- 偏航角:绕Z轴旋转的角度。水平面内转向。
- 优点:直观,易于理解。
- 缺点:存在万向节死锁问题,不适合全姿态计算。
6.3.2. 四元数
一种数学上更优的姿态表示法,用于避免欧拉角的死锁问题,也是现代算法内部计算最常用的形式。
- 数据:一个标量
w和一个三维矢量(x, y, z),共4个浮点数:(q_w, q_x, q_y, q_z)。 - 特点:描述一次旋转,而非三个顺序旋转。计算高效,无奇异性。
- 使用:可以直接用于3D图形旋转插值,也可转换为欧拉角供人阅读。
6.3.3. 旋转矩阵
一个3x3的正交矩阵,用于将一个坐标系中的矢量转换到另一个坐标系。
- 数据:9个浮点数。
- 特点:最完备的数学描述,可直接用于坐标变换,但数据冗余,不便于插值和存储。
6.4. 数据举例
6.4.1. 典型输出帧(来自某个IMU模块)
1 | ACC: 0.12, 0.01, 9.81 (m/s²) // 近似静止水平,Z轴有重力 |