问题标签 [core-motion]
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.
iphone - 使用 iPhone 进行运动检测
我在 AppStore 中看到至少 6 个应用程序在检测到运动时会拍照(即一种间谍的东西)。有谁知道使用 iPhone SDK 做这种事情的一般方法是什么?
我猜他们的应用程序每 X 秒拍照,并将当前图像与之前的图像进行比较,以确定是否有任何差异(阅读“运动”)。有更好的想法吗?
谢谢!
iphone - 加速度计/陀螺仪数据的核心运动和频率的推送方法
当使用 push 方法获取加速度计/陀螺仪/设备运动数据时,不幸的是陀螺仪和设备运动最大频率平均不能超过 72Hz(实际上数据也完全不是周期性的)。
更糟糕的是,如果只记录陀螺仪数据(不启动设备运动更新服务:即仅使用[motionManager startGyroUpdatesToQueue:opQ withHandler:gyroHandler]),那么陀螺仪数据频率平均下降到52Hz。
有没有人尝试使用拉法获取 100Hz 的陀螺仪数据?我们可以用“拉法”达到最大 100Hz 的吞吐量吗?
此外,有没有人检查过这种错误行为是否在 ios 4.2 (beta) 中得到纠正?
iphone - 如何从可变加速度计获得速度(简单的线性运动)?
我想根据加速度计随时计算当前的 iphone 运动速度,加速度计是可变的。任何人都可以给出任何想法吗?
ios - Core Motion - 将局部欧拉角转换为另一个参考系统
我在将局部欧拉角转换为另一个参考系统的角度时遇到了数学问题。假设我们有一部与车辆轴线对齐的 iPhone,我想测量侧倾角,那么 iPhone 的侧倾角等于设备的侧倾角。但是,如果 iPhone 倾斜安装怎么办。在这种情况下,我必须将局部欧拉角转换为另一个参考系(例如汽车)。有人可以指出我正确的方向吗?
iphone - 使用 Core Motion 确定手机的高度和方位角
看起来这应该很容易,但我只是没有运气。
我想要做的是使用核心运动来跟踪手机摄像头指向的位置(对于一种增强现实应用程序)。用户将手机指向一个参考点(就像给它拍照一样)并点击一个按钮以将手机的位置与对象“对齐”。现在,当用户将手机的摄像头指向其他物体时,我需要确定更改手机的高度(-90º 到 +90º)和方位角(0º 到 360º)。
CMAttitude 给出的欧拉角似乎不是我需要的。我尝试缓存用户点击“对齐”时获得的 CMAttitude。然后当用户移动手机时,我得到一个新的 CMAttitude 并使用 multiplyByInverseOfAttitude 来确定与参考姿态的差异。
但这并没有产生正确的结果。如果手机垂直(长轴向上),那么 deltaAlt 工作正常。只要手机指向地平线 (alt = 0) ,那么 deltaAzm 也是正确的。但是,如果手机指向(比如说)45º 的天空,那么当我在方位角移动手机时,高度分量也会发生变化。两者以我无法理解的方式交织在一起。
是否有一些简单的数学需要我将它们分开?同样,我认为这将是增强现实应用程序的必要需求,但我一直无法找到任何这样做的示例。
iphone - 来自 OpenGL 的 CMSampleBuffer,用于使用 AVAssestWritter 进行视频输出
我需要为 OpenGL 帧获取一个 CMSampleBuffer。我正在使用这个:
我得到 CMSampleBufferCreate 的 EXEC_BAD_ACCESS。
任何帮助表示赞赏,谢谢。
iphone - 核心运动在后台?
当应用程序在后台运行时,Core Motion 框架可以工作吗?
iphone - iphone - 偏航、俯仰和滚动的核心运动范围
我现在没有 iPhone 4,我正在尝试查找显示偏航、俯仰和滚动范围以及设备对应位置的文档。
我知道加速度计从 -1 到 +1 不等,但在我昨天在 iPhone 上的测试中,我发现滚动从 -M_PI 到 +M_PI 不等,但偏航和俯仰范围是其中的一半。它是否正确?
我在哪里可以找到有关这些范围的文档?我没有在 Apple vague docs 上看到它。
谢谢。
iphone - 设备运动更新的实际频率低于预期,但随着设置的增加而增加
我正在移植一个我最初使用 IOS 3 的加速度计编写的应用程序,以整合新的 IOS 4 运动功能。
在捕捉动作时,该应用程序几乎没有做其他事情——例如没有图形更新。
我正在执行以下操作来设置运动更新,以替代我之前使用的加速度计。我确实意识到我可以重建以使用 NSTimer 或其他东西进行自己的投票,并且可能会继续这样做。
[motionManager setDeviceMotionUpdateInterval:updateInterval];
CMDeviceMotionHandler motionHandler = ^(CMDeviceMotion *motion, NSError *error) {
[self processMotion:motion withError:error];
};
[motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:motionHandler];
这可行,但更新间隔没有按预期运行。我已经删除了 processMotion 方法中的所有执行代码,除了保存时间戳以查看实际运动更新率是多少。我已经对此进行了足够的测试,以向自己证明它是可重复的,即使是 1/40 的奇怪结果。下表显示了我所看到的:
一些注意事项:
1.我确定更新间隔设置正确,并在设置后检查确认。
2. 我确定我正在跟踪 processMotion 的每个调用,没有任何调用 nil CMDeviceMotion 或其他奇怪的
东西 3. 我没有做任何会阻止事情的重要处理,只是等待运动事件并记录下来。作为加速度计的代表,这一切都非常好
4. 运动数据很好,只是更新频率太低 :)
5. 这是在 ipod touch 第 4 代 6 上使用 ios 4.2
。我已经尽我所能进行搜索,避风港没有看到解释,尽管我看到一些报告说人们在请求 60hz 时看到 50hz 更新频率,这可能是相关的。
我将尝试的下一件事是为处理设置一个专用队列,而不是使用当前队列,但是我确实想看看这是否是已知行为。我可以理解更新率是否以某种方式受到瓶颈,但不确定为什么它仍然会按比例放大,如果是这样的话。
同样,我想我可以重建以使用 NSTimer 并进行自己的轮询,但我想了解为什么我会看到这个,以防我从根本上误解了 Core Motion 框架。
iphone - iphone - 核心运动(相对旋转)
有没有办法从核心运动中获得相对旋转?
我需要的是:它在一个轴上旋转了多少以及哪个方向(+ 符号 = 逆时针,- = 顺时针,根据右手法则)。
我找到了属性rotationRate,但我现在确定如何从中提取角度,因为这给了我每秒弧度。
在过去的几天里,我做了各种各样的事情,但没有什么能给我稳定的价值观。我尝试使用 NSTimer 对核心运动数据进行定时采样并计算两个样本之间的差异,所以我会知道它自上一个样本以来旋转了多少,但有时它会给我疯狂的数字,比如 13600 度即使 iPhone 放在桌子上。
关于如何实现这一点的任何想法?
谢谢