GPS衛星との距離測定 (2)

Download Report

Transcript GPS衛星との距離測定 (2)

GPS の
しくみ と 使い方
The 60th Nandemo Seminar
2007/04/20
稲葉 一浩
自己紹介

名前など
– 稲葉 一浩
– http://www.kmonos.net/

所属
– 東京大学大学院
• 情報理工学系研究科コンピュータ科学専攻
– 細谷研究室
» 「プログラミング言語設計」が研究室のテーマらしい。
» XML処理に特化した言語の研究などやってます。
GPSとは
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

方程式を立てて
– dA2 = (x-Ax)2+(y-Ay)2+(z-Az)2
– dB2 = (x-Bx)2+(y-By)2+(z-Bz)2
– dC2 = (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秒だ!
光の速さは
299792458m/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時0分0.001秒
前後に受信した電波
↓5時の波
GPS衛星との距離測定 (5)

ここで問題発生
– 周期の長い=波長の長い=周波数の低い
波を使わないとマズい
• s秒周期の波の場合、時刻tでの位相と時刻t+sでの
位相の区別がつかない
• 距離が、d + 波長×k (kは整数) という形でしか求
まらない!!
GPS衛星との距離測定 (6)

ここで問題発生
– 周期の長い=波長の長い=周波数の低い
電波は、大気圏を通過できない
• 1~10GHz / 波長 3~30cm の電波しかダメ
• 距離が、d + 30cm×k (kは整数) という形でしか求
まらない!!
GPS衛星との距離測定 (7)

そんなあなたに
スペクトル拡散通信

波長の短い波に、波長の長い波を乗せる
– sin(ωt + a)
– p(t)
– p(t)sin(ωt+a)
: 1.5GHz くらいの正弦波
: 1MHz くらいで {1, -1} が
切り替わる方形波
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の精度
GPSの精度

現在は、誤差 5m くらい と言われている

誤差の要因はいろいろ
誤差の要因 (1)

衛星側の誤差
– クロック誤差
– 予定した軌道通りに完璧には飛んでない

受信機側の測定誤差
– 測定誤差
– 演算誤差
誤差の要因 (2)

大気の状態
– 光の速度に影響する
• 低い位置にある衛星はできるだけ使わず
距離測定するが吉
– 「GPSの誤差を使って天気予報」

マルチパス
– GPSの使う電波(マイクロ波)はよく反射するの
で、ビルとかが多いと困る
誤差の要因 (3)

選択利用性 (SA : Selective Availability)
– 米軍が、軍事的な都合で民間用GPS信号に
人為的にノイズを乗せることがあった
• 2000年5月に解除されている
→ DGPS
GPSを使う
GPSを使ったプログラムを組む流れ
①
GPS受信機を手に入れる
②
受信機のお取扱説明書に従って、
(緯度、経度、高度) 情報を取り出す
③
その情報を使って遊ぶ
GPS受信機いろいろ (1)

google://GPS+レシーバ
GPS受信機いろいろ (2)

google://GPS+レシーバ
– \10,000 ~
– PSP用GPSレシーバが安くて面白そう
– シリアル通信でGPSログを流してくるタイプ
– 内蔵記憶領域にGPSログを記録するタイプ
NMEA - GPSログの標準形式


コンマ区切りテキスト
1行1エントリ
緯度
経度
高さ
$GPGGA,011738,3540.4949,N,13945.2633,E,1,03,06.9,00000.0,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
• <a href=“device:gpsone?url=URL”>…</a>
– DoCoMo (FOMA)
• <a href=“URL” lcs>…</a>
– SoftBank
• <a href=“location:auto?URL”>…</a>
あとはサーバー側でCGI等で頑張る

参考:http://www.yaskey.cside.tv/mapserver/note/gps.html
(GPS携帯 位置情報 基礎知識)
実演(?)

(ここで実演)
おしまい