问题标签 [sensor-fusion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1993 浏览

android - 我怎样才能获得设备倾斜?

我正在尝试使设备倾斜(设备沿 y 轴旋转,但不幸的是我无法实现我的目标。我尝试了很多使用 TYPE_ACCELEROMETER 和 TYPE_MAGNETIC_FIELD 作为组合传感器(传感器融合)的东西。我也关注了运动传感器

我想要的是?

我想获得安装在车辆上的设备(手机)的倾斜度。比方说,我在汽车上安装了一个设备,而汽车是静止的。所以倾角是0度。Lator on,当车辆通过下通道或天桥时,倾角应该是相应的。我试图计算这个,这是我的代码:

我的代码有什么问题?

当我快速加速/减速我的车时,角度会迅速增加/减少,但它不应该。换句话说,当我加速/减速车辆时,不应该对角度有任何影响。我也尝试遵循这些教程: Link 1 Link 2等。

0 投票
1 回答
1143 浏览

android - 在 Android NDK 中做传感器融合

因此,Android JAVA SDK 提供了进行传感器融合的规定。它可以结合陀螺仪和加速度计读数来生成可靠的重力矢量。这在 API 中以传感器类型TYPE_GRAVITY 公开

现在,NDK 也支持传感器,例如,这里有一个示例 NDK 应用程序,它以 60Hz 读取加速度计:NativeActivity 示例源

但是,从sensor.h 源代码来看,NDK 只允许我生成以下传感器类型:

  • 加速度计
  • 磁场
  • 陀螺仪
  • 接近

所以示例代码使用了 ASENSOR_TYPE_ACCELEROMETER。可悲的是,没有 ASENSOR_TYPE_GRAVITY。这仅仅是 NDK 只做 SDK API 的准系统子集的一个例子吗?

如何在 Android NDK 上进行传感器融合?我想避免从 Java 中引入值,因为在 Java 中进行高频读取时,我已经阅读了有关 CPU 使用过多的警告。

谢谢你。

0 投票
1 回答
1669 浏览

android - 如何在 Android 上使用虚拟数据绕过 SensorManager 数据

我必须想办法绕过 Android 上的传感器管理器数据(尤其是加速度计数据)。我不知道如何继续,因为我对 Android 比较陌生。我必须提供虚拟传感器数据(最好来自 SD 卡上的文本文件)来替换实际的传感器管理器数据。

我的最终目标是用它来测试一个应用程序,它使用加速度计数据来做出决定。

我应该能够将虚拟数据提供给所有请求传感器数据的应用程序。任何帮助或指导将不胜感激。

PS:我想在 Nexus-5 Android 手机上实现这一点。

0 投票
1 回答
5126 浏览

accelerometer - LSM9DS0 上的 Madgwick 传感器融合

我正在尝试在 STM Cortex M3 微控制器上的 LSM9DS0 传感器(加速度计、陀螺仪和磁力计)上实现Madgwick 传感器融合算法。

所有传感器的原始数据似乎都很好。

我的问题是:当我将传感器的 z 轴水平或向下(即滚动或俯仰角超过 90 度)握住传感器时 - 来自过滤器的四元数变得非常不稳定并随机翻转 180 度。更准确地说,q0 和 q3 是不断变化的符号,导致旋转 180 度翻转。

我尝试使用常量值而不是真实的传感器输出,但仍然出现这种行为。

当 z 轴或多或少垂直时,四元数似乎是合理的。

我没有在示例视频中看到过这样的内容。

我试图忽略磁力计数据并使用 6DOF 版本的滤波器,但这是一场灾难;四元数只是飞来飞去,不受控制地旋转。

我必须将 beta 参数设置得非常大(~100),因为较小的值会在突然翻转时给出非常不稳定的结果。我确实觉得这很奇怪,因为通常 beta 约为 0.5-0.05。

滤波器更新频率为 1KHz。

谁能帮帮我吗?

0 投票
1 回答
2303 浏览

android - Unity 3D中加速度计和陀螺仪的传感器融合

我正在尝试将手机用作用陀螺仪瞄准的枪。我用手机或平板电脑在某个方向进行校准。这将直接射击。然后根据手机转动的方向(左/右/上/下),枪朝那个方向射击。

我正在使用陀螺仪。这一切都有效。除了拍摄约 30 秒后,陀螺仪开始慢慢向左或向右漂移。所以当我回到我校准的方向时,它不再直射了。有没有人有编写互补或卡尔曼滤波器以融合陀螺仪和加速度计数据以在 Unity 3D 中提供更好结果的经验?

我在网上找到了这个 - http://www.x-io.co.uk/open-source-ahrs-with-x-imu/。它似乎正是我想要的。但我用错了。我有时会变得更好,有时会得到更糟糕的结果。有人对此有任何经验吗?

0 投票
2 回答
839 浏览

android - 在 Android 中同时获取 Accelero、Gyro 和 Magneto

我正在使用 Android 上的加速度计、陀螺仪和磁场进行传感器融合。感谢 SensorsManager,我可以注意到这些传感器的每个新价值。

实际上,我的 Nexus 5 就是这种情况(我不确定其他 Android 设备),加速度、旋转速率和磁场是同时采样的。我们可以使用 event.timestamp 来验证它。

在其他系统(如 iOS、xSens...)上,Sensor SDK 会同时提供带有这 3 个向量的通知。

当然,当我收到一个加速度(t)时,我可以用数组编写几行代码来等待rotationRate(t)和磁场(t)。但是,如果有一种方法可以直接访问这 3 个向量,那么知道这可能会非常有趣!

另一个与传感器数据相关的问题:Android 团队是否建议设备构造函数按时间顺序提供数据?

谢谢,

蒂博

0 投票
0 回答
1029 浏览

tizen - Smartwatch Gear 2 陀螺仪数据输出采样率

我正在收集来自我的智能手表上的加速度计和陀螺仪传感器的数据:Samsung Gear 2。开发环境为:Tizen SDK for Wearable Version 1.0.0。

使用的javascripts代码是:

问题:虽然加速度数据似乎是正确的(采样频率约为 25 Hz),但沿 alpha、beta、gamma 轴的旋转速率存在异常:采样速率非常低(1.0 Hz)。假设 deviceMotionEvent 以 25 Hz 的频率触发,Wx,Wy,Wz 的相同值会重复 25 次。

我没有截获任何文件,包括陀螺仪传感器规格(欢迎提出任何建议),但我会理解陀螺仪的 1.0 Hz 是否必须被视为异常或正常运行。

0 投票
1 回答
550 浏览

android - 如何将四元数/加速度计数据转换为 opengl 可用数据

我有一些来自传感器设备的数据,即加速度计 x、y、z 和四元数。使用此信息,我想在 Android OpenGL 视图中呈现“线条图像”。有人可以帮助我了解如何将加速度值转换为 OpenGL glTranslatef 和 glRotatef 函数可以使用的东西。

0 投票
1 回答
1589 浏览

accelerometer - 卡尔曼滤波器使用旋转矩阵平滑加速度计信号

我有明显嘈杂的 3D 加速度计信号。我正在尝试使用卡尔曼滤波器来消除这些信号的偏差和漂移。作为额外的输入,我有旋转矩阵。

我也可以使用移动平均滤波器,它会很好,但我如何使用 Kalaman 滤波器使用旋转矩阵来平滑这些信号?

此致

钦坦

0 投票
1 回答
197 浏览

sensors - 如何在纸板中输入外部传感器的数据以进行头部跟踪

我想制作没有 android 内部传感器的纸板应用程序,并输入外部传感器的数据以进行头部跟踪。我该怎么做?

你能给我链接或示例代码吗?