こんにちは
さて今回は トラ技 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°以内に合わせたつもりですが、少しアンテナが動いたようです。
コメント