GPS の しくみ と 使い方 The 60 th Nandemo Seminar 2007/04/20 稲葉 一浩
自己紹介 名前など – 稲葉 一浩 – 所属 – 東京大学大学院 情報理工学系研究科コンピュータ科学専攻 – 細谷研究室 » 「プログラミング言語設計」が研究室のテーマらしい。 »XML 処理に特化した言語の研究などやってます。
GPS とは
Global Positioning System グローバル・ポジショニング・システ ム 全地球測位システム 地球上のどこにいても、 「ここはどこ?」 を調べられるシ ステム
GPS の使われ方 カーナビゲーション 携帯電話 – 道案内サービス –110 / 119 通報時の位置情報 軍事用途 –GPS は元々(今も)米軍のシステム
ここはどこ? - GPS でわかる こと 2次元座標 –( 緯度, 経度 ) … … だけではなく 3次元座標がわかる –( 緯度, 経度, 高度 ) 4次元座標もわかる –( 緯度, 経度, 高度, 現在時刻 )
GPS の構成要素 20 ~ 30 個の人工衛星 – 電波 受信機 受信した電波を解析し て、 現在位置を計算!!
GPS のしくみ
位置を求める そもそも、 「現在位置」ってどうやって求める の?? θ: 位置が既知の物体が見える方角を使う δ: 位置が既知の物体との距離を使う θ-δ: 両方使う
位置を求める - GPS の場合 そもそも、 「現在位置」ってどうやって求める の?? θ: 位置が既知の物体が見える方角を使う δ: 位置が既知の物体との距離を使う θ-δ: 両方使う
[ 数学 ] 距離を使って位置を求める 既に座標のわかってる3点(以上)を仮定 –A = (Ax, Ay, Az) との距離 dA –B = (Bx, By, Bz) との距離 dB –C = (Cx, Cy, Cz) との距離 dC 方程式を立てて –dA 2 = (x-Ax) 2 +(y-Ay) 2 +(z-Az) 2 –dB 2 = (x-Bx) 2 +(y-By) 2 +(z-Bz) 2 –dC 2 = (x-Cx) 2 +(y-Cy) 2 +(z-Cz) 2 解く! – 3点だと解は2つ出ます
ここからのお話 GPS 衛星との距離の求め方 GPS 衛星の現在位置の求め方 GPS の精度
GPS 衛星との距離測定 (1) まずは、 GPS 衛星も受信機も 超正確な時計を搭載してる と仮定する 衛星 に関してはおおむね真 受信機に関しては偽
GPS 衛星との距離測定 (2) すると、衛星は電波で 時報 を送れば万事OK 5時です よー こっちは 5時0分0.0001秒 だ! 光の速さは m/s だから …
GPS 衛星との距離測定 (3) 実際の受信機の時計は不正確。 そこで実際には … – 時間の誤差 s を含めた4変数の方程式 (dA-cs) 2 = (x-Ax) 2 +(y-Ay) 2 +(z-Az) 2 (dB-cs) 2 = (x-Bx) 2 +(y-By) 2 +(z-Bz) 2 (dC-cs) 2 = (x-Cx) 2 +(y-Cy) 2 +(z-Cz) 2 を立てて解く! 位置測定のつもりが時計の 誤差まで求まってしまう現 象
GPS 衛星との距離測定 (4) 電波で 時報 を送るには – 波の「位相」を使う ↓ 5時の波 ↓ 5時0分0.001 秒 前後に受信した電 波
GPS 衛星との距離測定 (5) ここで問題発生 – 周期の長い=波長の長い=周波数の低い 波を使わないとマズい s 秒周期の波の場合、時刻 t での位相と時刻 t+s で の位相の区別がつかない 距離が、 d + 波長 ×k (k は整数 ) という形でしか 求まらない!!
GPS 衛星との距離測定 (6) ここで問題発生 – 周期の長い=波長の長い=周波数の低い 電波は、大気圏を通過できない 1~10GHz / 波長 3 ~ 30cm の電波しかダ メ 距離が、 d + 30cm×k (k は整数 ) という形でしか 求まらない!!
GPS 衛星との距離測定 (7) そんなあなたに スペクトル拡散通信 波長の短い波に、波長の長い波を乗せ る –sin(ωt + a) : 1.5GHz くらいの正弦波 –p(t) : 1MHz くらいで {1, -1} が 切り替わる方形波 –p(t)sin(ωt+a)
GPS 衛星との距離測定 (8) 黒板で説明 – 合成波の形 受信機は、フーリエ変換とかでローパ スフィルタすれば p(t) だけ取り出せる
GPS 衛星との距離測定 (9) p(t) : 「 PN コード」と呼ぶ –1MHz 周期で {1,-1} を切り替えたり 切り替えなかったり – ビットパターンは、衛星毎に異なる –1023 ビット周期 1MHz ~ 30Km × 1023 ビット周期 ≒ 30000Km 単位の距離測定ができた!
GPS 衛星との距離測定 (10) p(t) : 「 PN コード」と呼ぶ –1MHz 周期で {1,-1} を切り替えたり 切り替えなかったり – ビットパターンは、衛星毎に異なる –1023 ビット周期 異なる衛星同士の PN コードを直交させておく と、同じ周波数の電波が混じっても区別可能 –CDMA (Code Division Multiple Access)
ここからのお話 GPS 衛星との距離の求め方 GPS 衛星の現在位置の求め方 GPS の精度
GPS 衛星の位置情報 (1) 案1 – 電波から p(t) : PN コードがわかるんだから、 「 PN コード → 衛星の軌道情報」 の対応関係データベースを受信機に入れと けばいい 衛星を打ち上げ直すたびに、 古い受信機が使えなくなるのが困り もの
GPS 衛星の位置情報 (2) 案2 – 電波から p(t) : PN コードがわかるんだから、 「 PN コード → 衛星の軌道情報」 の対応関係データベースをどっかサーバに 置いといて受信機がネットワーク経由で参 照すればいい 受信機のお値段が高くなります 携帯電話の GPS 機能では、ありうる
GPS 衛星の位置情報 (3) 案3 – 電波に p(t) : PN コードなんてものを乗せら れたんだから、もっと他の情報を乗っけて も大丈夫!!軌道情報も電波にのっけちゃ え! 「航法メッセージ」 GPS 電波には、実はさらに D(t) p(t) sin(ωt+a) 50bps のビット列がかけ算されている
航法メッセージ 1500 ビット – 衛星の軌道計算をするのに必要な全パラメータ 離心率、軌道傾斜角、 etc – 大気による光速度変化の補正用パラメータ – クロック誤差 – 現在の日時の情報 次のうるう秒情報などなど – 週番号 (8bit) + 曜日 で日にちを送信してたので、 1999 年に 8bit が溢れて問題になったそうな – などなど
ここからのお話 GPS 衛星との距離の求め方 GPS 衛星の現在位置の求め方 GPS の精度
現在は、誤差 5m くらい と言われてい る 誤差の要因はいろいろ
誤差の要因 (1) 衛星側の誤差 – クロック誤差 – 予定した軌道通りに完璧には飛んでない 受信機側の測定誤差 – 測定誤差 – 演算誤差
誤差の要因 (2) 大気の状態 – 光の速度に影響する 低い位置にある衛星はできるだけ使わず 距離測定するが吉 – 「 GPS の誤差を使って天気予報」 マルチパス –GPS の使う電波(マイクロ波)はよく反射 するので、ビルとかが多いと困る
誤差の要因 (3) 選択利用性 (SA : Selective Availability) – 米軍が、軍事的な都合で民間用 GPS 信号に 人為的にノイズを乗せることがあった 2000 年 5 月に解除されている → DGPS
GPS を使う
GPS を使ったプログラムを組む 流れ GPS 受信機を手に入れる 受信機のお取扱説明書に従って、 (緯度、経度、高度) 情報を取り出 す その情報を使って遊ぶ
GPS 受信機いろいろ (1) google://GPS+ レシーバ google://GPS+ レシーバ
GPS 受信機いろいろ (2) google://GPS+ レシーバ google://GPS+ レシーバ –\10,000 ~ –PSP 用 GPS レシーバが安くて面白そう – シリアル通信で GPS ログを流してくるタイ プ – 内蔵記憶領域に GPS ログを記録するタイプ
NMEA - GPS ログの標準形式 コンマ区切りテキスト 1行1エントリ $GPGGA,011738, ,N, ,E,1,03,06.9, ,M,039.3,M,,*47 $GPGSA,A,2,13,17,23,,,,,,,,,,07.0,06.9,00.9*07 $GPGSV,2,1,06,02,28,301,00,04,64,339,00,05,04,309,00,23,39,059,32*74... 緯度経度高さ
実物&実プログラム GPS-CS1K (Sony)
GPS 受信機いろいろ (3) 携帯電話
GPS 受信機いろいろ (4) 携帯電話のメリット –2007 年 4 月から測位機能搭載が義務化 → 携帯電話を持ってる人なら誰でも使え る コスト安 一般向け 携帯電話のデメリット – データの取得方法が各社バラバラ – 基地局の電波がないとこで使えない可能性
位置情報 from ケータイ 「指定した URL に位置情報を送る」リンク –au … –DoCoMo (FOMA) … –SoftBank … あとはサーバー側で CGI 等で頑張る 参考: (GPS 携帯 位置情報 基礎知識 )
実演(?) ( ここで実演 )
おしまい