SpotMicro(mini) その12 ーROSでの画像通信ー [ROBOT]
SpotMicroの機体に乗せるソフトウェアを公開していただける人たちのブログ(githubなんかも)を見ると、動くところに命を懸けている。
まあ、動かいないといけないからそれはそうなんだけど。
で、動かすことはちょっと忘れて、オンボードカメラから映像を飛ばすというのをやってみることにした。
基本的な構成としては、SpotMicroの上のRaspberry Pi Zero に接続されたRASPICAMERAから映像を取り出し、ROSのメッセージに流し、それを別のコンピュータで受信して表示するという言うもの。
の、さらに、習作。
ROSとOpenCVはすごく相性が良く、また、OpevCVで取り込んだイメージをROSのメッセージに変換する”cv_bridge"とか、イメージを送受信する"image_transport"とか、豊富なイメージの取り扱いが容易にできる。
はずだった。
ROSのバージョンはMELODICを使ったが、これは基本的には、RaspiOSではサポートされていない(実際には、有志によるインストールスクリプトなんかがあり、それをつかえば簡単にインストールできる)。
発生した問題点という壁は、以下のようなものだった。
image_pubとimage_subでこの画像の受け渡しを行うことが可能になる。
後は受け取った画像を。。。。。
まあ、動かいないといけないからそれはそうなんだけど。
で、動かすことはちょっと忘れて、オンボードカメラから映像を飛ばすというのをやってみることにした。
基本的な構成としては、SpotMicroの上のRaspberry Pi Zero に接続されたRASPICAMERAから映像を取り出し、ROSのメッセージに流し、それを別のコンピュータで受信して表示するという言うもの。
の、さらに、習作。
ROSとOpenCVはすごく相性が良く、また、OpevCVで取り込んだイメージをROSのメッセージに変換する”cv_bridge"とか、イメージを送受信する"image_transport"とか、豊富なイメージの取り扱いが容易にできる。
はずだった。
ROSのバージョンはMELODICを使ったが、これは基本的には、RaspiOSではサポートされていない(実際には、有志によるインストールスクリプトなんかがあり、それをつかえば簡単にインストールできる)。
発生した問題点という壁は、以下のようなものだった。
壁 | 詳細 |
コンパイルがうまくいかない | ROSのコンパイルはCatkinエコシステムっていうのでやるらしいが、基本的にはCMAKEをつかってコンパイルをする。この時CMakeList.txtを正しく設定しないといけないんだけど、利用した、cv_bridge,image_trans_port は、OpenCVを利用するわけだけど、それらをCMakeList,.txtに正しく設定しないといけない。findPackage,add_excutable,add_libraryを設定する。この時add_libraryは、リンク情報を書くわけではないらしい。 |
ライブラリが不足してリンクが完成しない | 今回ROS ROS本体や、cv_bridge等は、RASPI上で動くバイナリを持ってきて動かすtことにしたが、ROS ROSは基本的にCMAKEを基本として動いている。CMAKEは、パッケージに必要なインクルードファイルや、ライブラリの配置位置をファイルから得られるような機構を持っていて特定のディレクトリにそのファイルを置く。そこにあることを前提としてmakeが行われるが、CMAKEが期待する方法でで季節にインストールしたOpenCVでないとうまくいかない。といっても普通にコンパイルすればいいみたいだけど。/td> |
image_pubとimage_subでこの画像の受け渡しを行うことが可能になる。
後は受け取った画像を。。。。。
タグ:SpotMicro