AIロボよりもCOVID-19が雇用崩壊人手不足解消に大活躍している今日この頃。
今日もヤバいイカれた(特に金に飢えた氷河期世代)優秀な人たちが業務にAIを結びつけて雇用崩壊を企んでいます生産性UPに貢献しています。
同じ商品を製造している大企業の工場内はすでにほぼ無人です。
また、電気自動車製造ラインもほぼ無人です。
トヨタ県にいる期間労働者の方々のゲームオーバーは近いのでベーシックインカムあるいは連続給付金くれくれ運動の準備をしてください。
さて現在、工場では主に産業用カメラを使用し、画像入力が行われています。
そして、もしカメラとロボットをコネクションするのであればROSのようなミドルウェアが必要になるかもしれません。
産業用カメラ(GigE Vision Camera)とROSをつなげるプロジェクトとして、camera_aravis
GitHub - ssafarik/camera_aravis: ROS Camera Driver for GigE Cameras
というものがあります。
camera_aravis for ROS2
ROS2はより業務に導入しやすいようになりました。
そのROS2バージョンがなかったので、
とりあえず、α ver作成。
環境
Ubuntu 20.04
ROS2 Rolling Ridley
Prerequisite
GigE Vision用のドライバの一つ Aravis(オープンソースプロジェクト)をインストール
$ sudo apt install aravis-tools
Viewerの起動
$ arv-viewer
Viewerを起動すると、現在接続可能な
Vendor Name, Model, Serial(GuID)を確認することができます。
上の画像は 私が持っている非実用的な中国の安物GigE Vision カメラを接続したときの画像です。
Vendor:MindVision Model:GE500C Serial:057031310037
このとき、Aravisの場合cameraを
インスタンス化するとき(arv_camera_new)の引数nameは"MindVision-057031310037"となります。
なぜ作成者はこのような引数nameにしたのだろうか...。
実行
$ ./camnode [VendorName]-[Serial]
例
$ ./camnode MindVision-057031310037
今後のタスク
リファクタリングは暇人に任せた。
ゆくゆくはGenTL Producer(CoaXPress USB3 GigEVisionカメラの共通インターフェース)に対応させたものを作ろう。
また、産業用カメラのPythonライブラリ
GitHub - genicam/harvesters: 🌈 Friendly Image Acquisition Library for Computer Vision People
もあるのでrclpyを使って画像データをパブリッシュするのも面白いかもしれない。