本章简要介绍加速计(Accelerometer), 陀螺仪(Gyroscop)和地磁(Magnetic Field)传感器校准的基础知识。更复杂更精确的校准需要有专门的算法库来执行,本章不涉及。校准(Calibration)和融合(Fusion)是密不可分的,传感器器件供应商一般会提供一个算法库给手机设备厂商进行集成。

校准是通过计算来补偿由于环境因素和器件自身的因素造成的各种误差,之后得到比较接近于真实测量对象的值的过程。

移动设备坐标系

1. 加速计校准.
加速计传感器可以检测设备在三个轴(x, y, z)上的加速度的值。测量的加速度包含物理加速度(设备本身运动速度的变化)和地球重力加速度(Gravity)。在Android Accelerometer Sensor 里,测量值反映在(x, y, z)三轴的数据上。

  • 设备自由落体时的三轴(x, y, z)标准加速度值都应该接近于0 米每平方秒(m/s^2);
  • 设备正面朝上平放在桌面,然后向右翻转左侧向下下时,x轴上的加速度值应该为正数;
  • 设备正面朝上平放在桌面静止时,z轴的加速度值应该是 +9.81 m/s^2 (=1g), 此时设备本身的运动加速度应该为 0 m/s^2 (减去重力加速度, -9.81 m/s^2);
  • 设备正面朝上平放在桌面,然后向上运动时,z轴的加速度值应该大于+9.81 m/s^2 (> 1g),此时设备本身的运动加速度应该为正数(减去重力加速度后,-9.81 m/s^2);

加速计传感器的校准包含:

  • 温度补偿 (temperature compensation)
    一般来说,温度补偿是调整由于温度变化对系统性能产生的影响进行的补偿。在传感器领域,温度变化对性能的影响是线性的(Temperature coefficient),sensor 厂商会在发布的 datasheet里说明相应的规格参数。温度补偿一般在硬件里完成。

  • 偏差校准 (bias calibration, or offset calibration)
    这里介绍一个简单的 offset 校准方法。以 z 轴为例,设备正面朝上静止放置在水平面上时,z 测量值计为Z_up; 设备正面朝下静止放置在水平面上时, z 测量值计为 Z_dwn; 理想情况下 Z_up = +9.81 m/s^2, Z_dwn = -9.81 m/s^2。当然实际上由于 offset 的存在,Z_up 和 Z_dwn都会有偏差。offset的计算公式就是:

    /* 偏差 = (向上 + 向下)/ 2 */Z_offset = (Z_up + Z_dwn)/2./* 稍微精确一些,例如取100个Z_up, 求均值 Z_up_mean, 取100个 Z_dwn,求均值Z_dwn_mean.*/Z_offset = (Z_up_mean + Z_dwn_mean) / 2

下面列举一个实际的例子,设备朝上和朝下分别取100个数据并分别求平均值,代入上面的公式求出offset。然后验证,用原来的数据减去offset,得出校准后的数据。

这个简单的校准方法,在设备静态时粗略计算offset,校准后的数据比较接近理想值:

  • 尺度校准 (scale calibration)

    加速计传感器是有量程(Range)的,例如±4G, 意思是可以测量到最高4 个G的加速度。因为轴有正负,所以量程也标正负。
    测量到的三轴加速度的原始数据,放在物理寄存器中供外界读取。传感器可以决定用多少个字节表示一个轴的数据,就引入了位宽(bitwidth)的概念,比如用一个 16 比特位宽的有符号值表示x或y或z轴的数据。

/* 有符号的16比特的最大值 */
2^15 = 32768;
/* 最大是4G range, 测得1G时的值 */
32768 / 4 = 8192;
/* 理想情况下的 resolution 或称为灵敏度,即最小可测量到的加速度变化值 */
9.81 / 8192 = 0.0011975 m/s^2 每 LSB;/* 还是以Z轴为例 Z_up 和 Z_dwn 分别代表朝上和朝下时的加速度值,
尺度误差公式 scale = 实际测量范围 / 理想测量范围 */
Z_scale = (Z_up - Z_dwn) / (9.81 * 2);

把 offset 校准和 scale 校准结合起来使用,得到一个加速计的简单校准公式:

/* 校准后数据 Z_calib, 校准前数据 Z_raw, 偏差 Z_offset, 尺度误差 Z_scale */
Z_calib = (Z_raw - Z_offset) / Z_scale; 
  • 低通滤波(Low Pass Filter)
    加速计传感器响应较慢,属于低频信号,适用于描述设备倾角,运动方向和加速度的变化。因此可以用一个低通滤波器,来排除信号突然变化导致测量异常,以获取更精确运动加速度。低通滤波在传感器融合算法用处较大,比如可以跟陀螺仪融合计算出重力加速度(Gravity)和线性加速度(Linear Acceleration),也可以通过补偿陀螺仪计算更精确的旋转矢量(Rotation Vector).

Sensor types

Basic Sensor Calibration (1) -- 加速计传感器校准相关推荐

  1. 棋盘格检测--Automatic camera and range sensor calibration using a single shot

    Automatic camera and range sensor calibration using a single shot Robotics and Automation (ICRA), IE ...

  2. linux加速度传感器校准,加速度传感器校准方法及装置与流程

    本申请涉及传感器校准领域,具体而言,涉及一种加速度传感器校准方法及装置. 背景技术: 在移动终端中,导航软件的使用频率越来越高,比如说百度地图.高德导航等.目前,移动终端通常包含加速度传感器,在导航过 ...

  3. 手眼标定算法---Navy算法(Robot sensor calibration: solving AX=XB on the Euclidean group)

    本文主要介绍Frank C. Park and Bryan J. Martin在文献Robot sensor calibration: solving AX=XB on the Euclidean g ...

  4. PX4:【传感器校准】

    sensor的校准 校准步骤: 文件目录: 代码入口: 求解模型 计算公式 sensor的校准 校准步骤: 首先通过地面站QGC进行校准,QGC将校准参数设置到sh文件中. 此后再基于QGC的校准参数 ...

  5. ATI F/T Gamma sensor( 力和力矩传感器 ) 开箱测评 + 使用说明

    型号和序列号等参数如下: Description: Six-Axis Force/Torque Sensor Manufacturer: ATI Industrial Automation Seria ...

  6. calibration trl 设计_校准:怎样设计和验证TRL校准件以及TRL校准的具体过程

    1.1 TRL标准件的要求 通常来说,TRL标准件的要求如下: (1)   直通标准件 电气长度为0时,无损耗,无反射,传输系数为1:电气长度不为0时,直通标准件的特性阻抗必须和延迟线标准件相同,无须 ...

  7. A Survey of Simultaneous Localization and Mapping

    同时定位与构图(SLAM)的调查 (本文对A Survey of Simultaneous Localization and Mapping 翻译并整理) LIDAR SLAM A. Lidar Se ...

  8. 安卓传感器全解:注册、注销传感器、监听传感器,距离传感器、方向传感器、陀螺仪、加速计、磁场、气压传感器

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓传感器全解:注册.注销传感器.监听传感器.距离传感器.方向传感器.陀螺仪.加速计.磁场.气压传感器. 注册.注销.监听传感器 1.自定义传感器监听 ...

  9. Android Sensor 传感器总结

    ref:https://www.jianshu.com/p/8440a5897944 https://developer.android.google.cn/guide/topics/sensors/ ...

  10. Automatic Extrinsic Calibration for Lidar-Stereo Vehicle Sensor Setups阅读笔记

    Automatic Extrinsic Calibration for Lidar-Stereo Vehicle Sensor Setups paper ros_code 特点: 1.用于低分辨率的传 ...

最新文章

  1. ubuntu12.04没有输入法。。
  2. 从IC设计来看Trace32的用途
  3. POJ 1003 Hangover
  4. ThreadPoolExecutor解析
  5. 高级考题_理论干货最最直观的词云分布,带你一次看清天大考题端倪!
  6. hive之分区表详解
  7. Learn Python 014: Funtions
  8. Android-LayoutInflater
  9. 如何在 macOS Monterey 正式发布之前备份您的 Automator 作品?
  10. POJ 1442 Black Box 优先队列
  11. linux系统安装r语言环境,R语言Linux环境安装说明
  12. 玉品游戏java_整蛊游戏N合一(玉品)
  13. 单位局域网连接的计算机太多,解决交换机端口不匹配导致局域网连接缓慢-ARP经验...
  14. 资源小屋(更新ing.......)
  15. Android代码实现——拨打电话和发送短信APP
  16. SQL---In-Exists-Any
  17. 基于ssm高校科研成果管理系统 java ideamysql
  18. Ubuntu 更改apt 源
  19. play商店 小米_Google Play 商店
  20. C# 中2个问号的作用

热门文章

  1. 第十一周助教心得体会
  2. 大反转!马斯克哭求被裁员工回来
  3. 如何免费将PDF文档压缩到最小?
  4. PR界面基础介绍与应用
  5. mysql (1) 聚集索引和非聚集索引
  6. 合并两个有序表(C语言)
  7. 产品经理必会知识:万字长文 | 史上最全的付费会员体系分析
  8. 学习笔记 Tianmao 篇 自定义 ToolBar
  9. python实现三阶魔方还原
  10. 电商的运营模式流程(最全解析电商运营模式)