TL; DR为什么我从Sensor.TYPE_ACCELEROMETER获得的加速度计值略微偏移?我不是指重力,而是一些因轴到轴和手机到手机不同的小错误 . 我可以校准加速度计吗?或者是否有一种补偿这些错误的标准方法?

我正在开发一种应用程序,它需要尽可能精确的加速度测量(主要是垂直加速度,即与重力方向相同) .

我一直在进行大量的测试,事实证明我从 Sensor.TYPE_ACCELEROMETER 得到的原始值是关闭的 . 如果我让手机在屏幕上方处于完全水平的表面,则加速度计显示的Z值为9.0,应该约为9.81 . 同样,如果我将手机设置为纵向或横向模式,则X和Y加速度计值显示大约9.6 . 而不是9.81 .

这当然影响我的垂直加速度,因为我正在使用 SensorManager.getRotationMatrixFromVector() 来计算垂直加速度,导致垂直加速度根据设备的旋转而偏离不同的量 .

现在,在任何人跳枪并提到我应该尝试使用 Sensor.TYPE_LINEAR_ACCELERATION 之前,我必须指出我实际上也是这样做的,与 TYPE_ACCELERATION 平行 . 通过使用重力传感器I然后计算垂直加速度(as described in this answer) . 有趣的是,我得到的结果与使用原始加速度计, SensorManager.getRotationMatrixFromVector() 和矩阵乘法(最后减去重力)的方法完全相同 .

在任何旋转中,我能够为固定电话获得几乎完全零垂直加速度的唯一方法是获取原始加速度计值,添加偏移量(从之前的观察结果,即 X+0.21 , Y+0.21 和 Z+0.81 ),然后执行旋转矩阵获得世界坐标系加速度的东西 . 请注意,因为's not just the calculated vertical acceleration that is wrong - it' s实际上来自 Sensor.TYPE_ACCELEROMETER 的原始值,我认为它会排除陀螺仪传感器等其他误差来源?

我已经在两款不同的手机(三星Galaxy S5和索尼Xperia Z3紧凑型)上进行了测试,两者都有这些加速度计的 Value 偏差 - 但两款手机的 Value 当然不一样 .

为什么 Sensor.TYPE_ACCELEROMETER 的值是关闭的,加速度计是否有一个更好的方法,而不是简单地观察它们偏离重力的程度,并在使用之前将差值加到值上?

android 加速度计,Android加速度计校准?相关推荐

  1. ardupilot 加速度计六面校准

    目录 文章目录 目录 摘要 1.地面站如何触发加速度校准 2.校准所用到的核心算法: 3.接受校准结果 摘要 本节主要梳理ardupilot的加速度计六面校准,重点理清楚: 1.地面站如何触发加速度校 ...

  2. android之android.intent.category.DEFAULT的用途和使用

    1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...

  3. android:layout_with=,android – 难以理解layout_alignWithParentIfMissing

    这仅适用于使用RelativeLayout时. 如果您将元素设置为一个其他元素,则表示该元素位于该元素的左侧. 但是如果这个元素会丢失,因为你删除它,例如它将与父对齐. 举个例子 android:la ...

  4. [Android Studio] Android Studio常用快捷键

    [Android Studio] Android Studio常用快捷键 (会持续更新)这边讲的常用快捷键是指做完Keymap到Eclipse后的,不是纯Android Studio的,这边主要讲下比 ...

  5. Android利用android:indeterminateDrawable来实现ProgressBar三种方式

    方式1:(效果为补间动画一样) [html] view plaincopyprint? <ProgressBar android:layout_width="wrap_content& ...

  6. Android之Android实现浮层的上下滑动(支持内部添加View)

    前言 我K,今天居然是情人节,对于资深的单身狗来说,简直是个噩耗,今天注定是各种秀恩爱,心塞中.... 话题到此结束,管他什么情人节,今天给大家带来的是一个浮层的上下滑动,浮层滑动时分三种状态:全部显 ...

  7. Android 解决Android的TextView和EditText换行问题

    Android 解决Android的TextView和EditText换行问题 参考文章: (1)Android 解决Android的TextView和EditText换行问题 (2)https:// ...

  8. Xamarin Android教程Android基本知识版本介绍与系统介绍

    Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...

  9. 【Android】Android 设置Activity窗体 不显示标题和全屏显示

    [一]Android 设置Activity窗体 不显示标题 android:theme="@android:style/Theme.NoTitleBar" 1 <activi ...

  10. [Android]《Android艺术开发探索》第一章读书笔记

    1. 典型情况下生命周期分析 (1)一般情况下,当当前Activity从不可见重新变为可见状态时,onRestart方法就会被调用. (2)当用户打开新的Activity或者切换到桌面的时候,回调如下 ...

最新文章

  1. 【剑指offer】面试题 5. 替换空格
  2. 根据经纬度计算范围_遗传算法可视化项目(插曲):关于距离的计算
  3. 微博 用户画像_微博/抖音/快手/小红书/B站内容营销和粉丝画像研究
  4. java的构造特点_JAVA学习第八课(构造函数及其特点)
  5. 加餐:Redis 的可视化管理工具
  6. Flutter进阶—解析动画
  7. Q96:过程纹理(Procedural Texture)(0)——概述
  8. CCIE学习(18)——HSRP、VRRP和GLBP
  9. Java-控制台打印万年历代码
  10. 教你在电脑中学会视频格式批量转换
  11. TensorFlow中的Shape如何理解
  12. 百度开源地图服务器搭建
  13. css实现渐变色遮罩层(模糊毛边)
  14. 治愈系好声线:唱见散搭
  15. 完美解决各种spring项目报错问题
  16. idea使用小技巧(一)
  17. Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook解决方法
  18. “名师带教,共同成长“渭南市马红“名师+”研修共同体2022年工作计划
  19. Android 直播 播放器 IJK播放器低延时120ms
  20. WMS仓储管理系统解决方案能帮助电子企业解决哪些问题

热门文章

  1. 一个屌丝程序猿的人生(五十三)
  2. 大数据开发(牛客)面试被问频率最高的几道面试题
  3. 计算机考研公共课考英语几,新文道教育:2022考研必须要了解的30个知识点
  4. 三国群英传霸业之王服务器维护,《三国群英传:霸王之业》8月27日维护更新公告...
  5. Photoshop使用技巧
  6. 利用python实现简单的人工神经网络识别手写数字
  7. 华为设备三层交换机与路由器对接上网
  8. Win10开机登陆后黑屏,只有鼠标
  9. VS x86 x64 anycpu 编译运行对照表
  10. 基于python的数据爬虫学习与体会