问题标签 [accelerometer]
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.
c - 结合陀螺仪和加速度计数据
我正在使用 Lego Mindstorm 的 NXT 系统构建一个平衡机器人。我正在使用 HiTechnic 的两个传感器,第一个是加速度计,第二个是陀螺仪。我已经成功地过滤掉了来自两个传感器的噪音,以及在 -90 到 90 度之间的范围内的派生角度,0 度是完美平衡的。
我的下一个挑战是结合两个传感器值来校正陀螺仪随时间的漂移。下面是我根据实际数据创建的示例图,用于演示陀螺仪的漂移:
我见过的最常用的组合这些传感器坚如磐石的方法是使用卡尔曼滤波器。但是,我不是微积分专家,我真的不懂数学符号,但我确实了解源代码中的数学。
我正在使用 RobotC(就像任何其他 C 派生词一样),如果有人能给我提供如何在 C 中完成此任务的示例,我将不胜感激。
感谢您的帮助!
解决结果:
好的,kersny 通过向我介绍互补过滤器解决了我的问题。这是说明我的结果的图表:
结果#1
结果#2
如您所见,滤波器校正陀螺漂移并将两个信号组合成一个平滑信号。
编辑:因为无论如何我都在修复损坏的图像,所以我认为展示我用来生成这些数据的装备会很有趣:
android - Android:加速度计误检
我有一个代码片段来检测加速度计的运动。它有时会通过正确检测轻微运动来工作,但有时它也会在我让设备闲置时检测到运动。Android 上的内置加速度计检测是否存在任何问题?
我使用 HTC G-1 设备。我的代码片段如下。我该如何解决它,以便我可以检测到小的设备移动,但在设备空闲时检测不到任何东西?
android - 过滤加速度计数据噪声
如何过滤 Android 中加速度计数据的噪声?我想为我的样本数据创建一个高通滤波器,以便我可以消除低频分量并专注于高频分量。我已经读到卡尔曼滤波器可能是最好的选择,但是我如何在我的应用程序中集成或使用这种方法,而我的应用程序主要是用 Android Java 编写的?还是可以首先完成?还是通过Android NDK?有没有可能实时完成?
任何想法将不胜感激。谢谢!
iphone - motionBegan 和 motionEnded 事件的比例是否为 1:1?
我正在执行此答案中描述的摇动手势,但是如果我摇动手机超过一秒钟,则不会调用motionEnded。
操作系统是否保证了motionBegan 和motionEnded 事件的比例不是1:1,或者这是响应者链的问题并且事件被发送到其他地方?
iphone - UIAccelerometer 不向第二个委托发送事件
我正在开发一个游戏,它为每个级别使用不同的控制器。它需要通过加速度计检测抖动,因此它将自己注册为委托,如下所示:
当关卡结束时,这个控制器会被释放并释放。以前,在释放此控制器后我遇到了崩溃,因为我没有取消 UIAccelerometer 上的委托(即它仍在向现在已释放的对象发送事件)。所以现在,在 dealloc 内部,我正在这样做:
一切都很好,第一级比赛顺利进行。当我进入下一个级别时,会出现问题,创建一个新的级别控制器并再次运行第一批代码(现在将新控制器设置为委托)。在此之后,我没有收到来自加速度计的任何电话。
所以问题是,对于加速度计,您是否只允许每个应用程序有一个代表,或者我只是错过了什么?我在文档中没有看到任何不允许多次设置委托的内容。我对 Obj-C 有点陌生,但据我了解代表们,这不应该太不正统。
注意:我知道在 3.0 中我可以只收听震动通知。不幸的是,在我对摇晃感兴趣的整个过程中,我需要其他东西来成为第一响应者。所以我不能只重构那个选项。
iphone - 加速度计采样率
我的加速度计有一些问题。当我第一次开始开发我的游戏时,控件感觉非常灵活和精确,但是当添加更多图形元素时,加速度计感觉反应很晚,有时不像以前那么精确。我的帧速率约为 40fps。
这是我读取值的地方(正如我猜想的那样)
这是一种常见的预期行为,还是我可以做些什么?可以控制采样率和精度吗?或者如果发生这种情况是做错了什么?
iphone - 如何让物体在视图中飞来飞去
怎么可能让一些物体在视图的尽头飞来飞去并相互碰撞。
第二步将通过摇晃来增加物体的加速度。
我还没有找到教程或开始的某个步骤。
非常感谢你的帮助 :)
这是我的图像(只有静止图像)
iphone - 为 iPhone 应用程序校准倾斜设置的最简单方法是什么?
我让 iPhone 应用程序的用户能够在站立、坐下、躺下等时使用倾斜控件。用户通过转到设置屏幕、将手机保持在所需角度并点击保存按钮。 在代码中执行此操作的最佳方法是什么?
我唯一熟悉的是加速度计委托,我可以在其中获取 x、y 和 z 值。
iphone - 为什么在我的加速度计回调中使用静态 int 比使用实例变量慢得多?
我正在使用 GLGravity 示例来找出与处理加速度计相关的一些性能细微差别。
这是问题代码:
这段代码运行得很慢。从视觉上,我可以看出茶壶的动作变得非常缓慢,而且越来越慢。最终,茶壶的移动很容易从我实际移动设备的时间延迟了 2 分钟以上。
调试器控制台中的输出也确实显示了一些延迟,但并不过分。它几乎(但不完全)是应有的速度的两倍。
不过,加速度计回调似乎堆积在某种队列中。因此,一开始还不算太糟糕的事情很快就会变得难以忍受。
但是,如果我只是将 accelCallCount 的声明移动到头文件并将其声明为实例 var,则此问题将消失:
为什么要解决它?
在相关说明中,无论我使用此代码还是“固定”(accelCallCount 作为 ivar)代码,如果我触摸屏幕,整个事情也会变慢。为什么会这样?
iphone - iPhone 加速度计即使在平面上也能正常工作
我在视图中有一个 imageView。即使iphone静止了一段时间,它也会移动。为什么会这样?此外,图像对 iphone 的移动也没有快速响应。
这是我为此编写的代码:
我还为加速度计设置了 updateInterval 和委托。
谁能帮帮我?