1、首先看usb_cam:?
直接下載代碼:?
進入創建好的工作空間:
cd ~/catkin_ws/src
git clonehttps://github.com/bosch-ros-pkg/usb_cam.git
然后退回到工作空間,編譯代碼:
cd~/catkin_ws
catkin_make
編譯好之后,添加編譯好的文件到環境變量:
sourcedevel/setup.bash
然后接下來測試usb_cam:?
先運行usb_cam節點:
rosrun usb_cam usb_cam_node
運行上面命令發現沒有顯示圖像,只看到攝像頭打開了。這是因為ros發布的topic是/usb_cam/image_raw。新打開一個終端,可以通過如下命令查看:
rostopic list
結果如下:
/rosout
/rosout_agg
/usb_cam/camera_info/usb_cam/image_raw
/usb_cam/image_raw/compressed
/usb_cam/image_raw/compressed/parameter_descriptions
/usb_cam/image_raw/compressed/parameter_updates
/usb_cam/image_raw/compressedDepth
/usb_cam/image_raw/compressedDepth/parameter_descriptions
/usb_cam/image_raw/compressedDepth/parameter_updates
/usb_cam/image_raw/theora
/usb_cam/image_raw/theora/parameter_descriptions
/usb_cam/image_raw/theora/parameter_updates
所以我們需要運行如下命令才可以看到圖像:
rosrun image_view image_view image:=/usb_cam/image_raw
或者直接寫launch文件,這樣就不用一個終端運行node,一個終端看圖像。新建usb_cam_test.launch:
<launch>
? <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >?
? ? <param name="video_device" value="/dev/video0" />?
? ? <param name="image_width" value="640" />?
? ? <param name="image_height" value="480" />?
? ? <param name="pixel_format" value="yuyv" />?
? ? <param name="camera_frame_id" value="usb_cam" />?
? ? <param name="io_method" value="mmap"/>?
? </node>?
? <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">?
? ? <remap from="image" to="/usb_cam/image_raw"/>?
? ? <param name="autosize" value="true" />?
? </node>?
</launch>?
其中字段的意義可按照字面理解,這里不再解釋。?
然后終端直接運行:
roslaunch usb_cam usb_cam_test.launch