如何从陀螺仪和加速度计输入确定位置?


33

我有一个3轴加速度计和2轴陀螺仪。我打算测量仅在X和Z轴上移动的东西。我听说过使用卡尔曼滤波器来平滑加速度矢量,但是对于该主题的完整初学者,我找不到很好的教程。另外,我知道我可以对加速度进行两次积分以获得位置,但是如何使用有限数量的采样加速度矢量来做到这一点呢?对于这两个主题的初学者,我都希望能获得指向不错的教程的链接。


3
听起来有点像我今天早些时候偶然发现的这篇博客文章:starlino.com/imu_kalman_arduino.html 我与该网站没有任何联系,只是认为它与您的要求有关。
JustJeff 2010年

1
本文中提供了一系列有关如何使用和连接加速度传感器的教程。intorobotics.com/...可以在这里找到的教程2个测量
EZU

Answers:



8

好吧,卡尔曼滤波器是一种神奇的魔术。:)

我首先开始使用数字滤波器。对于初学者来说很好的解释了。并且容易不稳定。这些简单的过滤器非常适合任何系统的侧倾和俯仰。只需通过实验来调整准确度与响应率。诀窍是[精度= 1-响应]。

试试看。

然后,要了解有关Kalman滤波器的知识,您必须完成以下步骤:

  1. 可能性
  2. 贝叶斯定律
  3. 然后,将需要学习如何对简单场景进行建模,以将其拟合到卡尔曼滤波器中。
  4. 目前我在这里,所以找到该怎么办..一定会让您知道。

如果遇到任何类似情况,必须与他人分享。


7

...双重积分加速以获得位置

从理论上讲(只要您有完善的传感器和测量值),您可以做到,但实际上却没有。问题在于,当物体静止不动时,加速度计将具有由重力引起的1G恒定力(在自由下落的情况下为零G),但是加速度测量值并非精确地为1.00000000 ... G。移动对象时,您将得到一个矢量,为1G重力和运动加速度(通常小于1G)之和,并且随着时间的推移,您的测量将积累太多的噪声,如果您尝试对测量值进行积分,将很有用加速度减去1G重力。


6

我在大约6个月前开始构建四边形,但在正确确定角度时存在很多问题:)

首先,您应该尝试一下此演示文稿-http: //web.mit.edu/scolton/www/filter.pdf 它确实很全面,可以帮助您更好地了解自己真正想要的东西,这几乎可以解决问题为了我。

我想这完全取决于您,但是,实现卡尔曼滤波器并不需要在数学,系统理论以及本例中的物理知识上扎实的专业知识,但是对CPU负载的要求也很高。如果您打算使用,假设时钟频率为16Mhz的Atmega328,使用这种滤波器可能会遇到问题。如果您使用DSP,则非常有效,因此您可以对acc输入进行低通滤波。

总而言之,我的建议是-如果您对结果不满意,请尝试使用一阶互补滤波器甚至二阶互补滤波器。如果您的系统没有高频振动,那应该会起作用。JustJeff的链接是您开始实施时的理想起点:)

祝一切顺利Dan


您的链接已死。我进行了一些研究,然后再次找到该文档:googledrive.com/host/0B0ZbiLZrqVa6Y2d3UjFVWDhNZms/filter.pdf至少应该是相同的,也许您想仔细检查一下。
约翰

是的,这是完全一样的:)
2014年

链接又死了:(
KyranF

@KyranF认为我又发现了它:) portal.ts-muenchen.de/Dateien/filter.pdf
丹,

@Dan不错,这实际上是我在uni中制作迷你segway时用于设计固件的文件。youtu.be/zOFlJJjj8pPA
KyranF

1

我还是新手,也正在寻找导航解决方案。和您一样,我有一块配置了3轴加速度计和2D陀螺仪的电路板。到目前为止,我已经阅读了许多有关此内容的材料,同样,我决定在信号处理中采用卡尔曼滤波器。可能是我对您没有任何建议,但我想与您分享我以前见过的东西。有一些指向它们的链接,希望对您有用。

  1. 卡尔曼滤波器介绍
  2. CAS机器人导航工具箱
  3. 开源惯性导航工具箱
  4. 有关导航的项目的源代码

由于我的声誉,我仅有权发布少于2个链接。所以我要发布的其他两个如下:


1
尽管这对于OP可能是有用的一组链接,但是如果您还从这些链接中添加了有关OP所发布问题的相关内容的摘要,那么此帖子将很有价值。请记住,当链接最终由于链接腐烂而变得无效时,此帖子将不保留任何价值。谢谢。
Anindo Ghosh 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.