集成陀螺仪和加速度计读数[重复]

2024-01-29

可能的重复:
结合陀螺仪和加速度计数据 https://stackoverflow.com/questions/1586658/combine-gyroscope-and-accelerometer-data

我读过很多关于Kalman filters,但似乎很少有好的公开可用的从数学论文到实际工作代码的示例。

我有一个系统,包含一个三轴加速计和一个测量围绕加速计轴之一的旋转的陀螺仪。该系统设计为由人手持,并且大部分时间陀螺仪将测量围绕重力矢量或接近重力矢量的旋转。 (在同一行业工作的人可能会从中认识到我在说什么;))我意识到这是有限的。

陀螺仪似乎具有近乎恒定的偏差,该偏差对于系统的每个实例都略有不同。当系统倾斜以使陀螺仪轴与重力不共线并且绕陀螺仪轴旋转时,我将如何编写一个滤波器以使用加速度计读数来校准陀螺仪?似乎应该有足够的信息来做到这一点,但被告知没有以及为什么也会有答案:)


您似乎在这里有两个(或三个)单独的问题。

1. 您并不真正了解卡尔曼滤波器和/或其背后的数学原理。这将使正确实施和使用变得非常困难。

2.你似乎不理解这个问题所涉及的基本物理原理。 (基础物理意味着基础物理,而不是简单物理,因为它并不简单。)

我建议您尝试使用更简单的积分器,例如 Runga-Kutta 4,您可以找到许多书籍,其中包含实现和使用的示例。对于这个问题应该足够了。 (如果客户指定卡尔曼,请询问原因。)

至于为什么问题受到限制,在我看来,它无法确保设备保持垂直,也无法测量实际方向。暂时忘记陀螺仪并假设设备不能绕垂直轴旋转。您有三个加速度计,大概是为了估计 3D 位置。因此,如果您看到 X 方向上有加速度,您就会增加对您在 X 方向上的位置的估计。同样,如果您看到 Z 方向上的加速度(我假设是“向上”),您就会增加对 Z 方向上的位置的估计。现在稍微旋转设备,例如绕 Y 轴旋转 30 度。现在,当设备认为您正在沿 X 方向加速时,设备实际上的加速速度比 X 方向指示的要小一些and它也在 Z 方向加速。所以你的位置估计现在不正确。

旋转更难积分(方程更“僵化”,需要更小的时间步长来保持精度)。但如果设备倾斜(因为设备无法判断它是否倾斜),它们也会遇到类似的计算错误答案的问题。它会认为绕垂直轴的旋转比实际更大或更小,因为旋转的一部分实际上是绕不同的轴(就像加速部分的一部分沿着不同的轴一样)。

也许您需要聘请一名顾问(不,我不是在找工作)来帮助您制定数学公式。

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

集成陀螺仪和加速度计读数[重复] 的相关文章

  • 计算两幅图像之间的模糊内核

    与标准 且更具挑战性 去模糊和超分辨率场景不同 我可以访问原始 清晰 图像G而且是模糊版本B 我只是在寻找模糊内核h 所以因为B使用真实相机拍摄 关系为 B G h N 在哪里 表示卷积和N是一些附加噪声 自然 这是一个过度约束的问题 因为
  • 帮助重新采样/上采样

    我有一个包含 240 个数据点的数组 采样频率为 600hz 代表 400ms 我需要将此数据重新采样为以 1024hz 采样的 512 个数据点 代表 500ms 我假设因为我从 400 毫秒的数据开始 所以最后 100 毫秒只需要用 0
  • C# 中快速傅立叶变换 (FFT) 的实现 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在哪里可以找到免费 非常快速且可靠的 C 中的 FFT 实现 可以用在产品中吗 或者有什么限制吗 做 A
  • 生成16 QAM信号

    我知道使用以下方法生成 QPSK 信号的方法 TxS round rand 1 N 2 1 QPSK symbols are transmitted symbols TxS TxS sqrt 1 round rand 1 N 2 1 上面的
  • C++ 中的音频操作

    我希望这是发布此内容的正确位置 并且有人可以提供帮助 我是一名音乐技术学生 最近开始学习 C 因为了解一门编程语言对我的职业生涯有很大帮助 尤其是这种语言 因为它用于视频游戏行业 无论如何 进入主题 我想要创建一个程序 用 C 编写 让用户
  • MATLAB 中的反向谱图 A La Aphex Twin

    我正在尝试将图像视为频谱图 从而在 MATLAB 中将图像转换为音频信号就像 Aphex Twin 的歌曲中那样舔窗者 http www bastwood com aphex php 不幸的是 我很难得到结果 这是我现在所拥有的 funct
  • 识别常见的周期波形(方波、正弦波、锯齿波……)

    如果没有任何用户交互 程序如何识别 ADC 记录中存在什么类型的波形 对于这个问题 恒定频率的三角波 方波 正弦波 半正弦波或锯齿波 电平和频率是任意的 并且它们会有噪声 少量失真和其他缺陷 我也会提出一些 天真的 想法 你可以投票赞成或反
  • 使用 fft 和 ifft 更改频率而不使用整数

    我知道我可以通过改变变量来改变整数频率shift但我怎样才能改变频率使用带小数位的数字 例如 754 或 1 2345 or 67 456 如果我改变变量 shift 到一个非整数类似的数字5 1 我收到错误下标索引必须是小于 2 31 的
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • 20hz-20000hz 巴特沃斯滤波爆炸

    我想过滤掉 20 Hz 20000 Hz 之外的所有内容 我正在使用巴特沃斯滤波器 from scipy io import wavfile from scipy import signal import numpy sr x wavfil
  • 如何在 python 中使用可变宽度高斯函数执行卷积?

    我需要使用高斯执行卷积 但是高斯的宽度需要改变 我不进行传统的信号处理 而是需要根据设备的分辨率获取完美的概率密度函数 PDF 并 涂抹 它 例如 假设我的 PDF 一开始是尖峰 增量函数 我将其建模为非常窄的高斯 经过我的设备运行后 它将
  • 从非周期性离散时间信号中删除未知的直流偏移

    是否有某种过程可以确定 消除非周期性离散时间信号中的未知直流偏移 相关信号的采样率为 25Hz 感兴趣的谐波在 0 25 至 3 Hz 之间 我尝试过使用高通滤波器混合结果 首先我使用了 Fc 0Hz 的 10 阶高斯 这在消除偏移方面做得
  • 用于 RSSI 距离近似的卡尔曼滤波器

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

    我终于解决了我的问题here https stackoverflow com questions 20777252 to apply window function on wigner ville distribution in matla
  • 如何使用卡尔曼滤波器预测测量之间的 GPS 位置

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

    scipy 或其他流行的库 中是否内置了基于 FFT 的 2D 互相关或卷积函数 有这样的函数 scipy signal correlate2d 直接方法由convolveND将 对于大数据来说很慢 scipy ndimage correl
  • iOS - 加速度计的高通滤波器方程

    有人可以解释一下如何得出下面的方程来对加速度计值进行高通滤波吗 我不需要数学推导 只需要直观的解释就足够了 define kFilteringFactor 0 1 UIAccelerationValue rollingX rollingY
  • 在 MATLAB 中调整 3D 矩阵(图像)的大小

    我有一个 3D 矩阵 MxNxK 想将其大小调整为 M xN xK 就像 matlab 中的 imresize 一样 我正在使用图像金字塔 但其结果不是很准确 需要一个更好的 有什么解决办法吗 你可以使用interp3 因为您想要插入 3D
  • 如何使用Matlab提高PSD的分辨率

    我有音频信号 我用 Matlab 读取该信号 并使用 pwelch 获取其 PSD 这是我正在使用的代码 x Fs audioread audioFile wav x x 1 mono xPSD f pwelch x hamming 512
  • 从图像坐标获取对象的世界坐标

    I have been following this http docs opencv org modules calib3d doc camera calibration and 3d reconstruction html docume

随机推荐

  • Caffe的train.prototxt中平均值的顺序是什么?

    在我的咖啡馆里 train prototxt 我正在做一些输入数据转换 如下所示 transform param mirror true crop size 321 mean value 104 Red mean value 116 Blu
  • 获取声明为动态的对象的类型

    我想获取动态对象的类型 例如 dynamic tmp Activator CreateInstance assembly nmspace typeName Type unknown tmp GetType 除了上面之外 GetType 返回
  • WPF ClickOnce 错过参考

    我有一个可与本地 SQLite 和 Entity Framework Core 配合使用的 WPF 应用程序 我想使用 ClickOnce 分发我的应用程序 当我使用 Visual Studio 2017 运行它时 一切正常 但是当我使用
  • Python 检查类的实例

    有没有办法检查对象是否是类的实例 不是具体类的实例 而是任何类的实例 我可以检查一个对象不是一个类 不是一个模块 不是一个回溯等 但我对一个简单的解决方案感兴趣 isinstance 是你的朋友吗 它返回一个布尔值 可以通过以下方式使用来检
  • 用于大型密集矩阵乘法的循环平铺/分块

    我想知道是否有人可以向我展示如何有效地使用循环平铺 循环阻塞进行大型密集矩阵乘法 我在做C AB具有 1000x1000 矩阵 我按照维基百科上的循环平铺示例进行操作 但使用平铺得到的结果比不使用平铺的结果更差 http en wikipe
  • 如何让 CakePdf 在 CakePHP 3.x 中工作?

    我已经安装了CakePdf https github com FriendsOfCake CakePdf插件放在 app plugins 文件夹中并遵循所有可能的文档 因此我的设置如下 config bootstrap php Plugin
  • 在 Octave 中创建具有多个绘图的动画

    我正在使用 Octave 编写一个脚本来绘制不同时间段的函数 我希望制作一个情节动画 以便看到随时间的变化 有没有办法保存每个时间点的每个图 以便可以组合所有图来创建此动画 这有点混乱 但您可以执行以下操作 此处适用于 Octave 4 0
  • 将条形码添加到 Report Builder 3.0

    我正在尝试在我的 RDL 报告中嵌入条形码 该报告由Microsoft SQL Server 报表生成器 3 0 我在互联网上找到了几个建议的解决方案 其中之一是添加DLL参考并添加一些代码 但它不起作用 并且总是无法加载DLL 我通过使用
  • 如何从一个视图控制器弹出到另一个视图控制器

    使用 iOS 我现在有 15 个 ViewController 我想从一个 ViewController 弹出到另一个 ViewController 我正在使用这段代码 SecondViewController Sec SecondView
  • Java 在向上转换时如何处理字段? [复制]

    这个问题在这里已经有答案了 可能的重复 阴影的概念 https stackoverflow com questions 3300805 the concept of shadowing 我对 Java 在向上转换期间如何处理类的字段感到困惑
  • ReactiveCommand 完成时的通知

    我正在尝试使用 ReactiveUI ReactiveCommands 来打开和关闭已转换为可观察对象的 gRPC 流 下面显示的代码在某种程度上有效 连接按钮将导致流连接 并且我开始在订阅的 onNext 处理程序中接收数据 断开连接按钮
  • 如何在 Perl 中指定包版本?

    我对 5 10 0 之前的文档和更新的文档之间的冲突建议感到有点困惑version http search cpan org dist version模块 Perl 最佳实践 http oreilly com catalog 9780596
  • 如何获得多维数组中的唯一值

    我在溢出和谷歌上做了很多查找 但没有一个结果适合我的具体情况 我有一个名为 holder 的占位符数组 值如下 Array 0 gt Array id gt 1 pid gt 121 uuid gt 1 1 gt Array id gt 2
  • ui:repeat 内的 selectManyCheckbox 集合知道它属于转发器的哪个元素

    我正在使用 JSF 2 开发一个 Web 应用程序 我的网络应用程序除其他外还包含一系列问题 一次提出一个问题 因此一次可以看到一个问题 并且有多个答案 我使用 h selectManyCheckbox 我将问题和可能的答案存储在 Arra
  • 如何使 Bootstrap 4 卡组每行宽度相同?

    我使用卡片组每行显示 4 张卡片 div class row div class card deck div class card img class card img top img adjusted div class card bod
  • 使用 Powershell 的 .csproj 文件中特定节点中的节点列表

    我想寻求一些帮助 因为我完全迷失了 我想检查 csproj 文件特定部分中的节点是否包含正确的数据 在下面的 xml 片段中 我想取回 PropertyGroup 下属于 Debug x64 配置文件的 title 的值 csproj 文件
  • 在 zsh 中安装 npm 后找不到命令

    我在安装时遇到一些问题vows http vowsjs org通过 zsh 中的 npm 这是我得到的 我尝试使用和不使用 g 选项安装它 你知道这里出了什么问题吗 Desktop sauce node demo master npm in
  • 如何显示合并提交中所做更改的差异?

    当我编写一堆代码时 我没有意识到我正处于合并过程中 现在git log p不会向我显示此更改的差异 它作为合并提交自动提交 我怎样才能让它显示在我的日志差异历史记录中 有点令人失望的是 Git 没有向您显示用于合并的补丁 p 部分原因是由
  • 如何正确更改 Microsoft Azure 中的 SSH 端口?

    我有一个基于 Ubuntu 14 04 LTS 的虚拟机 用于测试 而不是生产服务器 Azure 上默认打开默认 SSH 端口 22 我想将其更改为 12131 我编辑了 SSH 配置文件并将端口更改为 12131 然后通过以下方式重新加载
  • 集成陀螺仪和加速度计读数[重复]

    这个问题在这里已经有答案了 可能的重复 结合陀螺仪和加速度计数据 https stackoverflow com questions 1586658 combine gyroscope and accelerometer data 我读过很