GPSのための実用プログラミング
価格:3,630円 (消費税:330円)
ISBN978-4-501-32550-3 C3055
奥付の初版発行年月:2007年01月 / 発売日:2007年01月下旬
実際に測定を行う計算プログラムを提示した
GPS(Global Positioning System:全地球測位システム)については,いまさら説明するまでもないでしょう.もともとは米軍が開発した航法システムですが,今では民生用途にもたいへん広く応用されています.カーナビゲーションやレジャー用途をはじめとして,携帯電話や迷子検索,自動車の盗難防止など,いまや一家に1セットくらいのGPS受信機が浸透していそうな状況です.
測位システムの名のとおり,基本的には位置(経緯度と高度)を測定するのがGPSの役割です.地球上のどのような場所にいたとしても,GPS衛星が放送している電波を受信できる限り,現在位置をかなり性格に知ることができます.船舶や航空機のための電波による航法システムは第二次世界大戦中から研究開発が続けられてきましたが,その集大成ともいえるのがGPSです.GPSのように,小型の受信機一つで世界中どこでも使え,しかも正確な航法システムなど,ほかにはないのです.
ところで,GPSはいったいどのような仕組みで位置を測定しているのでしょうか.基本的には,高度2万Kmを飛行するGPS衛星が放送している電波を受信して,GPS衛星からの距離がわかれば,GPS衛星を中心とした球面上のどこかにいることがわかります.いくつかのGPS衛星を使えば,球面の交点として受信機の位置が計算できるという寸法です.原理的にはこうした仕組みで,GPS受信機はいつでも,どこでも現在位置を表示してくれます.
言葉でいうのは簡単ですが,受信機が実際に位置を求めるまでには実にさまざまな紆余曲折があります.まずはGPS衛星の位置がわからないといけません.これはGPS衛星自身が軌道情報として放送しているパラメータから計算すればよいのですが,GPS衛星を出発した電波が受信機に到達するまでにもGPS衛星は(50〜200mくらい)移動していますから,受信機の時計が指している時刻の位置を計算したのではもう遅いのです.
また,同じ時間に地球も自転していますから,受信機の位置自体が何十メートルも移動しています.受信機自身は動いていないつもりでも,地面と一緒に毎秒数百メートルも移動しているのです.この速度は赤道上でもっとも速く,北極点や南極点ではゼロになります.受信機の位置を知りたいからGPSを使うのに,受信機の位置がわからないとGPS衛星の位置が正確に計算できないのです.いったいどうしたらよいのでしょうか.
さらに,GPS衛星が放送している電波は,地球の大気圏を通過するときに微妙に速度が遅くなります.GPS受信機は,電波の速度が光速であることを利用してGPS衛星との間の距離を測定するのですから,電波の速度が遅くなっては困ります.単に距離を測るだけではなく,こうしたさまざまな補正計算をしないと,受信機位置を正しく求めることはできないのです.
本書では,GPS受信機が現在位置を計算するまでの過程を,なるべく詳しく追ってみようと思います.詳しく見ていくことで,GPSの計算結果に含まれる位置誤差の由来や性質もおわかりいただけるでしょう.後半では,測位精度を改善する手法や測位誤差の補正についても,具体的な処理手順を含めて説明するように努めました.
現実には,GPSの測位計算を人手で実行するのはとても無理な話で,コンピュータに実行させることになります.このためにはどうしても計算機プログラムが必要になりますから,本書では具体的なプログラム例を示すことにしました.GPS受信機の仕事をただ説明されるだけではおもしろくないかもしれませんが,プログラムと見比べながらであれば,多少なりとも読み進めやすいかと思います.また,文書による説明で足りない部分は,実際のプログラムをご覧になって補っていただけますと幸いです.
プログラミング言語としては,広く普及しているなどの理由からC言語を対象とさせていただきました.ただし,計算機プログラミングそのものは本書の目的ではありませんので,C言語に関する解説は他書に譲ります.本書のプログラム例については読者諸兄による利用を特に妨げませんので,後掲「本書掲載のプログラムについて」を参照のうえ,ご自身の責任において自由にご利用いただいてかまいません.
本書の刊行にあたりまして,常日頃よりご指導いただいております独立行政法人電子航法研究所の役職員各位に御礼を申し上げます.ここに記しまして,感謝の意とさせていただきます.
2006年12月
著者
目次
第1章 GPSの概要
1.1 測位・航法とGPS
1.2 GPS衛星
1.3 測距信号の使用
1.4 GPSの性能
第2章 測位の基本
2.1 時刻の表現
2.2 座標の表現
2.3 座標変換
2.4 GPSで使う諸定数
2.5 測位計算(第1段階)
第3章 航法メッセージ
3.1 航法メッセージ
3.2 RINEX航法ファイル
3.3 衛星クロック補正
3.4 衛星位置の計算
3.5 測位計算(第2段階)
第4章 擬似距離による測位
4.1 擬似距離の性質
4.2 受信機クロックの性質
4.3 相対論的補正
4.4 電離層遅延補正
4.5 対流圏遅延補正
4.6 測位計算(第3段階)
4.7 測位精度とDOP
第5章 RINEXファイルの処理
5.1 RINEXファイルとは
5.2 RINEX観測データファイル
5.3 測位計算(実用段階):単独測位プログラム”POS1”
第6章 測位のバリエーション
6.1 衛星の選択
6.2 重み付きの計算
6.3 高さ一定の場合(二次元測位)
6.4 移動方向が一定の場合
6.5 ここまでのまとめ:測位計算プログラム”POS2”
第7章 ディファレンシャルGPS
7.1 測位誤差の性質
7.2 ディファレンシャル補正
7.3 補正情報の生成
7.4 ディファレンシャルGPSの測位計算
7.5 統計処理プログラム
付録A 観測データの入手
A.1 国土地理院GEONET
A.2 IGS
A.3 IGSサイトmtka
付録B 週番号表
付録C GPS衛星一覧
付録D テキストファイルの処理
付録E 逆行列の計算
付録F ENU座標系による計算
参考文献
索引
コラム
関連リンク
・ダウンロード:プログラム例および関連データ