こんにちは
今回もまとまった記事ではありませんが、以前投稿したMatlabの記事について「RTCM3の保存について」のコメントが寄せられました。 それまでGNSSのリアルデータは扱っていたのですが、保存まではまったく考えてもいませんでした。 そこで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を使ってリアルタイムで観測することもできます。
コメント