USBカメラセッティング 1 - デバイスの命名

GW 中に LSD SLAM を理解すべく,ガリ勉してなんとなく全体像は見えるようになったけど,到底手が入れられるレベルにはならず....このままだとロボット作成にめどがつかないとおもい...まずは簡単なところから手を動かして作業を始めることにしました.ということで,まずはカメラの ROS への取り込み.デバイスの名前を固定します.

1. 使用したいカメラを USB に接続する.

 兎にも角にも,使用したいデバイスを USB 接続します.この時,接続した HW の情報を確認する必要がありますが,"dmesg" コマンドを実行して必要な情報を抜き取ります.

以下,dmesg 実行時の情報.

[ 2049.485254] usb 3-3: USB disconnect, device number 3
[ 2075.682850] usb 3-3: new high-speed USB device number 5 using xhci_hcd
[ 2075.700782] usb 3-3: New USB device found, idVendor=199e, idProduct=8455
[ 2075.700792] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2075.700797] usb 3-3: Product: DFK 23UM021
[ 2075.700801] usb 3-3: Manufacturer: The Imaging Source Europe GmbH
[ 2075.700804] usb 3-3: SerialNumber: xxxxxxxx
[ 2075.701511] uvcvideo: Unknown video format 47425247-0000-0010-8000-00aa00389b71
[ 2075.701527] uvcvideo: Found UVC 1.10 device DFK 23UM021 (199e:8455)

2. 使用するカメラのデバイス名の固定化

 通常,OpenCV や ROS で Image を取得する際には,デバイス名を指定する必要があります.この名前はデフォルトでは固定化されておらず,/dev/video0,/dev/video1 と言った形で接続した順番とうに依存して変わってしまいます.これでは困るので,ハードウェア枚にこの名前を固定してします.

変更するファイルは,"/etc/udev/rules.d/70-usb.rules" です.(名前は異なってもいいはずです.)
上記ファイルに,1 で取得したハードウェア固有の情報を記述していきます.

KERNEL=="video[0-9]*", MODE="0666", ATTRS{serial}=="xxxxxxx", SYMLINK+="videoRightImgSrc"

3. USB デバイスの抜き差し

 上記ファイルをセーブし,対象となる USB デバイスを抜き差しすれば,指定した名前でハードウェアが認識されているはずです.確認する方法は,"cd /dev" で dev フォルダに移動して,ls を実行して登録した名前のハードウェアがあれば完了です.