IMU及磁力计AHRS系统控制(一):传感器物理实现原理

2023-05-16

AHRS系统前言

AHRS是“Attitude and heading reference system”的英文缩写,百度对此的解释是“航姿参考系统”,按笔者比较浅薄的理解就是在计算平台上通过算法处理一套部署在被控对象上的一系列传感器返回的数据,从而得到被控对象实时的物理信息并达到预测和控制被控对象相应物理量的一类系统。这一系列的文章将逐步介绍AHRS系统的传感器和算法,希望笔者本人能在这一领域有所收获,同时还希望能够得到众多网友的指点和批评。
当前笔者所使用以及研究的AHRS系统包含了三类传感器,陀螺仪,加速度计,磁力计。陀螺仪和加速度计往往都集成到一个东西,叫做IMU,及惯性测量单元。

陀螺仪

在惯性导航中的陀螺仪按结构构成大致可以分为三类,机械陀螺仪,光学陀螺仪和微机械陀螺仪。其中MEMS(micro electro mechanical systems)是本文要讨论和研究的重点内容,也是嵌入式系统使用最多的一类陀螺仪。

MEMS(微电子机械系统)

微机械MEMS是英文Micro Electro Mechanical systems的缩写,即微电子机械系统。微电子机械系统(MEMS)技术是建立在微米/纳米技术(micro/nanotechnology)基础上的 21世纪前沿技术,是指对微米/纳米材料进行设计、加工、制造、测量和控制的技术。它可将机械构件、光学系统、驱动部件、电控系统集成为一个整体单元的微型系统。这种微电子机械系统不仅能够采集、处理与发送信息或指令,还能够按照所获取的信息自主地或根据外部的指令采取行动。它用微电子技术和微加工技术(包括硅体微加工、硅表面微加工、LIGA和晶片键合等技术)相结合的制造工艺,制造出各种性能优异、价格低廉、微型化的传感器、执行器、驱动器和微系统。微电子机械系统(MEMS)是近年来发展起来的一种新型多学科交叉的技术,该技术将对未来人类生活产生革命性的影响。它涉及机械、电子、化学、物理、光学、生物、材料等多学科。

以上来自百度百科

MEMS传感器

MEMS传感器是采用微机械加工技术制造的新型传感器, 是MEMS器件的一个重要分支, 按其工作原理, 可分为物理型、化学型和生物型三类,其分类可以按照下图所示:请添加图片描述

MEMS陀螺仪功能原理简介

MEMS陀螺仪由一颗MEMS芯片和一颗ASIC芯片组成,二颗芯片封装一起构成了陀螺仪。它的测量是基于科里奥利力的作用,如图所示:

在MEMS陀螺仪中并不存在传统机械陀螺仪高速旋转的转子,而是一种近似固态的器件。MEMS陀螺仪是通过感应角速度的大小来得到角度的。大部分MEMS陀螺仪对角速度的检测依赖于驱动模态和检测模态间的能量转移,即所谓科里奥利效应。笔者在网上进行了一段时间的查阅,即使是MEMS微陀螺从作用原理上分为四类,微振动陀螺,悬浮转子陀螺,微集成光学式陀螺和微原子陀螺。现在最成熟市场应用最多的就是微振动陀螺,我们在各类论坛和博客上看到的涉及科里奥利力的基本都是微振动陀螺。微振动陀螺又分为两类,分别是框架式振动微陀螺仪和音叉式微陀螺仪,如下图:
在这里插入图片描述
我们可以看到,微振动陀螺仪都是通过对微小的机械元件施加振动,再利用有角速度时施加在微机械单元上的科里奥利力引起在输出轴上的振动,进而引起电容的变化,从而得出当前角速度的值。对角速度求积分,则可以得到陀螺仪在敏感方向上的角度偏移量。所以不同轴数的陀螺仪能够测量更多方向上的角度偏移量,最常用的就是三轴陀螺仪。

我们在选用陀螺仪的时候,精度是最关心的问题。目前不同级别的陀螺的性能指标如下所示:
请添加图片描述
可以知道,市面上的陀螺仪一般都是处于速率级别。

加速度计

关于加速度计的工作原理,国外的一个网站starlino对此有比较精彩的讲解:
A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications
如文中所说,虽然小球模型不是MEMS加速度计的实际样子,但是对于理解工作原理,通过工作原理来理解传感器的信号发生方式是非常简便有效的方式,这里再把这个小球模型的图如下展示:
在这里插入图片描述
和陀螺仪一样,MEMS加速度计也是一种微电子机械系统。加速度计的种类非常多,市面上最常见成熟的,也是大家讨论最多的就是电容式加速度计。
其外观如下图:在这里插入图片描述
加速度计的工作原理图:在这里插入图片描述
在这里插入图片描述
将多个相同的加速度计在不同方向上进行简单的组装,就组成了三轴加速度计,能够同时检测三个方向上的加速度值。
在传感器得到不同的电容量的同时,传感器内部电路能够将电容的变化量反映到输出电压上。
跟陀螺仪相似的是,这两者都需要将电压值转换为具体的数值,这就涉及到ADC转换来完成这部分内容。
关于ADC电压采集可以参考其他资料,在MEMS传感器中,使用公式:
VoltsRx = AdcRx * VREF / 1023
其中VoltsRx是传感器电压值,VREF 是参考电压,AdcRx 是ADC采集到的数据,公式中采用的是十位的ADC采集,所以十位数总的数值是1023。运用此公式就能够得出传感器的原始数据。对于加速度传感器,除参考电压外还有一个零加速度的电压值,这个电压值对应的是加速度为零。
最终,我们得到的加速度的值的计算公式就变成了
Rx=(AdcRx*Vref / 1023 – VzeroG) / Sensitivity
其中Sensitivity是灵敏度,及物理加速度和传感器计算电压的数学换算关系,不同型号的加速度计在数据手册中就会给出。
需要注意的是,一般加速度计测量的是正交三轴坐标系的三个方向的加速度,其中z轴加速度就是重力方向。在横滚角和俯仰角度上由于加速度计长期数值稳定,所以可以利用加速度计来校准陀螺仪的偏航和横滚。但是在偏航角无法用加速度计进行校准。所以这个情况下迫切需要一个更加准确的传感器来校准偏航角,这就是在惯性导航系统中磁力计存在的意义。关于这部分内容在之后更新的博客中会更加详细地讨论。

磁力计

磁力计,又叫磁强计,电子罗盘,其本质是通过物理效应对地球的地磁场进行测量,从未能够得出一个相对地球地面的“绝对”角度。因为磁力计有一个绝对正确的角度,它和加速度计一样可以对陀螺仪的数据进行矫正,特别是偏航角。但是磁力计短时间的响应速度不够快(你可以理解为手里拿着传统罗盘,在旋转的过程中罗盘都有一个回位的过程),所以磁力计的数据用来矫正长期的不稳定数据。
根据文献资料,目前国内市场上销售的磁力计有三种类型,磁通门式,霍尔效应式和磁阻式。由于磁阻式传感器已经能做到硅片上,所以我们常使用的就是磁阻传感器。
那么什么是磁阻效应呢?其实到这里我们可以不用知道具体的实现原理了,毕竟涉及到传感器的知识。但是掌握传感器的物理意义有助于更好地使用和理解磁力计。
简单理解磁阻效应,具有各向异性的磁性材料在受到不同磁场的作用下电阻阻值会发生变化,所以传感器的角度变化会反映到磁场的角度,影响材料的电阻。通常这四个电阻会组成电桥,成功将地磁场信号转化为电信号。这就是磁力计的物理原理。请添加图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IMU及磁力计AHRS系统控制(一):传感器物理实现原理 的相关文章

  • 运行rosdep update报错:ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/

    解决办法 xff1a 点击此处跳转
  • ubuntu编译camera_model报错:fatal error: elfutils/libdw.h: 没有那个文件或目录

    一 报错 二 解决 执行指令 sudo apt span class token operator span get install libdw span class token operator span dev
  • 聊一聊SLAM核心算法之ESKF多传感器融合算法

    作者 应知 编辑 汽车人 原文链接 xff1a https zhuanlan zhihu com p 628074965 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心
  • Ubuntu20.04跑VINS-fusion

    Ubuntu20 04跑VINS Fusion 使用docker 由于工程较大 xff0c 依赖较多 xff0c 环境配置十分繁琐 xff0c 故使用docker环境来运行VINS Fusion Docker 可以让开发者打包他们的应用以及
  • ubuntu20.04跑PL-VINS

    PL VINS源码 xff1a https github com cnqiangfu PL VINS 编译时报错 catkin make Ceres报错 报错信息 CMake Error at usr local lib cmake Cer
  • unubtu20.04环境下inter d435i相机标定遇到的一些问题

    前言 最近拿到深度相机inter d435i 但是在ros开发中遇到了一些问题 这里我就将我遇到的问题跟解决的办法讲一下 我采用的是双系统ubuntu系统环境下开发的 并不是基于虚拟机开发的 先提一下 问题1 select timeout报
  • 页面报错:Invalid prop: custom validator check failed for prop “percentage“.

    问题 xff1a 使用element 组件库的el progress组件 xff0c 页面正常渲染 xff0c 但是控制台有报错 xff1a 出现问题代码如下 xff1a lt el progress percentage 61 34 en
  • 将mysql中的数据导入到hdfs中

    将mysql中的数据导入到hdfs中 mysql中的数据导入到hdfs中 xff0c 需要借助一个工具sqoop完成 xff0c sqoop的安装和简介请点大数据必学框架 sqoop 一 配置sqoop环境 为了能够让sqoop识别到hdf
  • 串口通信——串口接收数据,发送数据

    十六进制 HEX hexadecimal heks des ml 十进制 DEC decimalism 39 desim liz m 二进制 BIN binary ba n ri 八进制 OCT octonary kt n ri 波特率计算
  • 大疆半固态激光雷达Horizon的优缺点

    原文链接 xff1a 大疆激光雷达 xff0c 车厂为何不爱 xff1f 优点 xff1a 1 成本低 xff0c 可以量产 xff1a 2020 年 xff0c 在当年的 CES 展会上 xff0c 大疆 Livox 发布了 Horizo
  • Ubuntu18.04切换Python版本

    转载自 xff1a Ubuntu18 04 切换 Python 版本 前言 Ubuntu18 04 默认安装了两个版本 Python2 7 和 Python3 6 查看可用二进制文件 ls usr bin python 过程 使用 upda
  • 解决ubuntu1604联网以后网页还是打不开的问题

    ubuntu系统连接正常的联网的网线但是网页还是打不开 xff0c 所有联网的软件也打不开 xff0c 在路由器工作正常的情况下 xff0c 可能出现的问题为dns解析异常 xff0c 关于dns解析异常的解决方法 xff1a 这段时间在u
  • 操作系统--线程并发实验三

    操作系统 线程并发实验三 一 实验目的 线程的运行时并发的 xff0c 如果互不相干的线程交替运行不会产生问题 但是如果有共享资源 合作关系的线程之间由于交替运行可能产生问题 xff0c 例如偶尔出现程序的结果不正常 理解临界区的概念 xf
  • 安装OOQP遇到问题

    Ubuntu20 04 安装OOQP遇到问题 OOQP安装 OOQP安装 MA27是OOQP的依赖 在安装MA27时容易出现找不到fortran77等情况 xff0c 在配置这些环境时容易出现其他错误导致系统环境出现问题 选择其他版本的安装
  • 15个好用的百度网盘搜索引擎

    15个好用的百度网盘搜索引擎 前言 分享 15 个好用的百度网盘搜索引擎 xff0c 方便大家搜索百度云网盘分享的资源文件 挑出来这 15 个效果还不错 xff0c 都可以正常使用 挑选标准 xff1a 免费 xff0c 大部分不登录可用
  • 操作系统死锁实验六

    操作系统死锁实验六 一 实验目的 如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件那么该进程集合就是死锁的 产生死锁的必要条件 xff1a 互斥 xff1b 请求资源和保持已获得资源不释放 xff1b 不可抢占
  • 修复 Windows11 打不开 Windows安全中心

    修复 Windows 打不开 Windows安全中心 遇到以上问题我们直接上解决方法 win10的话直接WIN 徽标 43 X键 win11 菜单栏输入 PowerShell 管理员启动 管理员权限打开PowerShell xff0c 依次
  • webstorm/idea 配置less环境

    看了一下发现大多数教程少了最关键的一步 如果这个lessc不能自动识别的话 需要手动寻找lessc cmd的路径 xff0c 可以在终端中通过 where lessc查找 复制lessc cmd位置就可以了
  • 自定义http钩子

    简单创建一个自定义http钩子函数 span class token keyword import span span class token punctuation span useState span class token punct
  • React Redux 工具包 Redux Toolkit 初步学习

    Redux 工具包 xff08 Redux Toolkit xff09 的目标是帮助简化常见的 Redux 用例 它并不是你想要用 Redux 做的所有事情的完整解决方案 xff0c 但它应该使你需要编写的许多与 Redux 相关的代码变得

随机推荐