2025年9月14日日曜日

str2strの宛先のシリアルポートにポート番号を付与すれば処理結果をtcpポートで見れる


背景

str2strとは衛星をして測位するためのライブラリrtklibに含まれるコマンドです。
str2strを利用してntrip方式で配布される基準局の情報をF9Pなどの移動局に流し込むことで、基準局の情報で移動局の位置情報を補正するRTKでの測位が可能です。

このstr2strコマンドはRTKに関して検索すると多くのサイトで使い方が紹介されているのですがGUI(マウスで操作する画面)で結果を確認して説明が終わっているものが多く、補正情報を流し込ませた後にCLI(コマンド実行画面)で情報を確認する方法を把握するのに時間がかかりました。
備忘録としてCLIで処理結果を確認する方法を記事に残します。

使ったもの

  • ublox F9P + アンテナ
    スイッチサイエンスで買えます。
    ZED-F9P-05B搭載GPS-RTKピッチ変換基板
    SMA-J - U.FL変換ケーブル(ケーブル長10cm)
    Waveshare L1/L2/L5対応 GNSS・GPSアンテナ
  • USBケーブル
    スイッチサイエンスのF9PモジュールはUSB typeCなので、typeCの口をPCに繋げるUSBケーブルを用意します。
  • Linux PC
    ubuntu22.04で動作確認しました。
  • rtklib
    ubuntu22.04ならaptコマンドで記事を書いている時点での最新版(2022公開の2.4.3.b34)をインストールできます。
    sudo apt install rtklib
  • netcat(nc)
    netcatコマンドを使ってtcpのポートに配信される情報を確認します。
    ubuntuは標準でインストールされています。


outのシリアルポートの末尾に#繋がりでポート番号を付与

下記のようにoutとして指定したシリアルポートの末尾に#でポート番号を付与します。
今回は5400番を付与しました。

str2str -in ntrip://some-caster.com:2101/mount-point -out serial://ttyACM0:230400#5400


先程付与した5400ポートをnetcatコマンドで表示すると、補正情報を受け取ったF9Pが出す情報を確認できます。

nc localhost 5400
$GNGGA,....
$GNGSA,....
$GNGSA,....
$GNGSA,....


RTKが関係する状態になっているかは、NMEAのGGAの緯度の後の情報を見ると分かります。
4ならRTK float、5ならRTK fixです。

nc localhost 5400 | grep GGA
$GNGGA,xxxx,xxxx,N,xxxx,E,5,12,0.56,51.2,M,38.5,M,1.0,0000*xx
^


ポートで確認する方法は下記のgithubのissueで見つけました。
How to output a NMEA string by str2str, like a STRSVR via TCP port. #573

おわり

str2strで補正情報をF9Pに流しつつ、結果をtcpポートで確認できました。
補正情報を流し込むのは良いものの結果はどうやって見るのか疑問だったので、その疑問が解決して良かったです。

参考

debianによるstr2strの説明書です。
str2str - debian

ポート番号で結果を見る方法を把握したgithubのissueです。
How to output a NMEA string by str2str, like a STRSVR via TCP port. #573

0 件のコメント :