如何校准 Android 加速度计并降低噪音、消除重力

2023-12-25

所以,我已经在这个问题上挣扎了一段时间,并且没有运气利用互联网的智慧和有关该主题的相关 SO 帖子。

我正在编写一个 Android 应用程序,它使用无处不在的加速度计,但即使在休息时,我似乎也会收到令人难以置信的大量“噪音”,而且似乎不知道如何处理它,因为我的读数需要相对准确的。我认为也许我的手机(HTC Incredible)出现了故障,但传感器似乎与我玩​​过的其他游戏和应用程序配合良好。

我尝试过使用各种“过滤器”,但我似乎无法全神贯注于它们。我知道必须以某种方式处理重力,也许这就是我出错的地方。目前我已经尝试过这个,改编自所以答案 https://stackoverflow.com/questions/1638864/filtering-accelerometer-data-noise,它引用了 iPhone SDK 中的示例:

                accel[0] = event.values[0] * kFilteringFactor + accel[0] * (1.0f - kFilteringFactor);
                accel[1] = event.values[1] * kFilteringFactor + accel[1] * (1.0f - kFilteringFactor);


                double x = event.values[0] - accel[0];
                double y = event.values[1] - accel[1];

海报说“玩弄” kFilteringFactor 值(示例中 kFilteringFactor = 0.1f)直到满意为止。不幸的是,我似乎仍然收到很多噪音,而这一切似乎只是让读数以小数形式出现,这对我没有多大帮助,而且似乎只是降低了传感器的灵敏度。我大脑的数学中心也因多年的忽视而萎缩,所以我不完全理解这个过滤器是如何工作的。

有人可以详细地向我解释如何获得useful从加速度计读取?简洁的教程将是一个令人难以置信的帮助,因为我还没有找到一个真正好的教程(至少针对我的知识水平)。我感到沮丧,因为我觉得所有这些对我来说应该更加明显。任何帮助或指导将不胜感激,当然,如果需要,我可以从我的代码中提供更多示例。

我希望我没有要求太多的勺子喂食;除非我已经尝试了一段时间,否则我不会问。其他 SO 成员似乎也有一些兴趣。


要从加速度计获得正确的读数,您需要使用方程 speed = SQRT(x*x + y*y + z*z)。使用此功能,当手机静止时,速度将是重力速度 - 9.8m/s。因此,如果减去 (SensorManager.GRAVITY_EARTH),那么当手机静止时,您的读数将为 0 m/s。至于噪音,Blrfl 对于廉价加速计的看法可能是正确的,即使我的手机处于静止状态,它也会持续每秒闪烁几分之一米。您可以设置一个小阈值,例如 0.4m/s,如果速度不超过该阈值,则它处于静止状态。

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

如何校准 Android 加速度计并降低噪音、消除重力 的相关文章

  • 在包“android”中找不到属性“backgroundTint”的资源标识符

    我发现了一些视图 xml 属性 例如backgroundTint backgroundTintMode 但是当我使用它作为视图属性定义时 Eclipse 显示错误 No resource identifier found for attri
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 模拟器:不兼容的 HAX 模块版本 3 需要最低版本 4

    问题出在哪里 模拟器 不兼容的 HAX 模块版本 3 需要最低版本 4 模拟器 未找到加速器 模拟器 未能初始化 HAX 参数无效 打开 SDK Manager 并更新 HAXM 工具 gt SDK 管理器 gt SDK 工具 gt Int
  • Paperclip:与邮箱宝石集成

    我在用着邮递员 https github com ging mailboxergem 我不知道如何将它与 Paperclip 消息类 一起使用 将 Paperclip 与 User 类一起使用是 class User lt ActiveRe
  • 找不到模块:无法解析reactjs中'node_modules\react-moment\dist'中的'moment'

    我已经安装了react moment npm i react moment 它安装在node modules目录中 并在package json文件中添加依赖项 每件事都是正确的 但是当我导入时 import Moment from rea
  • 使用 WHERE 子句中的两个字段对 MySQL 中两个表的分数求和

    I have two tables in MySQL I will call them grade7 and grade8 Both tables have all these fields StudentID FirstName Last
  • Pandas 数据框使用列作为行(融化)

    我知道 这个问题已经被问过好几次了 但我没有设法根据已经问过的问题构建我的解决方案 DF 我有 id country series name 2015 2016 2017 0 saudi fertility rate 1 2 2 1 sau
  • 如何在 Android Espresso 测试中捏合和缩放(手势)图像视图? [复制]

    这个问题在这里已经有答案了 我正在研究图像编辑应用程序的自动化 并使用 Android Espresso 作为框架 请指导我如何在 Android Espresso 测试中捏合和缩放 手势 图像视图 Espresso 中没有相应的方法 但您
  • PHP图像替换?

    我现在脑子一片空白 如果有人能和我讨论这个问题并提出建议那就太好了 我正在从数据库导入 URL 例如www mysite com images image1 jpg设置为变量newimage1 这是从数据库加载并放置在页面上的 由于这是一个
  • 具有 REST API 的开源作业调度程序

    是否有任何具有 REST API 的开源作业调度程序可供商业使用 它将支持以下功能 树状作业依赖关系 保持和释放 重新运行失败的步骤 并行性 如有帮助 将不胜感激 注意 我们正在寻找开源替代方案TWS http en wikipedia o
  • 不带扩展名的文件名[重复]

    这个问题在这里已经有答案了 在PHP中是否有任何方法可以获取上传到服务器的不带扩展名的文件名 我用的是 FILES file name 但它也返回扩展名 filename pathinfo FILES file name PATHINFO
  • 惯用的 Golang goroutine

    在 Go 中 如果我们有一个类型 它的方法启动某种循环机制 轮询 A 并永远执行 B 最好将其表达为 Run does stuff you probably want to run this as a goroutine func t Ty
  • 在Python中转换多个属性中的dict属性

    我有一个带有 dict 属性的类 如下所示 class MyClass def init self self mydict var1 value1 var2 value2 当我想获取值时 我必须这样做 cls MyClass print c
  • 反映在 DOM 中的同名表单元素

    如果您有多个具有相同内容的表单元素name在表格中 条目elements表单上的集合最终成为这些字段的集合 这很方便 DOM2 HTML 规范涵盖了elements收藏 http www w3 org TR DOM Level 2 HTML
  • 如何在 Oracle SQL 中检索父行的所有递归子行?

    我有一个递归查询 它确实扩展了这个 Java 猴子的 SQL 知识的极限 现在终于到了凌晨 1 30 可能是时候开始寻求帮助了 这是谷歌为数不多的几次让我失望的事情之一 表格如下 Parent ID CHILD ID QTY 25 26 1
  • 对栅格列表列表执行循环

    需要解决方案 我们将不胜感激 在下面的代码中 我创建了三个栅格 然后我创建一个随机的number该栅格上的点位置 我收到三个矩阵的列表 其中包含这些随机位置的坐标samples 然后 我获取这些位置和样本栅格值以接收samplevalues
  • C# - 在单元测试中断言两个对象相等

    使用 Nunit 或 Microsoft VisualStudio TestTools UnitTesting 现在我的主张失败了 TestMethod public void GivenEmptyBoardExpectEmptyBoard
  • geom_text 未标记躲避的 geom_bar

    我似乎无法让 geom label 来标记躲避条形图CLASS 情节被 躲避 的因素 相反 我得到的是总数count per PROC the Y axis ggplot data df mapping aes x PROC geom ba
  • 我可以使用什么算法来查找图中指定节点类型之间的最短路径?

    这就是问题 我有 n 个点 p1 p2 p3 pn 每个点都可以以确定的成本 x 连接到任何其他点 每个点都属于一组点类型中的一个 例如 A B C D 该方法的输入是我想要遵循的路径 例如 A B C A D B 输出是连接我在输入中给出
  • 为什么在 viewDidAppear 中调用我的 CABasicAnimation 不起作用?

    In viewDidAppear我调用以下代码 MyView myView MyView alloc initWithFrame CGRectMake 100 100 100 100 myView backgroundColor UICol
  • 使用 JavaScript 分割 url

    我正在尝试拆分以下网址 http www store com products aspx Books The happy donkey 为了只得到http www store com products aspx 我正在使用 JavaScri
  • 如何校准 Android 加速度计并降低噪音、消除重力

    所以 我已经在这个问题上挣扎了一段时间 并且没有运气利用互联网的智慧和有关该主题的相关 SO 帖子 我正在编写一个 Android 应用程序 它使用无处不在的加速度计 但即使在休息时 我似乎也会收到令人难以置信的大量 噪音 而且似乎不知道如