微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IMU 测量的集成

如何解决IMU 测量的集成

我有一个通过 SPI 接口与 Melopero LSM9DS1 惯性测量单元连接的 RaspBerry PI 4。 RaspBerry 控制两个电机(左/右)的运动,我想获取整合 IMU 测量值的姿态和速度信息。

IMU 驱动程序是一个重复的 python 脚本:

read N IMU samplings
compute the average of accelerometer,gyroscope,magnetometer
send the result with a timestamp to the process which integrates them.

整合策略如下:

imu_m1 = NULL
yaw,pitch,roll = 0,0
vx,vy,vz,= 0,0
while (true)   ​
   ​imu_msg = receive(...)
   ​if (NULL == imu_m1)
      ​imu_m1 = imu_msg
   ​else
      ​dt = imu_msg.timestamp_sec - imu_m1.timestamp_sec
      ​imu_m1 = imu_msg
      ​vx += dt * 
      ​imu_m1.accelerometer_x
      ​vy = //... The same strategy for each value vx,roll,yaw

为了简化,我假设:

  1. 重力都沿 Z 轴方向,所以我只是忽略 Z 轴的速度值;
  2. 残余测量噪声可以忽略不计。

此策略适用于姿态值,但至于速度,我在所有三个轴上得到的值都不可靠。 在制定这个策略时,我可能没有考虑到什么?它基本上是求解常微分方程的显式欧拉方法

​y(n+1) = y(n) + dt*f(t-1,y-1)

哪里

f(t-1,y-1) = imu_m1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。