Osa*_*ics 5 python position accelerometer pykalman imu
我计划从包含加速计和陀螺仪的 IMU(惯性传感器)获取 3D 笛卡尔坐标中的位置。我用它来跟踪 3D 对象的位置和轨迹。
1-根据我有限的知识,我假设单独的加速度计就足够了,导致 xyz 轴A (Ax,Ay,Az) 上的加速度,并且需要积分两次才能获得速度,然后获得位置,但积分会增加一个未知的常数值,这种称为漂移的误差随着时间的推移而增加。如何消除这个错误?
2-此外,为什么首先需要陀螺仪,我们不能将 xyz 轴加速度转换为位移吗?如果加速度计告诉运动轴,那么为什么要检查陀螺仪的方向。抱歉,这是一个非常基本的问题,我到处检查都使用了陀螺仪+加速器,但不知道为什么。
3-即使在静止且没有任何运动时,地球引力也会作用在传感器上,其给出的值始终大于传感器运动所产生的值。如何消除重力?
完成此操作后,将对它们应用卡尔曼滤波器以融合它们并平滑值。在无法选择 GPS 的环境中,这种方法对物体轨迹估计的准确度如何。我从arduino获取加速度计和陀螺仪值,然后导入到Python,并将其绘制在实时更新的 3D 图形上。任何帮助将不胜感激,尤其是类似代码的链接。
1 - 可以校准加速度计以解决部分漂移,但最终没有传感器是完美的,不准确将不可避免地导致漂移。为了解决这个问题,您需要一些滤波器(例如卡尔曼滤波器)来使用加速度计来获取短高频数据,以及辅助传感器(例如相机)来定期获取绝对位置并更新内部位置。这是卡尔曼滤波器背后的基本思想。
2 - 加速度计不太适合高频旋转数据。仅使用加速度计数据意味着系统无法区分水平线性加速度和旋转位置。陀螺仪用于高频数据,而加速度计用于低频数据,以调整和抵消旋转漂移。卡尔曼滤波器是解决此问题的一种可能的解决方案,并且有许多优秀的在线资源对此进行了解释。
3 - 您必须使用包括陀螺仪/加速度传感器融合在内的方法来获取传感器的 3d 方向,然后使用矢量数学从该方向中减去 1g。
您最好查看一些在线资源以了解其要点,然后使用预构建的传感器融合系统,无论它是加速度计上的库还是融合系统(在当今的大多数加速度计上,包括 mpu6050)。这些机载系统通常比简单的卡尔曼滤波器做得更好,并且可以结合其他传感器(例如磁力计)以获得更高的精度。