如何解决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
为了简化,我假设:
- 重力都沿 Z 轴方向,所以我只是忽略 Z 轴的速度值;
- 残余测量噪声可以忽略不计。
此策略适用于姿态值,但至于速度,我在所有三个轴上得到的值都不可靠。 在制定这个策略时,我可能没有考虑到什么?它基本上是求解常微分方程的显式欧拉方法:
y(n+1) = y(n) + dt*f(t-1,y-1)
哪里
f(t-1,y-1) = imu_m1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。