iPhoneやAndoroidのコンパスの精度を検証する - はじめに
iPhoneやAndoroidの携帯端末が“道案内”をしてくれますが、あれは現在位置を知ることができるGPS受信モジュールと方位を知ることができるコンパスがついているからです。
念のために書いておくとGPS受信モジュールでは方位を知ることはできないはずです。GPS受信モジュールで言う“方位”は“進行方向の方位”です。なぜ方位を知ることができないかというとアンテナが一つしかないからです。だから二つのアンテナを使ってGPSの電波から方位を知ることができるという製品は存在します。ググって見つけたものを一つ紹介します。
「小型高精度 GPSコンパス 」
それほど精度が高くないように思えますが基線長が短いためでしょう。
-----------
検証するとなるとコンパスの表示を「真の方位」と比較する必要があります。そこで真の方位をどうやって知るかが問題になるのですが、これは天体の方位を使うことにします(天体の位置つまり角度は日常生活では相当するものが皆無と言っていいくらいに正確に知ることができます。「反射鏡・レンズの歪曲収差を測る - PENTAX Q7 + 01 Standard Prime」みたいなことができるのも天体の位置を正確に知ることができるからです)
天体の方位は時刻と位置がわかっていればその測定精度に応じた精度で得ることができます。通常方位は0.1°のオーダーまでわかれば十分でしょう。この精度で天体の方位を知るためには時刻を10秒、緯度・経度を0.05°(角度の3'、距離で言えば5km前後)の精度で測定しておけばいいです(だから(と言っていいのか)標高の影響はあんまりないです)
スマホのカメラを使うのであればいちばんターゲットにしやすい天体は月で次は金星でしょうか。太陽もいいのですが、明るすぎていろいろ工夫が必要になります。これらの天体の具体的な位置を知るには
「国立天文台 - 暦計算室 - こよみの計算」
がいいでしょう。時刻は分単位でしか指定できないので方位角を0.1°まで知りたいときは補間するなど必要になりちょっと不便です。
「月の地平視差と視半径・地心距離の関係」
からダウンロードできるExcelファイルを使っていただく方法もあります。これは時刻は秒まで指定できます。「観測地の月視位置」のシートで月の方位角、「惑星視位置」で金星等の方位角を知ることができ、「恒星視位置」のシートで恒星の方位角を計算することもできます(方位角の表示は小数点以下一桁にしてありますが、実際はもっと精度があります)
本格的(?)なものとして
「NASA JPL Horizons Web-Interface」
がありますが、これは慣れないとちょっと面倒かもしれません。
----------
Andoroidの場合はコンパスのアプリが必要になりますが、これは別になんでもいいと思います。要するに自分の好みで選べばいいのではないでしょうか。
「A Day In The Life とあるプログラマの備忘録 - iPhoneとAndroidで真北の取得方法を比較する」
によればAndoroidの場合は磁北と偏角を求めるAPIがあってアプリはそれを使って磁北や真北を求めているようです。となればどんなアプリも(使い勝手のいい悪いはあるにしても)方位を示す結果は同じでしょう。
今回は自分の好みで次のようなアプリを使いました。
さてこれから“検証”を進めるわけですが、検証となると実験条件のコントロールが重要です。キャリブレーションをどういう手順で行うか、測定結果に対する周囲の環境(要するに物干し竿があったとか、車が近くを通った、みたいなこと)をどう記録し評価するかというようなことが重要になります。
でも今回は初めてなので“小手調べ”に歩き回って月の方位角を調べるということだけをやってみました。画像の中に“A=136.3°”というような表記がありますが、これはその時刻の月の方位角です。なおこの方位角は「月の地平視差と視半径・地心距離の関係」のExcelファイルの“観測地の月視位置”のシートで求めており、求めるとき位置は北緯35.93°、東経139.483°と固定しています。歩き回ったと行っても半径150mくらいの範囲ですし、ほとんど南北にしか移動していないからです。
-----------------------
上の画像の右下に“真北: -7.3°”という表示がありますが、これは偏角だと思われます。
国土地理院の偏角は北から西側に測るので、それとは符号が逆になっています。
偏角はGPS受信モジュールで得られた位置情報からテーブルルックアップand/or近似式で求めているのでしょう。
--------
今回のものでは上の画像がいちばん正確な値を示しています。
またこの場所に行って同様に正確な値を示すか調べてみたいものです。もしそうなら他の場所で不正確なのは環境が原因ということになりますし、そうでないならキャリブレーションの問題なのでしょう。
--------
上の画像が今回の“最悪”ポイントです。ここももう一度行っていつもこんな結果が出るのか試してみたいところです。
上の画像はこのアプリの“テレモード”で撮影したものです。天体だったらこの方法がよさそうです。
« 月の地平視差と視半径・地心距離の関係 | トップページ | 解約してわかったSugarSyncの非常識ぶり »
「天文計算」カテゴリの記事
- 太陽の赤経・赤緯・地心距離をExcelで求める(海洋情報部の計算式) 2018年版(2017.12.25)
- 海上保安庁水路部の惑星位置の略算式 - 天王星の視赤経・赤緯(2017.07.22)
- 海上保安庁水路部の略算式 - 水星の視位置(視赤経・視赤緯)(2017.07.15)
- 海上保安庁水路部の惑星位置の略算式 - 火星の視赤経・赤緯(2017.07.13)
- 海上保安庁水路部の惑星位置の略算式 - 火星の(日心)黄経・黄緯(2017.07.11)
コメント
この記事へのコメントは終了しました。
お久し振りです^^。
天体の正確さを利用してコンパスの精度を確認してみるあたりがセッピーナさんらしいですね。さすがです。
以前にAndroidプラネタアプリを作成したときマニュアルで見たのですが、スマホ内部センサーのキャリブレーション方法として持った手を8の字に表裏を返しながら動かす、というのがありました。イベントなどで天体アプリを販売しているブースのお兄さんも同じ動作をしていたのでこの人も知っているのだなと内心思ったものです。
これまた以前本で読んだのですが(ご存知かとは思います)、船は進む方向を検出するのに船首と船尾にGPSを積むらしいですね。GPS1つでも位置の差分から動く方向はわかるけど水面を風や海流で流されているので自分の向いている方向まではわからないということ、まさに記事にあるような基線長も重要ということでした。
投稿: ほよほよ | 2016年12月 8日 (木) 08時55分
こちらこそご無沙汰しております m(._.)m
キャリブレーションという8の字運動、傾けて回転、直行する三軸を中心に回転とかいろいろ流儀(?)がありますが、あれってどういう意味があるんでしょうね。この記事にあるアプリの説明ビデオではふつうのキャリブレーションの方法でダメだったら磁石をくっつけろとありました。キャリブレーション=較正と思うのですが、こういうのでどうしてキャリブレーションになるのかよく理解できていません。
コメントを拝見してあらためてGPSで方位を測定する方法やその検証結果を見てみたのですが、なかなか興味深かったです。
投稿: セッピーナ | 2016年12月 9日 (金) 12時12分