机器人平台搭建(二)——为机器人装配摄像头

目录

总述
1、usb_cam功能包
2、驱动摄像头

总述
USB摄像头最为普遍,如笔记本电脑内置摄像头等,在ROS中使用这类设备可以直接使用usb_cam功能包驱动。

1、usb_cam功能包

usb_cam是针对V4L协议USB摄像头的ROS驱动包,核心节点是usb_cam_node,相关的话题和参数设置如下。

(1)话题
usb_cam功能包发布的话题。
名称:<camera_name>/Image
类型:sensor_msgs/Image
描述:发布图像数据

(2)参数
usb_cam功能包中可供配置的参数。

<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>

还有其他的参数:

framerate:类型-int;默认值-30;帧率
brightness:类型-int;默认值-32;亮度-0~255
saturation:类型-int;默认值-32;饱和度-0~255
contrast:类型-int;默认值-32;对比度-0~255
sharpness:类型-int;默认值-22;清晰度-0~255
autofocus:类型-bool;默认值-false;自动对焦
focus:类型-int;默认值-51;焦点(非自动对焦状态下有效)
camera_info_url:类型-string;默认值- —;摄像头校准文件路径
camera_name:类型-string;默认值-“head_camera”;摄像头名字
usb_cam功能包可以使用如下命令安装:

sudo apt-get install ros-kinetic-usb-cam

2、驱动摄像头usb_cam安装成功后,可使用以下命令启动计算机摄像头,进行测试:

roslaunch usb_cam usb_cam-test.launch

启动成功后会弹出显示图像的可视化界面。

在运行usb_cam-test.launch时,首先启动摄像头的驱动节点usb_cam_node,并配置相应的参数,摄像头的设备号需要根据实际情况进行设置;然后运行image_view节点订阅图像话题/usb_cam/image_raw,将摄像头看到的可视化呈现出来。

除此之外,ROS为我们提供的 Qt工具箱里还包含一个图像显示的小工具,可通过以下命令运行这个工具。

rqt_image_view

命令运行后,点击左上角的下拉菜单,可以看到当前系统中所有可显示的图像话题列表。
选择列表中的摄像头原始图像/camera/image_raw话题。在工具栏中还有截屏选项。