问题标签 [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.
android - 使用互补滤波器的传感器融合
我正在尝试学习传感器融合,为此我已经通过一个安卓应用程序记录了加速度计、陀螺仪和磁力计的原始数据。
我遇到了卡尔曼滤波器,但它们太复杂而无法理解,我不想在没有正确理解的情况下获取任何代码并实现它。
然后我找到了互补过滤器的这个链接,看起来很有希望,因为它很容易理解。所以我有以下疑问。(这是我第一次处理所有这些传感器,所以我要问我所有的问题)
互补滤波器从传感器获取信号,并根据俯仰、滚动和偏航输出方向。这是否意味着它会过滤时域信号并根据角度提供输出?在这种情况下,是否有可能获得滤波后的时域信号?
我看到了这个著名的 Google Talk 视频,其中他提到要获得线性加速度,您需要从原始加速度计数据中减去重力。如何获得重力矢量?
另外,我对为什么必须将加速度信号转换为地球坐标系感到有些困惑。我已经阅读了一些文件,但我仍然感到困惑。我可以看到它为什么完成,但是如何计算所需的旋转矩阵。
最后(但肯定不是最终的),我如何估计航向?
所以基本上,我有传感器数据,我想跟踪设备的方向以及人的前进方向。这些问题可能听起来很基础,但我需要专家对此主题的一些澄清,这样我才能去研究一些花哨的算法。
如果有人能指出我正确的方向,我将不胜感激。
此致
钦坦
android - 找出 SensorManager 函数中的代码
是否有可能知道以下功能是如何实现的。
那么有没有可能知道函数SensorManager.getRotationMatrix
和SensorManager.getOrientation
.
android - Android:磁力计数据有偏差
我试图从加速度计、陀螺仪和磁力计数据估计航向。我已经从这里实现了 A Complementary Filter 。
我正在尝试的是我手里拿着手机,我直线走了 15 步,我试图估计上面链接中给出的欧拉角。但是当我绘制原始数据时,我观察到磁力计数据存在偏差。这是原始传感器数据的图像。
我的问题是:我如何估计欧拉角,以便它们表明我在直线上行走。
orientation - 比较:带有互补过滤器的 TYPE_ROTATION_VECTOR
我一直在研究方向估计,当我直线行走时,我需要估计正确的航向。在遇到一些障碍后,我又从基础开始。
我已经从这里实现了一个互补滤波器,它使用从 Android(不是原始加速度)、原始陀螺仪数据和原始磁力计数据获得的重力矢量。我还在陀螺仪和磁力计数据上应用低通滤波器并将其用作输入。
互补滤波器的输出是欧拉角,我还记录了 TYPE_ROTATION_VECTOR,它以 4D 四元数形式输出设备方向。
所以我想将四元数转换为欧拉并将它们与从互补滤波器获得的欧拉进行比较。当手机静止在桌子上时,欧拉角的输出如下所示。
可以看出,Yaw 的值相差很大。
当手机静止时,我在这个简单的情况下做错了什么
然后我走进客厅,得到以下输出。
Complementary filter的造型看起来很不错,和安卓的很接近。但是这些值相差很大。
请告诉我我做错了什么?
android - 传感器融合:查找旋转矢量需要哪些传感器?
背景:我的目标是计算出手机的倾斜角度,例如在游戏中,向后倾斜手机意味着“踩油门”,左右倾斜意味着左右转动方向盘。
我正在观看有关不同 Android 传感器之间传感器融合的讨论。
根据演讲的最后,看来我可以使用“来自旋转矩阵的向量来确定我指向的方向”。
问题:他们是否暗示获得这些角度的正确方法是“使用旋转矢量传感器”/TYPE_ROTATION_VECTOR?
如果是,我现在的问题是具体的:设备需要哪些传感器才能使用传感器TYPE_ROTATION_VECTOR
?我的猜测是用于初始值的加速度计和用于校正的陀螺仪(以及用于额外校正的可选罗盘)?
额外的信用问题:我可以在任何地方找到符合该标准的设备列表吗?和/或有人对具有所需传感器的超便宜设备有建议吗?
orientation - iOS方向估计和航向错误
我没有进行自己的传感器融合,而是使用 iOS 提供的四元数并将它们转换为欧拉角。
我绕着一个长方形走了几圈,我发现它的形状不像预期的那样。我通过绘制偏航值来绘制形状。请看下文。似乎标题明显偏离。我一边走一边保持路径。
如何更正 Yaw 值以便获得正确的矩形形状。
android - 如何使用四元数从 Android 手机中查找航向?
我使用这个传感器融合教程来融合陀螺仪、加速度计和磁罗盘值。我需要从这些值中获取设备的标题,如果我的问题含糊不清,我很抱歉,但即使使用这些值,我也无法弄清楚如何获取设备的标题。
android-sensors - 测量非固定 Android 设备的垂直移动
我的目标是制作一个可以在骑自行车时测量道路质量的 Android 移动应用程序 (SDK16+)。
我找到了一个适用于 Android 的传感器融合演示,我认为它会为我完成所有测量。
当手机未固定在某个方向时,如何仅获得垂直移动?
opencv - 如何跟踪足球的位置?
我开始研究跟踪足球(美国的足球),我可以就哪种方法更可靠和更有效提出一些建议。
需要对球进行定位以确定它是否在球门柱之间以及如果它是球门(中/左/右/右上角/等)大致是哪一侧
最初我在考虑一个嵌入式惯性测量单元(IMU,一种融合操作系统传感器,如加速度计/陀螺仪/磁力计,有时还有 GPS),能够支持蓝牙低功耗(BLE,4.0 版,其范围比蓝牙经典版更大)来获得球的绝对位置,所以这可能是一个选择。由于我对 IMU 还不是很有经验,所以一些关于 DO 和 DONT 的技巧会很方便。
另一种选择是在球门柱后面使用摄像头。使用 2D 相机,我想象这样的设置:
希望相机足够快,因为我认为运动模糊将是挑战之一,因为当球快速运动时,形状和颜色会出现扭曲。
在检测方面,我正在考虑一种基于一些假设的幼稚方法:
- 分割背景,因为它是静态的(并且大部分是绿色的)
- 尝试圆形和椭圆的霍夫变换
- 根据边界框大小分割移动对象和过滤器(寻找更小的、球状的对象)
我也在考虑为足球检测训练一个级联,但我想事先检查一下这是否是矫枉过正。
arduino - 室内自主机器人位置检测
我制作了一个由 Arduino 和 Processing 控制的机器人,它通过自身旋转(如球体)在房间内移动。
我需要的是一旦它在地板上移动就能够获得新的位置(假设在一个 3m x 3m 的房间内)。我正在使用 9DOF 传感器(3 轴加速度计数据、3 轴陀螺仪和 3 轴磁数据)来确定它的滚动、俯仰和偏航以及它的方向。
如何在笛卡尔 (x,y,z) 坐标中准确识别机器人相对于其起始位置的位置?我不能使用 GPS,因为每次旋转的运动小于 20 厘米,并且机器人将在室内使用。
我找到了一些室内测距和 3D 定位解决方案,例如pozyx或使用固定摄像头。但是,我需要它具有成本效益。
有什么方法可以转换 9DOF 数据以获取新位置或任何其他传感器来做到这一点?任何其他解决方案,例如算法?