16 位精度的 IMU 校准

问题描述

我想将 IMU 传感器校准到十进制精度。我正在用 C 编程。 我用 int16_t 格式的变量 x、y 和 z 定义了一个称为加速的结构。

我从寄存器读数(即加速度)中获得的原始值(分别针对 x、y 和 z 轴)例如:218 -924 16312

我面临的问题是,通过进行校准的乘法

accelerations.x = (1*0.0006*(accelerations.x)-0.1681);
accelerations.y = (1*0.0006*(accelerations.y)+0.8076);
accelerations.z = (1*0.0006*(accelerations.z)-0.1698);

这些值被四舍五入为整数,产生如下输出:0 0 9

在这里遗漏了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)