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