GPS受信機の話
03-16-2019 10:16 AM   
#1

GPS受信機の話(超基礎)

山歩きやサイクリングで、今では多くの人がGPSレシーバを使っています。山中で、先人のログデータを参照できたおかげで途方に暮れずに済んだ、遭難せずに済んだ、なんて​いう人も少なからずいるはず。

ガーミンやスマホなどGPSレシーバは、GPS衛星からの信号を受信して、その情報を使って現在位置を演算し、求めています。これ、どうやっているんでしょうねぇ?地上な​どに存在するGPSレシーバが複数のGPS衛星の情報を受け取って現在位置を計算する原理を、数式なし!絵もなし!で以下に説明してみます。妄想力(じゃなくて想像力)で​読んでいただければ。。。


*─・‥…─*─・‥…─*─・‥…─*


GPS衛星には、超高精度な時計が搭載されています。いわゆる原子時計というやつで、ん万年に1秒しか狂わないとかいう、あれ。原子時計の理論、原理も非常に面白いのです​が、それはパス。

で、GPS衛星がやっているのは、単に、近傍宇宙に向けてこの超正確な現在時刻と、GPS衛星の現在の軌道位置に関する情報を送信し続けているだけ、です。他には基本的に​、何もやっていない。

レシーバは大抵、地上にいるんですが、このレシーバが地上から例えば20000kmの高度のGPS衛星からの信号を地上のレシーバで受け取るまでに、時間がかかります。と​言っても光速はすべての速度の中で最速の299792458m/秒(というか約30万km/秒)ですから、ほんの0.07秒程度しかかからないんですが。

じゃ、レシーバが、GPS衛星からさらに10mだけ遠くにいたら、GPS衛星の信号を受け取る時間はどれだけ遅くなるか?
それは、10mを光速の30万km/秒で割れば出てきて、0.0000000333秒 です。

なんと、少数点以下8桁の数字がわからないと、10mだけ離れたというのがちゃんと出てこないわけです。ということは、レシーバ側の時計がしっかりしていないと、とてもじ​ゃないけどこんな精度でレシーバの位置なんて計算できないわけです。

すでに絶望的です。そもそも、スマホとかガーミンに搭載される時計なんて、超廉価な水晶時計ですよ。そんな時計でGPSとの距離を計算したら一体何10kmの誤差になっち​ゃうんだか??


*─・‥…─*─・‥…─*─・‥…─*


まあ、その話は置いておくとして、GPS衛星との距離rが1つだけ分かっても、レシーバの地上での現在位置を特定することはできません。距離rが1つに決まっても、一機の​GPS衛星から見れば、それは半径rの球の面上すべてが、同じ距離rになるわけで、レシーバはその球上のどこかにいるに過ぎない、ということになります。

ここでもう一機、GPS衛星に登場願うわけです。この衛星とレシーバとの距離がRだとすると、この半径Rの球面と、最初のGPS衛星を中心とした半径rの球面は、共通の円​を共有して存在しているわけです。この円のどこかにレシーバが存在しなければ、おかしな話になる。これで、レシーバの位置が、球のどこか、という3次元問題から、共通の円​のどこか、という2次元問題に簡易化されるわけです。


*─・‥…─*─・‥…─*─・‥…─*


そしてもう一機追加。最初の2機のGPS衛星で得られた円ともう一機で得られる球は2点で交差するはずで、この2点のうちの一つがレシーバの位置だということになります。​2つのうちGPSレシーバは地上にある点(というか地上に近い点)を自分の現在位置として認識します。もう1点はとんでもない場所にあるので棄却されます。まあ、結局は3​点測量ということで、3機のGPS衛星があればレシーバの位置は確定します。しかしそれば、完全無欠の時計がレシーバに搭載されていれば、の話。
だめじゃ~ん。


*─・‥…─*─・‥…─*─・‥…─*


なわけで、4機目が登場!
ガーミンとかスマホに原子時計なんて、高価でデカいので使うわけにもいかないわけで、レシーバ側の受信時刻には全く無視できない結構な誤差が必ず発生します。というわけで​、3次元空間での位置[x,y,z]の3個だけではなく、誤差dも加えて4個を変数として解くために、4個の式を取り揃えて連立させて解くわけです。4元連立方程式なので、衛星が4個必要、というわけ。まあ​、4機目で補正をかける、というよりも、4機でようやく解ける、ということなんですね。GPSレシーバが自分の現在位置を計算するためには、最低でも4個のGPS衛星の信​号を受け取る必要があるので、衛星自体は結構たくさん地球の周りをぐるぐる回っていて、常時最低でも4機以上のGPS衛星の信号が受信可能なようになっています。

ちなみに、この「常時4GPS」が実現したのは1993年と、意外と最近なんですよね。というわけかどうか知りませんが、初期のカーナビで、マップマッチング機能がないも​のは、余裕で田んぼを疾走したりするのが当たり前でしたねぇ。


*─・‥…─*─・‥…─*─・‥…─*


以上が、GPS衛星とレシーバの最も基本的な関係、です。
実際には、レシーバ側の補正ロジックはかなり工夫されていて、いろいろやっていると思いますよ。まず、電源オフしていたレシーバを起動して、取得したログを眺めると、レシ​ーバの時計の時刻もGPS信号を受けて修正をくわえているのかなあ?なんて思ったりします。多分、このロジックがぜい弱だと、ログ取得初期の精度がヘロヘロになるんじゃな​かろうかと思うわけです。私が持っている2013年のハイレゾ・ウォークマンなどは、そりゃもう、ログとり始めの精度がひどいもんです。じわ~っと真っ当な状態になってい​きます。ちょっと古いスマホのiPhone SEの方がずっとマシ。また、マルチパスで1機のGPSとの距離がいきなりホッピングした場合に、どうやってこれを扱うか、なんていうのも、レシーバ側のロジック開発者は​当然、あの手この手で数学を駆使して上手いことやっているはずです。

これでGPSに興味を持たれたなら、あとはネットで文献を探して学べば、いろいろと知識が深まると思います。


*─・‥…─*─・‥…─*─・‥…─*


なお、GPS衛星の送信情報ではCDMA(code division multiple access・・・ちょっと懐かしい言葉ですね)という変調方式が採用されています。3G世代のモバイル通信でもコレを使っています。
ReClimber, ManInside, AKIRA さんがこの投稿にいいね!しました
03-16-2019 02:43 PM   
#2

ちなみに、GPSという単語はアメリカの衛星測位システムの固有名詞の略称であり一般名詞ではないので、なんでもかんでもGPSっていうと地味に間違いだったりするという​罠。大体において意味は通じるし、そもそも民間に開放されてた全地球衛星系(要は理論上地球上どこでも使える奴)がGPSしかなかったので問題になることは滅多にないです​が。

後、スマホの方がコールドスタートからの立ち上がりが早いってのは、ネットワークやA-GPSなどが使えるってのもありますね。詳細はググっていただければこれ幸い。


ちょいと調べれば基礎理論はもちろん専門機関のスライドや論文があされるのはありがたい話でございます(ちゃんと調べられるテクとそれを読める基礎知識はそれなりに必要で​すがががが)
AKIRA, 守衛のおじさん さんがこの投稿にいいね!しました
03-16-2019 11:55 PM   
#3

GPS自体は軍事技術ですからね。
湾岸戦争前は、数百メートルの誤差が出るように各衛星から電波出てました。
そのため初期のカーナビはマップマッチングや地磁気センサーとかを駆使して自位置を推定してました。
データ受信方式SS変調(CDMA)懐かしいですね。無線LANも同じ技術です。今ではWiFiと言ってますが出だしはSS無線と言ってました。
それぞれ昔はアナログベースで実現してましたが今は物理層以外はソフトウェアで実現してます。
まあ基礎知識の幅広さが海のようで全体は把握出来ない世界ですね。
AKIRA, ReClimber, 守衛のおじさん さんがこの投稿にいいね!しました
03-18-2019 07:03 AM   
#4

雪山用にGPS使っていました。
現在地(緯度経度の数値表示のみ)と前回ログのトレースのみ(データは手動記憶でルートは画面上に黒い線が表示されるのみです)でしたが、復路では前ログのルートと現在地​までの軌跡が同じであることは確認できたので安心感はありました。
当時は軍事衛星利用ということもあり精度を落として有るという話でしたが稜線上での誤差は数十メートル以内と十分信頼出来るものでした。
ちなみにマップ上の現在地点確認は1/25000地形図に磁北線と緯度経度線を前もって引いておき、透明プラ板に度数割したメモリを書いておいたものをあてがって知る方法でした。
当時は画期的だと思いましたが、今のサイクルコンピューターはかなり進化しているみたいなので4月末発売予定のキャットアイ CC-GPS200 アベントゥーラ AVVENTURA GPSが届くのが楽しみです。


PHILLY, 守衛のおじさん, ManInside, AKIRA さんがこの投稿にいいね!しました
返信を投稿する