您的位置:首页 > 编程语言

ADIS16465姿态解算+卡尔曼滤波代码

2020-04-07 12:25 1476 查看

工程介绍

工程使用stm32f407开发,imu单元为ADIS16465-1 BMLZ,通过spi通信读取imu的输出寄存器,对读取到的三轴加速度值和三轴陀螺仪值利用四元数进行姿态解算,最后得到pitch和roll。由于只通过六轴传感器无法得到yaw,工程中只是对陀螺仪输出的角速度进行了简单的积分,误差较大。

学习资料

四元数原理参考网上:https://blog.csdn.net/guanjianhe/article/details/95608801,把博主的这篇文章从上到下推导一遍基本就明白了。

工程中还有卡尔曼滤波的代码,但是在姿态解算中并未用到,有需要的可以自己学习一下。

加速度计、陀螺仪原理以及卡尔曼滤波原理参考:https://www.arduino.cn/thread-18392-1-1.html

代码下载

网盘下载链接:https://pan.baidu.com/s/14ekDutUUJU_7skPqi0qe-Q
提取码:h2dd

github: link.

有关四元数、ADIS16465、陀螺仪加速度计、卡尔曼滤波原理的文档,我整合了一些,放在另一个repository:ADIS16465-version1

博文链接: link.

代码移植的时候可能会有bug,只能满足基本需要,仅供参考,敬请原谅。

结果

ADIS16465图片

IMU静止时输出

绕x轴旋转输出

绕y轴旋转输出

绕z轴旋转输出

转载请说明出处哦~希望对你有帮助!

  • 点赞
  • 收藏
  • 分享
  • 文章举报
凳子花❀ 发布了13 篇原创文章 · 获赞 4 · 访问量 561 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: