IMU速度估计

2023-12-12

你知道我在哪里可以找到根据 IMU(acc+陀螺仪+磁力计)数据进行速度估计的代码或示例吗?我根据 IMU 静止的数据计算了偏差。我想用某种滤波器(卡尔曼/互补)来实现速度估计,但我找不到任何滤波器。我还有相机速度估计,也许它可以作为某种融合提供帮助? 先感谢您! 亲切的问候


我没有完全适合您的情况的示例代码。但这种方法可以帮助(基于过去的经验),

卡尔曼滤波器:

  1. 决定并制定状态 X、控制输入 U、输出、预测和观测方程。
  2. 实现/重用卡尔曼滤波器的一些实现。这是一个基于 Simulink 的执行以供参考。
  3. 设置测量噪声和预测误差方差。稍后可能需要一些微调。
  4. 验证 KF 是否针对某些参考工作。如果您有其他方法来测量速度,请对照它检查 KF 速度。

状态和控制输入:

状态可以是一个包含以下内容的数组

  1. 线速度 [Vx、Vy、Vz]
  2. 角速度 [omega x、omega y、omega z]
  3. 陀螺仪的偏差。这种偏差基本上是恒定的,但会随着温度和其他因素而变化。 KF 将使用加速度计测量来校正陀螺仪偏差。
  4. 加速度计的偏差。这种偏差基本上是恒定的,但会随着温度和其他因素而变化。 KF 将使用相机速度来校正加速度偏差。
  5. 方向(欧拉角或四元数)

控制输入​​不必是发送到执行器的实际命令。 在这种情况下,控制输入可以是净力或净加速度,即

加速度计数据(即比力)+重力加速度

预测方程:

预测方程根据当前状态和控制输入预测下一个时间步的状态。

This MathWorks 文档对IMU相关的预测方程有很好的参考。

观察/测量模型:

将测量值与状态相关联。

Accel 数据已用于预测。这里忽略它。

陀螺仪数据为 [gx, gy, gz] = [omega_x + gyro_bias_x, ....] + 错误

处理磁力计的一种方法是从中获取偏航角 - arctan(y/x),然后使用 yaw_mag 作为测量值。

相机数据为 [vx_cam, vy_cam, vz_cam] = [Vx, Vy, Vx] + 错误

最后追加所有行并将其变为 Y=C*X + 噪声形式。

Y 表示来自不同传感器的测量值,X 表示状态。

在这种情况下,Y 将为 [gx, gy, gz, yaw_mag, vx,cam, vy_cam, vz_cam]。

免责声明:我是 MathWorks 员工,链接来自 MathWorks 文档。

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

IMU速度估计 的相关文章

  • 检查字符串是否包含 Velocity 中的特定子字符串

    在 Velocity 中 我有一个名为 url 的变量 其中包含以下字符串 ContentId 2 7507 ContentId 2 7508 ContentId 1 44551 我想检查该字符串是否包含子字符串 1 44551 这是我到目
  • 卡尔曼滤波器:如何在没有“状态转换模型”的情况下使用它?

    我正在使用 Android 手机开发加速度计 我希望过滤掉加速度计返回记录手机移动的可怕噪音 我正在阅读卡尔曼滤波器 因为低通滤波器还不够 但我没有从ACCELERATION k 1 to ACCELERATION k 因为它是用户的动作
  • 锁屏下追踪加速度计

    是否可以在锁定屏幕下跟踪加速度计值 我设法编写了一个简单的应用程序 它使用计时器从 1 计数到 100 该计时器触发一个事件 在该事件上我递增计数器 但是 当我为加速度计的 ReadingChanged 事件注册一个处理程序时 一旦屏幕锁定
  • Velocity 2.0:NoClassDefFoundError:org/apache/velocity/runtime/log/CommonsLogLogChute

    在使用 Velocity 2 0 启动我的 Web 应用程序时 我收到以下错误 Caused by java lang NoClassDefFoundError org apache velocity runtime log Commons
  • 设备方向的陀螺仪问题

    我使用本教程从设备的陀螺仪获取俯仰和横滚数据 http www thousand thoughts com 2012 03 android sensor fusion tutorial http www thousand thoughts
  • 无法读取 Freemarker 模板中的对象值

    我无法读取 Freemarker Templatet 中的 scala java 对象值 我尝试过这个 case class ScheduleEmail workOrderNo String name String woType Strin
  • android 从加速度计读数中删除重力

    我正在开发一个 Android 应用程序 我需要从加速度计读数中消除重力 我已经阅读了关于这个问题的多个讨论 我还找到了一个算法here http developer android com reference android hardwa
  • 需要更好的模板语言[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 对我知道那个this https stackoverflow com questions 3793880 lightweight temp
  • 从 xyz 磁力计获取磁北 (iPhone 3.0)

    我实际上是在转发 iphone 开发板的一个问题 我没有问它 但我在试图寻找它的答案时发现了它 那里还没有人回复 所以我想我应该尝试将其发布在这里 预先感谢您的任何帮助 有谁知道有关根据 CLHeading 的原始 xyz 值计算磁航向的算
  • 如何检测有人摇晃 iPhone?

    我想在有人摇晃 iPhone 时做出反应 我并不特别关心他们如何摇动它 只是在瞬间用力挥动它 有谁知道如何检测这个 在 3 0 中 现在有一种更简单的方法 挂钩新的运动事件 主要技巧是您需要有一些 UIView 不是 UIViewContr
  • Android 加速度计移动球

    我在网络上发布的教程的帮助下开发了一个示例应用程序 我的目标是访问加速计并根据手机方向移动球 我在某种程度上是成功的 但我有两个问题 球超出屏幕范围 球的运动不顺畅 看起来它消失并重新出现在屏幕上 这是我的代码 我需要做些什么改变才能让球像
  • 在自定义 UIGestureRecognizer 中实现速度

    我编写了一个自定义 UIGestureRecognizer 它可以用一根手指处理旋转 它的设计工作方式与 Apple 的 UIRotationGestureRecognizer 完全相同 并返回相同的值 现在 我想实现速度 但我无法弄清楚苹
  • 用于 RSSI 距离近似的卡尔曼滤波器

    我目前正在开发一个项目 该项目利用 RSSI 信号来确定用户与三个信标之间的距离 虽然我有粗略的三角测量公式 但我正在努力使一些东西更加准确 通过我所有的研究 我发现了卡尔曼滤波器 从我读到的有关它们的内容来看 它们似乎正是我想要使用的 然
  • 抑制已经遇到的列表元素

    您好 我有一个正在尝试编辑的速度模板 它目前有一个看起来像的块 foreach element in myList element field1 element field2 issued by element field element
  • 如何充分替换 Sensor.TYPE_ORIENTATION (现已弃用)?

    我尝试了在互联网上找到的几个代码片段SensorManager getOrientation 相关讨论 没有一个能可靠地给出磁方位角 因为Sensor TYPE ORIENTATION做过 谁能分享一个工作代码Sensor TYPE ORI
  • StringTemplate 和 FreeMarker 之间的主要区别是什么?

    网上似乎充满了 Velocity 和 FreeMarker 之间的比较 而且它们似乎相当等效 但StringTemplate和FreeMarker之间似乎几乎没有可比性 那么 StringTemplate 和 FreeMarker 之间的主
  • 如何使用卡尔曼滤波器预测测量之间的 GPS 位置

    我研究了OpenCV卡尔曼滤波器的实现 并做了一些基本的鼠标指针模拟并了解了基础 我似乎错过了在我的应用程序中使用它的一些关键点 并希望这里有人可以提供一个小例子 使用具有速度和位置的简单模型 KF statePre at
  • 使用 Android 手机在空中绘画

    我正在开发一个用 Android 手机在空中画画的应用程序 当我的手机移动时 借助加速度计 我检索了每个轴 ax ay az 上的加速度 我感兴趣的是 x y z 根据我在论坛和一些教程中读到的内容 两次积分加速会产生巨大的错误 那么 对于
  • Android:加速度传感器中的z值范围在不同设备上不同

    我想检测设备是否面朝上 不是成角度 而是平放在地面上 在某些面朝上的设备上 z 值将返回 9 10 之间的值 大多数设备 然而 在 Nexus 7 上 对于面朝上 z 值将返回 6 8 之间的值 我的代码是 if z value gt 9
  • unity 3d 根据加速度计旋转游戏对象

    我想做一款类似 神庙逃亡 的游戏 我需要根据设备倾斜的程度来旋转播放器的平台 我正在尝试加速计 但无法使游戏对象倾斜 请指导我 谢谢 这是我的代码 我之前在注释中使用了代码 现在我尝试使用注释中的代码 public class tilt M

随机推荐

  • 使用 Jackson 忽略字段而不修改 POJO 类

    我的 POJO 类有 JsonIgnore在字段的声明上 而不是在 getter 和 setter 方法上 这是一个生成的文件 我无法对其进行太多更改 如何在使用时忽略该字段JsonGenerator Setting Using JsonI
  • 所有 tkinter 函数在程序启动时运行

    我在使用 tkinter 时遇到了一个以前从未遇到过的非常奇怪的问题 在任何地方为小部件 例如按钮或菜单项 设置命令时 该命令都会在应用程序启动时运行 基本上 该命令不会等到单击小部件才运行 在我的代码中 我知道我没有打包按钮 这是为了表明
  • 有没有更好的方法来迭代行(30000)的嵌套循环?

    我想在下表中找到包含重复电子邮件地址的行 当电子邮件地址重复时 我在以下代码的数据框中创建一个额外的列 其值为 ja 这对于少量行 150 来说很好 对于大量行 30000 脚本会挂起 有更好的方法来循环行吗 import pandas a
  • Scrapy:是否可以暂停Scrapy并在x分钟后恢复?

    我正在尝试抓取一个大型网站 他们有一个速率限制系统 scrapy是否可以在遇到403页面时暂停10分钟 我知道我可以设置一个 DOWNLOAD DELAY 但我注意到我可以通过设置一个小的 DOWNLOAD DELAY 来更快地抓取 然后在
  • Swift,从字符串中获取变量名称

    我有个问题 我知道这可以在 Ruby 中完成 不确定 Swift 是否可以 但从未做过类似的事情 我正在开发的程序的工作原理与此类似 如果用户在 TextView 中写入 a b 我的代码应该详细说明变量 a 和 b 之间的总和值 我的意思
  • 如何在postgres中根据IF条件删除表?

    我试图根据条件在启动时删除表 IF NOT EXISTS select from pg class where relname mytable and relpersistence u DROP TABLE IF EXISTS mytabl
  • 什么时候使用嵌套 Java 类真正有用?

    你能给我一个嵌套java类有用的具体例子吗 我正在研究它 我了解它是如何工作的 但我无法想象真正需要使用它的真实情况 太感谢了 Marco 关于何时使用嵌套类的最简洁的总结是 当该类在逻辑上是外部类 API 的一部分时 或者当它封装特定于外
  • 如何选择 ID 中包含特殊字符的元素?

    我有一个带有网格的页面 其中包含很多如果使用 奇怪的名称 输入来模拟数组
  • 如何知道 Flutter 中的 Nested Widget 内部发生了 pop 事件

    我目前正在构建应用程序 我需要使用嵌套路由来保持一个屏幕相同并在不同的屏幕上进行路由 我想当第二条路线弹出时 以便我可以更改扩展的值以填充整个屏幕 Github 中的要点 这是代码示例 import package flutter mate
  • R:如何从数据框中提取列表?

    考虑这个简单的例子 gt weird df lt data frame col1 c hello world again col weird list list 12 23 list 23 24 NA gt gt weird df A ti
  • 污染玫瑰图网格

    我正在尝试创建一个污染玫瑰图 如链接中所述绘制 Windrose 制作浓度设置为颜色的污染玫瑰 回复中的示例有效 但是当我使用我的数据时 它给出了一个奇怪的图 有什么建议我哪里出错了吗 谢谢 import matplotlib pyplot
  • 使用带有子域的邮递员时出现“无法得到任何响应”响应

    我正在使用邮递员来测试我拥有的 API 当请求不包含子域时一切都很好 但是当我向 URL 添加子域时我收到此响应 无法得到任何回应 连接时出错http 子域名 localhost 端口 api 为什么会发生这种情况 服务器无法发送响应 确保
  • Sql 查询中的新行

    如何在 Sql 查询中获取新行或换行符 Pinal Dave 在他的博客中对此做了很好的解释 http blog sqlauthority com 2009 07 01 sql server difference Between line
  • 删除 Bootstrap 4 行列中的等高

    我目前正在尝试新版本引导程序 当使用更新的网格系统使用此代码分割两列时 JSFiddle div class row div class col lg 4 col md 4 col sm 4 hidden xs down Some cont
  • 如何解决 pmd 违规“NullAssignment”?

    PMD报告NullAssignment以下代码 修复它的最佳实践是什么 将对象分配给 null 是一种代码味道 考虑重构 下面的代码不是我写的 我也有一个疑问为什么要创建一个临时定时器实例 然后将这个实例分配给定时器 startTimer
  • Java找不到main方法

    我在一个简单的 hello world 程序上遇到了麻烦 哈哈 我希望有人能对此有所启发 所以接收错误如下 javac Hello java java Hello Exception in thread main java lang NoS
  • iOS 如何创建倒计时器 [小时,分钟,秒] Swift 4

    我想要创建倒计时时间 但我找不到此类信息如何做到这一点 例如我有200分钟了3 3小时 为了这3 3小时我想要制作倒计时器 我可以在标签上看到这些信息吗 我怎样才能做到这一点 我在论坛上找到了这样的代码 func startTimer le
  • 在使用 NetBeans 进行远程构建期间将 Git 修订版本嵌入到可执行文件中

    我想在构建时将 Git 修订版 SHA1 嵌入到我的可执行文件中 我可以在本地这样做 git log 1 format h gt version objcopy input binary output elf64 x86 64 versio
  • 在 MVC 5 中创建了一个新视图,打开新视图会导致 HTTP 404

    当我打开默认的 MVC 视图 索引和创建 时 它工作正常 我可以添加数据并从数据库获取数据 当我创建新视图时 它不起作用 它得到 Http 404 即使我复制创建视图 只是使用不同的文件名也是如此 错误信息 应用程序中的服务器错误 无法找到
  • IMU速度估计

    你知道我在哪里可以找到根据 IMU acc 陀螺仪 磁力计 数据进行速度估计的代码或示例吗 我根据 IMU 静止的数据计算了偏差 我想用某种滤波器 卡尔曼 互补 来实现速度估计 但我找不到任何滤波器 我还有相机速度估计 也许它可以作为某种融