如何使用颤振传感器包中的加速度计和陀螺仪读数获得弧度?

Posted

技术标签:

【中文标题】如何使用颤振传感器包中的加速度计和陀螺仪读数获得弧度?【英文标题】:How to get the radians using the accelerometer and gyroscope readings from the flutter sensor package? 【发布时间】:2019-09-09 22:40:49 【问题描述】:

我正在使用颤振传感器包(如https://pub.dev/packages/sensors)从设备获取加速度计和陀螺仪读数。老实说,我不知道返回的数据是什么意思,也不知道它与设备上的陀螺仪有何关系,而且包的文档实际上并没有说明这些值是什么。

我正在尝试将返回的值转换为俯仰、偏航和 360 度滚动。我搜索了 Github 上的问题,试图找到传感器包的文档,但我没有成功。

任何帮助都会很棒 :) 谢谢。

【问题讨论】:

【参考方案1】:

尝试使用这个,

_streamSubscriptions =
        accelerometerEvents.listen((AccelerometerEvent event) 
      setState(() 
        double x = event.x, y = event.y, z = event.z;
        double norm_Of_g = math
            .sqrt(event.x * event.x + event.y * event.y + event.z * event.z);
        x = event.x / norm_Of_g;
        y = event.y / norm_Of_g;
        z = event.z / norm_Of_g;

        double xInclination = -(math.asin(x) * (180 / math.pi));
        double yInclination = (math.acos(y) * (180 / math.pi));
        double zInclination = (math.atan(z) * (180 / math.pi));

        String xAngle = "$xInclination.round()°";
        String yAngle = "$yInclination.round()°";
        String zAngle = "$zInclination.round()°";    
      );
    );

希望它能解决问题...

【讨论】:

以上是关于如何使用颤振传感器包中的加速度计和陀螺仪读数获得弧度?的主要内容,如果未能解决你的问题,请参考以下文章

加速度计传感器数据挖掘方法

Web Worker 中的传感器读数

来自智能手机的后处理传感器读数 - 从磁力计计算的重力

仅使用陀螺仪和加速度计的正确方法可以在 ANDROID 上的任何轴上获得可靠的当前角度

使用加速度计和陀螺仪移动鼠标光标

使用加速度计陀螺仪和磁电机获取位置的库