-
0 引言
-
随着近代IT人工智能的高速发展,各行各业对于人工智能的研究和应用也逐渐加深,人工智能与人类协作将在所有职业中飞速发展。如今人工智能自动驾驶技术已然成为热门的研究领域,但主要研究的对象还是汽车,对于飞机无人驾驶方面的研究还是相对欠缺,国内对相关领域的研究也相对空白。目前,国内将人工智能应用于飞机的研究主要有中国民用航空飞行学院魏麟教授团队关于人工智能副驾驶的研究。该研究致力于通过人工智能与机械臂的结合,使机械臂在飞机座舱内能够完成对飞机飞行的系列操作,从而辅助机长完成飞行任务。要实现对机械臂在驾驶舱内完成指令操作,机械臂需要对驾驶舱有明确的认识,故需要构建飞机座舱环境的三维地图。本文旨在通过视觉即时定位与地图构建(simultaneous localization and mapping,简称SLAM),在ROS(robot operating system)系统[1]和ORBSLAM2[2]系统框架下,完成对飞机驾驶舱内的三维地图构建,并使之能够应用于机械臂的路径规划导航上。
-
1 稠密建图
-
1.1 Kinect V2.0介绍
-
2014年,Microsoft公司发布了第二代Kinect传感器,外观如图1所示,在第一代的基础上做了许多优化,其中最大的改进在于将获取深度信息所用的3D结构光原理改为飞行时间法(time of flight,简称TOF)[3],使得适用性和稳定性都显著提高。Kinect V2.0硬件结构为一个RGB Camera(彩色摄像头),一个Depth Sensor(深度相机或者称为红外相机)和一个IR Emitters(红外发射器)。
-
图1 Kinect V2结构图
-
RGB Camera组件是用来获取其视距内的高清RGB图像,IR Emitters组件会发射调制的红外光线,红外光线在视野内的物体表面上发生反射,反射红外线经由Depth Sensor组件接收,由此该传感器可得到红外线发射和反射的时间。根据TOF原理,通过换算可得物体表面上的该点和相机之间的距离,通过诸多反射红外线,便可以得到视距内所有物体的深度数据。
-
1.2 ORBSLAM2框架
-
ORBSLAM2是一个完整的SLAM系统,具体框架结构如图2所示。一共有三个线程,分别是Tracking(跟踪线程),Local Mapping(局部建图线程)和Loop Closing(回环检测线程)[4]。
-
Tracking是负责寻找局部地图的特征,提取关键点进行帧间匹配,Tracking的目的是兼顾计算速度和鲁棒性使得当前帧中提取的特征点跟踪匹配到上一帧。
-
Loop Mapping是进行关键帧筛选和多余地图点剔除的操作,以完成局部地图的构建,同时运用局部BA算法优化相机位姿和特征点云。
-
Loop Closing主要是进行回环检测。随着相机的运动,尽管上面步骤中有着局部和全局优化,但是随着累计,仍会存在误差。因此需要通过这一步骤发现闭环并对其优化,从而减少累计误差。
-
图2 ORMSLAM2框架[2]
-
1.3 特征提取算法选择
-
视觉SLAM的重点问题是根据获取到的环境图像信息估计相机运动,通过对检测提取的特征点进行匹配运算来获得设备位姿变换。在视觉SLAM中,检测提取到的这些特征点是最具代表性的点,当相机设备进行细微转动变化,这些点需要基本保持不变,即算法能够判断出该点是同一个地方。通过特征点提取和匹配能够有效利用图像矩阵得知相机设备的运动信息。
-
数字图像处理一般要将图片降维转化为灰度图,此步骤可以大大降低计算量,进而提高效率。在视觉里程计中,特征点在相机运动后保持稳定是一个非常重要的关键点,而灰度值容易因为光线、物体材质等因素的影响而变得不稳定,在不同图像之间变化很大。因此需要对图像提取特征点,在保证效率的同时,提高匹配正确率。目前较为常见的特征点提取算法主要有SIFT[5]、SURF[6]以及ORB[7]。
-
本文通过OpenCV库中的SIFT、SURF、ORB三种算法以及ORB-SLAM[8]改进的ORB算法对在飞机模拟座舱环境拍摄的同一张图片进行特征提取实验,对比四种算法提取的特征点分布情况。通过参数设置,本实验呈现结果中的特征点数目为1 000左右。图3~图6分别为OpenCV库中SIFT、SURF、ORB算法和ORB-SLAM改进的ORB算法的特征检测提取结果。
-
从上文实验结果可看出,OpenCV库中的SIFT和SURF对仪表按键等仪器均能有较好的检测效果,但是图像上显示的1 000个的特征点集中分布在仪器仪表盘等特征明显的物体周围,出现扎堆的现象。这导致SLAM的精度下降,同时也会造成一幅图像上信息量的减少。OpenCV库中的ORB算法,对一些区域几乎没有提取到特征点,效果最差。ORB-SLAM改进的ORB算法,提取的特征点在整张图像中的分布是非常均匀的。在特征检测算法中,ORB算法速度远超SIFT和SURF。综合速度和检测提取效果,ORM-SLAM改进的ORB算法[9]相比于其他三种算法,在视觉SLAM中有着明显的优越性。
-
图3 SIFT算法特征点检测提取
-
图4 SURF算法特征点检测提取
-
图5 ORB算法特征点检测提取
-
图6 ORB-SLAM改进的ORB算法特征点检测提取
-
ORB-SLAM中,其采用四叉树对检测提取到的特征点进行均匀化以改进ORB算法。主要步骤如下:
-
(1)假设需要在图像上均匀选定的特征点数目为N,设N=25,即节点数目应该大于等于25。初始图像为初始节点。如图7(a)所示。
-
(2)将初始节点做第一次划分,划分为四个子节点,如图7(b)所示。因为节点数量为4,还没有达到预设值N,因此需要继续做划分操作。
-
(3)将图中的四个节点进行第二次划分,划分为16个节点,结果如图7(c)所示。如果节点中的特征点数目超过1,则表示该节点可再分; 节点中的特征点数目为1,该节点不再做划分操作; 节点中特征点数目为0则将其删除。因为有一个节点中的特征点数目为0,则第二次划分之后,节点数量为15。但其值仍未达到预设值N,继续做划分操作。
-
图7 四叉树改进ORB算法流程
-
(4)将步骤(3)中的15个节点进行第三次划分,划分结果如图7(d)所示。最后划分的节点数目为30,超出预设值,停止划分操作。
-
(5)从最后划分得到的节点中分别选取响应值最高的特征点,并删除响应值低的特征点,结果如图8所示。
-
图8 最终结果
-
1.4 保存地图
-
本文所构建的驾驶舱室内地图,需要将地图保存并复用,因此需要在ORBSLAM2的基础下,加入地图保存模块。地图保存功能的实现,需要将地图中的各个元素进行存储,并且能够做到几乎无差的复现地图。
-
因此需要通过编写保存函数依次保存点云地图点的数量、所有的3D地图点(空间中3D位置、法线方向、ORB的描述子)、所有关键帧(相机的姿态、相机的内参、ORB特征)、关键帧的数量、共视图和生长树。[10]
-
1.5 整体框架
-
本文SLAM建图采取手持Kinect V2.0设备,对模拟座舱内部环境信息进行采集,将获取到的图像信息实时传送到控制模块笔记本,并实时对图像进行处理生成点云并保存。具体实验建图框架系统如图9所示。
-
图9 系统整体框架
-
本文的控制笔记本电脑的配置详细如下:系统平台为Ubuntu16.04LTS64位,Intel(R)Core(TM)i5-7200U CPU@ 2.50 GHz,RAM为12 GB,ROS版本为ROS Kinetic,RGB-D摄像头选取Microsoft公司的Kinect V2.0。
-
1.6 建图结果
-
本文在飞机模拟座舱的环境下构建三维稠密地图,构建结果如图10所示。本文还通过点云处理软件对一些无用点云进行去除。
-
图10 飞机模拟座舱三维稠密地图
-
2 点云地图转八叉树地图
-
上文构建的地图其形式是点云地图,根据Kinect V2.0设备传感器获取到的彩色图像和深度信息图像通过处理生成点云,并对点云进行拼接融合处理,从而生成3D点云地图。但是生成的3D点云地图存在着数据过大和难以用于导航等缺点。
-
点云地图通常规模很大,其包含的信息非常多。本文使用构建地图后生成的PCD文件大小为155 MB,其中包含了459 223点,即使经过一些滤波处理之后,该存储文件大小仍然是巨大的。点云地图中包含了很多不必要的细节,诸如模拟座舱中阴暗处的影子、仪器按键上的符号文字等。这些细节的东西并不需要特别关注,存储它们是浪费空间且在导航时无法提供“能否通过”的判断信息,实现导航的难度巨大。因此,本文将点云地图转化为八叉树地图[11],八叉树可以压缩点云文件,并且可以用于导航。
-
根据实际需求,可以对OctoMap的分辨率进行调节。在大环境下可以调低分辨率,反之,环境越小,就要把分辨率调越高,从而可以满足更精细的导航。通过分辨率的调节,可以实现不同需求层次的导航和路径规划。本文的实验环境是在飞机模拟座舱里,属于小环境,分辨率设置为0.03 m,结果如图11所示。
-
图11 八叉树地图
-
3 结论
-
本文通过对比实验,验证了ORB-SLAM改进的ORB特征检测算法用于SLAM的优越性。并在飞机模拟座舱的环境下,使用Kinect V2.0的RGB-D相机采集环境数据,通过ROS系统和ORBSLAM2框架搭建实验环境,最终获取到该模拟座舱的三维稠密点云地图,并使用OctoMap模型,将点云地图转化为可用于导航的八叉树地图。然而本文所构建的地图精度不够,以及在一些死角处没有采集到图像数据,只能用作导航地图的雏形,需要在导航过程中继续通过深度相机采集图像,并进行SLAM运算,不断更新地图。
-
参考文献
-
[1] QUIGLEY M,GERKEY B,CONLEY K,et al.ROS:an open-source Robot Operating System[C]//ICRA workshop on open source software.[S.l.:s.n.],2009.
-
[2] MUR-ARTAL R,TARDÓS J D.ORB-SLAM2:an open-source SLAM system for monocular,stereo,and RGB-D cameras[J].IEEE Transactions on Robotics,2017,33(5):1255-1262.
-
[3] 魏加立,曲慧东,王永宪,等.基于飞行时间法的3D相机研究综述[J].红外技术,2021,43(1):60-67.
-
[4] 高翔,张涛.视觉SLAM十四讲:从理论到实践 [M].北京:电子工业出版社,2017.
-
[5] LOWE D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
-
[6] BAY H,TUYTELAARS T,GOOL L V.Surf:speeded up robust features[C]//European Conference on Computer Vision.Berlin,Heidelberg:Springer,2006:404-417.
-
[7] RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB:An efficient alternative to SIFT or SURF[C]//2011 International Conference on Computer Vision.[S.l.]:IEEE Computer Society,2011:2564-2571.
-
[8] MUR-ARTAL R,MONTIEL J M M,TARDOS J D.ORB-SLAM:a versatile and accurate monocular SLAM system[J].IEEE Transactions on Robotics,2015,31(5):1147-1163.
-
[9] 倪翠,王朋,孙浩,等.一种基于四叉树划分的改进ORB算法[J].应用科学学报,2022,40(2):266-278.
-
[10] 梁志伟.基于ORB-SLAM2的移动机器人室内自主导航系统设计[D].浙江:杭州电子科技大学,2020.
-
[11] 唐嘉宁,蒋聪成,周思达,等.即时八叉图下的室内未知环境探索航迹规划[J].电光与控制,2021,28(11):65-68.
-
摘要
针对飞机座舱副驾驶的研究需要,为使得机械臂能够在飞机座舱完成导航任务,旨在构建一个可用于机械臂导航的飞机模拟座舱三维地图。针对特征点分布情况对即时定位与地图构建(simultaneous localization and mapping,简称SLAM)的建图精度的影响,通过实验对比,验证了ORB-SLAM改进的ORB(oriented FAST and rotated BRIEF)特征检测算法相对于OpenCV库中SIFT,SURF和ORB算法检测提取的特征点分布更加均匀,更适用于SLAM。采用Kinect V2.0作为深度信息图像和彩色图像的数据采集设备,在飞机模拟座舱真实的环境下,结合ROS系统和ORBSLAM2系统框架,构建了飞机座舱内的三维稠密点云地图。针对点云地图存在数据大和难以实现导航等问题,采用了OctoMap数据模型,该数据模型能够压缩点云,调节分辨率和判断空间是否被占据,将点云地图转化为八叉树地图,最终获得数据小和适用于导航的三维八叉树地图。
Abstract
According to the research needs of the co-pilot of the aircraft cockpit, in order to enable the robotic arm to complete the navigation task in the aircraft cockpit, this paper aims to construct a 3D map of the simulated cockpit of the aircraft that can be used for the robotic arm navigation. In view of the influence of the distribution of feature points on the accuracy of SLAM(simultaneous localization and mapping) mapping, through experimental comparison, this paper verifies that the improved ORB(oriented FAST and rotated BRIEF) feature detection algorithm of ORB-SLAM is more uniform than the feature points detected and extracted by the SIFT, SURF and ORB algorithms in the OpenCV library, which is more suitable for SLAM. In this paper, Kinect V2.0 is used as the data acquisition device for depth information images and color images. In the real environment of the simulated cockpit of the aircraft, combined with the ROS system and the ORBSLAM2 system framework, a 3D dense point cloud map in the aircraft cockpit is constructed. In view of the problems of large data and difficult to achieve navigation in point cloud maps, the OctoMap data model is used, which can compress point clouds, adjust resolution and determine whether the space is occupied, convert the point cloud map into an octree map, and finally obtain a 3D octree map with small data and suitable for navigation.
Keywords
aircraft cockpit co-pilot ; point cloud map ; octree map ; SLAM ; ORB