转载来源

谈谈对陀螺仪和加速度传感器的感性认识

(2012-02-21 21:47:29)

转载
标签:

it

 

前几天看到官网的新规则 觉得很有意思 看看自己帐号注册2年多了 比赛也做了2届 从论坛上下了大堆资料也没给论坛贡献什么有价值的东西实在惭愧啊 正好自己以前捣鼓过一段时间四轴飞行器 把当时收集的一些资料发上来大家共享下吧 大部分取自网络还有一部分自己的思考重要的地方用红字标明了 来自网络的都用蓝字标明 本人才疏学浅 论坛里藏龙卧虎有不对的还请大家指正新手看看全当一个感性认识。由于时间太长 就不标原文地址了 大家搜搜都能搜到 另外四轴飞控论坛上已经看到有人跑过去要7260 和EN—03的资料了 嘿嘿 数据手册其实很好找的 相关资料也很多的大家多多利用搜索引擎啊

    加速度传感器测的是什么?
      我觉得很多时候大家都被它的名字给误导了我觉得准确的来说它测的不是加速度至少对于mma7260这类的片子 它检测的是它受到的惯性力(包括重力!重力也是惯性力)。那又有人要问了F=ma 惯性力不就是加速度么? 差矣 加速度传感器实际上是用MEMS技术检测惯性力造成的微小形变 注意 检测的是微小形变 所以你把加速度传感器水平静止放在桌子上 它的Z轴输出的是1g的加速度 因为它Z轴方向被重力向下拉出了一个形变可是你绝对不会认为它在以1g的加速度往下落吧你如果让它做自由落体它的Z轴输出应该是0  给个形象的说法可以把它看成是一块弹弹胶它检测的就是自己在三个方向被外力作用造成的形变。从刚才的分析可以发现重力这个东西实际是个很恶心的东西它能隔空打牛,在不产生加速度的情况下对加速度传感器造成形变,在产生加速度的时候不造成形变,而其他力都做不到。可惜的是,加速度传感器不会区分重力加速度与外力加速度。
      所以,当系统在三维空间做变速运动时,它的输出就不正确了 或者说 它的输出不能表明物体的姿态和运动状态举个例子当一个物体在空间做自由落体时 在X轴受到一个外力作用 产生g的加速度 这时候x y z 轴的输出分别是g,0,0  如果这个物体被x轴朝下静止放在水平面上 它x y z轴的输出也分别是 g,0,0 所以说 只靠加速度传感器 来估计自己的姿态 是 很危险而不可取的
     加速度传感器有什么用?
     加速度计,可以测量加速度,包括重力加速度,于是在静止或匀速运动(匀速直线运动)的时候,加速度计仅仅测量的是重力加速度,而重力加速度与刚才所说的R坐标系(绝对坐标系)是固连的,通过这种关系,可以得到加速度计所在平面 与 地面 的角度关系也就是横滚角和俯仰角 计算公示如下 俯仰角 横滚角  
      陀螺仪测的是什么?
     陀螺仪可以测量角速度,具有高动态特性,但是它是一个间接测量器件,它测量的是角度的导数,角速度,显然我们要将角速度对时间积分才能得到角度看到积分 我想敏感的同学马上就能发现一个致命的问题 积分误差
     积分误差的来源 主要有两个 一个是积分时间 积分时间Dt越小,输出角度越准 一个是器件本身的误差 假设陀螺仪固定不动,理想角速度值是0dps(degree persecond),但是有一个偏置0.1dps加在上面,于是测量出来是0.1dps,积分一秒之后,得到的角度是0.1度,1分钟之后是6度,还能忍受,一小时之后是360度,转了一圈所以说 陀螺仪在短时间内有很大的参考价值
    陀螺仪另外一个问题是它的测量基准是自身,并没有系统外的绝对参照物重力轴是个绝好的参照物因此需要陀螺仪和加速度传感器的配合使用 如果要测偏航角YAW还需要电子罗盘感知地磁方向给出水平方向的绝对参考(当然这个在智能车上不存在吧······——!)
    陀螺仪和加速度传感器的融合
    除了给出绝对参考系陀螺仪和加速度传感器相互融合使用的最重要的原因是:
    综合考虑,加速度计是极易受外部干扰的传感器,但是测量值随时间的变化相对较小。陀螺仪可以积分得到角度关系,动态性能好,受外部干扰小,但测量值随时间变化比较大。可以看出,它们优缺点互补,结合起来才能有好的效果
    用通俗点的话来说 就是无论工作多久 加速度传感器如果没收到外部干扰 它测的就一定是准的!陀螺仪虽不会受到外部干扰可是时间长了 由于积分误差累计 它的值就全错了!
    所以两个数据融合的方法就是设计算法在短时间尺度内增加陀螺仪的权值,在更长时间尺度内增加加速度权值,这样系统输出角度就更真实了
再通俗点说 就是 隔一段时间 用加速度传感器的值修正一下陀螺仪的积分误差 然后在隔的这段时间内 用陀螺仪本身的角度积分
    其实MK四轴的平衡算法也是这样,首先对陀螺仪做PI运算,其中I的真正含义就是积分反演角度
有了陀螺仪PI算法,四轴就有了瞬时增稳,就可以遥控飞了,但是它不会永远水平
由于累积误差的作用,很快中立点就不是水平位置了,这时候就需要用加速度不断的纠正陀螺仪积分误差。

你可以看到MK算法中有根据加速度方向不断把积分量I递减清零的代码,就是这个融合算法的核心了
MK立足于一个高级航模玩具,为了在低成本8位单片机上运行,不去显式的计算姿态角,只把校正后的PI值输出负反馈控制电机了

这样的好处是基本上只用整型算法就能完成运算,而要显式的计算姿态角,更专业的做法就是KALMAN滤波显式求解姿态
卡曼滤波也是在对历史数据积分,并且可以同步融合陀螺仪与加速度数据,陀螺仪与加速度贡献权值还可以通过滤波参数调整
所以它就成了惯性数据处理的经典算法,他的缺点是浮点运算量较大,对系统资源要求较高
          
至于具体的KALMAN滤波算法 网上大把大把的 这里就不多赘述了

总结一下就是:
PITCH/ROLL角速度积分->PITCH/ROLL姿态角,再结合加速度纠正累积误差  
发两张四轴论坛上feng_matrix大侠发的两张图
 

最后说一下自己以前在做四轴时碰到的问题
1 数据类型非常重要 很多时候精度误差计算都错在数据类型 小数点上 尤其是AD值(int)往电压值 角度值(float)转换时 一定要注意!
2 一定要注意陀螺仪的积分时间!!一定要注意 搞清楚自己程序里陀螺仪值的积分时间 看清数据手册中的电压值和角速度的关系千万不要搞错仔细仔细再仔细
3 EN-03这个片子我没用过 主要当时考虑性能实在太········但既然组委会规定了 大家就好好适应毕竟都在一个平台上了但是印象中这款片子输出值很小 好像使用上都是借个运放 还有 一定要注意温漂!!陀螺仪上的温漂太可怕了EN-03有没有温度反馈脚记不得了·······如果有 大家一定要用上如果没有想想办法怎么解决温漂吧·····

最后 祝新一届的小弟们能在第七届里取得好成绩!

解决加低通滤波器的陀螺仪的过冲问题?

如下图,外力使陀螺仪板某一轴转动90度后停止,输出波形采样显示有一个反向的,幅度约为正向1/3的“反冲”

这个问题目前试验了两种解决方法:
方法1:去掉4.7u电容与100k电阻组成的滤波器,“反冲”情况改善,但带来一个问题,ENC-03的输出一旦直连运放,温漂就很大
注意,ENC-03直连运放时,运放要选择阻抗较高的场效应管输入类,比如德国人用的TS914或者替代品TLC274,最好不要用LM324

方法2:
增加滤波电路中电容容量,容量越大反冲幅度越小,持续时间更长,经过试验并联一个20u与一个4.7u电容后,波形变成:

贴片大电容可取自废旧硬盘电路板上,硬盘电路为保证可靠性,退耦电容极多
选三个个头最大的贴片就成,但注意不要选电解电容

谈谈对陀螺仪和加速度传感器的感性认识相关推荐

  1. 什么是陀螺仪的dr算法_陀螺仪和加速度计融合论文范文 有关车载GPS/DR组合导航系统的DR算法毕业论文写作资料...

    简介:关于本文可作为加速度计陀螺仪方面的大学硕士与本科毕业论文加速度计陀螺仪论文开题报告范文和职称论文论文写作参考文献下载. 赵艳飞 张树君 (北京交通大学计算机与信息技术学院 北京 100044) ...

  2. [异常解决] MPU6050启动异常读出陀螺仪和加速度计的值全为0的解决办法

    在调试一个自己做的手环,每次用keil烧写好程序运行的蓝牙.陀螺仪都是正常的.但是掉电再上电之后蓝牙是好的.陀螺仪可以读出ID但是读出的加速度和角速度数据全为0. 下面是发生问题时main函数的前面部 ...

  3. android陀螺仪测试工具,修改安卓陀螺仪和加速度计的sensor抽象层HAL

    项目具体需求 硬件平台:全志A31 SOC,512RAM,2G ROM: 软件平台:android 4.4xx 内核版本:linux3.4.xx 1.打开内核选项: Devices Drivers H ...

  4. 能否利用陀螺仪和加速度计,计算位移?

    需求:能否利用陀螺仪和加速度计,计算位移? 先看传感器的用途: 陀螺仪:强项在于测量设备自身的旋转情况,但不能确定设备的方位(对角度旋转,瞬时检测,非常精确) 加速计:测量设备的受力情况(相对外部参考 ...

  5. Android 方向传感器与磁力计和加速度传感器之间的关系

    一般情况下,在android系统中获取手机的方位信息azimuth似乎是很简单的事情,在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaul ...

  6. 一文读懂卡尔曼滤波——卡尔曼滤波融合IMU的陀螺仪和加速度计实践(一)

    卡尔曼的基本原理以及公式网上有很多,可以参照大神博客: https://blog.csdn.net/m0_38089090/article/details/79523784?ops_request_m ...

  7. 浅谈陀螺仪和加速度计的互补滤波

    结合加速度计和陀螺仪的平衡解决方案 首先通过ADC采样,读出陀螺仪和编码器的电压值,并将其转化为可用单位: 1.偏移(offset):让陀螺仪静止,加速度计保持水平并静止,这时候读到电压值,就是偏移值 ...

  8. android使用磁场传感器和加速度传感器确定当前朝向(即:方位角),以及常见问题的解决办法

    原文链接:http://blog.csdn.net/warren288/article/details/43274647 1,功能实现 确定当前设备朝向的方式有两种,一种是是直接使用 方向传感器 Se ...

  9. 陀螺仪和加速度计MPU6050的单位换算方法

    对于四轴的初学者,可能无法理解四轴源代码里面陀螺仪和加速度数据的那些数学转换方法.下面我们来具体描述下这些转换方法. 我们首先来看陀螺仪数据.在MPU6050的手册里面,提供了一个陀螺仪数据表如下: ...

最新文章

  1. 【转】Linux面试题集锦
  2. CentOS 5.3 安装nginx+mysql+php
  3. 80岁COBOL码农:扶我起来,这个bug我会修!
  4. ruby hash方法_Ruby中带有示例的Hash.rassoc(obj)方法
  5. Ubuntu系统显卡驱动、CUDA、CUDNN安装(一显卡驱动)
  6. Python实现SIFT算法,附详细公式推导和代码
  7. bootstrap基础表单样式
  8. 群晖NAS系统DSM入门
  9. linux火狐浏览器插件位置,linux6.5/centos6.5安装mozilla 火狐浏览器flash-plugins插件
  10. win10安装打印机操作无法完成0x0000007e找不到指定模块
  11. 华为交换机 查ip冲突_华为交换机如何查看本交换机IP地址?
  12. Python Day 67 Dango框架图解(总结)、Wsgiref和uwsgi、前后端传输数据的编码格式、From表单和Ajax方式在前端往后端发送文件、补充一下页面清缓存...
  13. 计算机方面的文献在哪里找,最新浅谈计算机参考文献 浅谈计算机专著类参考文献哪里找...
  14. Mac开发-公证流程记录Notarization-附带脚本
  15. java .gml格式_NetworkX之输入文件GML
  16. 珍爱生命,远离泡面!
  17. java简介_day01
  18. 《信号与系统》解读 第3章 强大的傅里叶时域频域分析工具-2:傅里叶分析方法的基本原理与傅里叶分析的9大步骤
  19. MySQL数据库开发
  20. 公务员考试催生一家上市公司,公务员真的是一条好的出路吗

热门文章

  1. 今日总结------技术是最不值钱的
  2. HAUTOJ1062
  3. 控制台报 [WDS] Disconnected!不影响代码运行。
  4. 星星之火-50:无意中发现一种能够把网络视频下载到本地计算机中的方法
  5. 用Python实现表格读写
  6. 漫步数理统计二十五——正态分布
  7. c语言字符数组的实际长度,C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别...
  8. 祝贺 弓叶科技总经理莫卓亚荣获“松山湖奋斗之星”
  9. 微信订阅推送通知实现
  10. 用python画年度和月度的日历图