GPSって何?年収は?彼氏はいるの?

東京大学航空宇宙工学科/専攻 Advent Calender 2020

この記事は東京大学航空宇宙工学科/専攻 2020の21日目の記事です。

adventar.org

去年は航空宇宙と全然関係無いTeXに関する記事(https://qiita.com/moinslut/items/bc1d1b1e13cb38377406)を書いたので今年は航空宇宙っぽい記事を書くことにしました。と言っても内容はそこまで無いのでよろしくお願いします。ちなみに今年もTeXに関する記事(https://qiita.com/moinslut/items/97c29b2a003c7d5ffd8c)を書いたのでよろしくお願いします。

はじめに

GPSは人間ではないので彼氏はいません。GPS関連のサービスで稼いでいる企業は結構ありますが、総合的な年商はよくわかりません。というわけで年収もわかりません。調べてみください!

いかがでしたか?

いかがでしたか? はい...とりあえずやりたかった出オチは出来たのでちゃんと書きます。

 Global Navigation Satellite Service: GNSS

実は我々が世間一般に"GPS"という名称で読んでいるサービスの普通名詞は"GPS"ではありません。実際には"GNSS"という名称で、GPSはそのうちアメリカの衛星によって構成された全球衛星測位システム、Global Positioning Systemのことを指します。実際我々が使っているサービスでGPS以外の衛星を使っているかは不明なのでそういう意味ではGPSと呼んでしまって良いのかもしれませんが...。

"GPS"ではなく、"GNSS"だという話をしたので、当然アメリカ以外にもシステムを形成している国があるのか、という疑問が湧くと思いますが、はいあります。いわゆる"全球"で使えるシステムを構成している国、地域は他に3つあり、それぞれロシアがGLONASSを、ヨーロッパがGalileoを、中国がBeidouと呼ばれる衛星測位システムを形成しています。さらに追加でこういう書き方をすると全球ではなく限られた地域で使えるシステムを形成している国があるのか、という話になりますが当然あり、インドがIRNSSを、日本がQZSSという、既存のGNSS衛星と組み合わせる形で自国周辺での精度向上を狙った衛星システムを開発しています。

f:id:moinslut:20201220160510j:plain

GPS衛星 Ⅲ世代

GPS Satellites | Lockheed Martin

f:id:moinslut:20201220160825j:plain

QZSS衛星 通称:みちびき 

三菱電機 | 準天頂衛星システム「みちびき」(QZSS)

単独測位

以下にGNSSで測位を行う際の一番簡易なモデルを示します。まず衛星がn機(n \geq 4)見えているとしましょう。GNSSでは電波が届くまでの時間の差に光速をかけることで測距しているので、i番目の衛星との観測から以下の式が得られます。

\begin{equation}
\rho_i = \sqrt{\left(x - x_i\right)^2 + \left(y - y_i\right)^2 + \left(z - z_i\right)^2} + c\left(\delta t - \delta T_i\right) + \varepsilon_{\rho_i}
\end{equation}

なお、添え字にiがついている文字は衛星側の値だと思ってください。なお \delta tとは受信機側のクロックバイアス(真の時刻からの時計のずれ)、 \delta Tとは衛星側のクロックバイアス、 cとは光速を指します。衛星側の座標とクロックバイアスは衛星側がエフェメリスなりアルマナックなりを介して放送しているので、ある程度の精度で既知とします。なお、エフェメリスとは衛星が自身の軌道やクロックバイアスなどについて放送している情報、アルマナックとはざっくりとした他の衛星に関しても含めた同様な情報で、当然ですがエフェメリスの方がアルマナックに比べて精度は良いです。

これら n式から座標の値を求める方法は様々ありますが、ここでは最も有名な解法のうちの一つで、簡単なニュートンラフソン法を紹介します。やってることは非線形最小二乗法そのものですね。まず適当に初期解 \left(x_0, y_0, z_0, \delta t_0\right)を置きます。この時初期解の周辺で線形化すると、以下の式が得られます。

\begin{align}
r_{0, i} &= \sqrt{\left(x_0 - x_i\right)^2 + \left(y_0 - y_i\right)^2 + \left(z_0 - z_i\right)^2} + c\delta t_0 \\
\Delta x &= x - x_0, \ \Delta y = y - y_0, \ \Delta z = z - z_0, \ \Delta s = c\delta t - c\delta t_0 \\
\rho_i + c\delta T_i &= r_{0, i} + \left.\dfrac{\partial \rho_i}{\partial x_0}\right|_{x_0}\Delta x + \left.\dfrac{\partial \rho_i}{\partial y_0}\right|_{y_0}\Delta y + \left.\dfrac{\partial \rho_i}{\partial z_0}\right|_{z_0}\Delta z + \Delta s + \mathcal{O}\left({\Delta x}^2, {\Delta y}^2, {\Delta z}^2\right) + \varepsilon_{\rho_i}
\end{align}

ここで \Deltaに対する係数を以下の様に置きます。

\begin{equation}
 \dfrac{\partial \rho_i}{\partial x} = - \frac{x_i - x_0}{r_{0, i}} = \alpha_i, \ \dfrac{\partial \rho_i}{\partial y} = - \frac{y_i - y_0}{r_{0, i}} = \beta_i, \ \dfrac{\partial \rho_i}{\partial z} = - \frac{z_i - z_0}{r_{k, i}} = \gamma_i
\end{equation}

また、

\begin{equation}
\Delta r_i = \rho_i + c\delta T_i - r_{0, i}
\end{equation}

とすると、 n機の衛星に対して以下の式が成立します。

\begin{equation}
\mathbf{\Delta R} = \begin{pmatrix}
\Delta r_1 \\
\vdots \\
\Delta r_n
\end{pmatrix}, \ G = \begin{pmatrix}
\alpha_1 & \beta_1 & \gamma_1 & 1 \\
& \vdots & & \\
\alpha_n & \beta_n & \gamma_n & 1
\end{pmatrix}, \ \mathbf{\Delta X} = \begin{pmatrix}
\Delta x \\
\Delta y \\
\Delta z \\
\Delta s
\end{pmatrix}
\end{equation}

\begin{equation}
\mathbf{\Delta R} = G\mathbf{\Delta X}
\end{equation}

よって n \geq 4なのでこれを解いて

\begin{equation}
\mathbf{\Delta X} = \left(G^\intercal G\right)^{-1}G^\intercal\mathbf{\Delta R}
\end{equation}

あとは \mathbf{\Delta X}を初期解に足してこれを繰り返し、 \mathbf{\Delta X}が十分小さくなったところで打ち切れば座標が求まります。大体4, 5回繰り返せば収束します。

コンステレーション

基本的にGNSSによる測位は同時に4つ以上の衛星が可観測で無いと成立しません。全球のほとんどでどんな時にも4衛星以上見えているためにほとんどのGNSSでは30機以上のコンステレーションを組んでいます。GNSS衛星のコンステレーションは基本的にWalkerコンステレーションと呼ばれる考え方に基づいており、WalkerコンステレーションではT, P, Fという3つのパラメーターがあり、Tは総衛星数、Pは軌道面の数、Fは各面ごとの位相差のパラメーターで、位相差はF*360/Tに等しいです。衛星軌道は基本的に円軌道なのでこれとは別に衛星の高度と軌道傾斜角が定まっていれば衛星のコンステは定まります。GPSにおけるパラメーターは、高度約20200km, 軌道傾斜角55°, T = 24, P = 6, F = 2となっています。実際にはピッタリ24衛星いるのではなくて、現在番号が割り振られている衛星は32衛星あり、一部の衛星は他の衛星の保険として存在している状態です。

f:id:moinslut:20201220183853p:plain

GPS衛星の軌道上での配置

USSF PPt Slide Final (HAF - 22 Apr 19) (uscg.gov)

f:id:moinslut:20201220191414p:plain

24/6/2コンステでの衛星配置(ECI座標系)


DOP

GNSSによる測位の中で重要なパラメーターのうち、DOPという概念があります。先ほどまで測位を行うためには同時に4つ以上の衛星が見えていることが必要という話をしましたが、実際には同じ4衛星でも配置によって大きく精度が異なるといったことが下の図から伺えます。

f:id:moinslut:20201220185644p:plain

衛星配置による精度の差

Dilution of precision (navigation) - Wikipedia

簡単に言えば衛星が一方に偏っているよりも散らばっている方が推定精度はあがり、この値はDilution of precision, DOPと呼ばれています。実はDOPの値は位置推定の間に導いていて単独測位で計算していた 4 \times 4行列式 \left(G^\intercal G\right)^{-1}がそれにあたります。このうち行列の対角成分を足し合わせた和の平方根の値がGDOP, 位置と時間の幾何学精度、4つ目の成分は時間に関する正確性なので、最初の3つの対角成分を足し合わせた和の平方根の値がPDOP, 位置に関する精度と呼ばれています。このDOPの値は衛星が形成する多面体の体積の逆比例し、体積が大きいほどDOPは小さくなり、観測精度がよくなります。DOPの観点から言えば天頂付近に数個、地平線付近にそこそこと言った衛星配置が理想的ではありますが、実は高度が低いと大気による遅延などの影響が長くなってしまうためその影響も考慮する必要があります。

みちびき: Quasi-Zenith satellite system

Quasi-Zenith satellite system, QZSSは日本が現在計画を進めている測位衛星システムで、それらの衛星は通称「みちびき」と呼ばれています。みちびきの目的はGPSGLONASSなど全球で測位を行える様なシステムを構築することではなくGPSと共に使用することで日本周辺での測位精度向上を目指したシステムとなっています。英語名はQuzsi-Zenithですが日本語では準天頂衛星システムと言った名前で、その名の通り日本の天頂付近に居続けることを目的とした衛星です。

f:id:moinslut:20201220192821p:plain
f:id:moinslut:20201220192824p:plain
みちびきの軌道(左:地球固定座標, 右:地球慣性座標)

最終的に7機体制になる予定で、現在4機打ち上げられており、うち3機は準天頂軌道、1機は静止軌道に投入されていて、地球から見た際に8の字状の軌道を描くのが特徴となっています。都市部などビルや高い建物などが多い地域では一部の高度が低いGPS衛星を受信することが困難ですが、常に天頂付近にいるみちびきがあることで高い建物に囲まれた場所でもGNSSを利用した測位を行うことが出来ます。また他に天頂付近に衛星がいるメリットはなんだったでしょうか?そう、DOPを小さくして測位精度を向上させられる、ということです。

また、他のGNSSではそれぞれのシステムごとに実は測地系と時系が異なるなど様々な理由で統一して使用することは難しかったりします(人類は愚か)。一方でQZSSは測位信号も含めてかなりGPSに仕様を寄せているのでGPSと組み合わせて使いやすい、というメリットもあります。

その他の測位方法

上で述べた方法は最も基本的な測位方法ですがその分精度はあまりよくありません。そこでここでは単独測位よりも高い精度を得る測位方法として2通りほど紹介します。

RTK

考えた方もいらっしゃると思いますが、付近に正確な座標がわかっている地点があればそれを利用する方がより精確な測位を行うことが出来ます。また、上で述べた擬似距離は観測時間の差に光速を乗せるためあまり精度の良い観測値を得ることは出来ません。それとは別に搬送波位相という信号の位相差を計測することで観測値を得る方法もあります。こちらは精度の良い観測値を得られる代わりに位相差の変動を観測しているので、距離全体を得ることは出来ず途中の差分を推定する必要があります。これらの観測値を組み合わせることで測位を行っているのがRTK(Real Time Kinematic)法と呼ばれる測位方法です。単独測位の精度はせいぜい10m ~ 1mの精度であるのに対して、こちらでは1cm級の高精度な測位を行えることが特徴です。

PPP

全ての場所で付近に正確な座標がわかっている基準があれば良いのですが、海上や山奥などそうはいかない場所も地球上には多々あります。受信機内部信号の経路差まで考慮するなど測位に関して正確なモデル化を行ったり、衛星の軌道やクロックに関してエフェメリスよりも正確な値を得たりすることで高精度な測位を行う方法を精密単独測位(Precise Point Positioning, PPP)と呼ばれています。こちらでも最終的にcm級の高精度な測位を行うことが出来ますが、値が収束するのを待つため測位に比較的長い時間がかかります。

f:id:moinslut:20201220224520p:plain

RTKとPPPの比較

高精度単独測位(PPP方式) | マゼランシステムズジャパン株式会社|cm級の高精度衛星測位技術で世界を変えます

他の用途

GNSSは基本的に測位のために使われますが、光速で測位を行うため超高精度な時計が求められます。光速は 3 \times 10^8mでなので、時計が 10^{-7}秒ずれただけでそのまま 30 mの測距誤差につながります。そのためGNSSの信号がそのまま時刻の基準としても使われています。証券取引所の時刻同期にはGPSの信号が使われているようですね。また、光速とは言いましたがGNSSの信号は大気中の電離層や水蒸気の影響で真空中に比べてわずかながら遅延します。この遅延量を測定することで、大気観測に利用したり、といったことも出来るようです。

いかがでしたか?

というわけで超超簡単にですが、GNSSに関する基本についてまとめてみました。ここでは本当に基本的な事項しか載せていないので、興味がある方は各々調べてみてください。ここまで読んでくださった方はありがとうございました。