IMU/捷联惯导常见的术语,以及性能评价标准(附Python解析代码)

0. 简介
现在的机器人领域在普遍使用IMU(惯性导航单元)。该系统有三个加速度传感器与三个角速度传感器(陀螺)组成,加速度计用来感受飞机相对于地垂线的加速度分量,陀螺仪用来感知飞机的角速率变化;通过算法融合来计算出飞行器姿态,也用来进行航位推算。而每次我们拿到一个惯性导航的时候会发现参数手册中有很多信息,而这些信息的好坏要怎么评判是比较关键的。下面我们来一一讲解。

1. 最大零点偏移
1.1 含义

IMU(惯性测量单元)的最大零点偏移是指在没有外部力或加速度作用下,IMU输出的测量值与真实值之间的差异。它是由于传感器的制造误差、温度变化、机械振动等因素引起的。

IMU的最大零点偏移是一个统计值,表示在一定的置信水平下,IMU输出值与真实值之间的最大差异。

1.2 指标
对于低成本的消费级IMU,其最大零点偏移范围可能在几个百分比以内,例如加速度计的零点偏移范围可能在±2%以内(对应就是±20mg),陀螺仪的零点偏移范围可能在±5°/s以内。

高精度的工业级或航空航天级IMU,其最大零点偏移范围会更小,通常在几个千分比以内。例如,加速度计的零点偏移范围可能在±0.1%(对应就是±1mg)以内,陀螺仪的零点偏移范围可能在±0.1°/s以内

2. 温度偏移
2.1 含义

IMU的温度偏移是指在不同温度下,IMU输出的测量值与真实值之间的差异。温度偏移是由于传感器的温度敏感性引起的,温度变化会影响传感器的性能和精度。

温度偏移通常以每度或每十度为单位,例如每度的温度偏移为X,表示每增加或减少1度时,IMU输出值可能会相应地增加或减少X。

2.2 指标
消费级IMU的温度偏移范围可能在几个百分比以内,例如加速度计的温度偏移范围可能在±0.2%(对应就是±2mg)以内,陀螺仪的温度偏移范围可能在±0.5°/s以内。

而高精度的工业级或航空航天级IMU的温度偏移范围会更小,通常在几个千分比以内。例如,加速度计的温度偏移范围可能在±0.05%(对应就是±0.5mg)以内,陀螺仪的温度偏移范围可能在±0.1°/s以内。

3. 零偏稳定性
3.1 含义

在零输入状态下的长时间稳态输出是一个平稳的随机过程,即稳态输出将围绕均值(零偏)起伏和波动,习惯上用均方差来表示,这种均方差被定义为零偏稳定性。

零偏漂移是指IMU测量值与真实值之间的偏差随时间的变化。通常,零偏漂移以每小时、每分钟或每秒钟的角度或速度单位来表示。

3.2 指标
加速度计:一般来说,高精度的加速度计的零偏稳定性可以达到几微米每秒平方(µg)级别。典型的高性能加速度计的零偏漂移可能在1 µg或更低。

陀螺仪:高精度的陀螺仪的零偏稳定性一般在几度每小时(°/hr)或更低。典型的高性能陀螺仪的零偏漂移可能在0.01°/hr或更低。

4. 灵敏度
4.1 含义

IMU的灵敏度是指传感器对于输入信号的变化的响应能力。对于加速度计来说,灵敏度表示单位输入加速度变化对应的传感器输出变化;对于陀螺仪来说,灵敏度表示单位输入角速度变化对应的传感器输出变化。

4.2 指标
加速度计:一般的加速度计灵敏度范围可达到几百到几千mV/g(毫伏每重力单位)。高精度的加速度计可能具有更低的灵敏度,可达到几十到几百mV/g。

陀螺仪:一般的陀螺仪灵敏度范围可达到几十到几百mV/°/s(毫伏每度每秒)。高精度的陀螺仪可能具有更低的灵敏度,可达到几到几十mV/°/s。

5. 比例因子误差
5.1 含义

比例因子误差是指IMU中加速度计和陀螺仪输出的测量值与实际值之间的比例差异。它表示传感器的精度和准确性。

5.2 指标
一般来说,加速度计的比例因子误差通常在0.1%到1%之间。这意味着,如果实际加速度为10 m/s²,测量值可能在9.9 m/s²到10.1 m/s²之间。

对于陀螺仪,一般的比例因子误差范围也在0.1%到1%之间。例如,如果实际角速度为100°/s,测量值可能在99°/s到101°/s之间。

5.3 三大基本误差源归纳


简单的理解,传感器的误差可以归为三大类:

  • bias(零篇): 既理论上输出应该为0,当实际上输出有一个小的偏置。比如陀螺仪如果在惯性系下绝对静止,那么理论上三轴输出为0,0,0。但实际是不可能的,总会有bias存在。而且这个bias 一般还不是一个参数,他会在一定范围内缓慢随机飘移。
  • 噪声(noise): 所有传感器都有噪声,一般可以简单理解为高斯白噪声。
  • 比例因子(scale factor): 既刻度误差,比如陀螺仪比例误差为0.02. 那么陀螺以10deg/s转动,当实际输出为 10deg/s *1.02 = 10.2deg/s, 差了一个比例因子误差。

以上分类只是把传感器的误差简单分为三大类,每一类都大有学问,都够一大堆博士毕业的。下面对每一类进行细致讨论:
6. 工作温度范围
6.1 含义

IMU(惯性测量单元)的工作温度范围指的是传感器正常工作的温度范围。传感器的性能和精度通常在这个温度范围内能够保持稳定和可靠的工作。

6.2 指标
加速度计和陀螺仪的一般工作温度范围通常是-40°C至+85°C。这个范围可以适应大多数工业和消费电子应用的环境温度要求。

7. 测量范围
7.1 含义

IMU(惯性测量单元)的测量范围指的是传感器能够测量的最大物理量范围。传感器的输出值通常以数字或模拟信号的形式表示,这些信号对应于物理量的测量值。

7.2 指标
加速度计的一般测量范围通常以g为单位,表示重力加速度的倍数。常见的加速度计测量范围包括±2g、±4g、±8g和±16g。例如,如果加速度计的测量范围为±2g,则传感器可以测量的加速度范围为-2g至+2g。

陀螺仪的一般测量范围通常以角速度为单位,表示单位时间内物体的旋转速度。常见的陀螺仪测量范围包括±250°/s、±500°/s、±1000°/s和±2000°/s。例如,如果陀螺仪的测量范围为±250°/s,则传感器可以测量的角速度范围为-250°/s至+250°/s。

8. 非线性度
8.1 含义

IMU(惯性测量单元)的非线性度指的是传感器输出与真实物理量之间的非线性误差。它表示传感器输出值与真实物理量之间的偏差程度,不符合线性关系。

8.2 指标
加速度计和陀螺仪的非线性度通常以百分比(%)或以最大测量范围的百分比来表示。非线性度可以分为两种类型:满量程非线性度(Full Scale Range Nonlinearity,FSRNL)和零点非线性度(Zero Offset Nonlinearity,ZONL)。

  • 满量程非线性度(FSRNL)表示在传感器的整个测量范围内,输出值与真实物理量之间的非线性误差。它通常以百分比来表示,例如FSRNL为±1%表示在整个测量范围内,传感器的输出值与真实物理量之间的最大偏差为传感器测量范围的1%。
  • 零点非线性度(ZONL)表示在传感器的零点(即没有外力或角速度作用时)附近,输出值与真实物理量之间的非线性误差。它通常以百分比来表示,例如ZONL为±0.5%表示在传感器零点附近,传感器的输出值与真实物理量之间的最大偏差为传感器测量范围的0.5%。

加速度计和陀螺仪的非线性度范围通常在±0.1%至±1%之间。

9. 交叉耦合噪声
9.1 含义

IMU(惯性测量单元)的交叉耦合噪声指的是在测量过程中,加速度计和陀螺仪之间相互影响导致的噪声。具体来说,当加速度计测量物体的加速度时,陀螺仪的输出也会受到影响,反之亦然。这种相互影响导致的噪声被称为交叉耦合噪声。

9.2 指标
IMU的交叉耦合噪声的范围可以在几个百分比之内,具体取决于传感器的质量和设计

10. 噪声
10.1 含义

IMU(惯性测量单元)的噪声是指传感器本身的随机测量误差。这种误差可以由多种因素引起,包括电子噪声、温度变化、机械振动等。

加速度计的噪声通常以加速度单位(例如m/s^2)表示,而陀螺仪的噪声通常以角速度单位(例如rad/s)表示。噪声的大小取决于传感器的质量和设计。

10.2 指标
加速度计的噪声通常以加速度单位表示,即m/s²或g(重力加速度)。一般而言,高质量的加速度计的噪声范围在几微重力(μg)到几毫重力(mg)之间

陀螺仪的噪声通常以角速度单位表示,即rad/s或度/秒。一般而言,高质量的陀螺仪的噪声范围在几度/小时到几度/秒之间

点击IMU/捷联惯导常见的术语,以及性能评价标准(附Python解析代码) - 古月居可查看全文

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(Inertial Navigation System,INS)是一种基于性测量单元(Inertial Measurement Unit,IMU)的航系统,可以在没有GPS信号或其他外部引的情况下提供航向、俯仰和偏航信息。 以下是一个简单的C语言代码示例,用于实现基于加速度计和陀螺仪的系统: ```c #include <stdio.h> #include <math.h> #define PI 3.14159265 // IMU读取的加速度和角速度数据 double ax, ay, az; // 加速度计 double wx, wy, wz; // 陀螺仪 // 姿态角 double roll, pitch, yaw; // 时间间隔 double dt = 0.01; int main() { // 初始化 roll = 0.0; pitch = 0.0; yaw = 0.0; // 循环更新姿态角 while (1) { // 读取IMU数据 read_imu_data(); // 计算加速度和角速度的矢量值 double accel_mag = sqrt(ax * ax + ay * ay + az * az); double gyro_mag = sqrt(wx * wx + wy * wy + wz * wz); // 计算加速度和角速度的角度 double accel_angle_x = asin(ax / accel_mag) * 180.0 / PI; double accel_angle_y = asin(ay / accel_mag) * 180.0 / PI; double accel_angle_z = asin(az / accel_mag) * 180.0 / PI; double gyro_angle_x = wx * dt; double gyro_angle_y = wy * dt; double gyro_angle_z = wz * dt; // 融合加速度和角速度的角度 roll = 0.98 * (roll + gyro_angle_x) + 0.02 * accel_angle_x; pitch = 0.98 * (pitch + gyro_angle_y) + 0.02 * accel_angle_y; yaw = 0.98 * (yaw + gyro_angle_z) + 0.02 * accel_angle_z; // 输出姿态角 printf("Roll: %lf, Pitch: %lf, Yaw: %lf\n", roll, pitch, yaw); } return 0; } void read_imu_data() { // TODO: 读取IMU数据并更新ax, ay, az, wx, wy, wz变量 } ``` 需要注意的是,上述代码仅为示例,实际应用中需要根据具体的硬件和算法进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值