五、SLAM学习笔记—— Firefly RK3566 Ubuntu18.04 双目摄像头调试

概述

在前面的工作中,在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分辨率。
在这里插入图片描述

Ubuntu 18.04中使用笔记本摄像头跑真实环境,可以按照以下步骤进行: 1. 检查摄像头是否连接并正常工作。打开终端,运行以下命令: ``` ls /dev/video* ``` 如果摄像头已正确连接,则会显示类似 `/dev/video0` 的输出。 2. 安装ROS Kinetic和lsd-slam。打开终端,运行以下命令: ``` sudo apt-get install ros-kinetic-lsd-slam ``` 3. 启动摄像头节点。在终端中运行以下命令: ``` roscore ``` 然后再打开一个新的终端,运行以下命令: ``` roslaunch usb_cam usb_cam-test.launch ``` 这个命令将启动一个名为 `usb_cam` 的节点,并且会自动检测你的摄像头。如果一切正常,将会在终端中看到类似以下的输出: ``` [ INFO] [xxxxx]: Starting 'usb_cam_node' [ INFO] [xxxxx]: Started nodelet [/usb_cam_nodelet_manager], 1 workers. [ INFO] [xxxxx]: waitForService: Service [/usb_cam/set_camera_info] has not been advertised, waiting... [ INFO] [xxxxx]: waitForService: Service [/usb_cam/set_camera_info] is now available. [ INFO] [xxxxx]: waitForService: Service [/usb_cam/get_camera_info] has not been advertised, waiting... [ INFO] [xxxxx]: waitForService: Service [/usb_cam/get_camera_info] is now available. [ INFO] [xxxxx]: Starting Camera [/dev/video0] [ INFO] [xxxxx]: Using transport "raw" [ INFO] [xxxxx]: Loaded calibration file yaml:///path/to/camera_calibration.yaml on namespace [/usb_cam] [ INFO] [xxxxx]: Started publisher [/usb_cam/image_raw] with ros:Transport=raw [ INFO] [xxxxx]: Started publisher [/usb_cam/camera_info] with ros:Transport=raw ``` 4. 运行lsd-slam。在另一个新终端中运行以下命令: ``` roslaunch lsd_slam_viewer viewer.launch ``` 这个命令将启动lsd-slam,并且会打开一个名为 `lsd_slam_viewer` 的节点,以及一个图形界面,用于显示摄像头捕捉到的图像和slam结果。 5. 调整相机参数。如果你的摄像头没有进行过校准,你需要使用ROS自带的 `camera_calibration` 工具对其进行校准。你可以按照ROS的官方文档进行校准。 以上步骤完成后,你就可以使用笔记本摄像头跑真实环境了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值