Raspberry-Piで OpenCV を使ったロボットを作ろうと、 簡単なデモプログラムの作成のお遊び中。
rootとGtk+が相性悪い
処理結果を表示しながらWiringPiでモータを動かそうとするけど、 /sys を使った制御はまどろっこしそうなので、wiringPiは、 C言語 API を呼び出すようにしてみた。 しかし、このプログラムを動かすには root が必要となる。
んで、OpenCV の結果を cvShowImage() で表示させながら、 WiringPiを使おうとすると、 「Gtk+ では root や setuid,setgid したプログラムはダメ!!」 という表示がでて動かない。
当初は、ロボット動かすときにOpenCV処理結果を Raspberry Pi から ssh でポートフォワードしたホストに表示させながら 動かすつもりだった。 でも、ssh+portforward の処理が重そうだし、/sys 経由の 制御に変更も面倒だし、ひとまずは必要最小限の情報を console に流して動かすことにしよう…
画像の取込み速度
ちなみに、uv4l(320×240)で ssh ポートフォワードで、カメラ情報を何もせず表示するだけで、 1[frame/sec] 程度であった。 あまりに遅いし、画像表示処理を抜いたら、uv4l(160×120)で5[frame/sec]程度であった。 これなら、簡単なライントレースは十分動くだろう。