锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

android – 如何使用罗盘读数和陀螺仪读数获取手机的方位角?

时间:2022-11-16 01:00:00 3d陀螺仪传感器

The orientation sensor actually derives its readings from the real magnetometer and the accelerometer.

我想也许这是混乱的根源.文件中说明了什么?更重要的是,文档是否明确指出陀螺仪读数被忽略?据我所知,视频中描述的方法是实现的:

该方法采用陀螺仪集成读数.这几乎使得剩下的问题成为可能;但我会尽力回答.

方向传感器已经为您集成了陀螺仪读数,这就是您如何获得方向.我不明白你为什么要这样做.

您没有正确地整合陀螺仪读数,比CurrentOrientation = dR(这是不正确的)更复杂.若您需要集成陀螺仪读数(我不明白为什么,SensorManager已经为你做了),请阅读Direction Cosine Matrix IMU: Theory如何正确执行(公式17).

不要试图与欧拉角(也称为方位角、俯仰角、卷轴)集成,没有好的外观.

请使用四元数或旋转矩阵而不是欧拉角.如果使用旋转矩阵,可以随时将其转换为欧拉角,见

(四元数也是如此).(在非分解的情况下)有两种旋转方式,即你将得到两个欧拉角.选择所需范围内的那个. (在gimbal lock在这种情况下,欧拉的角度是无限的,见上面PDF).只是承诺,在旋转矩阵转换到欧拉角后,您的计算将不再使用欧拉角.

目前还不清楚你在用补充过滤器。.您可以基于Direction Cosine Matrix IMU: Theory手稿基本上是一个很好的传感器融合教程.这不是微不足道的,但我不认为你会发现一个比手稿更好、更容易理解的教程.

当我基于这个手稿实现传感器集成时,我必须发现我自己的一件事就是所谓的integral windup可以发生.我通过限制TotalCorrection处理它(第27页).如果你实现了这个传感器的集成,你就会明白我在说什么.

更新:在这里,我回答你在接受答案后在评论中发表的问题.

I think the compass gives me my current orientation by using gravity and magnetic field, right? Is gyroscope used in the compass?

不,陀螺仪不在罗盘中使用.

Could you please kindly explain why the integration done by me is wrong? I understand that if my phone’s pitch points up, euler angle fails. But any other things wrong with my integration?

有两件无关的事:(i)整合应不同,(ii)由于万向节,欧拉角很麻烦.我重申这两者无关紧要。.

集成:这是一个简单的例子,你如何看到你的集成有什么问题?.让x和y是房间水平面的轴.手里拿着电话.将手机围绕x轴(房间)旋转45度,然后围绕y轴(房间)旋转45度.然后,从头开始重复这些步骤,但现在首先围绕y轴旋转,然后绕x轴旋转.手机的方向完全不一样.如果根据CurrentOrientation = dR整合,你会看到没有区别!请阅读上述链接的方向余弦矩阵IMU:如果你想正确整合理论手稿.

从欧拉的角度来看破了应用程序的稳定性,这对我来说不够3D任意旋转.

我仍然不明白为什么你试图自己做,为什么你不想估计平台提供的方向.如果你有机会,你得比那个好.

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章