我正在将运动服务读取的各个组件(幅度、加速度和陀螺仪)打印到控制台。
我有点困惑,因为我的假设/直觉似乎不正确。
例如,当设备以某种方式倾斜/倾斜时,我会看到连续读数,其幅度大于 100。即使设备本身几乎没有移动(如果有),也是如此。我预计幅度会接近于零 (0),因为设备根本没有移动。
我正在做简单的向量数学运算,以根据设备从 didGetNotificaiton 委托(delegate)方法输出的 3D 坐标来获取幅度。通过简单的数学计算,我的意思是从 3d 幅值坐标获取矢量长度。
这是一个示例数据点。
Movement magnetic= 134.824387985183.
Movement acceleration = 8.46825231870429.
Movement gyro = 16.482123031426.
有人可以向我指出任何解释这些运动组件的文档/引用/示例吗?
最佳答案
为了正确回答您的问题,我们需要知道您所拥有的 SensorTag 的确切型号。但我可以帮助您对数字代表的含义进行基本解释。
每个传感器标签包含多个 MEMS(微机电系统),其中只有该传感器 MEMS 的数据表将描述如何解码该信息。每个传感器 MEMS 规范文件的重要细节是“测量范围”和“测量灵敏度”,下面的示例应该会有所帮助。请注意,以下示例是根据使用 CC2650 无线 MCU 的多标准 SensorTag 的规范创建的。该传感器标签使用 Invensense MCU 作为陀螺仪、加速计和指南针(请参阅 https://www.invensense.com/products/motion-tracking/9-axis/mpu-9250/)
本示例仅关注加速度计,文档显示了加速度计“满量程范围”(红色框)和“灵敏度比例因子”(蓝色框)。
由于该 MCU 提供 16 位加速度计数据,这意味着我们有 2^16 = 65,535 个数据点可用于转换数据。如果传感器 MEMS 被编程为使用 ±2g 范围,这意味着我们的灵敏度为 16,384 LSB/g。在其他规范文件中,通常以 mg/LSB 表示该值,在本例中为 0.061 mg/LSB。这意味着输出的LSB每改变1,就代表0.061 mg的变化。
举个例子,放在 table 上的加速度计会受到指向地板(负 Z 轴)的重力加速度 (1 g),因此,为了保持平衡,并且由于它平放在 table 上,加速度计的读数将为 1 g 指向天空(Z 轴)。
因此,当加速度计平放在桌面上时,其 z 轴分量的值应为 16500。因为,
16500 LSB * 0.061 毫克/LSB = 1,006.5 毫克 ≈ 1 克
一旦将其应用于加速度计(或具有自己值的陀螺仪)的所有轴,您将获得所需单位的矢量。
希望这有帮助!
关于ios - 如何解读 TI(德州仪器)SensorTag 运动传感器数据组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308540/