ラズパイ4(Ubuntu mate) に SikuliXを入れてRPAする方法 (2020年9月版)

ラズパイ4にSikuliXを入れるインストール手順をステップバイステップでまとめましたので、ご参照ください。

先に結論から。

2020年9月時点で、RaspberryPiにSikuliを入れた方法。

1.Raspberry Pi OSは諦めて、Ubuntu mateの64bit版OSを使う。
2.下記コマンドを順に実行。

sudo apt install libopencv4.2-java openjdk-11-jre-headless
sudo ln -s libopencv_java420.so libopencv_java.so

3.SikuliXのダウンロードサイトから、SikuliX本体とJythonをダウンロード(同じフォルダに入れておく)
  https://raiman.github.io/SikuliX1/downloads.html
4.一度 起動させてみる。 >java -jar sikulixide-2.0.4.jar
5.上記でlibJXGrabKey.soのarm64版がないから起動に失敗したって言うエラーが出るはずなので、下記で該当モジュールを入れる。

sudo apt-get install libjxgrabkey-jni
mv /home/pi/.Sikulix/SikulixLibs/libJXGrabKey.so /home/pi/.Sikulix/SikulixLibs/libJXGrabKey.so_org
sudo ln -s /usr/lib/aarch64-linux-gnu/jni/libJXGrabKey.so /home/pi/.Sikulix/SikulixLibs/libJXGrabKey.so

  (ユーザ名:piは適宜読み替えてください)

6.改めて起動 (java -jar sikulixide-2.0.4.jar) するとうまく動きます。

解説。

32bit版 RaspberryPi OS / RaspbianにSikuliXを入れられなかった理由。

SikuliXはバージョン1.0.4以降は64BitOSのみサポートになってしまい、32bitOSである普通のRaspberry Pi OS/Raspbianでは最新版はインストールできません。
そこで、最初は32bit対応しているバージョン1.0.1〜1.0.3までのインストールを試したのですが、必要なライブラリが古すぎるらしく、既にaptでは取得できません。(3つくらいソースからBuild必要で、一旦保留)

64bit版 RaspberryPi OSにSikuliXを入れられなかった理由。

では、Preview版の64bit Raspberry Pi OSがあるじゃないか、と思って飛びついたのですが、これも失敗してます。
SikuliXが必要としているOpenCVのバージョンが4系なのですが、aptで取れるOpenCVの最新バージョンが320なのです。
試しにこの組み合わせで起動しようとしましたが、無事失敗しました。
多分、自分でBuildすれば良いんでしょうけれど、結構な時間がかかりそうなので、これも一旦保留。

Ubuntu mateにした理由

64bit系のディストリビュータは複数あるし、特にUbuntu Serverにデスクトップを入れるのと迷ったのですが、インストール楽そうなのでmateにしました。
多分、他のディストリビュータを選んでもうまくインストールできる可能性は高いと思います。

ラズパイでSikuliXをまともに動かすパフォーマンスは出るのか?

条件付きで使えます。
SikuliXは提示された画像(や文字)と類似する画像が画面上の指定領域にあるかどうか、で動作します。
特に指定領域regionを決めずにfindやexistsをかけると画面全体から探してしまうので、相当CPU食ってしまい使い物になりません。
指定領域も提示画像もなるべく小さくすることがコツのようです。

補足 OS変えたら動作早くなりました

タイトルそのまんまなのですが、体感速度は随分違います。
ちょっと重たい作業した時の感じを某メンバーで例えると
 32bit : ちょっ、ちょ待てよ〜〜、待てって。 くらいですが、
 64bit : ちょまっ くらいになります。
全くの蛇足でしたが、試した方には分かってもらえるんじゃないかなぁ・・・。

長くなりましたが、この辺りで。
色々悩んで3日も使ってしまったので、どなたかの役に立つと良いのですが・・・。

ぼのかば

最初にプログラムしたのは相撲ロボット用のZ80アセンブリ(Aki-80)。
以後,PICアセンブリ>PIC C と渡り歩く。

好きなICのタイプは8pinDIP。

一応、電気科卒
*ブログ内の情報はMacOSX上での操作に基づきます。

Raspberry pi
PICを少々。