偏航、俯仰和滚转值延迟

2024-01-01

我正在 Windows Phone 7.1 中开发一个应用程序,我需要手机在 x 轴和 y 轴上的当前旋转度数。我尝试使用运动 API 并使用它提供的偏航俯仰和滚动的适当值。但它提供的值是延迟的,因为如果我移动手机太快并将其旋转到 90 度,相应的值需要一点时间才能到达那里,这违背了我的目的。

我在 Android 中做了同样的事情,我可以使用类似的方法来计算手机的立即旋转。

这件事可以在 wp7 上使用陀螺仪来完成,但我想使用加速度计,这样我就可以适应更多设备。

任何有关如何实现目标的帮助将不胜感激


我在 WP8 Motion API 上也遇到了类似的问题。延迟并不是唯一的问题。看来 Motion API 对各种指南针(或磁力计)错误也非常敏感。更糟糕的是,这些不仅仅影响偏航。运动类 AHRS 算法似乎将俯仰和横滚与偏航耦合起来。因此,当指南针延迟或变得疯狂时,俯仰和横滚也会发生变化。

我怀疑你是否可以没有陀螺仪。理论上,您可以仅从加速度计获得欧拉角(偏航角、俯仰角和滚动角),但前提是手机静止不动。最轻微的移动会导致线性/向心加速度,从而破坏您的方向计算。我想说,任何使用手机等手持设备来做到这一点的尝试都注定会失败。此外,除了加速度计之外,Motion API 本身还需要指南针和陀螺仪硬件。

无论如何,一切都还没有失去。我完全摆脱了 Motion 类,并按照 Sebastian Madgwick 的 IMU 算法实现了“我自己的”IMU。 IMU / AHRS 报告及 C 代码如下:

http://www.x-io.co.uk/res/doc/madgwick_internal_report.pdf http://www.x-io.co.uk/res/doc/madgwick_internal_report.pdf

C源代码可以在这里找到:

http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/ http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/

凭借适当的 Beta 增益,Madgwick 的 IMU 在 Windows Phone 上就像魅力一样。 IMU 不提供偏航,仅提供俯仰和滚转。它仅使用陀螺仪和加速度计硬件。如果您也需要偏航,您可以实现上述两个来源中包含的完整 AHRS 算法。那当然也需要指南针。

Madgwick 算法不包括欧拉角计算(只是描述地球和传感器框架之间旋转的四元数),但您可以从 Madgwick 的报告中找到方程。

我没有完整的 AHRS(或 MARG,Madgwick 称之为)的经验。然而,该算法将罗盘偏航与俯仰和横滚计算解耦,因此即使存在磁干扰,人们也可以期望获得合理的俯仰/横滚读数。

请注意,坐标系不同。在 WP 中,X=俯仰轴,Y=横滚轴,Z=偏航轴。在上述算法中,Y=俯仰,X=横滚,Z=偏航。因此,您需要交换 X 和 Y 以及反转 Z 加速度的方向。您还需要反转陀螺仪速率(并交换 X 和 Y 速率)。

希望这可以帮助 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

偏航、俯仰和滚转值延迟 的相关文章

  • 在哪里可以下载 Windows Phone 开发人员工具?

    我找到了 Web 下载程序 但它们似乎对我不起作用 我如何下载 ISO 格式的最新版本或完整安装程序 我无法使用网络下载器 谢谢 尝试这个 http go microsoft com fwlink LinkId 201927 http go
  • 从 App.xaml.cs 导航

    我想将应用程序栏添加到我的应用程序的多个页面 因此 我将应用程序栏定义为应用程序资源 以便它可以被多个页面使用 现在 这些按钮的事件处理程序位于App这里提到的类http msdn microsoft com en us library h
  • WP7 检查互联网是否可用

    我的应用程序 WP7 未被接受 因为如果互联网不可用 它无法加载 我寻找一种方法来检查它并找到了这个命令 NetworkInterface GetIsNetworkAvailable 但它无法在模拟器上运行 而且我没有任何设备来测试它 有人
  • 以编程方式关闭 WP7 应用程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Windows Phone 7 关闭应用程序 https stackoverflow com questions 3659195 windows phone 7 close application 如
  • 在 WP7 Silverlight 应用程序中导航时将复杂对象传递到页面

    我一直在使用NavigationService s Navigate导航到我的 WP7 Silverlight 应用程序中其他页面的方法 NavigationService Navigate new Uri Somepage xaml va
  • 用于笔记本电脑的加速计 API [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 大多数 IBM 和一些 Dell 笔记本电脑都有内置加速计 可以在突然跌落时停止任何移动部件 但我无法
  • unity3d - 加速度计灵敏度

    我正在 Unity3D 4 3 中测试加速度计代码 我想做的就是在倾斜 ipad 的同时简单地改变物体角度 以像真实生活一样伪造视角 一切工作正常 除了加速计有点太敏感 即使我把它放在桌子上 我也可以看到游戏对象在闪烁 如何让它不那么敏感
  • Windows Phone 7 可以实现 ping 吗?

    为了了解 WP7 中的网络功能 我将构建一个简单的 ping 应用程序 该应用程序将显示对某个主机的 ICMP ping 请求的结果 然而 不仅System Net NetworkInformation Ping班级不见了 System N
  • 如何提高加速度计和指南针传感器的精度?

    我正在创建一个增强现实应用程序 当手机面向兴趣点 GPS 位置存储在手机上 时 它可以简单地可视化文本视图 文本视图绘制在屏幕中的兴趣点位置上 它工作正常 问题是指南针和加速度计非常 变体 并且文本视图由于传感器的准确性而不断左右上下移动
  • 如何从后台代码访问 ViewModelLocator 中的 MainViewModel?

    使用 MVVM light 为我的视图模型构建 WP7 应用程序 我正在使用当您通过 NuGet 添加库时添加的 ViewModelLocator 效果很好 但现在我需要从代码访问 ViewModel 在我的代码中 用户单击一个按钮 我需要
  • 错误:无法找到“async”修饰符所需的所有类型。您是否定位了错误的框架版本,或者缺少对程序集的引用?

    我的电脑配置如下 视窗8 视觉工作室2012 NET框架4 5 我的项目配置是 WP 7 1 银光4 0 NET框架4 0 CTP ASYNC 已安装 使用 async 和await 关键字 该项目是在Windows 7机器上使用VS201
  • 如何在 C# 中的 HttpClient 中使用凭据?

    我在使用 HttpClient 类访问 Delicious API 时遇到一些问题 我有以下代码 try const string uriSources https api del icio us v1 tags bundles all p
  • 如何隐藏数据透视项标题?

    我希望有一个具有 PivotItems 但没有横向数据透视项标题文本的数据透视控件 它是横向模式下的画廊 当恢复为纵向时 它应该再次显示 PivotItems 标题 解决办法就是制作文字PivotItem Header 不好 因为标题文本占
  • 需要哈希表和数组列表

    我正在尝试在我的 Windows 7 Phone 应用程序中使用其他人的 C 类 这些类使用 Hashtable 类型的对象 有问题的文件有 using System Collections 在顶部 所以我假设这就是它想要的 Hashtab
  • 为 Windows Phone 7 创建自定义 InputScope

    在哪里可以找到创建自定义 InputScope 的教程 我想创建一个自定义键盘 在屏幕键盘上仅显示数字 1 9 无符号 您无法创建自定义输入范围 以下是支持的范围输入范围名称值枚举 http msdn microsoft com en us
  • 我怎样才能像 HTC 'Stocks' 应用程序一样绘制漂亮的图表

    我用我的 HTC Mozart 下载了一个名为 Stocks 的应用程序 它主要管理股票 纳斯达克等 图表 图形看起来非常漂亮 我想知道如何做类似的事情 这是图表的图片 我看到 3 种颜色 曲线上方 背景 曲线本身 低于曲线 有没有免费 开
  • ListBox.ScrollIntoView() 似乎在 WP7 中不起作用

    每当将新项目添加到项目源时 我想将列表框滚动条移动到底部 但是ScrollIntoView 如果我向它传递对新添加项目的引用或其索引 它似乎不会执行任何操作 有没有人让它工作 或者对如何将列表框向下滚动到底部有任何其他建议 一些代码 voi
  • 如何在 Windows Phone 7 Silverlight 应用程序中保存应用程序状态(变量值、按钮状态等)?

    如果用户按下后退按钮 或例如按下应用程序内的横幅 以在应用程序恢复时设置相同的设置 如何保存 Silverlight 应用程序的状态 Windows Phone 7中有没有类似注册表的东西 一些本地存储 我可以使用任何数据库来保存应用程序设
  • 将屏幕从 Windows Phone 7 发送到 PC 的工具

    手机屏幕投射到电脑上用什么工具 我在演示文稿中看到过它 但在任何地方都找不到它 Thanks 这是目前仅由微软员工使用的内部工具 相机 投影仪是另一种选择
  • XDocument 似乎不存在于 System.Xml 命名空间中

    我遇到了我认为可能是一个非常简单的问题 在开发我的第一个 WP7 应用程序时 我已经进入了访问我的站点 api 并解析 XML 的阶段 但是我在尝试使用 XDocument 时遇到了困难 我四处搜索并找到了这个示例代码 将 XML 文件从网

随机推荐

  • 替换成有一个where子句吗?

    我正在编写一个应用程序 并使用 MySQL 作为 DBMS 我们正在下载房产报价 但存在一些性能问题 旧的架构看起来像这样 属性已更新 如果受影响的行数不为 1 则更新不被视为成功 否则更新查询解决了我们的问题 如果更新不成功 并且受影响的
  • 使用 HttpClient 检查互联网连接

    我很难理解以下代码如何处理偶尔的互联网连接丢失 理想情况下 我想在连接丢失后暂停应用程序 并在连接再次启动时恢复 有关于如何操作的指南吗 HttpClientHandler clientHandler new HttpClientHandl
  • 平衡绳的串联复杂度是多少?

    我查看了不同的论文 以下是我收集的信息 SGI实施 http www sgi com tech stl ropeimpl html and C cords http www cs ubc ca local reading proceedin
  • 不寻常的范围解析运算符

    今天重构一些 C 代码时 我得到了一些代码 可归结为以下内容 class x public void x y 是否x 范围解析运算符在这里做任何事情 这是一个错误 还是其他什么 我最好的猜测是 它是一些自动完成功能留下的人工制品 但我很想知
  • 从文件系统或 URL 解析 iPhone 的 Objective-C 中的 m3u 文件

    下面的示例应从 m3u 播放列表获取链接并将其添加到 anArray 所以我会得到NSArray NSMutableArray 其中包含某些链接 NSString fileContents NSString stringWithConten
  • 使用 JavaScript 三角法缩放旋转图像以填充 HTML5 Canvas?

    下面是我当前正在使用的代码 和0旋转 图像正确缩放以填充画布 如同background size cover 除了在 Canvas 上使用 JavaScript 我正在尝试添加旋转功能 具有以下功能 旋转时保持图像居中 我尝试使用width
  • 1318 - PROCEDURE 的参数数量不正确

    DROP PROCEDURE ModificarUsuario CREATE DEFINER root localhost PROCEDURE ModificarUsuario IN Aid INT IN Aced VARCHAR 100
  • 如何获取启动时运行的 CHKDSK 结果?

    有问题的 CHKDSK当我的机器重新启动时运行 并显示一些内容 问题是我不知道它显示了什么 因为它随后继续 完成后重新启动机器 我怎样才能让它停下来 暂停一下还是让我看看它做了什么 chkdsk 无法运行 因为该卷正在被另一个进程使用 CH
  • 如何从 pyodbc 结果行创建逗号分隔的字符串?

    我有一个存储在cursor rows 中的行结果集 这些行是从pyodbc cursor execute 命令返回的 解压这些数据并将其放入逗号分隔字符串列表 或解压到自定义对象中 的最快方法是什么 目前我正在做以下事情 cursor ex
  • 如何使用 Google Sheets API 添加超链接?

    我正在尝试编写一个 python 脚本来添加超链接到谷歌工作表 我正在为此使用谷歌API 通过搜索 我发现我需要向其余 api 传递 HYPERLINK 类型的消息 来自文档 https developers google com shee
  • 如何检查单选按钮

    我有以下 MySQL 表 id Title Windows Linux IDE GUI RAD 1 Software 1 1 0 1 0 0 2 Software 2 0 1 0 1 0 我想通过查询 mySQL 数据库来填充表单 到目前为
  • 使用 std::function 移动语义

    std function从右值引用提供构造函数 按照标准 移动的函数对象会发生什么 会不会是空的 这样再次调用就没有效果了 这个问题有太多的混乱 我会尽力把事情说清楚 本节描述 std 定义对象的移出状态 17 6 5 15 lib typ
  • ECMAScript 6 中的 Symbol.for(string)

    我花了一段时间 但我终于弄清楚了 ECMAScript 6 中符号的用途是什么 在将属性附加到共享对象 例如 HTML 元素 时避免名称冲突 如果您遇到同样的问题 我建议本文 https hacks mozilla org 2015 06
  • 基于 div 而非 screen 的条件 CSS

    所以我做了一些研究并且接近答案 但是我想要做的事情可能无法仅用 CSS 实现 我真的希望如此 最终目标是 如果 id 为 Primary 的元素的宽度为 915 或更小 则将一类 bricks 的元素的宽度设置为 90 html 片段 di
  • 从数据创建 CMSampleBufferRef

    我正在尝试从数据创建 CMSampleBuffer Ref 并尝试将其提供给 AVAssetWriter 但资产编写者未能根据数据创建电影 以下是创建 CMSampleBufferRef 的代码 CVImageBufferRef cvimg
  • 从 QList 填充 QVector

    我有一个 QList 和 QVector 我填充 Qlist 然后尝试复制到 QVector 奥维特有一个来自列表 http qt project org doc qt 4 8 qvector html fromList方法 但这不起作用
  • 链接到 jQuery 文件的最佳方式[重复]

    这个问题在这里已经有答案了 就网站性能 速度而言 链接到 jquery 是否更好 如下所示 或者将文件放在服务器上并从那里链接到它们 如下所示 这取决于谁拥有更快的服务器 对吗 有一些优点code jquery com 这很常见 如果用户访
  • 将十六进制字符串转换为十六进制整数

    我必须将十六进制字符串转换为十六进制整数 如下所示 color 0xFF00FF can be any color else defined by functions colorto 0xFF00FF copy of color but f
  • Google App Engine 502 具有“上游过早关闭连接”,但似乎无法到达我们的实例

    我们有一个提供 API 的 Node js App Engine 服务 很少 500 个请求中就有 1 个 向客户端返回 502 并从 Google Cloud Logging 的 nginx 日志中获取错误 upstream premat
  • 偏航、俯仰和滚转值延迟

    我正在 Windows Phone 7 1 中开发一个应用程序 我需要手机在 x 轴和 y 轴上的当前旋转度数 我尝试使用运动 API 并使用它提供的偏航俯仰和滚动的适当值 但它提供的值是延迟的 因为如果我移动手机太快并将其旋转到 90 度