APP下载

基于深度相机的小型无人机室内三维地图构建

2021-01-07张阵委颜晨航

电子科技 2021年1期
关键词:栅格障碍物光源

张阵委,章 伟,龙 林,颜晨航

(上海工程技术大学 机械与汽车工程学院,上海 201620)

小型无人机(Micro Aerial Vehicle,MAV)实时室内三维环境的构建已经被广泛应用于无人机避障领域[1]。深度相机能够比较准确地获取室内三维空间信息,可被运用于目标识别、定位及路径规划等无人机室内导航任务中。 相较于双目视觉系统,深度相机构建的障碍物检测的三维地图信息,可以为无人机的控制器提供更准确的实时环境感知[2]。考虑到建筑物内部定位系统(Global Positioning System,GPS)信号缺失、光源缺少以及三原色光(Red Green Blue,RGB)双目相机比较依赖光源的特点[3],基于结构光相机通过激光扫描获得三维地图信息是无人机在室内避障环境中一个非常合理的选择。

此前有很多利用RGB相机获取无人机当前所在环境的三维地图信息[4]。Bachrach使用实时定位传感和实时地图构建算法(Simultaneous Localization and Mapping,SLAM),使用感光相机和二维激光信息来计算室内的二维地图[5],进而达到构建室内地图的目的。它生成的二维地图只能应用在简单场景构建,如果室内场景有形状轮廓为长条形的障碍物或者光源比较弱[6],则容易出现误差和错误。 研究人员也曾使用双目视觉点云拼接技术来生成现实环境的三维地图,但是它生成的三维点云信息量太过复杂[7],很难对它进行数据分析,且使用这种拼接方式获取的点云噪声很大且难以滤除。

考虑成本和平台特点以及室内光源缺少等各方面因素,研究人员使用高性能、低功耗Pixhawk板和消费级别的深度相机(Red Green Blue Depth Map,RGB-D)构建了一套低成本的嵌入式视觉硬件平台[8]。本文使用多传感器融合技术及Linux系统搭建硬件的软件开发环境,利用Linux系统的强大硬件开发功能,使用机器人操作系统(Robot Operating System,ROS)开发,并结合无人机的当前状态信息生成了灵活性和鲁棒性都较好的地图构建信息。

1 基于深度相机的图像处理

点云图像是三维图像信息的一种特殊的表达形式。与普通平面图像相比,三维图像是依靠第三维度的信息实现环境背景解耦。激光扫描获取的点云模型中的每个点的信息都可以通过测量得到,每个点是一个测量点,包含了最大的信息量。这些信息都储存在测量点中。本文采用的是基于结构光相机来获取点云信息进行处理。

1.1 基于结构光的深度相机原理

它的原理如图1所示[9],E为激光发射装置;S为激光反射的接收装置。

图1 结构光相机原理Figure 1. Principle of structured light camera

结构光深度相机克服了双目视觉相机依赖光源的缺点。结构光相机对图形的获取不依赖于物体本身的颜色和纹理。使用激光投影障碍物得到图案信息,不仅可快速获取障碍物信息,还具有优良的鲁棒性和高精度,大大扩展了适用范围。

1.2 视觉算法处理框架

整个系统的算法处理流程如图2所示,首先使用深度相机进行获取点云数据获取。文中所采用的是基于嵌入式处理器(Advanced RISC Machine,ARM)的相机,它可自动进行图像预处理;然后通过一系列的算法进行地图的构建,再结合GPS、光流、超声波等传感器获取的无人机的姿态信息进行地图的更新,实时获取当前地图信息。

图2 算法流程图Figure 2. Flow chart of algorithm

1.3 相机坐标系

深度相机的视觉系统中主要涉及4个坐标系:图像坐标系、相机坐标系、世界坐标系和像素坐标系。这4个坐标系之间的关系如图3所示,点P是世界坐标系中的某一点。

图3 四大坐标系关系Figure 3. Four major coordinate system relationships

Ow-XwYwZw是世界坐标系,用来描述相机的位置,单位为m;Oc-XcYcZc是相机坐标系,以光心为原点,单位为m;o-xy为图像坐标系,光心为图像的中点,单位是mm;uv为像素坐标系,原点为图像左上角,单位为pixel。点P世界坐标系中的一点即现实世界中真实的一点,点p是P点在图像焦距中的成像点,在图像坐标系中的坐标为(x,y),在像素坐标系中的坐标为u,v。f代表相机焦距,等于o与Oc的距离, 即f=o-Oc。

1.4 坐标转换

从世界坐标系变换到相机坐标系是利用刚体变换实现的,即图像中的物体不会发生形变,使用R旋转矩阵和T偏移向量进行矩阵的旋转和偏移,旋转矩阵如图4所示[10]。

图4 世界坐标转换相机坐标Figure 4. World to camera coordinate conversion

它的计算如式(1)所示。

(1)

带入坐标运算即为式(2)。

(2)

同理,绕x轴、y轴旋转φ和ω即可得到式(3)和式(4)的矩阵,如下所示。

(3)

(4)

于是可以空过上述计算可得实验所需的旋转矩阵R=R1R2R3。

所以从世界坐标系到相机坐标系的转换关系如图5所示[11]。

图5 矩阵转换Figure 5.Matrix conversion

可以知道坐标之间的转换关系,使用式(5)和式(6)可以得到所需矩阵

(5)

进而得出

(6)

由上述计算式可推到得到R:3×3,T:3×1。

相机坐标系得到的图像坐标系,属于透视投影关系,从三维转换成为二维图像,此时投影点p的单位还是mm,并不是pixel,需要进一步转换成像素坐标系,进而由一个像素坐标得出现实中的距离位置坐标。如果想精确地将像素坐标转换为世界坐标准确并获得物体的实际的坐标信息,需要对相机进行标定。

1.5 相机标定

尽管深度摄像头与RGB摄像头的成像效果有较大的差别,但是它们的成像原理相同,所以它们的标定方法也是类似的。

对于本文使用的深度相机而言,它的基本原理为:结构光相机上有一个红外散斑激光发射器,它可以充当光源向前方发射红外激光束。红外激光碰到障碍物后反射回来,深度摄像头开始接收反射回来的光束进行成像。通过计算光束的时间差来计算障碍物距离。结构光的深度摄像头比普通的RGB摄像头多装了滤波片,它只允许红外激光通过,变成了红外光成像的摄像头。因此当对它进行标定时,用红外光源照射标定板就可以得到标定板的图片信息。标定时,用不透光的黑色物体将结构光的红外发射器挡住,避免散斑产生不必要的亮点,以免影响棋盘角点的检测。如图6所示,采用这张图对深度摄像头计算内参。本文是调用OpenCV标定程序进行相机标定的,可确保标定的精度在允许范围内。

图6 深度相机标定Figure 6.Depth camera calibration

2 无人机避障模型的建立

2.1 相机标定反传感器模型

利用室内障碍物测量信息y(k)和无人机的状态x(k)进行反传感器模型构建,模中的Pmi|xk,y(k)给出了点云栅格mi处于占有状态(occupancy)的概率[12]。本文采用文献[12]中提到的反传感器模型进行室内地图的构建,如式(7)所示,在这个模型中测量到处于击中状态的点云栅格的概率更新为locc,其它沿着传感器中心到对应处于击中状态的点云的射线R之间的点free更新为lfree,即ri=ry(k)。

(7)

其中,ri是沿着射线R在结构光传感器中心的位置到点云像素点的mi之间的距离。图7采用的是立体栅格图的截面图形式来表达的,点P是无人机当前的位置信息。一个黑圆和一个黑色的长方形代表障碍物。反传感器模型中带有颜色的栅格代表栅格的状态,颜色比较深的表示栅格处于occupancy状态的栅格,它的概率更新值为locc;颜色比较浅的代表栅格处于free状态,概率更新值是lfree。白色的栅格是表示无人机未知状态,它的概率更新值被忽略。其中locc和lfree的取值组合决定了模型的精度与性能的好坏,调节它们的取值组合可以加快模型融合现实环境的速度以及发现新障碍物的准确度,速度越快则模型越优[13]。依据经验分别设置locc和lfree为0.75和0.12。

图7 反向传感器模型Figure 7. Reverse sensor model

为了保证障碍物检测的速度,把点云栅格信息的概率更新值以对数的形式储存起来。与它对应的对数机率反向传感器模型计算式如式(8)所示。

(8)

相机每获取一帧图像需要对模型中的点云栅格进行更新,它的计算式如式(9)所示。

lt-i=lt-1,i+L(mi,xk,yk)-l0

(9)

式中,lt-i表示栅格mi在t时刻的概率对应的计算结果,其表达式如式(10)所示。

(10)

其中,l0是计算中的初始值,如式(11)所示。

(11)

在所有的计算中,始终认为栅格的原始模型概率Pmi=0,i=0.5,它代表初始状态的栅格的占有情况未知。

2.2 反传感器模的应用

使用反传感器模型进行进行无人机室内障碍物检测以及路径规划,需要对栅格的状态进行详细的分类。根据实际的情况可将它分为两类,即不稳定状态和稳定状态。只有当它处于稳定状态时才能进行占有、空闲与未知3种情况的概率计算。利用阈值的方法来区分这两种状态,即设置两个阀值Tocc和Tfree:当栅格的数值达到其中的任一个数值时,则认为这个点处于稳定状态[14],可进行节点判断。本文采用剪裁栅格占有率的方法,裁剪与父节点状态一致的子节点。如果剪裁后的信息与之前的节点有冲突,则创建新的节点。使用这种方法所构建的模型既压缩不必要的点云信息,又保留必要的接节信息[15],加快了模型建立的速度。

3 实验结果分析

3.1 系统硬件平台

本文采用的无人机实验平台如图8所示。本文采用ARM和可编程门阵列芯片(Field Programmable Gate Array,FPGA)的飞行器控制计算机,采用结构光相机进行模型搭建的信息采集,利用光流传感器进行无人机飞行的状态监测,最后通过Pixhawk的飞控板进行控制无人机的飞行控制。它的结构布局适合在室内进行各种监视侦查救灾地形探测等任务。

图8 无人机硬件平台Figure 8. Hardware platform of UAV

3.2 室内3D地图构建

针对典型的室内环境案例构建实时地图。由于室内环境具有一定的封闭性,所以室内光线比较依赖光源。图9是室内光源正常状态的情况下室内环境和无人机位置图。

图9 无人机室内环境图Figure 9. Indoor environment diagram of UAV

当关闭室内光源,RGB相机拍摄的图像受到光源的影响比较大,当光线不足容易出现图像失真和模糊;当光线过强时容易出现图像过度曝光。因此,在这两种情况下采集的图像信息很难进行相应的视觉算法处理。

如图10所示,关闭室内光源时,采集的图像很模糊,难以进行相应的视觉算法分析[16]。特别是当室内发生火灾时,室内环境负责且烟雾多,普通的相机很难检测室内环境状况,因此普通的双目相机在这种情况下很难发挥图像检测的功能。

图10 无光源室内环境Figure 10. No light source indoor environment

当采用结构光相机进行障碍物检测时,它具有红外激光发射模块。利用红外激光反射原理,相机可依据接收到激光反射的信息来进行障碍物的检测,不受室内光源的限制[17]。

实验在Linux系统下使用ROS开发工具进行进行深度相机的视觉算法开发。ROS中每个软件包相对独立,并且可以自由通信。实验中采用C++语言进行反传感器模型的编写,并订阅深度相机的服务节点来获取像素信息。最后把构建好的地图信息通过串口通信发送给Pixhawk飞行控制板来进行无人机的飞行控制实验。具体步骤如图11所示。

图11 无人机整体控制流程Figure 11. UAV overall control process

利用反传感器模型算法进行室内地图构建的实验结果如图11所示。本实验是在室内没有光源的情况下进行的,相机摆放的位置如图9中所示。在没有光源的情况下,深度相机自带的激光发射模块向周围发射激光,深度相机的一个摄像头只能接受红外光线反射的光,可实现自带光源进行室内环境的物体信息获取,获取图像信息后使用ROS工具生成点云信息。最后使用反传感器模型进行三维地图构建,实验结果如图12所示。

图12 激光扫描地图Figure 12. Laser scan map

4 结束语

本文中运用基于嵌入式的结构光相机来进行室内无人机障碍物检测,并最终获取室内三维环境地图信息。其中,所采用的反传感器模型能够快速有效地获取室内环境地图,并且中央处理器占用较小。同时,结构光相机自带激光发射模块,不受室内光源的影响,即使在黑暗的条件下也能够准确地获取室内障碍物信息,可以有效地进行室内无人机避障以及路径规划等任务。由于结构光相机的障碍物信息的获取依赖激光反射,且由于物理特性限制,使得该视觉检测系统的只能检测0~5 m以内的障碍物信息,超出此范围的障碍物的检测效果会变差。因此,在之后的实验中将会考虑光飞行时间法(Time of Flight,ToF)深度相机进行室内障碍物的地图构建。

猜你喜欢

栅格障碍物光源
基于邻域栅格筛选的点云边缘点提取方法*
基于A*算法在蜂巢栅格地图中的路径规划研究
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
绿色光源
两种LED光源作为拟南芥生长光源的应用探究
不同剖面形状的栅格壁对栅格翼气动特性的影响
科技连载:LED 引领第三次照明革命——与传统照明的对比(一)
基于CVT排布的非周期栅格密度加权阵设计
土钉墙在近障碍物的地下车行通道工程中的应用