gpt4 book ai didi

c# - 解析 LSM6DSL 原始值

转载 作者:太空狗 更新时间:2023-10-29 20:35:46 25 4
gpt4 key购买 nike

我正在尝试解析带有 LSM6DSL 芯片(陀螺仪和加速度传感器)的设备给出的值,但我很难正确解析定位和角度数据。

我从供应商那里收到的信息是,该装置的陀螺仪分辨率为 2000,acc 分辨率为 8g。

我收到以字节为单位的数据,这些数据由以下转换为短裤;

public int[] BufferToMotionData(byte[] buffer, int segments = 2)
{
int[] motionDataArray = new int[segments * 3];
int offset = Constants.BufferSizeImage + Constants.CommandLength;

for (int i = 0; i < 6; i++)
{
motionDataArray[i] = BitConverter.ToInt16(buffer, offset + (i * 2));
if (motionDataArray[i] >= Int16.MaxValue)
motionDataArray[i] -= 65535;
}

return motionDataArray;
}

(编辑;清理版本)

这将返回(示例)961、-16223、-1635、664、-269、-597 范围内的值。

根据规范表,我应该将每个向量与其对应的值相乘。* 陀螺仪为 70f,acc 为 .448f。

根据文档,我了解到 G 力的单位是 milliG,而陀螺仪的单位是毫度每秒?

// Gyro X,Y,Z
gx = Mathf.Deg2Rad * (motionData[0] * 70f / 1000f);
gy = Mathf.Deg2Rad * (motionData[1] * 70f / 1000f);
gz = Mathf.Deg2Rad * (motionData[2] * 70f / 1000f);

// Acc X,Y,Z
ax = motionData[3] * 0.488f / 1000f;
ay = motionData[4] * 0.488f / 1000f;
az = motionData[5] * 0.488f / 1000f;

Update(gx, gy, gz, ax, ay, az);

Update(..) 是 Madgwick 的四元数公式,尽管对于速度我使用加速度向量。

我计算后此时得到的G力值;

X 0.047824 Y -0.320128 Z  0.006344
X 0.07076 Y -0.2562 Z 0.020008
X 0.099552 Y -0.063928 Z -0.13664

这些看起来非常低,如果作为速度应用,它只会在给定的方向上运行,我知道我错过了一个正确的重力,但不完全确定如何应用它。

我假设我不需要对我的速度矢量施加阻力,因为值应该被接收到的加速度值取反?

任何对此类芯片有经验并实际将值应用于偏航/俯仰/滚动(或四元数)并将 G 力作为线性加速度应用的人。

最佳答案

通过查看 existing code on GitHub ,看起来 8g 的灵敏度系数是 244 µg/digit 而不是您编码的 488 µg/digit

此外,原始值看起来也发生了偏移,并且位于 [-r/2,r/2] 而不是 [0, r] 中。因此,您必须向其中添加 500µg500µdps。 (但也许它与 uint/int 问题有关,无论如何你确定字节顺序吗?)

参见 here for acc datahere for gyro data .

基于此,代码应如下所示:

// Gyro X,Y,Z (in rad/s)
gx = Mathf.Deg2Rad * (motionData[0] * 70000f + 500) / 1000000;
gy = Mathf.Deg2Rad * (motionData[1] * 70000f + 500) / 1000000;
gz = Mathf.Deg2Rad * (motionData[2] * 70000f + 500) / 1000000;

// Acc X,Y,Z (in g)
ax = (motionData[3] * 244f + 500) / 1000000;
ay = (motionData[4] * 244f + 500) / 1000000;
az = (motionData[5] * 244f + 500) / 1000000;

Update(gx, gy, gz, ax, ay, az);

关于c# - 解析 LSM6DSL 原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56687031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com