概述
在前面的工作中,在RK3566上完成了ROS和Cartographer环境的搭建以及对应的 DEMO的运行。在SLAM的技术中,双目摄像头的使用也是必不可少的。在SLAM学习笔记的第四篇中,完成了OpenCV代码在Ubuntu18.04的虚拟机上交叉编译。现在的工作是将双目摄像头结合OpenCV使用起来。
主要坑点:
1、Firefly自带的Test-Camera无法打开摄像头
2、Firefly默认的视频挂载点很多,甚至摄像头接入后都排到了video9,甚至导致我一度认为摄像头是驱动问题。最后发现,只要是UVC驱动的摄像头,RK3566都是能够通过工具查看的。
一、选择双目摄像头
我这里选择的是淘宝购买的双目摄像头,采用的UVC协议,USB 2.0 免驱动。测试功能的方法是:USB连接windows,运行相机软件,选择合适的分辨率即可测试双目摄像头的拍摄功能。
二、RK3566测试摄像头
2.1 直接接入OpenCV测试
在windows上插入摄像头确认摄像头工作正常后,我们可以确认购买回来的双目摄像头是正常使用的。简单粗暴的测试方法:直接接入RK3566开发板。运行OpenCV测试摄像头工作代码。摄像头索引默认选择0。果然,OpenCV报错了。
我可以通过ls命令查看当前系统挂载的视频设备。
ls /dev/video*
Firefly的RK3566开发板子上video接口很多,导致了默认视频挂载点0并不是我们想要的双目摄像头。其实一个方法就是写OpenCV的代码一个个的尝试。我这块Firefly的RK3566开发板经过尝试后发现video9可以打开,对应opencv的摄像头的序号就是9。
2.2 使用guvcviewer查看摄像头
使用2.1的方法由于需要使用OpenCV且
检查下适合的uvcview工具
sudo apt-cache search uvcview
guvcview - GTK+ base UVC Viewer
libguvcview-1.1-1 - GTK+ base UVC Viewer - runtime
libguvcview-dev - GTK+ base UVC Viewer - development files
安装guvcviewer
sudo apt-get install guvcview
安装成功后可以通过运行guvcview选择合适的设备打开:
这里我们选择SPCA2100 PC Camera: PC Camera。有时候摄像头会存在两个接口,一个数据接口,一个控制接口。这里我们随便选择一个打开,如果打不开则选择另外一个打开即可。
分辨率的选择也比较重要,如果分辨率选择不正确的,可能摄像头不能输出正常的双目图像而只能输出单目图像。这里我选择640240分辨率,也可以选择1280480分辨率。