经常被ROS搞得七荤八素, 官网的文档又不清不楚, 只能自己试. 结果电脑一重配啥都得重来, 时间成本太高, 还是写个备忘记一下.
参考了一下别人的笔记, 都比较老, 自己更新了一下
http://www.myexception.cn/operating-system/1954478.html
https://defendtheplanet.net/2014/11/05/using-ros-indigo-webcam-by-the-uvc_camera-usb-video-class-package/
============================================分割线================================================
1. 安装UVC_camera驱动
sudo apt-get install ros-indigo-uvc-camera
source /opt/ros/indigo/setup.bash
这里要注意对应自己ROS的版本号.
2. 配置.launch文件
安装完成uvc驱动后, 在/opt/ros/share目录下会出现uvc_camera目录, 当然, 在任何目录下输入roscd uvc_camera命令均可进入:
roscd uvc_camera
进入后会发现文件夹下没有.launch文件, 此时可以自己添加, 方便使用.
sudo mkdir launch
cd launch
sudo gedit camera_node.launch
然后可以粘贴进如下代码, 其中很多参数可以根据需要自行设置.
<launch>
<node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">
<param name="width" type="int" value="320" />
<param name="height" type="int" value="240" />
<param name="fps" type="int" value="30" />
<param name="frame" type="string" value="wide_stereo" />
<param name="auto_focus" type="bool" value="False" />
<param name="focus_absolute" type="int" value="0" />
<!-- other supported params: auto_exposure, exposure_absolute, brightness, power_line_frequency -->
<param name="device" type="string" value="/dev/video0" />
<param name="camera_info_url" type="string" value="file://$(find uvc_camera)/example.yaml" />
</node>
</launch>
保存文件即可.
3. 启动摄像头
方式1: 使用默认的方式打开摄像头, 此时调用的是哪一个launch文件我也搞不清, 参数无法自行设置.
rosrun uvc_camera uvc_camera_node
方式2: 使用自己定义的.launch文件启动摄像头, 比较方便, 但要注意每次要先进入ros的uvc-camera/launch目录下才可执行, 当然这些.launch文件也可以根据需要放入其他文件夹中执行.
roscd uvc_camera/launch
roslaunch camera_node.launch
4. 查看摄像头图像
方式1: 使用rqt_image_view, 即直接在命令行下输入rqt_image_view即可.
方式2: 使用ros的image_view
rosrun image_view image_view image:=/image_raw
注意, 每次ROS程序需要使用camera之前, 首先打开roscore, 然后启动摄像头, 然后才能运行程序, 否则程序无法从/image_raw下调用到camera图像