1-4 センシング
1-4-1 画像センサー
ROSは、主要なセンサーの出力の定義を.msgのメッセージファイルであらかじめ規定しています。これにより、画像センサーであれば、それがたとえ
あんなカメラやこんなカメラやどんなカメラであろうとも同じインタフェースで扱える、という夢のような仕組みになってるという、まあ皆さんよくご承知の通り。
画像センサーから得られる画像を表すメッセージsensor_msgs/Image.msgは以下のように定義されてる、と。
std_msgs/Header header # タイムスタンプや親座標系名など unit32 height # 画像の高さ方向のピクセル数 uint32 width # 画像の横方向のピクセル数 string encoding # エンコーディング形式 uint8 is_bigendian # dataがビッグエンディアン並び順かどうか uint32 step # 1ピクセルあたりのバイト幅 uint8[] data # 画像のバイト列
std_msgs/Headerには座標系情報が格納されてる。ROSで座標系といえばtf。という話が出てきたけどtfについてはサラッと触れたくらいで終わり。また後でtf出てくる?出てこない?
さて、ここでUVCカメラ使って何かやるみたい。「UVCってなに?」についてはこちらを参照。 www.argocorp.com
さて、以下をインストール。
$ sudo apt install ros-$ROS_DISTRO-uvc-camera ros-$ROS_DISTRO-rqt-image-view
WebカメラをPCに接続し、uvc_camera_nodeを実行してみましょう。
そのへんに転がってたUSBカメラを指して、
$ ls /dev/video* ls: cannot access '/dev/video*': No such file or directory
えっ?見つからないよ!どゆこと?
$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
なーい。
以前に書いた通り、WSL上にUbuntu 18.04入れてROS1入れて遊んでるわけだが、 hidefumii.hateblo.jp
どうやらWSLだとUSBデバイスの認識に問題があるらしい。 learn.microsoft.com
うぬー。進まない!
でもキリが悪いので今日はここまで。WSL-USB問題は明日なんとかする。寝る!