【发布时间】:2020-10-13 20:09:34
【问题描述】:
我正在使用 AHRS 库来创建位置数据的传感器融合数组。
从 Go Pro 遥测数据中,我有加速度计、陀螺仪和磁力计数据阵列,每个样本的时间戳具有以下形状:
{
ACCEL: {
samples: [{time, data}, ...]
},
....
}
我想将这些合并到一个对象中
{
time: {accel, gyro, magn}
...
}
每个时间戳都有 3 个值
我已经可以使用减速器了
const magn = result[1].streams['MAGN'].samples.reduce((prev, next) => {
return {...prev, [next.cts]: {magn: next.value}}
}, {})
const gyro = result[1].streams['GYRO'].samples.reduce((prev, next) => {
const closest = prev[Object.keys(prev).reverse()?.find(key => key < next.cts) || Object.keys(prev)[0]]
return {...prev, [next.cts]: {...closest, gyro: next.value}}
}, magn)
const merged = result[1].streams['ACCL'].samples.reduce((prev, next) => {
const closest = prev[Object.keys(prev).reverse()?.find(key => key < next.cts) || Object.keys(prev)[0]]
return {...prev, [next.cts]: {...closest, accel: next.value}}
}, gyro)
但这似乎不是很优雅的代码。
有没有更有效的处理方式?
【问题讨论】:
标签: javascript telemetry sensor-fusion