android度量相對於地球座標系的加速度

來源:互聯網
上載者:User

1.android測量資料

(1)android裝置座標系

 

   x<0         x>0
                ^
                |
    +-----------+-->  y>0
    |           |
    |           |
    |           |
    |           |   / z<0
    |           |  /
    |           | /
    O-----------+/
    |[]  [ ]  []/
    +----------/+     y<0
              /
             /
           |/ z>0 (toward the sky)

    O: Origin (x=0,y=0,z=0)
按照所示,將手機平放在案頭上來看,手機的左下角是座標原點,水平向右為x軸,水平向前為y軸,由x軸和y軸正方向叉乘形成的方向
為z軸,當手機平放時,z軸指向天空的方向。

 

(2)方向感應器

android的方向感應器可以擷取3個資料。

orientation0:y軸在水平面上的投影偏離正北方向的角度,範圍0~359度,正北為0,正東為90,正南為180,正西270。

orientation1:y軸和y軸在水平面上投影之間的角度,即y軸與水平面的夾角。

 

orientation2:x軸和x軸在水平面上投影之間的角度,即x軸與水平面的夾角。

 

 

(3)加速度感應器

android的加速度感應器可以擷取3個資料。

accelerometerX:x軸方向的加速度-重力加速度在x軸上的分量。

 

accelerometerY:y軸方向的加速度-重力加速度在y軸上的分量。

 

accelerometerZ:z軸方向的加速度-重力加速度在z軸上的分量。

 

根據上述的兩個感應器,能夠測量出手機x,y,z軸相對於地面參照系的方向和手機相對於手機參照系的加速度。

因為我們項目的需要,要度量出手機相對於地面參照系的加速度,所以需要進行一些計算。

 

2.相對於地面參照系的加速度的計算

思路:將相對於手機座標系的3個加速度相對於地面參照系的3個方向分解,再將分解後的加速度分量根據地面參照系的3個方向進行相加合成。得到相對於地面參照系的加速度。

 

在計算之前,先定義地面參照系的3個方向,垂直向上的方向為1,水平向北的方向為2,水平向東的方向為3.

 

 

 

(1)y軸

 

首先求y軸的單位向量在地面參照系中3個方向的分量。(這裡的o1為orientation1,以此類推)

     y0 = (-Math.sin(o1));

    y1 = Math.cos(o1)*Math.cos(o0);

    y2 = Math.cos(o1)*Math.sin(o0);

(2)x軸

     temp = Math.acos(-(Math.tan(o1)*Math.tan(o2)));

    x0 = (-Math.sin(o2));

    x1 = Math.cos(o2)*Math.cos(o0+temp);

    x2 = Math.cos(o2)*Math.sin(o0+temp);

(3)z軸

 

    z0 = x2*y1-x1*y2;

    z1 = x0*y2-x2*y0;

    z2 = x1*y0-x0*y1;

 

(4)計算相對於地面參照系的3個方向的加速度(這裡的ax為accelerometerX,以此類推)

 

a0 = ax*x0+ay*y0+az*z0+SensorManager.STANDARD_GRAVITY;(這裡加上標準重力加速度以抵消預設的重力加速度)

a1 = ax*x1+ay*y1+az*z1;

a0 = ax*x2+ay*y2+az*z2

 

 

 

這樣的a0,a1,a2資料即為手機相對於地面參照系的絕對加速度了。

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.