RTK基準局とは

GNSSを使用した測位において、測位精度を向上させる技術です。誤差数cm以内の精度に収まります。

例えば、GoogleMap等で自分の位置を表示した時、地図上がらズレて表示されている時がありますよね。
このような、補正情報を用いない測位のことを単独測位といいます。

これに対して、基準局が受信したGNSS情報を補正情報として、移動体の受信機に送る技術をRTK測位といいます。相対測位に分類されます。

基準局自体は設置位置の座標が固定で決まっています。そして、基準局がGNSSで受信した位置と実際の位置の差分を移動体に送ることで、移動体の位置が正確にわかるわけですね。

つまり、基準局の設置位置の座標が正確にわかっている必要があります。
ちなみに、RTK基準局から半径10km以内じゃないと誤差数cmの精度は保証されないみたいです。

設置した基準局情報


材料

今回は手軽に設置したかったので、既製品を多く使いました。

設置方法

こんな感じでアルミフレームの先端にL字ステーでグランドプレーンとその上にアンテナを取り付けます。
アルミフレームは地面に刺したり、支柱に固定します。
アンテナの線や機械は建屋内に引き込みます。

建物外に電源があるのであれば、そこから取っても良いですが、防水対策をしましょう。

基準局座標の取得

Androidスマートフォンアプリから設定できます。
drogger 専用のアプリが出ています。
インストール後、基準局の座標を調べます。
方法としては3つ程度あります。

  • 単独測位で測定する
  • 他のRTK基準局から測位する
  • 測量してもうらう

1個目の方法は簡単ですが、精度が悪いため、もし基準局設定座標が実際の位置から大きくずれていると、移動局取得座標もその分ずれてしまいます。

2個目の方法は周りに基準局がある場合に有効です。
善意の基準局に公開されているものを使っても良いですし、ドコモやソフトバンクの有料RTKサービスを使用するのもありです。

3個目の方法は、結構お金がかかりますが、正確です。

今回は2個目の方法を使用しました。

移動局に設定したら、Fixするまで待ちます。
その後、Fixしたらその座標をWayPointとして保存します。

基準局として使用する

基準局モードにして、保存したWayPointを登録します。
この時、補正情報をNtripサーバと呼ばれる専用のサーバに送ります。
今回はbizstationさんが無料のサーバを公開しているのでそれを使用します。
自分でさくらVPS等を使用して建てることもできるのですが、自社サーバに公開用として建てるのはセキュリティ的にどうかなということで、このようにしました。

RTKLIBから受信できているか確認する

RTKLIBから受信できているか確認してみました。

いい感じに受信できています。

ROSからちゃんとFixしているか確認してみました。

いい感じです。

RTKを使用してロボットを動かしてみる

## 追記
じゃあどうやって移動精度を上げればよいのかという話ですけど、拡張カルマンフィルタ(EKF)を使いましょう。拡張カルマンフィルタは複数の入力を1つにまとめることができます。
例えばGNSS+ホイールオドメトリ+IMU+LiDARオドメトリみたいな感じで4つの入力を行い、統合した結果を出力することができます。そうすることで、ノイズに強くできたり、位置座標取得レート間の補完をすることができます。

ArduPilot等だとそういうのが最初から入っていますが、ROSのほうが自由度が高くカスタムできます。そのかわり設定は難しいです。