开发环境
PC系统 ubuntu14.04
USB摄像头:Logitech C920
ROS版本 indigo
ROS_package uvc_camera
uvc_camera ROS pkg and camera_calibration.yaml for ARTag
大前提,大家的电脑已经安装了Linux系统,并安装了相应的ROS
使用uvc_camera package
1. 安装uvc_camera package
方法一
sudo apt-get install ros-indigo-uvc-camera
source /opt/ros/indigo/setup.bash 、
但是因为我的软件源,无法下载安装,为此我尝试了更改源,并把一些ROS源添加到/etc/apt/sources.list中,但都没有成功
deb http://ros.exbot.net/rospackage/ros/ubuntu/ trusty main #易科实验室做的ROS镜像源
deb http://mirrors.ustc.edu.cn/ros/ubuntu/ trusty main
deb http:/ros.exbot.NET/rospackage/ros/ubuntu $(lsb_release -sc) main
方法二 直接下载uvc camera package ,然后自己编译
-下载 uvc_camera ROS pkg and camera_calibration.yaml for ARTag
-编译
将下载的package 放在ROS的工作空间中,一般为~/catkin_ws/src/。
然后在工作空间的根目录下(~/catkin_ws)进行编译:
catkin_make
2. 测试和查看安装结果
为了验证自己uvc_camera是否安装成功,首先进行查看
rospack list //查看package列表中是否有uvc_camera
rospack find uvc_camera //这个就是我们刚才安装时候的路径
roscd uvc_camera //定位到这个功能包的路径下
rosls //查看它的文件结构
.launch文件是一个多节点同时运行的一个配置文件 src是源码文件夹
测试一下是否能用 uvc_camera获取到图像
开启一个终端 roscore
开启一个终端 rosrun uvc_camera uvc_camera_node
开启一个终端 rqt_image_view 选择/image_raw
如果看到图像,说明uvc_camera可以正常运行
3. 配置自己的.launch文件
定位到 uvc_camera的launch文件夹下
roscd uvc_camera
ls
cd launch
vim my_camera_node.launch
<launch>
<node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">
<param name="width" type="int" value="1920" />
<param name="height" type="int" value="1080" />
<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>
测试,自己的Lauren文件 要在launch文件夹下运行
runlaunch my_camera_node.launch
运行的过程
启动roscore –>运行节点 (launch文件)–>查看图像
查看图像有两种方法
一 rqt_image_view
二 rosrun image_view image_view image:=/image_raw
深入研究库文件
git clone https://github.com/ros-drivers/camera_umd.git
然后将 uvc_camera package 放到自己的ROS workspace中,
然后catkin_make 发现有一个错误,找不到libv4l2.h
说明这个包是通过v4l2来捕获图像的,所以缺少v4l2的库文件
sudo apt-get install libv4l-dev
再编译 OK 通过
参考
ROS下UVC免驱高速摄像头图像读取以及利用image_transport进行图像传递
./launch文件分析
uvc_camera_wiki