commit 0c202c359cc504244ce66d765d59ed1466872033 Author: KusaReMKN <48670724+KusaReMKN@users.noreply.github.com> Date: Tue Nov 29 12:15:49 2022 +0900 Latest version diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..94dbab1 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +TARGET= ntrip.pdf + +GROFF= groff +GROFFFLAGS= -dpaper=a4 -P-pa4 -ept -ma4 -ms -mpspic -mwww +PS2PDF= ps2pdf +PS2PDFFLAGS= -sPAPERSIZE=a4 +RM= rm -f +SHELL= /bin/sh + +all: $(TARGET) + +.SUFFIXES: +.SUFFIXES: .ms .pdf + +.ms.pdf: + $(GROFF) -Tps $(GROFFFLAGS) $< | $(PS2PDF) $(PS2PDFFLAGS) - $@ + +.PHONY: clean +clean: + $(RM) $(TARGET) diff --git a/ntrip.ms b/ntrip.ms new file mode 100644 index 0000000..45db72b --- /dev/null +++ b/ntrip.ms @@ -0,0 +1,163 @@ +.nr FF 3 +.nr PI 1m +.ds LF \\f(HBDRAFT\\fP +.DA +.TL +GNSS センサに関するメモ +.AU +\fRB\-3 情報二課\fP +.NH 1 +GPS vs GNSS +.PP +\fBGPS \(mo GNSS の関係である\fP。 +GPS は Global Positioning System の頭字語であり、 +米国によって運営されている衛星測位システムを指す。 +対して GNSS は Global Navigation Satellite System の頭字語であり、 +これは全地球衛星航法システムの意である。 +GNSS は各国の衛星航法システムを一般的に指す語であるので、 +航法衛星(人工衛星)から発射される信号を利用して位置測定などを行うシステムを +指したい場合はこの語を使うべきである\**。 +.FS +ただし、バカ向けにプレゼンテーションをする必要がある場合はこの限りではない。 +.FE +.PP +各国による衛星測位システムには次のようなものがある: +.IP GPS +米国によるもの。 +全地球をカバーしている。 +\fB全ての元凶\fP。 +.IP Galileo +欧州によるもの。 +全地球をカバーしている。 +脱米国依存したかったらしい。 +.IP GLONASS +旧ソ連によるもの。ロシアに引き継がれた。 +全地球をカバーしている。 +.IP 北斗衛星導航系統(BeiDou) +中国によるもの。全地球をカバーしている。名前が長ったらしい。 +.IP "準天頂衛星システム(みちびき; QZSS)" +日本によるもの。日本及びアジア太平洋地域に特化している。 +東京で空を見上げると天頂付近に常時 1 機以上の衛星がいるらしい。 +.NH 1 +RTK vs DGPS(DGNSS) +.PP +RTK は Real-Time Kinematic Positioning の略語であり +GNSS の誤差を補正するための手法である。 +基準点からの相対的な距離をセンチメートル単位くらいで算出することができる。 +基本的な考えかたは \(la\fChttps://w.wiki/5$GT\fP\(ra に英語版 Wikipedia +の記事を機械翻訳に突っ込んだだけのものを用意しておいたので参照されたし\**。 +.FS +後出しされた日本語版の Wikipedia もあるけれど内容が無いよう +(2022-11-22 時点)\h'-1n'。 +.FE +.PP +DGPS(DGNSS)は Differential \(em の頭字語であり、 +やはり GNSS の誤差を補正するための手法である。 +位置のわかっている基準点でも GNSS 電波を受信し、 +測位対象地点の測定誤差を消去するものである。 +こちらは誤差数メートルくらいで算出することができる。 +.PP +Jeedo システムでは DGNSS を利用している。 +事前実験の結果、充分な精度で現在位置を得られたからである\**。 +.FS +RTK を組み込む手間を省きたかっただけであることはみんなに内緒のお話である。 +.FE +.NH 1 +Ntrip とは +.PP +Ntrip とは、the Network Transport of R\s-2TCM\s+2 via Internet Protocol +の略語であり、インターネットを介して DGNSS のためのデータを配信するための +プロトコルである。 +.PP +Ntrip システムには Ntrip Server、Ntrip Caster、Ntrip Client の三役がある。 +.PS +SERVER: box "Server" "(TCP Client)"; +move right 1 up; right; +CASTER: box "Caster" "(TCP Server)"; +move right 1 down ; right; +CLIENT: box "Client" "(TCP Client)"; +arrow from SERVER.e to CASTER.w "" "" "" "Pos. data"; +arrow from CASTER.e to CLIENT.w "Diff. data" "" "" ""; +.PE +.ce +\fBFigure 1\fP: Ntrip システムの三役の関係 +.IP "\fBNtrip Server\fP" 5n +Ntrip Server は位置情報を提供するひと(つまり基準点)である。 +これは、その名に反して、 +クライアントサーバシステムにおけるクライアントとして振る舞う。 +.IP "\fBNtrip Caster\fP" +Ntrip Caster は Ntrip Server から提供された位置情報を Ntrip Client に配信する +仲介者である。 +これはクライアントサーバシステムにおけるサーバとして振る舞う。 +.IP "\fBNtrip Client\fP" +Ntrip Client は Ntrip Caster から配信される補正情報を受信するひと +(つまり観測点)である。 +これはクライアントサーバシステムにおけるクライアントとして振る舞う。 +.NH 1 +Ntrip Caster を用意する +.PP +DGNSS を利用するために Ntrip Caster を用意する必要がある。 +Ntrip Caster はただの TCP サーバであるので、適当な Linux 環境を用意し、 +プログラムをビルドし、セットアップするだけで実行可能である。 +.NH 2 +Ntrip Caster のインストール +.PP +Ntrip Caster の実装は他にもあるのかもしれないが、 +手に入れやすく、手間の掛からないものが GitHub に公開されているので利用する。 +詳細は \(la\fChttps://github.com/baidu/ntripcaster\fP\(ra を参照されたい\**。 +.FS +アーカイブになっちゃっててかなしいね。 +.FE +.PP +インストールするには次のように実行する。 +この例では \fC/opt/ntripcaster\fP 配下にインストールしている。 +なお、必要なユーティリティ類は適当にインストールされている必要がある。 +.DS +.fam C +$ \fBgit clone https://github.com/baidu/ntripcaster.git\fP +$ \fBcd ./ntripcaster\fP +$ \fB./configure --prefix=/opt/ntripcaster\fP +$ \fBmake\fP +# \fBmake install\fP # 特権が必要 +.fam +.DE +.NH 2 +Ntrip Caster の設定 +.PP +Ntrip Caster の設定ファイルは \fC/opt/ntripcaster/conf\fP 配下にある +(上のようにインストールしていない場合は指定したディレクトリにある)\h'-1n'。 +Ntrip Caster の振る舞いを設定するファイルは +\fC/opt/ntripcaster/conf/ntripcaster.conf\fP である。 +次のように実行して設定する +(斜体部分の IP アドレスは Ntrip Caster の IP アドレスを指定する)\h'-1n'。 +.DS +.fam C +# \fBcd /opt/ntripcaster/conf\fP +# \fBpwd\fP +/opt/ntripcaster/conf +# \fBed ntripcaster.conf.dist\fP +1882 +\fB/localhost/;t +-s/^/#/p\fP +#server_name localhost +\fB+s/localhost/\fP\,\f(BI192.168.54.246\fP\/\fB/p\fP +server_name \,\fI192.168.54.246\fP +\fB/2101/s/^#//p\fP +port 2101 +\fB/8000/s/^/#/p\fP +#port 8000 +\fBw ntripcaster.conf\fP +1910 +\fBq\fP +# +.fam +.DE +.NH 1 +Ntrip Server を用意する +.PP +TODO: Ntrip Server について書く。 +\fCsourcetable.dat\fP についてもここで述べる。 +.NH 1 +Ntrip Client を用意する +.PP +TODO: Ntrip Client について書く。