【发布时间】: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% 的准确度。但最后我们设法说服我们的教授这是不可能的。在这一切中,我忘记了接受答案。所以迟到总比没有好!
标签: position accelerometer gyroscope inertial-navigation