アカウント名:
パスワード:
ジャイロ内蔵して振り向いたら後ろが見えるとかやれないんでしょうか。
出来るだろうけど…普通にセンサー付けて行うとセンサーの精度が悪い事に気付く。得にAndroidでプログラムするとセンサー値10%がノイズであるの認識できる。ソフトウェアでそこそこ改善を試みるが、キャリブレーションが結構難しい。室内と外だと地磁気が異なるのでオフセット値設定が必要となると思う。
製品が今まで出でこなったには理由がある。製品化に至らない理由ってのがね。
ジャイロと地磁気センサーって別物じゃね?OSで取得できる値は同じようになっているけどセンサー部の仕組みが違うから、取得できる値の精度も違う気がする。
一般Androidは地磁気センサーだけど、こいつはわざわざジャイロって書いてあるからジャイロ式のセンサーじゃないの?
# と、中に何が入ってるか知らずに書いてみる
上から来た者です加速度センサ(Sensor.TYPE_ACCELEROMETER)磁気センサ(Sensor.TYPE_MAGNETIC_FIELD)6個の値を使って回転行列で計算して方位を求めます。専用の命令がAndroidのAPIにはあります。
方位って難しくて、何処を基準にするかは使い方次第でないですから
磁気/加速度センサーで方位角/傾きを検出する編集するhttp://seesaawiki.jp/w/moonlight_aska/d/%BC%A7%B5%A4/%B2%C3%C2%AE%C5%D... [seesaawiki.jp]ここのソースの赤い部分が回転行列を求める命令です。// 回転行列を計算http://hardware.srad.jp/story/14/01/28/0920232/%E3%82%A8%E3%83%97%E3%82%BD%E3%83%B3%E3%80%81%E7%9C%BC%E9%8F%A1%E5%9E%8BHMD%E3%81%AE%E6%96%B0%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E7%99%BA%E8%A1%A8#SensorManager.getRotationMatrix(inR, I, gravity, geomagnetic);// 端末の画面設定に合わせる(以下は, 縦表示で画面を上にした場合)SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_X, SensorManager.AXIS_Y, outR);// 方位角/傾きを取得SensorManager.getOrientation(outR, attitude);
Androidは専用の行列命令がありますがiPhoneはないので普通に展開して求めます。求め方の基本は同じです。
Androidはセンサーに誤差が酷い(書いた通り)補正が必要ですがiPhoneは精度が高いので補正なしでも使えます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
ジャイロ (スコア:2)
ジャイロ内蔵して振り向いたら後ろが見えるとかやれないんでしょうか。
Re: (スコア:2, 参考になる)
出来るだろうけど…
普通にセンサー付けて行うと
センサーの精度が悪い事に気付く。
得にAndroidでプログラムするとセンサー値10%がノイズであるの認識できる。
ソフトウェアでそこそこ改善を試みるが、
キャリブレーションが結構難しい。
室内と外だと地磁気が異なるので
オフセット値設定が必要となると思う。
製品が今まで出でこなったには理由がある。
製品化に至らない理由ってのがね。
Re: (スコア:0)
ジャイロと地磁気センサーって別物じゃね?
OSで取得できる値は同じようになっているけど
センサー部の仕組みが違うから、取得できる値の精度も違う気がする。
一般Androidは地磁気センサーだけど、こいつはわざわざジャイロって書いてあるから
ジャイロ式のセンサーじゃないの?
# と、中に何が入ってるか知らずに書いてみる
Re:ジャイロ (スコア:0)
上から来た者です
加速度センサ(Sensor.TYPE_ACCELEROMETER)
磁気センサ(Sensor.TYPE_MAGNETIC_FIELD)
6個の値を使って
回転行列で計算して方位を求めます。
専用の命令がAndroidのAPIにはあります。
方位って難しくて、何処を基準にするかは使い方次第でないですから
磁気/加速度センサーで方位角/傾きを検出する編集する
http://seesaawiki.jp/w/moonlight_aska/d/%BC%A7%B5%A4/%B2%C3%C2%AE%C5%D... [seesaawiki.jp]
ここのソースの赤い部分が回転行列を求める命令です。
// 回転行列を計算http://hardware.srad.jp/story/14/01/28/0920232/%E3%82%A8%E3%83%97%E3%82%BD%E3%83%B3%E3%80%81%E7%9C%BC%E9%8F%A1%E5%9E%8BHMD%E3%81%AE%E6%96%B0%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E7%99%BA%E8%A1%A8#
SensorManager.getRotationMatrix(inR, I, gravity, geomagnetic);
// 端末の画面設定に合わせる(以下は, 縦表示で画面を上にした場合)
SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_X, SensorManager.AXIS_Y, outR);
// 方位角/傾きを取得
SensorManager.getOrientation(outR, attitude);
Androidは専用の行列命令がありますが
iPhoneはないので普通に展開して求めます。
求め方の基本は同じです。
Androidはセンサーに誤差が酷い(書いた通り)補正が必要ですが
iPhoneは精度が高いので補正なしでも使えます。