使用加速度计+陀螺仪的小汽车模型位置计算

Posted

技术标签:

【中文标题】使用加速度计+陀螺仪的小汽车模型位置计算【英文标题】:Position calculation of small model of a car using Accelerometer + Gyroscope 【发布时间】:2012-06-20 16:08:15 【问题描述】:

我想计算一辆小型遥控车的位置(相对于起始位置)。汽车在平坦的表面上移动,例如:房间地板。 现在,我正在使用加速度计和陀螺仪。准确地说是这个板 --> http://www.sparkfun.com/products/9623

作为第一步,我只是在 x 和 y 轴上获取加速度计数据(因为汽车在表面上移动),然后对数据进行双重积分以获得位置。我使用的公式是:

vel_new = vel_old + ( acc_old + ( (acc_new - acc_old ) / 2.0 ) ) * SAMPLING_TIME;
pos_new = pos_old + ( vel_old + ( (vel_new - vel_old ) / 2.0 ) ) * SAMPLING_TIME;
vel_old = vel_new;
pos_old = pos_new;
acc_new = measured value from accelerometer

以上公式基于此文档:http://perso-etis.ensea.fr/~pierandr/cours/M1_SIC/AN3397.pdf

但是这会产生可怕的错误。

在阅读了这个论坛上的其他类似问题后,我发现我需要以某种方式使用陀螺仪从上述加速度值(每次来自 acc_new)中减去重力分量。这个想法在谷歌技术讲座视频Sensor Fusion on android Devices: A Revolution in Motion Processing 23:49 中得到了很好的解释。

现在我的问题是如何减去重力分量? 我从陀螺仪获得角速度。如何将其转换为加速度,以便从加速度计的输出中减去它?

【问题讨论】:

哈哈..其实这个项目已经很久了。我们的教授确实坚持认为这种位置计算是可能的,因为其他一些教授告诉他,他的团队已经设法使位置达到 95% 的准确度。但最后我们设法说服我们的教授这是不可能的。在这一切中,我忘记了接受答案。所以迟到总比没有好! 【参考方案1】:

It won't work, 这些传感器不够准确,无法计算位置。

你所指的视频中也解释了原因。

您可以做的最好的事情是根据车轮的 rpm 获得速度。如果您还知道属于速度的航向,则可以对速度进行积分以获得位置。远非完美,但它应该能给你一个合理的位置估计。

我不知道您如何获得汽车的航向,这取决于您拥有的硬件。

【讨论】:

嗨,阿里。由于车轮编码器的空间限制,我们无法实施航位推算(计算车轮的转速)。现在我们也可以忘记标题。让我们假设汽车沿已知方向的直线移动。我只想知道使用加速度计和陀螺仪数据汽车从起始位置移动了多少。我怎样才能最大限度地减少错误? 我再说一遍:它不起作用,这些传感器不够精确,无法计算位置。对不起... :( 嗨。我明白你的意思,阿里。但这是我的项目,我必须尝试。现在我的准确度是这样的:如果我将传感器沿直线移动 40 厘米并且只使用加速度计数据(假设我只是得到线性加速度),如果我重复测试,我会得到完全随机的位置值。例如:测试 1:位置 = 51 cm,测试 2:位置 = 46 cm,测试 3:位置 = 76 cm,测试 4:位置 = 19 cm,测试 5:位置 = 109 cm。我可以使用陀螺仪获得更接近或至少恒定的错误吗?【参考方案2】:

对于这些设备,恐怕阿里的回答是完全正确的。但是,您为什么不尝试搜索 arduino 航位推算,它将涵盖人们尝试类似板的故事?

以下是搜索后出现的链接,我认为可能对您有所帮助:

Converting IMU to INS

即使它们似乎都失败了,您也可能会遇到一些变通方法,这些变通方法会将错误减少到可接受的数量,或者使用其他传感器校准您的算法,使其回到正轨,因为加速度的平方误差以及陀螺仪白噪声破坏精度.

【讨论】:

【参考方案3】:

你有一个巨大的错误的一个原因是方程似乎是错误的。

示例:要获得更新的 vel,请使用.. Velnew=velold+((accelold+accelnew)/2)*sampletime

看起来你在等式中有一个额外的加速项。单独使用它并不能纠正所有错误....需要纠正重力和其他因素的影响。

【讨论】:

以上是关于使用加速度计+陀螺仪的小汽车模型位置计算的主要内容,如果未能解决你的问题,请参考以下文章

V-rep中的加速度计与陀螺仪

使用加速度计陀螺仪和磁电机获取位置的库

使用加速度计和陀螺仪获取手机在太空中的大致位置

硬件架构设计 | 惯性导航系统

使用加速度计和陀螺仪的 6DOF

使用加速度计、陀螺仪和指南针计算设备在 3D 世界中的运动