使用四元数计算 iphone 的偏航、俯仰和滚动?
Posted
技术标签:
【中文标题】使用四元数计算 iphone 的偏航、俯仰和滚动?【英文标题】:Use Quaternions to compute yaw, pitch and roll from iphone? 【发布时间】:2012-09-07 17:32:10 【问题描述】:我看到很多问题和文章都提到四元数可以用来从 iPhone 获得更好、准确和稳定的偏航、俯仰和滚动读数,而不是直接读取它的偏航、俯仰和滚动读数。但与此同时,我还没有看到任何在 iPhone 平台上实现四元数的合适方法。作为一个初学者,真的很难知道,这些四元数是如何工作的并在一段代码中实现它们? (抱歉没有提供任何代码,因为我不知道它在苹果的 xcode 平台上是如何工作的)
所以请您回答我的问题,这样大多数用户都会从中受益!
提前致谢!
【问题讨论】:
【参考方案1】:您不必实现任何东西,API 为您提供了四元数:
CMAttitude Class Reference, quaternion propery
我个人更喜欢旋转矩阵,因为我发现它们更易于理解和使用。
当我阅读你的问题时,我仍然觉得你想要偏航、俯仰和滚动。您必须在代码中无处不在使用四元数来消除偏航、俯仰和滚动导致的问题。
【讨论】:
但是如何在一段代码中连续访问它们来计算偏航、俯仰和滚动? 从四元数计算偏航、俯仰和滚动的那一刻,您将遇到与仅使用偏航、俯仰和滚动相同的问题。您必须在代码中使用四元数EVERYWHERE,而忘记偏航、俯仰和滚动。 @Ali- 实际上从设备准确获取角度变化率的最佳方法是什么?众所周知,积分陀螺仪数据存在漂移和积分误差累积的问题,那么获得稳定读数的最佳做法是什么? :) @sam 我现在很困惑。你想干什么?您想将这些值用于某事,它是什么? 我想沿着 y 轴尽可能准确地跟踪设备角度的连续变化。像这样想,如果你有一个垂直于重力的钟摆。当您向上移动设备时,钟摆的移动角度应该与用户移动的角度完全相同,但同时,如果用户连续移动 10 秒,它应该记录相对于参考垂直位置的准确角度变化正反两方面!以上是关于使用四元数计算 iphone 的偏航、俯仰和滚动?的主要内容,如果未能解决你的问题,请参考以下文章