相关疑难解决方法(0)

从设备的坐标系加速到绝对坐标系

从我的Android设备,我可以读取一系列线性加速度值(在设备的坐标系中)和一组绝对方向值(在地球坐标系中).我需要的是获得后一个坐标系中的线性加速度值.系统.

我该怎么转换它们?

在Ali回复评论后编辑:

好吧,所以如果我理解正确的话,当我测量线性加速度时,手机的位置完全没关系,因为读数是在地球坐标系中给出的.对?

但我刚做了一个测试,我把手机放在不同的位置,并在不同的轴上加速.有3对图片 - 第一部分显示我如何放置设备(对不起我的Paint"掌握技能"),第二部分显示线性acc提供的数据读数.传感器:

  1. 装置放在左侧

第一个位置 初读

  1. 设备躺在背上

第二个位置 二读

  1. 设备站立

在此输入图像描述 在此输入图像描述

现在 - 为什么在第三种情况下,加速沿Z轴(而不是Y)发生,因为设备位置无关紧要?

android vector accelerometer coordinate-systems coordinate-transformation

26
推荐指数
3
解决办法
2万
查看次数

如何获得磁场矢量,与设备旋转无关?

我想要的是一种位置的"磁性指纹".我使用MAGNETIC_FIELD传感器,如果我得到(不幸的是没有进一步说明)X,Y和Z轴的3个值.

问题是,当我旋转设备时值会改变,所以我猜3轴是相对于设备的.什么我需要的是让我得到同样的3个值,而无论该设备是如何旋转补偿装置的旋转.

我试图乘以旋转矩阵(我知道如何得到它),试图乘以倾角矩阵等等,但没有任何效果.无论我尝试什么,旋转设备时值仍会改变.

那么有谁知道如何做对吗?最好使用代码,因为我读了很多像'那么你必须使用旋转矩阵补偿它',但没有找到一个具体的工作实例.

android android-sensors

11
推荐指数
1
解决办法
6825
查看次数

Android上方位角/偏航和滚动的方向传感器值不一致

我无法获得良好的方向传感器读数.传感器读数似乎不可靠,因此我针对两个免费传感器测试应用程序(传感器测试仪(Dicotomica)传感器监测(R软件))测试了我的代码.我发现虽然我的读数经常与传感器测试应用程序一致,但偶尔方位角/偏航和滚动的值差异高达40度,尽管音高读数大多是一致的.两个免费的应用程序似乎总是彼此一致.

我将我的代码放入一个微小的Android活动中,并得到了同样的不一致.代码如下:

public class MainActivity extends Activity implements  SensorEventListener {

    private SensorManager mSensorManager;
    private float[] AccelerometerValues;
    private float[] MagneticFieldValues;
    private float[] RotationMatrix;
    private long nextRefreshTime;           // used to ensure dump to LogCat occurs no more than 4 times a second
    private DecimalFormat df;               // used for dumping sensors to LogCat

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSensorManager = (SensorManager)getSystemService(android.content.Context.SENSOR_SERVICE);
        Sensor SensorAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        mSensorManager.registerListener(this, SensorAccelerometer, SensorManager.SENSOR_DELAY_UI);  
        Sensor SensorMagField = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
        mSensorManager.registerListener(this, SensorMagField, SensorManager.SENSOR_DELAY_UI);
        AccelerometerValues …
Run Code Online (Sandbox Code Playgroud)

android orientation android-sensors sensormanager

5
推荐指数
2
解决办法
9784
查看次数

参考真北计算加速度

对于我的应用程序,我需要计算我的设备参考真北的加速度.我的想法是计算磁北的设备方向并对其应用偏角以使方向为真北.然后我想计算设备的加速度并将其引用到方向,但我不知道应该怎么做.

我会尝试使用SensorManager.getRotationMatrix()和获取设备方向SensorManager.getOrientation().然后我得到了偏角GeomagneticField.getDeclination()并将其应用于方位值的方位角SensorManager.getOrientation().

但是,如何将加速度计值映射到此方向?它甚至可能吗?

android sensor accelerometer orientation

4
推荐指数
1
解决办法
5949
查看次数