草庐IT

android - 指南针给我疯狂的数据,需要校准还是传感器坏了?

coder 2023-11-19 原文

我正在处理安卓传感器数据。我的应用使用

SensorManager.getRotationMatrixFromVector(
            mRotationMatrix , event.values);

直到今天早上它一直运行良好,当旋转矩阵开始发送大量噪声数据时(一秒钟将N更改为W)。

这不是我的代码的问题,因为在星期五工作并且没有进行任何更改。我使用了市场上的指南针应用程序,指南针给出的是随机数据。

我已经在另一台平板电脑上测试了我的应用,它运行良好。

有人知道为什么会这样吗?传感器有问题?需要校准吗?

最佳答案

我已经在手机上使用这些电子罗盘进行了大量工作,很可能您的代码或传感器没有任何问题。

相反,它很可能是您的环境问题。时时刻刻都有磁场在干扰地球的磁场。从电气设备干扰到支撑建筑物的金属结构。归根结底,指南针只是一 block 磁铁。如果您站在一大块金属旁边,指南针会被它吸引并指向它,而不是磁北极。

试试这个: 安装GPS status 然后关闭所有过滤(设置...gps 和传感器...传感器过滤...无过滤)。 进行校准(8 个波浪形状的图形),然后将手机在您的办公 table 周围移动……靠近显示器、电缆等。您会看到它变得疯狂。这些信息是完全不可靠的。我过去发现,将手机向右移动几英寸会完全改变其读数。真正的指南针也会发生同样的情况。严格来说没有“问题”。设备的罗盘正在为自己分配最强的磁场。甚至附近岩石的磁性成分也会干扰罗盘。

作为进一步测试,我刚刚在安装了指南针应用程序的手机上放置了一个真正的(定向)指南针。真正的指南针现在指向所有地方,但没有指向磁北。这两个设备相互干扰。

所以我的建议是.. 去一些空旷的地方,比如公园或田野,远离任何潜在的干扰和电线,(如果你有一个真正的指南针来检查 GPS 状态 应用程序指向正确的方向),并查看您的指南针是否按您预期的方式工作。

额外: @resus 的回答在校准时也很重要。在每个轴上旋转手机几次。看起来很傻,但它确实正确地校准了它。

额外 2: 使用 compass bearing 是否可行/可行?你的全局定位系统?这需要设备在移动(步行速度应该没问题),但您无需担心任何干扰。如果您的 GPS 信号良好,它应该会提供准确的读数。

额外 3: 我刚刚想到另一个想法。您可以尝试对传感器应用低通滤波器。这意味着传感器读数的突然变化被过滤掉了..看看这个answer .如果这样做效果不佳,网络上有很多算法供您选择。

关于android - 指南针给我疯狂的数据,需要校准还是传感器坏了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9462346/

有关android - 指南针给我疯狂的数据,需要校准还是传感器坏了?的更多相关文章

  1. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  2. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  3. Ruby 和指南针路径与 yeoman 项目 - 2

    我安装了ruby​​、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom

  4. Simulink方法总结和避坑指南(一)——Simulink入门与基本调试方法 - 2

    文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景  最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。  在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记

  5. ruby - Ruby gems 的问题(损坏?)试图让指南针在 npm 中工作 - 2

    我不是Ruby专家,但想弄清楚发生了什么,因为我试图让指南针在节点应用程序中工作,但我的Ruby似乎坏了。打字:ruby--version让我:ruby2.1.1p76(2014-02-24revision45161)[x86_64-darwin13.0]我安装了Homebrew,之前遇到过Ruby版本的问题,但它似乎已安装并且可以正常工作。但是,当我使用gem输入请求时,出现此错误:$gem-hErrorloadingRubyGemsplugin"/Users/user_dir/.rvm/gems/ruby-2.1.1@global/gems/executable-hooks-1.3

  6. ruby - 使用指南针安装 bootstrap sass - 2

    我正在尝试安装bootstrap-sass并收到以下错误。我试过旧版本的sass,但bundler一直在安装3.3.0。WARN:UnresolvedspecsduringGem::Specification.reset:sass(~>3.2)WARN:Clearingoutunresolvedspecs.Pleasereportabugifthiscausesproblems./Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.r

  7. JMockit 使用指南 - 2

    目录配置模拟模拟类型与实例期望录制-回放-验证指定调用计数验证指定自定义结果验证调用参数联级模拟部分模拟模拟未实现的类其他伪装伪装方法及类伪装未实现类本文主要内容如何在SpringBoot中配置使用JMockit如何mock/faking依赖的对象如何对行为mock如何VerificationJMockit之所以强大,是因其使用了javaagent对类的字节码做了修改,在JVM的所有mock工具中,它是功能最强大的。同时注解又是最少的。配置在SpringBoot项目中使用JMockit隔离代码做单元测试,需要做以下配置引入JMockit依赖。dependencies>dependency>gr

  8. ruby-on-rails - 是否有针对经验丰富的 Ruby 开发人员的 Rails 指南? - 2

    几年前,我从一些Rails初学者指南开始学习Ruby/Rails。那时我已经学习了Rails的基础知识,例如模型和路由的一些约定优于配置,以及如何使用helpers等。但是,我并没有坚持多久,因为此后不久我发现了Sinatra,并决定我个人更喜欢它。不过,我最终真的爱上了Ruby,从那以后我写了很多Ruby,几乎没有一个是针对任何Rails项目的。然而,事实证明大部分可用的Ruby工作都是针对Rails应用程序的。所以我现在想再尝试一下Rails。现在,该引用资料很棒并且有很多有用的信息,但我只查看了我需要的特定内容的引用资料,而没有记住。但我不太可能在引用资料中看到像script/c

  9. ruby - Nokogiri 说 2.9.0 以上的 Libxml2 版本坏了,是吗? - 2

    安装信息是这样说的,但我找不到任何引用资料。“目前已知会被破坏”,但被谁知道,是问题是什么?我检查了Nokogiri代码库和问题日志,但找不到对此的引用。这是Nokogiri(本例中为v1.6.3.1)给出的(相关部分)消息:IMPORTANT!Nokogiribuildsandusesapackagedversionoflibxml2.Ifthisisaconcernforyouandyouwanttousethesystemlibraryinstead,abortthisinstallationprocessandreinstallnokogiriasfollows:geminst

  10. ruby-on-rails - 我如何解析一个 Excel 文件,它会给我提供与视觉上完全一样的数据? - 2

    我正在使用Rails5(Ruby2.4)。我想阅读.xls文档,我想将数据转换为CSV格式,就像它出现在Excel文件中一样。有人推荐我使用Roo,所以我有book=Roo::Spreadsheet.open(file_location)sheet=book.sheet(0)text=sheet.to_csvarr_of_arrs=CSV.parse(text)但是,返回的内容与我在电子表格中看到的内容不同。例如,电子表格中的一个单元格有16:45.81当我从上面获取CSV数据时,返回的是"0.011641319444444444"如何解析Excel文档并准确获取我所看到的内容?我不在

随机推荐