问题标签 [cmattitude]

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 投票
1 回答
242 浏览

ios - iOS 设备上的绝对偏航

我现在想旋转两个设备的增量。我尝试使用 CMDeviceMotion 的姿态.yaw。

但是当我在两台设备上运行应用程序并将它们刷新时,我希望看到相同的值。但价值观不同。我应该怎么做才能看到相同的值(可能差别不大)

0 投票
0 回答
119 浏览

ios - iOS 陀螺仪归一化

我必须在这里写下这个问题,因为我在任何地方都找不到答案。我的数学水平不好,我能做,但我有困难。我的问题很简单:

我正在开发一个显示俯仰/偏航/滚动的应用程序,所以我开始使用 Core Motion 框架。我的问题是,当用户开始看到该视图时,我必须将手机 x/y/z 的 3 轴显示为 0/0/0(就像您将它平放在桌子上一样);因此,如果用户垂直握住手机并略微向右,我需要看到俯仰为 0,滚动为 0。我看到俯仰和滚动的姿态,当启动传感器时,不要像偏航一样显示 0,但他们会在那个时刻为您提供设备对地板的参考。我看到了许多复杂的数学公式来规范化向量,但是自从记录开始以来,有什么简单的方法可以将该值设为 0 吗?

谢谢

0 投票
0 回答
424 浏览

ios - iPhone垂直时指南针不稳定

当 iPhone 在纵向模式下垂直按住时按下按钮,我正在记录一个指南针磁航向 - 一个带有十字准线的实时摄像头馈送。GPS、相机(中预设)、指南针和姿态感应都在这里同时运行长达 20 秒。有一个 CLLocationManager 实例。对于姿态,我尝试了一个与磁北 + 垂直以及任意垂直对齐的参考系。

如果不纠正态度,无论我如何努力垂直握住 iPhone 并避免偏航,我都无法获得可重现的结果。有时有一个正确的值,但通常不是。我不确定这是否完全是因为我还没有应用态度校正,或者 iPhone 指南针在垂直时是否根本无法准确工作。

我在一个远离杂散磁场的大公园中间做了一些彻底的测试,完成了校准仪式,在三个轴上旋转 180 度和其他稍微尴尬的操作。

结果不正确,而且经常非常不准确。例如,固定在磁 142 度的目标上,我连续得到磁(不是真实)航向的值 155、152、154、154、153、156。在其他时候,我会得到 175、177、142 等等。

我希望这不是 iOS 的缺陷(可能与云台锁定有关?),只是磁罗盘航向必须针对 iPhone 姿态进行校正。我以欧拉角的形式获得手机相对于参考轴的姿态(但同样可以获得旋转矩阵或四元数)——使用 CMMotionManager / DeviceMotion。

我的问题是,尽管进行了长时间的搜索(并且尽管不太害怕数学),但我还没有找到进行更正所需的数学。有时我似乎很接近,但链接到的服务器不再可用。

如果您旋转设备以将偏航角改变一定量,罗盘读数似乎也会发生类似的变化,这让我想也许我只是在航向中添加了偏航角,但这完全失败了。我已经看到了以未指定方式使用四元数或旋转矩阵的建议,但我所拥有的只是一个四元数或矩阵,表示从参考系到当前手机方向的旋转,所以不确定我会用它做什么。

希望不必跳入原始磁力计/陀螺仪/加速度计硬铁干扰等应用校正?

任何指示或建议都非常感激。

- 账单。

0 投票
0 回答
22 浏览

ios - 获取 y 轴指向磁北的参考系

使用 CoreMotion,是否可以获得 Y 轴指向磁北的参考系?我想让读数类似于 Android 的读数,它的 Y 轴指向磁北。提前致谢。

0 投票
1 回答
496 浏览

android - Android中的Sensor.TYPE_LINEAR_ACCELERATION和IOS中的userAcceleration一样吗

嗨,我想知道您从 TYPE_LINEAR_ACCELERATION 获得的读数是否是没有重力的加速度计读数,是否与您从 IOS 中的 userAcceleration 获得的读数相当。据我所知,它们是加速度计读数减去重力,但只是想确保因为 Apple 没有发布任何源代码。

0 投票
0 回答
138 浏览

ios - 如何初始化 CMAtitude

快速提问。我希望用户将 iPhone 直立并重置此方向。我通过使用来做到这一点

一旦用户按下“重置按钮”,resetAttitude 就会被保存。现在我想保存 CMAttitude,这样我就可以从一开始就重置它,而无需要求用户按下重置按钮。我会拿起我的 iPhone,把它放在正确的直立位置,然后保存这个 CMAttitude 并将它放在源中,这样我就可以从一开始就使用它进行重置。

1.如何保存当前的CMAttitude?

2.如何从保存的数据中初始化 CMAttitude 对象?只有

可用的。

0 投票
0 回答
51 浏览

ios - 绝对旋转率

在 iOS 上CMDeviceMotion,我可以获取设备CMAttitude及其CMRotationRate. 旋转速率位于本地设备坐标系 (x,y,z) 中。

对于给定的CMAttitude,如何确定绝对旋转速率,即设备在初始定义的世界坐标系 (X,Y,Z) 中的旋转速率CMAttitudeReferenceFrame

例如:假设我CMMotionManager使用xMagneticNorthZVertical参考框架进行初始化。如何计算绕 X 轴(世界磁北)和 Z 轴(世界垂直)的旋转速率?

0 投票
1 回答
173 浏览

ios - 将加速度数据调整到全球参考框架

使用 Core Motion 时,加速度似乎总是相对于设备返回。这意味着如果您向上摇动设备屏幕,它将处于 +/-Z(取决于初始参考)如果您将设备转向一侧并上下摇动,与以前一样,加速度将在 + /-X 或 Y。

我想将此设备特定的加速度转换回“全局”框架。这意味着设备的相同物理运动会导致加速度数据在同一轴上返回,而不管设备在摇晃时的方向如何。

例如,如果我们上下摇晃设备,屏幕朝上,它会进入 z 轴,然后如果您旋转设备使屏幕朝前并进行同样的摇晃,z 轴仍会显示加速度,即使使用相对于设备,它是 Y 轴。

我一直在尝试将加速度旋转回初始姿态,看起来它有时有效,有时无效。我不相信轮换是正确的方法。我不确定它是否是合理的数学,或者有时只是随机看起来正确。

然后像这样进行计算:

最终目标是将“上/下”组件放入 FFT 中,以尝试找出运动的频率。

旋转加速度矢量是正确的方法吗?有没有更好的方法来实现与姿态无关的加速度?或者更好的是,无论方向如何,都能找到设备运动的频率!

0 投票
1 回答
118 浏览

swift - 如何找到初始 CMAttitude 以规范后续排队的设备运动姿态拉动?

我有一个简单的 Swift 运动跟踪应用程序,它可以拉动手机的三轴旋转速度和姿态。我正在尝试使用以初始态度作为参考的 multiply(byInverseOf: ) 来规范态度。目前 initialAttitude 正在返回 0,0,0。在我的 viewController 类中,我有以下内容:

当我尝试首先拉出 initialAttitude 时,在 deviceMotionUpdates(如下所示)之前它是 nil。

0 投票
0 回答
26 浏览

iphone - CoreMotion 对齐 iPhone CMAttitude

我正在用 2 部 iphone 做一个简单的实验。我制作了一个订阅设备运动更新的简单应用程序(使用参考帧 xTrueNorthZVertical)。我已将手机对齐以接近相同的旋转(不能超过 3-4 度)。一般来说,无论我如何移动手机,两部手机的滚动和俯仰都很好地匹配。然而,偏航在两个设备之间总是存在差异。这可以是 15 到 45 度,具体取决于跑步和我将它们移动到的位置。

我是否假设 CMAttitude 的滚动、俯仰和偏航应该或多或少匹配,如果我将它们保持在相对于参考框架(我已设置为相同)相同的旋转(或多或少)中不是任意的)。是否有一定程度的错误我应该注意或是否有其他设置我应该调查?

这是我的设置的一小段代码:

编辑:磁场精度始终显示为“高”