cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

SVOをWindows上のVirtualBoxのUbuntuで動かす(その2:カメラ編)

SVO_ROSでUSBカメラを使えるように設定します。とりあえず使うカメラはその辺に転がっていたLogicoolのHD C270です。

1.WEBCAMUbuntuで使えるようにする

VirtualBox上でUbuntuにカメラを認識させるために、VirtualBoxのメニューのデバイス→ウェブカメラ→Logicool HD Webcam C270にチェックを入れます。

カメラが正しく動作するかどうかを確認するために、Cheeseか何か適当なソフトで調べておきます。

sudo apt-get install cheese

cheeseで起動して、カメラの画が表示されればOKとして次に行きます。

 

2.WEBCAMをROSで使えるようにする

ROSのカメラドライバはたくさん乱立してしまっていて、何がどういいのかよくわかりません。

おそらく一番メジャーなものは、

uvc_camera: http://wiki.ros.org/uvc_camera

なんだけど、C270だとちゃんと動いてくれませんでした。参考までにインストール方法は、

sudo apt-get install ros-hydro-camera-umd

です。動作の確認方法は、

rosrun uvc_camera uvc_camera_node
rosrun image_view image_view image:=/image_raw

です。適当にためして動きそうなのは、

http://ros-robot.blogspot.jp/2013/12/usbros-cvcamera.html

で紹介されている

cv_camera

でした。インストール方法は、

sudo apt-get install ros-hydro-cv-camera

で、動作の確認方法は、

rosrun cv_camera cv_camera_node

rosrun image_view image_view image:=/cv_camera/image_raw

 です。画面サイズの設定方法とかよくわかりませんが、とりあえず動かすことだけを目標に先に進めます。

 

3.SVOをカメラで動かしてみる(キャリブしてないので、ちゃんとじゃなしに、とりあえず)

Run SVO on a live camera stream

を見ながら進めます。

cd ~/catkin_ws/src/rpg_svo/svo_ros/launch

nano live.launch

でカメラに関するros topicの指定を書き換えます。

camera/image_rawが標準のデバイスとして指定されていますので、cv_cameraに変えます。

<param name="cam_topic" value="/camera/image_raw" type="str" />

<param name="cam_topic" value="/cv_camera/image_raw" type="str" />

これで実行すると、画像サイズがカメラキャリブレーションファイルの指定のものと、cv_cameraで出力しているサイズが異なるために、エラーで落ちます。

動作テストのために、かなり強引にカメラキャリブレーションファイルを書き換えます。

cd /catkin_ws/src/rpg_svo/svo_ros/param

nano camera_atan.yaml

 cam_model: ATAN

cam_width: 640                                   *元は752
cam_height: 480
cam_fx: 0.509326
cam_fy: 0.796651
cam_cx: 0.45905
cam_cy: 0.510056
cam_d0: 0.9320

 これで起動すると、一応立ち上がることはできるようになります。

端末1:roscore

端末2:rosrun cv_camera cv_camera_node

端末3: roslaunch svo_ros live.launch

端末4: rosrun rviz rviz

でも、動作が正しくありません!

 

カメラキャリブレーションをちゃんとしないとだめですね。