RTKに必要な基準局を設置してみよう！

##はじめに
こんにちは、AITOYAの小川です。
初心者が始めるcm測位もついに第3回を迎えました！

##
前回はRTKを利用して高速なcm測位を試してみました。
今回は、そのRTKを利用するために必要な基準局を、ZED-F9Pとu-centerを使用して自分でセッティングしてみよう！という試みです。

前回はRTKの仕組みについて解説を行いました。そのときに補正情報を取得し、移動局に送信する基準局というのが出てきましたね。
基準局は固定されていることが大半で、位置は既知であることが前提になります。
![cont001-002-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/8324d856-e65b-5b76-472b-cfbb036f1999.png)


上の図を見ると、ネットワークを使って補正情報を送っているのですが、どのようなネットワークを介して送っているのでしょうか。簡単に解説したいと思います。
GNSSの補正情報や観測情報をインターネット経由で送受信する際に使用するプロコトルを__Ntrip（Networked Transport of RTCM via Internet Protocol）__といい、その情報を配信するサーバをNtrip Casterと呼称します。
基本的に善意の基準局からのデータもNtrip Casterを経由して配信されています。

Ntripは3つの項目から成り立っています。

+ Ntrip Server（基準局／エヌトリップ・サーバ）
+ Ntrip Caster（配信／エヌトリップ・キャスター）
+ Ntrip Client（移動局／エヌトリップ・クライアント）


NtripはHTTPをベースとしているTCPプロコトルで、
ネットワークに接続されているデバイスであれば基本的にどのデバイスからでもデータ自身にアクセスは可能です。
この辺は普通のサーバと一緒ですね。
基本的なデータの流れは下記のとおりです。

![cont001-003-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/af954dbd-695a-2bb6-a977-5157e96bfccf.png)

Ntrip ClinetはもちろんNtrip Serverから情報を受け取るのですが、この図の中でTCPサーバはNtrip Casterだけになります。
Ntrip ServerとNtrip Clientは共にTCPクライアントとなります。
Ntrip Serverは名前ではサーバなのですが…この辺は少しわかりにくいですね。
また、所謂サーバを新規に開設するわけではありません。

世間一般で言うサーバ的機能を持っているのはNtrip Casterで、実は色んな人が有志で立ち上げてくれています。
つまり、自身の基準局（Ntrip Server）からNtrip Casterに情報を送ってあげれば、その基準局でのRTKが可能になる、という仕組みです。
（もちろん自身でNtrip Casterを立ち上げることも可能なのですが、かなり専門的な知識が必要となるため今回は省略します。）

今回は、RTK2GOという、無料のNtrip Casterを利用して、自身の基準局をセッティングしてみましょう！

##準備
###RTK2GOへの登録
まず、RTK2GOに自身の基準局から情報を配信する準備をしましょう。
RTK2GOは特に会員登録等は必要ありませんが、様々な人が同じNtrip Casterを使用しているため、それらを区別するためのMount Pointというものを作る必要があります。
Mount Pointは基準局データの名前みたいなもので、これを指定することでアクセスしたいデータを選択することができます。基本的にどのNtrip Casterにもありますので、覚えておきましょう！

RTK2GOにMount Pointを設定するには、まず下記のURLにアクセスします。
<a href="http://www.rtk2go.com/new-reservation/">New Base Station Reservation – RTK2GO</a>

基本的にすべて英語ではあるのですが、使用上の注意等が書いてありますのでGoogle翻訳等を使用しながら読んでください。
ざっくり訳すと、

+ 登録後に自動的にメールが来るから、それに何らかの返信をしないと本登録にならない
+ 単純なパスワードは許可されない場合がある
+ 登録は8時間以下で終わる（週末は多少時間がかかる）
+ メールアドレスにエラーレポートを送るので正しいメールアドレスを入力してほしい
的なことが記載されています。

そして、入力フォームに情報を入力します。requiredと書いてあるものは必須、Optionalと書いてあるものは任意での入力になります。
__Message FormatはAuto Parse、Ntrip Protocol to UseはNtrip Rev1にチェックを入れてください。__

最後まで入力しフォームを送信すると、すぐに入力したメールアドレス宛に自動送信メールが届きます。このメールに対して返信を行わないとMount Pointが本登録されません。
48時間以内にかならず返信するようにしてください。メールの内容を引用してそのまま返信するだけでOKです。

その後、本完了のメールが届きますので、これで晴れて自分がセッティングしたMount Pointを使用する準備が出来ました。

__※注意　基準局の位置は知識がある人が使用すると場所が分かってしまいますので、自宅等のプライバシーを守りたい場所では使用しないようにお気をつけください。__

###アプリケーションの設定
RTK2GOへの登録が完了したら、次にアンテナを評価ボードに接続し、通常通りセッティングを行います。
この際に、一度u-centerを起動して、しっかりと位置情報が取得できているか確認しましょう。
基準局は基本的に動かず、位置も固定されていることが前提となります。
RTK clientとして他の基準局に対してRTKをかけ、自分のアンテナの位置がFIXするかどうか確認しましょう。
__FLOATのままだと、基準局にした際に正しい補正情報を移動局に送ることが出来ない場合があります。__
また、アンテナは動かないように固定するようにしましょう。補正情報を取得している最中にアンテナが動いてしまうと、それも正しい補正情報の妨げになってしまいます。

次に、データを配信するためのソフトウェア設定にいきましょう。
__配信するためには、RTKLIBというRTK測位をするためのライブラリ内にある、strsvr.exeというアプリケーションを使用します。__

ダウンロードするためには、まず下記URLにアクセスします（Githubのリポジトリです）。
<a herf="https://github.com/tomojitakasu/RTKLIB_bin/tree/rtklib_2.4.3">https://github.com/tomojitakasu/RTKLIB_bin/tree/rtklib_2.4.3</a>
![cont001-003-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/e0d3aa17-d7cc-cad7-9a0c-4c9b58804fb0.png)

その後、右にある緑色のClone or download というところをクリックし、Download ZIPを選択すると自動的にソフトウェア全体のダウンロードが始まります。
ダウンロードが完了したら、zipファイルを展開し、binフォルダの中になるstrsvr.exeを起動します。

起動すると、以下の画面になります。
![cont001-003-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/053a21c6-0893-1e31-2d7d-4c744f71db97.png)

(0)のInput欄には、情報の入力ソースを選ぶ必要があります。
今回はZED-F9Pの評価ボードを使用するので、「Type」は「Serial」を選択を選択します（USBでの接続のため）。
デバイスマネージャー内のZED-F9Pが割り当てられている「COM5」を選択しました。
選択度は、Opt(Option)の下にある「...」をクリックすると、オプションの設定画面が出てきます。
BandRateは、ZED-F9Pに設定されているものを選択してください。
u-centerの Message View-UBX-cfg-port で確認が可能です。
![cont001-003-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/24ab1dbd-6313-a0d0-c3d5-1f20651923c6.png)

次にOutputの設定を行いましょう。Output先は「NTRIP Server」に設定してください。
こちらもOpt(Option)の下にある「...」をクリックし、オプションの設定画面に進みましょう。
![cont001-003-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/539422ef-5b9c-a95f-7908-892b9d57d0c4.png)

+ NTRIP Caster Host:rtk2go.com
+ Port:2101
+ Mountpoint:自身で設定した名前
+ Password:自身で設定したパスワード

以上の項目を設定し、メイン画面に戻ってStartを押すと基準局としての機能が開始されます。
Uploadが配信、Downloadが受信です。実際に移動局からRTKを行い両方ともデータが流れていれば、RTK出来ている証拠になります。
http://www.rtk2go.com:2101/ にアクセスをし、自分が設定したMountpointの情報が出てくればOKです！
![cont001-003-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/42b810a7-e7c9-21ee-d022-01fc183074d4.png)


__※注意　strsvr.exe を起動中には、u-centerは基本的に同時に起動しないようにしましょう。うまく起動しない場合があります。__

製品の説明は<a href="https://www.aitoya.com/#products" target="blank">こちら</a>をご覧ください！<br>
![cont001-002-00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700771/a9e092be-a77a-670e-916f-f86e0fd1d97a.jpeg)

本記事は、AITOYA株式会社HPに掲載している内容と同一のものです。→<a href="https://www.aitoya.com/" target="blank">AITOYA株式会社HP</a>