机器人与IMU :原理与比较
定义 – 什么是 IMU? 惯性测量单元 (IMU) 是传感器系列中的电子元件。它使用加速度计、陀螺仪和磁力计的组合来测量传感器加速度、角速度和方向。I 型 IMU 由加速度计和陀螺仪组成。II 型 IMU 还包括磁力计。 加速度计、陀螺仪和磁力计沿单个轴(X:俯仰、Y:横滚、Z:偏航)测量数据。要获取所有三个轴的数据,需要集成每个轴的三个组件(加速度计、陀螺仪和磁力计),用于 II 型 IMU。典型的 IMU 传感器具有 9 个自由度(自由度),包括:
3 个加速度计
3 陀螺仪
3 个磁力计
一些 IMU 可能具有更多的自由度,带有温度传感器、GPS 传感器、压力传感器等。它们可以根据加速度执行姿态、速度和位置计算。 陀螺仪用于计算角位置。这种类型的IMU数据在移动机器人中是必不可少的。它与激光雷达和测程测量一起使用。 IMU 如何工作?
要了解 IMU 的工作原理,必须首先分析每个子组件: 子组件1:加速度计 加速度计是一种用于测量加速力的机电设备。这些力可以是:
静态,如重力
动态,例如运动力和振动力
加速度是速度变化或速度除以时间的测量。例如,一辆自行车在 30 秒内从静止加速到 6 公里/小时,其加速度为每秒 30 公里/小时(5 除以 <>)。
次级构成部分2:陀螺仪 陀螺仪是一种用于测量或保持方向和角速度的设备。它是一个纺车或圆盘,其中旋转轴可以自由地自行承担任何方向。旋转时,根据角动量守恒,该轴的方向不受安装件倾斜或旋转的影响。
子组件3:磁力计 磁力计是一种测量磁性的设备:
它的方向
它的力量
特定位置磁场的相对变化
指南针就是这样一种测量环境磁场方向的设备。在这种情况下,地球的磁场。 ROS – 传输 IMU 数据 所有与 ROS 兼容的 IMU 传感器都以 sensor_msgs/Imu.msg 消息格式发布有关 /imu 主题的数据:
std_msgs/标题
geometry_msgs/四元数
geometry_msgs
/矢量3
取向 3D 旋转和方向可以表示为欧拉角或四元数。
欧拉角 欧拉角由 X、Y 和 Z 轴的三个角度值表示。每个旋转值按顺序应用,即依次应用。 效益: 欧拉角具有直观的“人类可读”格式。
限度: 在某些配置中,欧拉角会受到万向节锁定的影响,即失去一个自由度。 当依次应用三个旋转时,第一个或第二个旋转可能会导致第三个轴指向与前一个轴相同的方向。然后,第三个旋转值不能围绕唯一轴应用。
四元数 四元数可用于表示对象的方向或旋转。这种表示由四个数字组成(在单位中引用为x,y,z和w)。这些值不代表角度或轴,通常不需要直接访问它们。
效益: 四元数旋转不受万向节锁定的影响。
限度: 单个四元数不能表示在任何方向上超过 180 度的旋转,并且直观上无法理解。
角速度 角速度由三维矢量(x、y 和 z)表示,角速度值取决于 x、y 和 z 轴。
线性加速度 线性加速度由三维矢量(x、y 和 z)表示,其线性加速度值取决于 x、y 和 z 轴。
协方差 对于传感器,协方差是传感器精度的置信度。协方差可以根据传感器性能是静态的,也可以根据精度估计值随时间变化而不断更新。 这同样适用于 IMU;它们可以具有静态或动态协方差。每个参数都有一个关联的协方差系数,该系数由传感器软件硬编码或处理,并指示该值的可靠性。
IMU 特性概述 能量消耗 在确定机器人项目的功率要求时,需要考虑如何使用机器,以及使用多长时间。比如:
电源电压(伏特)
工作电流(安培)
功率(瓦特)
传感器特性 数字分辨率描述了传感器的整体传感能力,由两部分组成: 1. 范围 =>传感器容纳的移动量:
对于加速度计,这是以G力为单位测量的
陀螺仪根据它们能够以度/秒为单位量化的角旋转速率进行分类
磁力计以μT为单位测量其能力,这可能因传感器的轴(x,y,z)而异
2. 灵敏度 => 一个绝对数字,表示可以测量和检测到的最小变化量。对于传感器,这与为相关传感器保留的位数直接相关。位数越多,灵敏度越高。 零重力偏移:未施加外力时加速度计上的读数,这是它将检测到的最小误差。 零速率偏移:当不存在角运动时陀螺仪值的偏移,这可能与温度有关。 数据速率:在给定时间段内进行的测量次数。 噪声密度:以每平方根带宽为单位定义,通常为:
ug/sqrt(Hz) 用于加速度计
陀螺仪的度/秒/平方(赫兹)
带宽:加速度计或陀螺仪工作的频率范围。
接口:用于 IMU 和嵌入式系统的通信电缆和协议。
温度范围:传感器可以安全运行以提供准确测量的最低和最高环境温度。 输出参数 静态精度:当设备相对稳定/静止时传感器输出的精度。
动态精度:设备运动时传感器输出的精度。
旋转误差:输出向量和真向量之间的差异,以度为单位。
航向误差:输出偏航和真偏航之间的差异,以度为单位。
航向漂移:累积误差随时间变化。
原始加速度/陀螺仪/磁力:每个传感器在进行任何处理之前的原始输出。
校准加速度/陀螺仪/磁力:传感器融合后每个传感器的输出已用于处理和清理每个信号。
校准 检查传感器输出参数后,还需要考虑另一件事:校准。校准选项将取决于预算和项目需求。 标称:标称校准使用传感器的平均值来提供平均性能。
每个设备:每个设备的校准会逐个传感器校准某些因素,例如传感器增益。 动态:如果标称校准可以接受,则传感器输出在现场仍可能动态改进。传感器特性随温度而变化,可以在传感器用于其最终应用时进行调整。
数据融合算法 卡尔曼滤波器 卡尔曼滤波器实现了一个模型:
首,滤波器根据其模型对传感器的下一个输出值进行假设
然后,它获取测量值并将其与其假设进行比较
最后,它更新其模型,为下一次测量做出更准确的假设
从传感器获得的每个数据序列都用于统计改进模型,以便计算输出。同时,还判断传感器的精度。该模型取决于传感器误差和相关应用。对于移动机器人系统,现实世界的知识还告诉我们,物理物体在空间中平稳而连续地移动,而不是像样本GPS坐标可能表明的那样传送到太空中。
这意味着,如果一个始终提供卓越值的传感器开始告诉你不太可能的事情(比如当进入隧道时GPS/无线电系统),传感器的可信度会在几毫秒的迭代中下降,直到它再次开始测量相干值。这比简单地计算平均值要好,因为卡尔曼滤波器可以管理大多数暂时不准确的传感器。但是,必须至少有一个传感器能够传输相对准确的值。 这将确保机器人正常运行,直到其他传感器再次正常工作。
卡尔曼滤波器应用马尔可夫链和贝叶斯推理的更一般的概念,它们是基于证明迭代完善其假设的数学系统。
PID 滤波器
更简单的机器人系统可以配备PID滤波器。这些就像由单个传感器馈送的原始卡尔曼滤波器,所有迭代设置都被切断并替换为三个固定值(kp、ki 和 kd)。它是一种校正系统,通过控制环路调整输入以获得正确的输出。即使PID值是自动或手动设置的,整个“调整”过程(调整,飞行,判断,重复)也是卡尔曼的外化版本,由人类执行信念传播步骤。
自定义过滤器
真正的系统通常是混合的,介于两者之间。
ROS IMU 套件
如果在 ROS 下运行机器人软件,购买与 ROS 兼容的传感器会更容易。这意味着制造商已经开发了一个 ROS 包,使传感器在 ROS 下交互。就 IMU 而言,传感器将在 /imu 主题上发布原始数据或处理后的数据,具体取决于使用 IMU 的方式。然后,在 ROS 上,可以订阅主题以获取可用于导航的数据。 一些 ROS 软件包已经实现并更新:
imu_transformer : 提供节点/节点组合的软件包,可用于将 IMU 数据从一个 TF 帧转换为另一个 TF 帧
imu_tools :
Imu_filter_madgwic : 滤波器,将来自通用 IMU 设备的角速度、加速度和(可选)磁性读数融合到一个方向上,基于 Sebastian Madgwick 的代码
Imu_complementary_filter : 滤波器,将来自通用 IMU 设备的角速度、加速度和(可选)磁读数融合成四元数,以表示设备相对于全局帧的方向,基于 Roberto G. Valenti 的算法
rviz_imu_plugin:显示 sensor_msgs::Imu 消息的 rviz 插件
imu_utils : 用于在 MATLAB 上跟踪 IMU 性能的软件包
选择合适的 IMU
集成计算
集成过滤器
嵌入式微控制器
板库(Arduino、Raspberry Pi 等)
ROS兼容性
接口
根据项目要求选择 IMU。最便宜的 IMU 仅提供原始值,而 UM7 过滤处理后的值并直接在 ROS 消息中发布它们。性能非常相似,即使是最昂贵的 IMU。区别在于它们的附加服务和用途:
集成计算
集成滤波器(高性能:IMU SBG 系统 )
嵌入式微控制器
板库(Arduino、Raspberry Pi 等)
ROS兼容性
接口
与 GPS 的数据集成 ( SBG 系统 椭圆 2 微型 INS IMU )
内存单元性能 IMU 传感器是添加到机器人上的有用组件。如果计算了这些值,它将提供有关姿态、方向、位置、速度、加速度和旋转速度的信息。但是,IMU容易出现漂移错误。错误会随着时间的推移而累积,因为新值基于以前的值。此外,使用磁场计算值的IMU可能会受到其他磁场(电机,金属结构等)的影响,这可能会导致巨大的误差。
我们可以进行更正并使用过滤器来减少这些错误,但 IMU 错误会不断漂移和增加。解决此问题的一种方法是考虑协方差值(置信水平),如果它是动态的,则协方差值会随时间而变化。另一种方法是添加 GPS 传感器。GPS 信号可以更新 IMU 值并纠正其漂移误差。
结论:IMU的优缺点
IMU 的优势
惯性导航系统不依赖于任何外部信息,不会消耗太多能量
惯性导航系统可以提供位置、速度、姿态和角度数据,由此产生的导航信息是连续的。
它提供高频测量并且稳定
IMU 的局限性
它使用来自集成导航系统的信息,因此定位误差随着时间的推移而增加,长期精度低
每次使用前都需要初始对齐,这需要时间
它不提供时间信息