ROS调用本地摄像头数据并在rviz里显示:

1 通过usb_cam驱动包启动摄像头

1.1 创建并编译usb_cam驱动程序

下面说明具体方法:

1、创建工作目录

mkdir catkin_ws/src

2、进入到工作目录中

cd catkin_ws/src

3、克隆代码仓库

git clone https://github.com/bosch-ros-pkg/usb_cam.git

4、进入到上一级目录,然后开始编译,编译很快

cd ..
catkin_make

上述操作过程如下:

(base) shl@zhihui-mint:~/shl_res/4_SLAM$ mkdir -p catkin/src
(base) shl@zhihui-mint:~/shl_res/4_SLAM$ cd catkin/src/
(base) shl@zhihui-mint:~/shl_res/4_SLAM/catkin/src$ git clone https://github.com/bosch-ros-pkg/usb_cam.git 
Cloning into 'usb_cam'...
remote: Enumerating objects: 1143, done.
remote: Total 1143 (delta 0), reused 0 (delta 0), pack-reused 1143
Receiving objects: 100% (1143/1143), 510.46 KiB | 7.09 MiB/s, done.
Resolving deltas: 100% (461/461), done.
(base) shl@zhihui-mint:~/shl_res/4_SLAM/catkin/src$ ls
usb_cam
(base) shl@zhihui-mint:~/shl_res/4_SLAM/catkin/src$ cd ..
(base) shl@zhihui-mint:~/shl_res/4_SLAM/catkin$ catkin_make
Base path: /home/shl/shl_res/4_SLAM/catkin
...
 int avpicture_layout(const AVPicture *src, enum AVPixelFormat pix_fmt,
     ^~~~~~~~~~~~~~~~
[ 50%] Linking CXX shared library /home/shl/shl_res/4_SLAM/catkin/devel/lib/libusb_cam.so
[ 50%] Built target usb_cam
Scanning dependencies of target usb_cam_node
[ 75%] Building CXX object usb_cam/CMakeFiles/usb_cam_node.dir/nodes/usb_cam_node.cpp.o
[100%] Linking CXX executable /home/shl/shl_res/4_SLAM/catkin/devel/lib/usb_cam/usb_cam_node
[100%] Built target usb_cam_node
(base) shl@zhihui-mint:~/shl_res/4_SLAM/catkin$ 

5、添加环境变量

(base) shl@zhihui-mint:~/shl_res/4_SLAM/catkin_ws$ source devel/setup.bash

1.2 启动usb_cam_node节点

1、先运行roscoe

roscore

2、进入launch目录

cd catkin_ws/src/usb_cam/launch

3、启动usb_cam_node节点

roslaunch usb_cam-test.launch

启动后有个error,这个可以不用管,只要程序没有终止就可以!(参考

1.3 在rviz中显示本地摄像头数据

首先,确保上面的roscore和节点程序都处在运行中!

1、在命令行中打开rviz

rviz

2、然后添加Add topic,在By topic中选择/usb _cam-/image_cam-Image,之后点击OK就可以实时显示摄像头数据了!

3、显示结果如下:

注意:

我使用的是外接的USB摄像头,注意自己的设备序号,可以在launch文件中修改video序号

2 通过uvc_cam驱动包启动摄像头

2.1 安装和ROS版本对应的uvc-camera包

  • Ubuntu16.04

sudo apt-get install ros-kinetic-uvc-camera

  • Ubuntu18.04

sudo apt-get install ros-melodic-uvc-camera

2.2 启动uvc_camera_node节点

1、启动roscore

roscore

2、 启动uvc_camera节点

rosrun uvc_camera uvc_camera_node

3、打开rviz,添加image显示项,订阅对应话题,即可显示:

在rviz中查看摄像头(通过uvc_cam驱动包的方式):

显示如下:

参考:https://blog.csdn.net/jcsm__/article/details/105141352