My Photo

« iphone4s予約開始 | Main | BS11でエスカフローネ再放送 »

October 08, 2011

Androidアプリ開発メモ024:モーションセンサー

リファレンスのSensorEventのSensor.TYPE_ACCELEROMETERとSensor.TYPE_ORIENTATIONの部分を訳してみた。

以下、怪しい訳

------
Sensor.TYPE_ACCELEROMETER:
すべてのvaluesははSI単位系(m/s^2)である。

  values[0]:Gxを引いた、X軸上の、加速度
  values[1]:Gyを引いた、Y軸上の、加速度
  values[2]:Gzを引いた、Z軸上の、加速度

このタイプのセンサーはデバイスに加わった加速度(Ad)を測る。概念的には、それはセンサー自体に加わった力(Fs)を測ることによって次の関係を使って行われる。

  Ad = ΣFs/mass

特に、重力の力は測定される加速度に常に影響している。

  Ad = -g - ΣF/mass

従って、デバイスが置いてあって(明らかに加速していない)時、加速度計はg=9.81m/s^2の大きさを読んでいる。
同様に、デバイスが自由落下にしていてそれゆえ地面に向かって危険なほどに、9.81m/s^2で加速している時、加速度計は0m/s^2を読んでいる。
デバイスの実際の加速度を測定するために、重力の力の寄与を排除しなければならないことは明白である。これはハイパスフィルターを適用することによって達成できる。逆に、ローパスフィルタは、重力の力を分離するために使用することができます。

<<サンプルコード>>

例:
・デバイスがテーブルの上に寝ていて左側を右に押された場合、X加速度値は正である。
・デバイスがテーブルの上に寝ている場合、加速度値は+9.81であり、重力の力(-9.81m/s^)を引いたデバイスの加速度(0m/s^2)と一致する。
・デバイスがテーブルの上に寝ていて空に向かって加速度Am/s^2で押した場合、加速度値は重力の力(-9.81m/s^)を引いたデバイスの加速度(+Am/s^2)と一致するA+9.81である。


Sensor.TYPE_ORIENTATION:
すべてのvaluesは度で表された角度である。
  values[0]:方位角、磁北方向とY軸の間の、Z軸周りの角度(0~359)。0=北、90=東、180=南、270=西。
  values[1]:ピッチ、X軸周りの回転(-180~180)で、Z軸からY軸へ向かって動く場合に正の値。
  values[2]:ロール、Y軸周りの回転(-90~90)で、X軸からZ軸へ向かって動く場合に正の値。

注意:この定義は、X軸が飛行機の長辺(機首から尾部)に沿っている航空で使用されているヨー、ピッチおよびロールとは異なります。

重要な注意:このセンサーのタイプは、レガシーの理由で存在しており、代わりにこれらの値を計算するためにremapCoordinateSystem()とgetOrientation()と組み合わせてgetRotationMatrix()を使用してください。

-----怪しい訳ここまで。

加速度センサーについては、
・ハイパスフィルタ:重力の影響を取り除く。
・ローパスフィルタ:重力を取り出す。
ということらしい。

一般的には
・ハイパスフィルタ:緩慢な変化をカットして急激な変化のみを取り出す。
・ローパスフィルタ:急激な変化をカットして緩慢な変化のみを取り出す。
だそうだ。ローパスフィルタを通すと関数の定数項が取り出せて、ハイパスフィルタを通すと関数から定数項を取り除いたものが出てくるということか?理屈はわからない。
サンプルコードの計算式がなんでローパスフィルタになるのかも理解できない。

数学をもっとちゃんと勉強しておくんだった…。

座標系
デバイスを縦に持ってディスプレイを自分のほうに向けた場合、
X軸:左から右
Y軸:下から上
Z軸:奥から手前

アジマス、ピッチ、ロール
リファレンスには飛行機のピッチ、ロールと違うと書いてあるが、飛行機や船のように考えるとわかりやすいような気がする。
デバイスを平面に置いてデバイスの上部を機首と考えると、
azimuth(アジマス、方位角):機首の向いている方角
pitch(ピッチ):機首や機尾の縦のゆれ(X軸回転)
roll(ロール):翼の方向の横揺れ(Y軸回転)

今読んでいるAndroidアプリ開発の本でピッチ、ロールの説明の図、間違ってるような気がする。
著者にメールしてみた。。返事が来るかわらかないけど。

« iphone4s予約開始 | Main | BS11でエスカフローネ再放送 »

Androidアプリ開発」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/52940295

Listed below are links to weblogs that reference Androidアプリ開発メモ024:モーションセンサー:

« iphone4s予約開始 | Main | BS11でエスカフローネ再放送 »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof