GPS は Global Positioning System(全地球測位システム)の頭文字です。
米国政府が所有、運用している GPS は、世界中の誰でも無料で利用でき、実際広く使用されています。
GPS は科学・技術がもたらした素晴らしい成果です。実装は非常に複雑ですが、説明するのは比較的簡単です。
多数の軌道周回衛星(現在アクティブなものは 31 基)が常に宇宙での位置と現在時刻を送信しています。
地球上の無線受信機がこれらのデータをリスンします。3 基の衛星からの信号を同時に「聞く」ことができ、さらに信頼性の高い方法で時刻を測定できれば、受信器は数学方程式を解いて自身の位置を計算できます。
信号が衛星から受信機に伝わるまでの時間によってその距離が決まり、さらに 3 つの距離が分かれば、無線受信機は自身の位置を 3 次元で特定できます。
電波は一定速度で移動するため、距離 = 速度 × 時間
の公式を使えば、衛星から受信機までの時間で距離を確実に特定できます。
EMR(electromagnetic radiation、電磁放射線)と総称される電波は、一般に「光速」と呼ばれる速度で移動します。これは、光が人間の網膜の検出機能を作動させるのに適した周波数帯の特殊な電波であるためです。この速度は c(有名な式 E = mc2
の c)で表され、GPS 標準では 299,792,458 メートル/秒と定義されています。
興味深いことに、GPS の位置計算ではアインシュタインの相対性理論を考慮に入れる必要があります。
衛星は地球上の受信機に対して非常に高速で移動しているため、地球から見た衛星の時計はゆっくり動きます。
衛星は 1 日 に 700 万分の 1 秒遅れます。
その一方で、地球上の時計は GPS 衛星よりも地球の重力場の中心にずっと近いため、衛星には遅れているように見えます。
したがって、衛星から見ると地球上の時計は 1 日に 4,500 万分の 1 秒遅れています。
これは、地球の重力のせいで衛星が私達よりも 45 マイクロ秒先を進んでいる一方で、衛星のスピードのせいで 7 マイクロ秒遅れていることを意味します。
GPS 計算では、(45 – 7 =)38 マイクロ秒の相対的時間の差を考慮しなければなりません。
「四人」寄れば文殊の知恵
GPS 受信機は実際には 3 基ではなく 4 基(またはそれ以上)の衛星を同時にロックしているので、驚異的な精度で位置と「現在時刻」の両方を計算する方程式を解くことができます。
この 4 番目の衛星信号があれば GPS 受信機自体に電波時計は不要となるため、サイズを非常に小さくすることができます。また、受信機はリスンするだけで送信することはないため、消費電力が少なくて済みます。
このように最新の GPS 受信機は非常に小さくエネルギー効率に優れているので、5 mm x 5 mm のような小さなチップにパッケージングできます。そのため、最近ではほぼすべての携帯電話だけでなく、自転車のスピードメーター、スマートウォッチ、ドローン、およびさまざまなコンシューマーデバイスで GPS が利用されています。
実際、GPS 受信機はその価格を考えると、(たとえ建物に固定されていても、あるいは位置を測定することなどなくても)基準クロックとして優れています。
絶対時間と相対時間
受信機自身が日付を把握することができ、前の日曜日の午前 0 時から何秒経過したかを把握できるのであれば、1 週間を秒で表した 604,800(60×60×24×7)よりも大きい数について心配する必要はありません。
しかし、その場合には GPS 受信機は電源が切られたとしても稼働し続けられるように独自の基準クロックを持っている必要が出てきます。
GPS 信号だけでは、その週との相対時間をデコードするだけの情報しか得られません。
そのため GPS には、1980 年 1 月 6 日の日曜日(1980-01-06T00:00:00Z)が始まった午前 0 時からの週数を表し、絶対時間基準を示す週番号(WN)フィールドが含まれています。
この WN のおかげで、理論上時間を絶対的に表すことができます。たとえば、WN = -5
は 1979 年 12 月の 2 日目に始まり、WN = +4
は 1980 年 2 月の最初の週です。
このように、現在使用されている GPS 受信機は自己完結型で、外部データソースとして必要なのは GPS 衛星だけであり、電源をオフにしたときに日付を保持できる書き込み可能なコンピュータメモリ(RAM)を必要としません。
距離ゆえの過酷さ
GPS は電波時計を始めとする精密な電子機器に依存しています。これらの電子機器は宇宙空間に送り出され、宇宙空間で動作します。
宇宙空間は地球の表面からわずか 100 キロ上空で始まるとされています。GPS 衛星は地球の直径の 2 倍の距離に相当する約20,000 km 上空にあります。
コンピュータにとって宇宙は過酷な環境であるため、コンピュータの性能はスピードよりも耐久性を重視されます。CPU が数 GHz で、ネットワークリンクが数メガビットであったとしても、処理速度がすぐにゼロになっては意味がありません。
さらに、GPS が発明され製造された 1970 年代から 1980 年代にかけては、地上モデムでも毎秒 1,200 ビットでデータを送信していました。
GPS ダウンリンクは、わずか 50 ビット/秒で世界中の何十億台もの GPS 受信機にデータを送信します。
したがって、すべてのビットが重要であり、1 つも無駄にできません。
GPS プロトコルでは、「この変数を次の 64 ビットの境界にパッドする」「32 ビット DWORD にこの1 文字を格納する」のようなことは行われません。
その結果、GPS 標準はストレージにおいていくつか妥協しなければなりませんでした。その 1 つが、WN フィールドに 10 ビットだけを割り当てるという制約であり、0 から 1023 までの数しか表すことができないため、1023 に達すると再び 0 に戻ってカウントを始めます。
1024 週はわずか 20 年弱です。「GPS エポック」が 1980 年代に始まったことを考えると、1999 年当時 GPS は独自の Y2K(2000年)問題を抱えていたことになります。
要するに、1999-08-21T-23:59:59Z のすぐ後に続くGPSの「地球時間」は、ご想像のとおり 1999-08-22T-00:00:00Z ではありません。
もう 1 つの「ゼロデイ」問題
ロールオーバーでは、時刻は午前零時まで 1 分のところから午前 0 時まで進みましたが、日付は GPS エポックが始まった 1980 年 1 月 6 日の「ゼロデイ」に戻りました。
もちろん、Y2K 問題で一部の人がしていたように、プログラミングによってこの問題を回避することは可能です。たとえば、00 年~49 年が AD2000~AD2049 を表しているとするならば、50 年以降は AD1950から AD1999 を表していることになります。
しかし、AD1949 を表す必要が今後絶対に発生しないと確信していなければ、このような妥協をする意味がありません。
Y2K のゼロデイをどこにリダイレクトしたとしても、100 年以内というエポックの制約をそのまま受けることになります。
同様に、GPS の週数が最大 1024 であることは変わりません。(最新の GPS では 8196 週に延長される予定です。これは 150 年以上に相当しますが、エポックの長さにはまだ厳しい制限があります。)
衛星以外からはデータを受信できず、不揮発性 RAM(停電に耐えられるメモリ)を搭載していない GPS 受信機で使える技としては、製品の発売日をエポックへのオフセット値として使用し、「独自の出発点」から 19.7 年分の WN を手にする方法があります。
コンパイルする前はファームウェアコードを実行できないことから、ファームウェアイメージにコンパイル日を埋め込めば、エポックの延長が可能です。
今後 19 年間すべてのユーザーにファームウェア更新を提供している限り、自ら調整したエポックを何度もリセットして再実行できるだけでなく、生の GPS データを地球の絶対時間のタイムスタンプに変換する際にミスをすることもなくなります。
繰り返されるデジャヴ
ご存知でしたか?
GPS の 1999 年のロールオーバーの瞬間からさらに 1024 週間(19.7 年)進むと、明日土曜日と日曜日の境目となる深夜 0 時になります。
2019 年 4 月 6 日土曜日が 2019 年 4 月 7 日日曜日に変わるときです。
対策
慌てるような事態になるのでしょうか?
日曜の朝を迎えると、自転車用コンピュータ、自動車のナビ、携帯電話、ドローンなどに異変が起きるのでしょうか?
「その可能性は極めて低い」というのが答えです。
非常に古い GPS デバイスであるためにファームウェアを更新できない場合や、新しいデバイスだが一度も更新したことがない場合を除いて、問題は発生しないはずです。
時間は逆戻りしません。したがって、1999 年以降にコンパイルされたファームウェアを実行する正しくプログラムされた GPS デバイスであれば、日付が突然 1999 年に戻ることなどないと認識しており、ロールオーバーを自動的に検出・調整できるはずです。
外部のソースを使ってクロックを同期させるネットワークコンピュータも、異常をきたすことはありません。
まず、(再起動すると 1970 年になってしまう Raspberry Pi シリーズのコンピュータは明らかに例外ですが)最近のほとんどのコンピュータには、誤った時間を示している外部ソースを検出し、無視することができるバックアップクロックが搭載されています。
次に、最近のほとんどのコンピュータでは、単一のソースに依存しない NTP(Network Time Protocol)というプロトコルを使用して、時計の時刻を正確に保っています。
ですので、日曜の朝にラジオから Limp Bizkit が流れたり、テレビで Spice Girls が歌っていたり、Apple の株価が 1.50 ドルになっていたりする可能性はまずありません。
それでも念のため、今すぐカーナビなどの GPS 対応デバイスのアップデートを確認してください。