这里的话是基于很多人的文档,就不一一说明了,自己在做的时候还是有很多问题没有解决
1.安装相关的功能包:
sudo apt-get install ros-kinetic-uvc-camera
上面这个是针对的UVC,我们一般使用的是USB,所以安装的话是
二进制安装:
sudo apt-get install-kinetic-usb-cam
源码安装:
mkdir -p catkin_ws/srccd catkin_ws/srcgit clone https://github.com/bosch-ros-pkg/usb_cam.git usb_camcd ..catkin_makesource devel/setup.bash
我这里的安装是有问题的,编译不通过,一直显示
/home/**/catkin_ws/src/usb_cam/src/usb_cam.cpp:503:61: error: ‘avcodec_send_packet’ was not declared in this scope
decoded_len = avcodec_send_packet(avcodec_context_, &avpkt);
所以选择的是源码安装的问件,下面的修改launch文件我也是在opt/ros/kinetic/usb_cam文件夹下,找到launch文件更改的
2.再根据摄像头参数修改launch文件
先ls /dev/video* 显示当前电脑所用的摄像头列表,比如我想用的是video0
输入下面代码查看这个摄像头的详细信息,得到宽高和pixel format
v4l2-ctl -d /dev/vide0 –all
修改usb-cam文件里面test.launch文件里面的宽和高
以及Pixel Format mjpg对应为yuyv
显示eg:Format Video Capture: Width/Height : 1280/720
Pixel Format : 'MJPG'
sudo apt-get install ros-melodic-image-*
sudo apt-get install ros-melodic-rqt-image-view
3.usb-cam编译通过后(这里我没编译通过)
roslaunch usb_cam usb_cam-test.launch
在rviz的界面add找到image的topic,选择相应的话题
如果出现:unknown control 'focus_auto',不用管,这个是自动调焦的,我们摄像头一般是不能调焦的,所以不影响
我在运行上面这个指令之后就能看到摄像头显示的信息,然后需要标定摄像头,已经标定好了,参数就直接放在这个launch文件的参数了,下次再写吧。