[blog 日々のこと] TouchRTKStationを作ってみた

こんにちは

さて今回は トラ技 2019.02月で紹介されていたTouchRTKStationについてです。
この記事がトラ技で紹介される前ににネット上で紹介されていたのを見ていて面白そうなので何時かは作ってみたいと思っていました。

トラ技の記事の通りにすればケース以外はほとんど問題なく作ることができました。
ケースは3Dプリンタがないので仕方ないですが。あれば色んな物が作れるのかな。
使用した機材などは以下の通りです。

機材

Raspberry Pi 3 B+
Raspberry Pi Zero W
Waveshare 3.5inch_RPi (B)
C94-M8P-4
TW3740(40dB)

Raspberry Pi 3 B+とRaspbianとTouchRTKStation

記事の通りにダウンロードすることが出来ました。

Raspbianは本家から持ってくると大変時間がかかりますので、日本のミラーサイトから持ってくるほうが早いです。
例えば FTP.JAIST.AC.JP
最初のページの下の方にIndex of / pubがありますのでそこから入ります。
pub → raspberrypi → raspbian → images
必要なバージョンのzipファイルをダウンロードします。

RaspBerry Pi 3 B+ で動いたので、ためにしZero Wを使って見ることに。TouchRTKStationが動作しているRaspberry Pi 3 B+で使用していたSDカードをそのままZero Wに挿入して立ち上げたところ、なんの問題もなく立ち上がりました。
なお一度だけLogin とpasswordを入れただけであとは電源ONで立ち上がります。

このTouchRTKStationは電源のON/OFFが出来ないのでいずれは電源SWを取り付けようかと思っています。

問題としては外部のUSBメモリが認識(/media/pi/xxx/で内容を確認)されているのですが、TouchRTKStationのSoultionとLogの保存場所がデフォルトのままになっています。
python3上で簡単な(glob.glob(‘/media/pi/xxx/’))などを含むプログラムを書いて実行させるとディレクトリ名が出てくるのですが、なぜだかpython3 TouchRTKStation.pyが走るタイミングが悪いのか /home/pi/TouchRTKStation/ のままになっています。
これは外部のUSBメモリがない場合のデフォルトです。
もちろん手動にて書き換えればUSBメモリに保存することはできますが、キーボードを接続しないといけないので現場ではね。

タッチスクリーン

タッチスクリーンはWaveshare 3.5inch_RPi_LCD (B)を使用しました。
このLCDはネットラジオを作るために集めた機材の一つで(A)はpiCorePlayerに使ってあります。 つまり余りものだったのですが、ここで利用出来るとは思ってもみませんでした。

ケース

どうしょうか悩んでいます。

電源

電源は普通のポータブルタイプの電源(10000mA/h)が手元にあったのでこれを使用しています。出力は2つあって5V-1Aと5V-2.1A用です。
問題なく動作します。 5V-2.1Aの出力でRaspi 3 B+が5時間程度使えました。

Fix解が得られるまでの時間

Kinematicで20分以上かかることも、StaticではKinematicでfix解が得られていればすぐにFix解がえられるようです。
TouchRTKStationで得られたSolutionとLogのデータから
kinematic で19分ほど。場合によっては30分かかることも
staticで6分、
これはKinematicでFix解が得られたあとにStaticでデータを取得した場合で、最初からStaticの場合はもっと時間がかかるようです。Fix解が得られないこともあるかも。

kinematic.confとstatic.confのパラメータを調整すれば早くなるのかな?

pos1-posmode =static # (0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp-static,8:ppp-fixed)

static.conf
pos1-frequency =l1 # (1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l5)
pos1-soltype =forward # (0:forward,1:backward,2:combined)
pos1-elmask =15 # (deg)
pos1-snrmask_r =on # (0:off,1:on)
pos1-snrmask_b =on # (0:off,1:on)
pos1-snrmask_L1 =35,35,35,35,35,35,35,35,35
pos1-snrmask_L2 =0,0,0,0,0,0,0,0,0
pos1-snrmask_L5 =0,0,0,0,0,0,0,0,0

pos1-snmask_r とpos1-snmask_bをoffにするとpos1-snmask_L1の設定を使わないようになるので、場合によってはFix解を得るまでの時間が短縮されることがありました。

外部との接続はWifiになっているため、自宅からそう遠く離れることはできません。
自宅のリファレンス局のデータをどうやって送るかが問題ですね。

手元にC94-M8Pがあるのでこれを使ってデータを送ってみたいと思います。

C94-M8Pを使ったBaseのデータ配信

 

C94-M8Pの一つをBaseに、もう一方をRoverにしました。

写真はRoverです。

Roverのシリアル出力(9pin)にはSerial(9pin)-USBの変換ケーブルを使用してTouchRTKStationのUSBハブに接続しました。

USBハブの白いUSBケーブルが変換ケーブルです。

Raspberry Pi Zero WはUSBポートが一つなのでUSBハブを使ってあります。ハブには外部から電源を供給しました。
USBハブにはそれ以外にキーボード、USBメモリ、C94-M8Pへの電源供給を兼ねてUSBを接続。 なおRaspberry Pi Zero Wには別に電源を供給しました。

C94-M8Pのセットアップ

今回使用したC94-M8Pの設定について簡単に説明します。

Base

BaseにはRTCM3の設定とPortの設定を以下のようにしました。

RTCM3

RTCM3の設定は

1005, 1077, 1127を設定しましたがUART1のみチェックしました。

Port

Portの設定は以下の通りにしました。

USB

UART1

Rover

RoverのPortの設定は以下のようにしました。

Port

USB

UART1

UART1は入力にRTCM3を又出力もRTCM3を設定してあります。

TouchRTKStationのセットアップ

画面からRoverを選択
RTk(Kinematic)を選択

Configを選択

input はデフォルトでもいいようです。
port : ttyACM0
Bit Rate 115200

Correction1

ここはBaseからのデータをNTRIP Client若しくはTCP Clientで受けるために設定するところです。
今回はここはEnableのチェックを外しました。

Correction2

ここもCorrection1と同様ですが、Portなどの設定が出来るのでここを使用します。

Enable にチェック
Port : ttyUSB0
Format : RTCM3
Bit Rate : 19200
に設定してApplyをクリック

Solution

Enable にチェック
Out Put Filename: /media/pi/xxxx/に変更して Apply

Log

Enable にチェック
Out Put Filename: /media/pi/xxxx/に変更して Apply

BasePos

Base Position Type : RTCMに変更して Apply

最後に Closeをクリック

いよいよ

Start

Sol:FLOATになっていますが、しばらくしたらFIXになりました。

RoverとBaseは40cm程しか離れていません。

RTKPlotを使って結果を見ることが出来ます。
RTKPlotを立ち上げて

File → Connecion Setting をクリック

Stream Type: TCP Clent
Opt をクリック

Server Address : 192.168.100.18 これはRaspberry Pi Zoro WのIP Addressとなります。

Port: 52001

画面の左端と[1]をクリックすると表示が現われます。

ついでなので

Centerを挟んでNとS側にアンテナがあるので、それぞれにTouchRTKStationでデータを取得しPositionデータをRTKPLOTで表示させてみました。

N-S間は凡そ88cm程度になっています。

アンテナをN-Sを±2°以内に合わせたつもりですが、少しアンテナが動いたようです。

コメント