先测试一下usb摄像头
打开摄像头,需要启动ros,在两个不同的终端分别执行以下命令:
$ roscore
source ~/catkin_ws/devel/setup.bash
roslaunch usb_cam usb_cam-test.launch
具体的步骤
首先开个新的终端,运行roscore
$ roscore
在运行该节点之前,需要先配置一下节点参数,打开src/usb_cam/launch下的launch文件,我这里只需要该设备号即可,笔记本电脑的video0一般是网络摄像头,插入usb摄像头一般是video1,若想看usb摄像头是哪个端口号,可cd到根目录中的dev文件夹下查看.
这样,就能启动摄像头了,其中,我们可以打开位于usb_cam/launch下的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>
其中value="/dev/video0"为笔记本摄像头,这里为video1,当然读者可以去/dev目录下查看自己的摄像头对应的value是多少。
想要查看当前连接设备,使用如下命令即可:
ls /dev/video*
完成之后再开一个新的终端, 运行
source ~/catkin_ws/devel/setup.bash
roslaunch usb_cam usb_cam-test.launch
运行后,正常的情况下可打开摄像头,看到新建窗口将图像信息显示出来.同时命令窗口会有一部分warning ,直观显示是没有找到head_camera.yaml,应该是相机标定后的内参信息,我尝试将标定(标定之后也会说)后的数据写入yaml文件中让程序去读,打开失败,猜测应该是我的yaml文件中参数命名或者其他原因与程序不符合,