外观
踩坑Robotics Stack Exchange2015-12-18
MPU9150 双重积分位移漂移且速度不归零
本文由 AI 根据公开内容整理,可能有误,请以原文为准:calculating position based on accelerometer data(Robotics Stack Exchange #8680)
状态:已解决
问题
MPU 9150 静止时加速度接近零,但移动再放回后积分得到的速度不回到零,位置尤其 Z 方向持续缓慢变化,多次移动后 vx、vy、vz 漂移增大。
环境
Linux / ROS 机器人软件与控制通用开发环境
解决办法
- 数值积分应使用公式
integrated value += derivative * elapsed time,把代码中的speed改为真实经过时间elapsed time/dT。 - 建议把积分放在定时中断中,用中断周期作为
dT,保证积分时间一致。 - 不要像加速度或速度那样直接对四元数做普通数值积分;应由陀螺仪角速度和当前四元数计算
qdot,再用q_k = q_{k-1} + qdot_k * dT更新。
原问题作者:maximus;采纳答案作者:Chuck。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。