【001】IMU相关嵌入式开发与应用项目简介

1 、IMU应用背景

  IMU(InertialMeasurement Unit)即惯性测量单元,能够测量物体三轴加速度及角速度。其一般包含一个三轴的加速度计和一个三轴的陀螺仪,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号,根据测得物体在三维空间中的角速度和加速度解算出物体的姿态。IMU运用广泛,在导航、无人机、VR、机器人以及智能手环等诸多领域都有应用。

(1)IMU在导航中的应用

  导航已经深入我们生活中的方方面面,智能手机以及车载导航是最为常见的两种导航装置。导航设备一般依赖GPS和IMU协同工作以获取更高精度, GPS信息累计误差低,但更新速率较低,遮挡会失效。IMU动态性能好,对外界依赖低,但累积误差大,很好的对GPS信息进行了补充。

【001】IMU相关嵌入式开发与应用项目简介_第1张图片【001】IMU相关嵌入式开发与应用项目简介_第2张图片

图1 IMU在导航中的应用

(2)IMU在无人机中的应用

  为了保持飞行的平稳,我们需要实时获取飞机的飞行姿态,即横滚角、俯仰角以及偏航角。飞行姿态参数即是由IMU的测量数据解算而来。对于IMU测量数据处理方式,会对飞机飞行的平稳性带来很大影响。

【001】IMU相关嵌入式开发与应用项目简介_第3张图片

图2 IMU在飞行器中的应用

  在VR、机器人、智能手环等领域,IMU也同样扮演这提供着姿态数据以及短时位移数据的角色。挑选IMU作为项目的主体,原因如下:

  • 应用场景广泛

  无论是作为研究项目、找工作敲门砖还是作为纯粹的兴趣爱好,IMU都有丰富的应用场景能够满足不同需求。既不过与复杂,也具有较高的研究空间。

  • 包含常用的嵌入式开发模块

  在项目展开的过程中,设计GPIO、UART、IIC、NAVIC等常见MCU模块以及上位机的开发,既保证了常用模块的熟悉,也为这些常见模块的使用提供具体的应用环境,摆脱以往学习单一模块的枯燥。

  • 算法设计上具有高度灵活性。

  IMU相关算法从最简单的直接计算姿态参数,到校正、滤波获取参数,能够满足不同学习者的需求,具有高度的可玩性及研究性。

2 项目简介

  目标

  • 实现通用IMU嵌入式开发平台,可以进行算法有效性及实时性的评估
  • 设计IMU相关算法设计流程,能够根据大多数需求设计出较好的算法

【001】IMU相关嵌入式开发与应用项目简介_第4张图片

图3 项目实施概览

  整个项目实施概览如图3所示。总共有三次大的迭代,第一次迭代实现了整个嵌入式开发框架的建立,在此次迭代中建立的嵌入式开发环境、学习IMU相关接口支持及数据读取、上位机软件编写、IMU算法基础知识。由于第一次迭代意在实现整体大框架,使得整个系统能够运作起来,必然存在不少需要优化的地方。在第二次迭代中,我们将从细节上对整个项目重新进行梳理,对存在问题的地方进行优化。对于IMU相关的算法也将在此次迭代中针对实际的应用场合进行更为细致的讨论和优化。经历第二轮迭代后,整个项目趋于稳定,对于具体技术的使用理解更为透彻,此时我们重新站在宏观角度审视整个项目架构,对架构进行优化。

3 应具备的基础知识

在开始该项目之前,笔者假设读者已掌握C语言基础知识,能够看懂C++程序,且具有基本的数字电路及模拟电路知识。



联系作者

你可能感兴趣的:(嵌入式开发,嵌入式,IMU,性能优化,技术细节,算法)