[blog-日々のこと] Raspberry Piでrtklib_2.4.3をqmakeする

こんにちは

少し前にubuntu 16.04にrtklib_2.4.3をインストールして動作するようになったことは報告しました。

今回は、Raspberry PiにQt 5.7.1とQt Creatorをインストールしたので、これを使ってrtklib_2.4.3を動かすことにチャレンジしました。

何故にこんなことをするのかと言いますと、トラ技2019.2月号で紹介されていたTouchRTKSationのデータをネットに接続したパソコン上で表示させることが出来ます。つまりrtkplotを使うわけですが。

今回のチャレンジはRaspberry Pi上でそれを表示させるというものです。そうすれば現場にパソコンをもっていく必要がなくなるので少し楽になるかと。

RTKLIB_2.4.3のインストール

RTKLIBはubuntu 16.04にインストールした方法と同様のことをRaspberry Piで行います。

rtklib_2.4.3は以下のところからダウンロードします。私の場合はzipファイルをDownloadsにもってきて、そこで解凍しインストール作業に入りました。

JensReimann/RTKLIB

rtklib_2.4.3の中でqmake

ubuntu 16.04で経験したのですが、Qt Creatorを塚てqmakeするとエラーに出くわしてしまいました。

そこでRaspberry Piでもubuntu 16.04で行った方法でqmakeすることにしました。

qmakeの方法は以下のところで紹介されています。

Debian(ubuntu,raspberrypi)下编译安装rtklib_qt

$ cd ~/Downloads/RTKLIB-rtklib_2.4.3

この中のappの中にあるapp.proを修正します。つまりvideo関係を消去しました。

TEMPLATE = subdirs
SUBDIRS= rtknavi_qt \
rtkget_qt \
rtkplot_qt \
rtklaunch_qt \
srctblbrows_qt \
strsvr_qt \
rtkconv_qt

qmake

$ cd ~/Downloads/RTKLIV-rtklib_2.4.3

qmake は

qmake -recursive RTKLib.pro

としてapp.proに書かれているxxxx_qtを全てをmakeする準備です。

するとエラーになりました。どうも serialportのモジュールが無いようです。

不足しているモジュールを以下のようにインストールします。

$ sudo apt install libqt5serialport5-dev

これでもう一度

$ qmake -recursive RTKLib.pro

$ make

と進みます。 makeが終わるまで45分ほど時間がかかります。今のところ数回qmakeしていますが、エラーなどで途中で止まったということはありませんでした。 makeに長い時間がかかるので、エラーなどで止まってしまうと本当にいやなんですよね。(何度も経験しました)

動作確認

$ cd ~/Downloads/RTKLIB-rtklib_2.4.3/app/rtkplot_qt

の中にrtkplot_qtが出来ていますので

$ /home/pi/Downloads/RTKLIB-rtklib_2.4.3/app/rtkplot_qt/rtkplot_qt

で実行できると思います。

 画面ほぼ一杯に表示されましたが、Raspberry Pi 3 B+の上で動作しています。

TouchRTKStationのインストール

トラ技 2019.2 月号の記事の通りにすればインストールできます。

ちょっといやなのですが、LCDが接続されていないと立ち上がりません。これに気が付くまでに相当時間を取られてしまいました。テスト用としてpiCorePlayerで使用していた3.5inchのLCDを外して使っています。

インストールが終わると自動的にrebootし、LCDに表示が現われます。

これではテストするためには画面が小さいので外部からsshなどでloginして設定をLCD-hdmiに変更します。

再びrebootして今度はhdmiの表示に代わります。なおLCD側の表示は消えています。

$ python3 /home/pi/TouchRTKStation/TouchRTKStation.py

で起動するとhdmi画面いっぱいにTouchRTKStationが表示されます。 終了はALT+F4です。

TouchRTKStationの画面をFullから縮小

TouchRTKStation.pyの中を修正します。

修正する箇所は以下の部分で赤字が修正したものです。

   # Initialization

    def initUI(self):
        .
        .
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setGeometry(0, 0, 440, 280) # For debug
       # self.showFullScreen()
        self.show()

pymap3dのインストール

これは私が新しく追加したものです。当初のTouchRTKStation.pyには使われていません。

このファイルは以下のサイトにあります。

scivision/pymap3d

zipでもgit cloneでも可能ですが、

$ sudo pip3 install pymap3d

が簡単かもしれません。 sudoを付けるのを忘れずに

最新版のTouchRTKStation

オリジナルのTouchRTKStationのプログラムを眺めて1週間。Qt、PyQt5は一度も触れたことがありません。pythonだけはほんの少し勉強は始めたばかりでまったくの素人です。

どこに手を入れればどうなるかなどと予想しながら修正を繰り返しました。

適当に作ったので見栄えはあまりよくありませんが。

適当にOtherという名をつけてパネルを追加しました。

このOtherのパネルに電源をOFFするためのパネルとrtkplot_qtを走らせるパネルを追加しました。電源スイッチがないので、ソフトでshutdownすることにしました。電源のONは電源供給時です。

rtkplot_qtのOFFはrtkplot_qt stopをクリックすれば止まりますが、少し気になる点があります。

TouchRTKStation.pyを走らせてみると

rtkplot_qtを走らせてみました。

3.5inch のLCDに表示させるために、表示を小さくしましたがレンジの表示が5mであまり小さな表示になりません。 2mの表示までには出来たのですが、どうしたらそうなったのかよくわかりません?どうすればいいのか調べているのですが?

なおrtkplot_qtはlocalhost:52001で接続しています。緑色はFix解が得られているときのものです。

なおレンジの変更はマウスでできるのですが、現場にもっていくのはちょっと というきがしています。

ということで一部未完の状態ですが、現場にパソコンをもっていく必要がなくなりました。

なおrtknave_qtなども動作するので現場で使えそうですが、画面が小さいためメリットはないかも。

この改造についてはプログラムの修正も含めて別途紹介したいと考えています。

なおTouchRTKStation.pyとrtkplot_qtの2つのプログラムを走らせると

Raspberry Pi 3 B —25%程度

Raspberry Pi Zero W —70~100%

となります。

でもRaspberry Pi Zeroでも使えるのはうれしいですね。価格も安いので。

コメント