マジョカアイリス ハック その3
作業再開
4月の異動で引っ越し等いろいろバタバタして手をつけられてなかったマジョカアイリス ハックを再開。
ここまで、Raspberry Pi Zero(32bit版 Rasbperry Pi OS Lite)にマジョカアイリスLCD の ラズパイ用 mod ドライバ(fbtft)を導入、ROS2もインストールしてベースは整ったので、アプリ側の方をいろいろ調べてみる。
前回は動作確認はfbtestを使ったが、fbtftのサンプルプログラムをまだ動かしてなかったので、今回はそれを試す。
fbtftのサンプルプログラム
fbtftのサンプルプログラムとしてPythonで書かれたものが2つが提供されていた。
これらを動かすためのPython環境を構築する。
Python環境構築
ここまででPython3は既に導入されているが、pip3が未導入だったのでインストール。
$ sudo apt install python3-pip
まずは、test_sushi.pyを動かすために、PILをpip3で導入。
$ sudo pip install pillow
それ以外にも、画像フォーマット関連で以下の2つのライブラリを導入
$ sudo apt install libopenjp2-7 libtiff5
これでまずはスシが表示された。
OpenCV環境の構築
OpenCVをインストールした後にPythonに紐づけるのは手間がかかるとのことで、pipで導入。
$ pip3 install opencv-python
その後、test_opencv.pyを起動すると依存ライブラリのエラーが多数でるので、調べながら一個一個導入。
調査の中で以下の記事を見つけたのでいくつか参考にさせてもらった。
まとめるとこんな感じ
$ sudo apt install libilmbase23 libopenexr23 libavcodec-extra58 libavformat58 libswscale5 libgtk-3-0 libatlas-base-dev
test_opencv.pyの起動
起動の前にカメラを接続し、raspi-configでカメラを有効化。
その後、test_opencv.pyを起動すると、画面にキャプチャー画像が表示される。
が、
Traceback (most recent call last): File "test_opencv.py", line 61, in <module> cv2.imshow('frame',frame) cv2.error: OpenCV(4.5.1) /tmp/pip-wheel-qd18ncao/opencv-python/opencv/modules/highgui/src/window_gtk.cpp:624: error: (-2:Unspecified error) Can't initialize GTK backend in function 'cvInitSystem'
となって、プログラムが終了する。
Rasbperry Pi OS LiteはGUIのないHeadless環境なので、そりゃエラーになるね。ので、ソースコードの以下の3行をコメントアウト。
# cv2.imshow('frame',frame) # if cv2.waitKey(1) & 0xFF == ord('q'): # break
さて、次はいよいよROS2のコードを書くとしよう。