チュートリアルのページを参照してください。
Ubuntu12.04+ROS Hydroで動作を確認しています。
準備
画像の入力にはcv_cameraを使います。cv_cameraを使ったことが無い場合は以下のようにインストールして下さい。$ sudo apt-get install ros-hydro-cv-cameraimage_viewで画像が表示されるか確認してください。
$ rosrun cv_camera cv_camera_node
$ rosrun image_view image_view image:=/cv_camera/image_raw
cv_camera では /cv_camera/image_raw にカラー画像を出力しています。新しいパッケージの作成
cv_bridgeをテストするための新しいパッケージ(cvTest)を以下のように作成します。$ cd ~/catkin_ws/src $ catkin_create_pkg cvTest sensor_msgs cv_bridge roscpp rospy std_msgs image_transport次に、チュートリアルのページにあるソースコードをコピペして、~/catkin_ws/src/cvTest/src/image_converter.cpp を作って下さい。
ここで、image_converter.cpp を見ると、以下のように /camera/image_raw からカラー画像を読み込むようになっています。
22 image_sub_ = it_.subscribe("/camera/image_raw", 1, 23 &ImageConverter::imageCb, this);
cv_camera では /cv_camera/image_raw にカラー画像を出力しているので、このままでは画像データが正しく伝わらないので、以下の二つの方法のどちらかを行って下さい。
(1)image_converter.cpp を修正する
image_converter.cpp を以下のように修正してください。
22 image_sub_ = it_.subscribe("/cv_camera/image_raw", 1, 23 &ImageConverter::imageCb, this);
(2)launchファイルでremapする
~/catkin_wa/src/cvTest/launch/image_converter.lauchを以下の内容で作成します。
<?xml version="1.0"?> <launch> <remap from="/camera/image_raw" to="/cv_camera/image_raw"/> <node name="image_converter" pkg="CvTest" type="image_converter" /> </launch>remap タグにより、変換を行ないます。
CMakeLists.txtの修正
~/catkin_ws/src/cvTest/CMakeLists.txt の最後に以下の4行を加えて下さい。find_package( OpenCV REQUIRED ) include_directories( ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ) add_executable(image_converter src/image_converter.cpp) target_link_libraries(image_converter ${OpenCV_LIBRARIES} ${catkin_LIBRARIES} )
パッケージをmakeして、実行する。
$ cd ~/catkin_ws
$ catkin_make
エラーが無ければ、以下の手順で実行します。$ roscore別のターミナルウィンドウで
$ rosrun cv_camera cv_camera_node
さらに別のターミナルウィンドウでimage_converter.cppを修正した場合は、
$ rosrun cvTest image_converter
launchファイルでremapした場合は、$ roslaunch cvTest image_converter.launch
次のような画面が表示されればOKです。
Webカメラの画像にOpenCVで合成した、「赤い円」が画面の左上に表示されています。
0 件のコメント:
コメントを投稿