Cameraの取り扱い
Trilobiteの特長はステレオカメラにあります。ここではカメラの取扱について学びます。
- ステレオカメラ
Trilobiteの前身である OMG-01(Cyclop-Scorpion)は普通のWeb-Cameraでした。これは単眼カメラになり、Cyclop-〜の由来になります。ただ、通常のWeb-Cameraは一般的なPCの消費者向けのデザインであり、ロボへの搭載に関して難がありました。
更にAI絡みのアプリケーションを考えると、通常の単眼カメラは分が悪くなります。もちろん、RealSenseの様なインテリジェントカメラの搭載も考えましたが、これらの高機能はハードウェアで実現されています。逆に言えば、機能が固定化されているとも言えます。RasPi4が発売されたようにソフトウェア処理ならば、ホストの進化に合わせてスケーリングが期待できます。と言うことで今回利用するカメラはUSBで接続されるステレオカメラになります。 Trilobiteはリファレンスとして、以下のカメラを使います。 - カメラの接続確認
ROSが動作しているLinuxシステムでは、UVCもデバイスファイルとして取り扱われます。以下のコマンドで確認します。
12$ ls /dev/video*/dev/video0 - 関連ソフトウェアのインストール
カメラの取り扱いに必要ないくつかのソフトをインストールします。
123$ sudo apt-get install ros-kinetic-cv-bridge$ sudo apt-get install ros-kinetic-cv-camera$ sudo atp-get install ros-kinetic-image-transport-plugins次にwebでカメラを取り扱うためのサーバをインストールします。
1$ sudo apt-get install ros-kinetic-web-video-server - 動作確認
- roscoreの立ち上げ
12345678$ roscore... logging to /home/ooo/.ros/log/a966883c-b184-11e9-8bd5-b827eb6eac12/roslaunch-ooo-ros-1772.logChecking log directory for disk usage. This may take awhile.Press Ctrl-C to interruptDone checking log file disk usage. Usage is <1GB.started roslaunch server http://127.0.0.1:38245/ros_comm version 1.12.14
- cv_cameraノードの立ち上げ
12345$ rosrun cv_camera cv_camera_node[ INFO] [1564352253.866671728]: using default calibration URL[ INFO] [1564352253.867581670]: camera calibration URL: file:///home/ooo/.ros/camera_info/camera.yaml[ INFO] [1564352253.868640048]: Unable to open camera calibration file [/home/ooo/.ros/camera_info/camera.yaml][ WARN] [1564352253.869044420]: Camera calibration file /home/ooo/.ros/camera_info/camera.yaml not found.
- video serverの立ち上げ
123$ rosrun web_video_server web_video_server _port:=10000[ INFO] [1564352239.180213448]: Waiting For connections on 0.0.0.0:10000[ INFO] [1564352357.647871516]: Handling Request: /stream?topic=/cv_camera/image_raw
- web serverでの確認
Web-browserから以下のURLを指定して、ストリーミングを確認します。
1http://<ロボのIPアドレス>:10000/stream?topic=/cv_camera/image_raw
- roscoreの立ち上げ
- 参考文献