【问题标题】:Doing sensor fusion in Android NDK在 Android NDK 中做传感器融合
【发布时间】:2014-07-16 02:31:10
【问题描述】:

因此,Android JAVA SDK 提供了进行传感器融合的规定。 它可以结合陀螺仪和加速度计读数来生成可靠的重力矢量。 这在 API 中公开,传感器类型为 TYPE_GRAVITY

现在,NDK 也支持传感器,例如,这里有一个示例 NDK 应用程序,它以 60Hz 读取加速度计:NativeActivity sample source

但是,从sensor.h sourcecode 来看,NDK 只允许我生成以下传感器类型:

  • 加速度计
  • 磁场
  • 陀螺仪
  • 接近度

所以示例代码使用了 ASENSOR_TYPE_ACCELEROMETER。可悲的是,没有 ASENSOR_TYPE_GRAVITY。这仅仅是 NDK 只做 SDK API 的准系统子集的一个案例吗?

如何在 Android NDK 上进行传感器融合?我想避免从 Java 中引入值,因为在 Java 中进行高频读取时,我已经阅读过有关 CPU 使用过多的警告。

谢谢。

【问题讨论】:

    标签: android android-ndk android-sensors sensor-fusion


    【解决方案1】:

    不确定您是否还在寻找这个问题,但我最近遇到了同样的问题,只是想分享一下我是如何解决这个问题的。

    ASENSOR_TYPE_* 被定义为 int,因此将 ASENSOR_TYPE_ACCELEORMETER 替换为 1 仍然可以让您访问加速计传感器以使用其他传感器看看

    http://developer.android.com/reference/android/hardware/Sensor.html

    并找到您要使用的传感器的 int 值,并使用它来代替 ASENSOR_TYPE_ACCELEROMETER。例如,要使用 GYROSCOPE,您可以使用 4。

    或者您也可以使用 #define 定义自己的 int 集

    【讨论】:

      猜你喜欢
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 2011-08-19
      • 2011-05-11
      相关资源
      最近更新 更多