RTK for Drone users

　昨今GNSSはドローンに搭載される各種センサーにおいて（現状は）重要度の高いセンサーになっていると個人的に感じており、RTK対応製品もここ数年で増えてきているようである。とはいえ適切な理解を得られているのかというのも疑問ではある。
　そこでRTKとは何なのかや、今後さらなる普及をしてコンシューマー製品にまで広がった場合、またDronebirdのように多様なドローンが集まる場合に気を付けるべき点などを勝手ながら想定して、個人的経験をもとに下記項目順に記載していこうと思う。
・精度
・RTK
・補正情報
・RTCM
・Ntrip
・VRS

この記事は下記URLにあるドローンのイベント用に作成したプレゼン資料を基に作成している。
（「個人的経験をもとに」としているが、10社以上のメーカーのRTK製品を扱ってきたというのはドローンユーザーとしては多い方じゃないかなぁ。。）
https://speakerdeck.com/kojiroucircle/2022-11-19-dokenautumn-rtk-for-drone-user

　そもそも、GNSSの位置情報においてRTKは高精度という謡い文句で、ドローンでは産業機（Enterprice）をはじめとして採用されているのだが、「精度」とは何なのか理解されていないと思うので、特にDroneにとって、精度が高いということがどいういったことなのか。何が必要で高精度な製品を使っているのかを確認しておきたい。

　まず、測量において必ずと言っていいほど言われているであろう、「真値との誤差」があげられると思う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/d67e7768-5769-4138-e3ea-ae5b5cd8793a.png)

　これは精度ではあるが、そのなかの正確度(Accuracy)になるし、ドローンユーザーが欲しているのはこれではないことが多いと思う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/8af72a0b-ddca-44d0-94e4-a3e92cc099fb.png)


　さらにドローンに搭載されるGNSSは基本的に電源が入っている間は測位しつづけるわけなので、別の評価が必要になる。１つの点に対して１つの解を必要とする測量的なものとは違うところである。それが、正確度（Precision）になる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/1a8beb46-8200-a670-bd55-86de8c5138fb.png)

　個人的な理解としては連続的な測位や短いスパンでの値がばらつかないという感じ。正確度としては同程度になっていても座標としては平面でみても４つの象限があるが、このなかで１つ、さらに狭い範囲になることが望ましい。ドローン（UAV）でいうとホバリング性能にここが効いてくると思われる。（当然ドローンメーカーとしてはほかのセンサーの値も利用してホバリング精度を上げているであろうが、）
　ただこれはWaypoint Auto flightでMappingをする場合であればそこまで重要ではないと思う。

　そして最後に最重要と考えているものが、再現性（Repeatability）である。こちらはPrecisionの連続的なものでなく、図に記載しているように１か月後や２か月後などスパンがあいて測位条件が変わった場合にでも同様の結果（位置）をだせるかである。この図の場合であれば+1 monthの場合は再現性が高いのだが、+2 monthのものはaccuracyとしては高精度であるものの、その前の計測値とは値が大きくことなる。こうなるとデータの扱いとしては３つのデータが比較ができないため手間が増えてしまう。地図などにオーバーレイする（GIS）にしてもそれぞれ差異がでてしまう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/f7081ec9-8d44-83e8-7f75-99c1fce47005.png)

　この後で技術的な説明をするRTKは基本的にAccuracy と Repeatability が上がる計測方法になる。そして、Accuracyが上がることによって、Precisionも結果あがるということになる。


ではRTKの説明に、
RTKはReal Time Kinematicの頭文字をとっている。Real Time はいいとして、Kinematicである。
Kinematicは日本語だと「動的な」という意味になる。ドローンっぽい。これをReal timeで高精度に測位演算するのがRTKである。

RTKを構成するものとしては、
基準局（Reference）、基地局（Base）と移動局（Rover）になる。ドローンは基本的にはRover。
Base/ReferenceはReference（参照）とするために動かさない（Static）ようにする。Static は Kinematic の対義語だと思う。
ReferenceからRoverまでのLineを解析するのがRTKで、このLineを疑似距離（青矢印）という。（英語だと、、忘れた。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/4604e9ee-9a74-9099-6aca-b4ab3b281fe9.png)

この解析において重要となるのが共通衛星というものになる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/e9a7e2dc-b9b2-2e41-2b4a-60f69c5026b9.png)
ReferenceとRoverのGNSS受信機のアンテナにおいて同一の衛星から電波を受信していることが必須で、その数を共通衛星数と言い、RTKの場合はGNSSの補足衛星数と別で表記されるはずなので、理解しておく必要があるのでそれぞれのドローンの取説を参照されたし。（補足衛星 > 共通衛星）
この図ではドローンの補足衛星数は５であるが、共通衛星数は４になる。
　そこで重要になるのが、Referenceの設置位置である。ドローンは衛星補足のみならず通信や目視などいくつも注意すべきポイントがあるためオペレータやコントローラの位置はいろいろな制約を受けると思う。そしてReferenceはその付近においてドローンのコントローラとの通信を確保することが多いのかと思うが、共通衛星数を上げるための設置位置を検討してほしい。ドローンのことを無視すれば、可能な限り上空視通のさえぎるもののないところにするのが、RTKの基本である。なにせドローンはどういった形でGNSS信号が遮られるか想定しずらいので。

　次に補正情報(Correction message)について。ドローンに搭載されているGNSS受信機は何もしなければ、単独測位といって、精度向上することはない。そこで必要になるのがReferenceから補正情報を伝送することであるり、基本的にはReal timeというわけなので、なにがしかの無線で行われる。（有線でもいいがドローンでは現実的でない）
　そしてRTKでトラブルの要因として一番に挙げられると思うのがこの補正情報である。種類がいくつかあり、ややこしいかもしれない。また現状だとドローンメーカーでRTK baseを販売しているのは回転翼だとDJIくらいなものかと思うが、他社が入り込んできた時がややこしく可能性があると思う。（ちなみに私のサポート担当しているsenseFlyも販売しているが国内で販売したことはない。）
　そしてその種類としては受信機メーカーオリジナルのものもあるのだが、ドローンユーザーとしてはRTCMというもの、、そのなかでもVersion3 を記憶しておけば（現状は）問題ないかと思う。ただその中でも種類があり、これはいくつか種類があることだけは頭に入れておいていただく必要がある。いくつもあるのはわかりにくいのであるが、これは受信機メーカーごとの特色や無線機のデータ量などにも依存するため致し方ないところである。
　詳細は本来有償で公開されるのだが受信機メーカーなどが公開しているものもあるのでインターネット等で検索してみるといろいろと情報がでてくる。サンプル的にそのひとつを挙げておくが、、まぁ細かくは覚える必要はないはずで、MSMの何をReferenceがだしているのか、もしくはRoverになるドローンがどれがRTKのために必要なのかを確認必要がある。現状多く利用されているのはMSM4だと思うが、今後どうなるかはわからない。
https://www.use-snip.com/kb/knowledge-base/rtcm-3-message-list/

　と、ここまででRTK概要としては一通りになるかと思うが、一般的に利用されているもので抑えておきたいものがあるので２つ記載する。

　１つめがNtripである。Networked Transport of RTCM via Internet Protocol の頭文字をとっており、先に説明したRTCMをインターネットを経由して配信しようというものである。（できれば次に説明するVRSと混同しないようにしておいてもらいたい。）
　何のメリットがあるかというと通常の無線であればReferenceからコントローラもしくはドローンは通信のため視通が必要となるわけだが、モバイル通信門を利用できればその制約がひとつなくなることになる。また運搬する機材がひとつ不要になるというのもメリットとしては大きいかと思う。電源や三脚などがなくなれば車での運搬を考えるとメリットはある。がインターネット接続環境がなければ使えないというのがデメリットである。一般的に国内では有料というのもデメリットだろうか。ただReferenceの受信機も無料ではないので、そこはケースバイケースだと思う。無料のものもあるが、それはおいおいということで。（私は無料のものは使っていない。）
　ただNtripの場合、基線が長くなるため若干精度が落ちる可能性があるので、そこはGNSS受信機の性能（カタログ等）をチェックしてもらいたい。まぁ問題なければ共通衛星がとれる範囲でどこまででも使えばいいと思う。100km以上でも利用できる。

　Ntripに対応しているドローンであればapp内かどこかに下記情報を入力するところがあるはずだ。通信に必要な情報になる。また契約数しか利用できないので、法人などの場合にはほかで利用しないように管理が必要になる。
・Server address(IP address)
・Port
・User name(or ID)
・Password
・Mount point
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/90b196d4-8087-a804-5b89-796c3b22cb3a.png)
　このなかでMount pointがインターネットの用語ではなくNtripの専門用語になる。これについてはNtripサーバーでいくつか用意されているものを選択するかたちになるので多くのRTKシステムはリストを取得して表示することができるのだが、ドローンのシステムではリストがでないものが私の見てきた限りでは多い。理由はよく知らないが、まぁメーカーの怠慢だろう。（senseFlyのシステムはリスト表示される）１文字も間違うことなく入力する必要がある。
　Mount pointはだいたい補正情報の種類で分けられている。要は先に説明したRTCM MSM の種類でわけられるわけだ。Portで分けてもいいような気もするが、Ntripではこれで分けることが多い。有料のサービスを利用している場合、契約によっては利用できないMount point があったりもするので注意が必要だ。

　そして２つめがVRSである。Virtual Reference Systemの頭文字をとっている。Ntrip を利用しての、VirtualのReferenceだ。Ntripはあくあで通信距離が伸びるだけで、Referenceは必要なわけであるが、Referenceには電源・通信も必須であるし、先に書いたように設置個所も重要になり、一般的には電源の問題から周囲に何もなくても屋外は難しく、基本的に屋上や屋根の上になる。ハードウェアには少なからずメンテナンスが必要なわけで、面倒なところもあるし、設置が危険な場合もあるだろう。そういったもろもろの条件をクリアしつつReferenceを用意できない場合にはVRSなどのサービスを利用することでRTKが利用可能である。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/4c76b3f0-81d9-bd95-5632-2caf70dde692.png)

　VRSはReferenceの代わりになるものであるが、インターネット環境が整えばどこでも利用できるようにこの図のように国で管理している電子基準点から仮想的にRover付近にReferenceを作るものだ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/7d4e081b-8846-83d8-e5e6-2b9379f4a7c4.png)

　VRSの利用にあたっての注意点として、利用を想定しているRover（ドローン）で利用可能な測位システムを確認してもらいたい。先に書いた通り共通衛星が重要であるのだが、補正情報の内容が契約・サービスにより異なることがある。
・GPS
・Glonass
・Galilleo
・BeiDuo

　また最近耳にすることもあるかと思うichimilというサービスだが、これはVRSではなくNtripを利用したRTKなのでVRSではないことに注意していただきたい。VRSとは異なり電子基準点のデータからVirtualのReferenceをつくるのではなく、Referenceを数多くたてることで基線をある程度現実的な距離で抑えるつつ日本全国をカバーするという力業的なサービスである。Virtualではなく一番近いReferenceから補正情報をRoverにNtripで配信するサービスになっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/0fd02708-aef1-bb69-0ed8-661be0210f35.png)


　最後になるが、こういったVRSなどの補正情報配信サービスの利用にあたって注意点がある。あまり知られていないと思うが、１契約につき１Roverのものがほとんどである。ドローンのコントローラなどが勝手にスプリットした補正情報を使うことはかなりグレーだと思う。十分に契約内容を確認してほしい。（私が、というか会社で利用しているサービスではNGであると確認している。）ドローンを複数台運用するのは現状ドローンショウくらいで、あまり多くないとは思うが、今後対応した製品が増えてくるかもしれないので注意しておいてほしい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064877/0fbe9a07-5a1e-9324-ecb1-ca306a948887.png)

　以上ドローンのセンサーのひとつであり、当たり前に利用されているがあまり知られてないのかもなぁというGNSSのリアルタイム高精度測位技術であるRTKに関してのドローンユーザーがおさえておくべき、、知っていても損はないかなという情報でした。
　これを知っていればPPKなども理解が早いと思うので今後の参考になればなぁと思う。