[blog-日々のこと] str2strとデータの保存

こんにちは

今回もまとまった記事ではありませんが、以前投稿したMatlabの記事について「RTCM3の保存について」のコメントが寄せられました。 それまでGNSSのリアルデータは扱っていたのですが、保存まではまったく考えてもいませんでした。 そこでRTCM3の保存について検討してみました。

紹介していだだいた記事です。

RTCM3とかを保存する

興味あることだったので早速利用させていただくことにしました。

紹介していただいた記事を参考にRaspberry Piにディスクを接続して保存をしてみました。なお使ったモジュールは C94-M8Pです。

データを保存するだけではもったいないので自宅のネットにもデータを流したいと思いチャレンジ(それほどのことはないのですが)してみました。

環境

str2str : /home/pi//myRTK/RTKLIB/app/str2str/gcc/str2str

str2str2.sh : /home/pi/str2str2.sh

serial : /dev/ttyACM0

port : 52001

Raspberry Piで受け取ったデータをネットに流すのは以前にブログの中で紹介しています。これに少し手をいれて

str2str

まずは自動でサービスが出来るように

以下のファイルを作りました。

str2str2.service

[Unit]

Description=str2str2

[Service]

Type=simple

ExecStart=/home/pi/str2str2.sh

Restart=Always

[Install]

WantedBy=multi-user.target

str2str2.sh

の中身は

#!/bin/sh

/home/pi/myRTKLIB/RTKLIB/app/str2str/gcc/str2str -in serial://ttyACM0:19200#rtcm3 -out tcpsvr://localhost:52001

これでネット内にRTCM3のデータが流れるはずです。

Raspberry Piが立ち上がったときにstr2str2.serviceが自動的に起動するように

str2str2.serviceの起動の仕方

$ sudo systemctl start str2str2.serrvice

$ sudo systemctl enable str2str2.service

停止とdisable

$ sudo systemctl stop str2str2.service

$ sudo systemctl disable str2str2.service

動作しているかどうかのチェックは

$ sysemctl status str2str2.service

さてこれから

データの保存

紹介いただいた記事をもとにして

$ crontab -e

として

0 * * * * /home/pi/RTC3.sh

RTCM3.sh

#!/bin/sh

timeout 3600s /home/pi/myRTK/RTKLIB/app/str2str/gcc/str2str -out file:///mnt/hdd11/’date +%s’.rtcm3 > /home/pi/crontab-error.log > /del/null 2>&1

としました。 str2sgtrのある場所は各自変更してください。

これで正時になれば記録がはじまります。

RTCM3をubxに変更

RTCM3は消費する容量が少ないのでいいのですが、いつも使っているubxでデータを保存したいと思い変更することにしました。

str2str2.serviceの変更はありませんが、str2str2.shを変更します。

srt2str2.sh の変更

#!/bin/sh

/home/pi/myRTKLIB/RTKLIB/app/str2str/gcc/str2str -in serial://ttyACM0:115200#ubx -out tcpsvr://localhost:52001

SCRTM3.shの変更 

これはRTCM3.sh –>UBX.shなどに変更したほうが良いと思います。

$ crontab -e

として

0**** /home/pi/UBX.sh

UBX.sh

#!/bin/sh

timeout 3600s /home/pi/myRTK/RTKLIB/app/str2str/gcc/str2str -out file:///mnt/hdd11/’date +%s’.ubx > /home/pi/crontab-error.log > /dev/null 2>&1

c94-M8Pの設定

RTCM3での配信

Base になるM8Pの設定です。

UBX-CFG-TMODE3の設定

 Fixed Position mode — 自宅のBaseは固定なのでFixとしました。

UBX-CFG-PRT

 UART1を通してroverへデータを流す必要があれば

 Target : UART1

  in : nono

  out : RTCM3

  Baudrate :19200

必要がなければ設定なし

UBX-CFG-MSG

 RTCM3のメッセージの設定

  F5-05 RTCM3.2 1005 : UART ON 1,  USB ON 1

  F5-4D RTCM3.2 1077 : UART ON 1, USB ON 1

  F5-7F RTCM3.2 1127 : UART ON 1, USB ON 1

其々 UARTとUSBにチェックを入れてsendします。USBにチェックを入れることでRaspberry piのUSBポートでデータを受け取ることができ、ネットに配信することができるようです。

configure view でdevices 全てを選択して

save current  configuration にチェック

send します。

ubxの設定

UBX-CFG-GNSS

GPS,  BeiDou,  QZSSのConfigure とEnable,  Signalsに其々チェックをいれてSend

USB-CFG-MSG

02-13 RXM-SFRBX : USB ON にチェック send

02-15 RXM-RAWX : USB ON にチェック send

USB-CFG-CFG

Devicesを全て選択して Save current configuration にチェックして send

おわりに

これでデータの保存は時間毎に行われます。

15520xxxxx.ubx

この保存されたデータを

rtkconv とrtkpostを使って、例えば近くの電子基準点のデータを使って自局の位置を校正できます。

実際にやってみましたが、思ったよりもFix率は良くて90%以上でした。

と同時にrtknaviを使ってリアルタイムで観測することもできます。

コメント