基于RGB-D传感器的车间三维场景建模*
2015-10-21全思博李伟光郑少华
全思博 李伟光 郑少华
(华南理工大学 机械与汽车工程学院,广东 广州510640)
自动引导小车(AGV)作为制造企业内的现代物流系统的重要组成部分,其应用越来越广泛.除了使用磁导航等方式遵循固定线路运行的AGV 之外,许多先进制造企业当前迫切需要能在车间内自由路径自主运行的智能AGV,这就需要AGV 能够根据自带传感器感知所处环境的空间信息,对运行场景进行地图构建.
AGV 属于移动机器人中的一类,关于移动机器人二维环境地图构建方法的研究已有相对丰富的成果.文献[1]利用声纳创建了室内环境的栅格地图,文献[2]从激光雷达数据中提取直线特征作为环境描述主要特征,并建立了比栅格地图数据量更小的二维特征地图.但随着移动机器人的研究领域从结构化场景向非结构化的复杂场景拓展,二维特征地图无法描述不同高度层面的环境特征,因此三维场景建模成为当前自主移动机器人环境感知研究的热点.然而三维环境信息的获取、海量数据的实时记录、传输和三维重建计算处理等,形成了一系列新问题.
已有的三维场景重建方法主要有基于激光扫描和基于视觉技术两类,但是针对室内大范围的三维场景重建问题,这两类方法都存在很大的局限性.三维激光扫描虽然可以获得较高精度的几何模型,但因无法映射纹理而难以生成具有真实感的三维模型[3-4],同时三维激光扫描设备价格高昂,尚难大规模在一般工业和民用领域普及. 综合运用图像处理和视觉计算等技术进行非接触三维测量是计算机视觉的一个重要研究方向,但是主要适用于小场景固定物体[5-6],而对于大空间环境的三维重建尤其是快速实时建模尚无能为力.
近年来,基于以Kinect 为代表的RGB-D 传感器的出现引起各国学者的广泛兴趣,并应用于三维建模,如Henry 等[7]最早提出了利用RGB-D 传感器进行环境建模的基本原理,随后Newcombe 等[8]提出了使用帧到模型配准策略的KinectFusion 算法,Zeng 等[9]用八叉树空间表示方法提高了KinectFusion 的空间利用率,使其能够适应更大场景.目前基于RGB-D 传感器的室外移动机器人较简单环境地形的识别、室内单一物体的三维重建的研究已取得了一些成果[10-11],但在室内复杂场景重建方面的研究尚处于起步阶段. 制造车间这样大空间非结构化复杂环境的三维重建是实现AGV 自由路径自主运行的基础,文中以Kinect 为主要传感器,结合机器人开源操作系统ROS 构建了软硬件集成系统,用于车间环境自动连续扫描与三维建模实验,探讨了扫描策略,并分析扫描与重建的耗时与精度.
1 基于RGB-D 相机的三维重建原理
1.1 Kinect 介绍
图1 所示的Kinect 本是微软公司在2010年末为其Xbox 360 游戏机推出的体感附件,但随后被世界各地研究者和设计师用于各类创意开发. 与激光雷达相比,Kinect 可以方便地对场景同时采集彩色(RGB)和深度(depth)信息,且成本低廉,因此成为当前最热门的3D 传感设备[12].
Kinect 主要由彩色摄像头、红外摄像头、红外散射光斑(微软称之为光编码)发射器构成.红外摄像头通过对发射器投射的光编码图像进行解码来获取场景的三维信息. 彩色摄像头的分辨率及视场大小分别为640×480 和63°×50°,红外摄像头则为320 ×240 和57°×45°,两者帧率都为30 f/s,深度数据的有效范围为0.8 ~4.0 m.在通信接口方面,Kinect 采用了USB 2.0 进行数据传输.
图1 Kinect 示意图Fig.1 Schematic diagram of Kinect
Kinect 可以采用微软Kinect SDK 或开源的OpenNI 库进行开发,前者仅适用于Windows 环境;而后者在Windows 和Linux 环境下都可以使用. 为了配合后文所述的ROS 框架,本系统采用OpenNI作为开发中间件.
1.2 三维重建原理和方法
1.2.1 点云数据获取与拼接融合
Kinect 的RGB 摄像头和红外摄像头分别摄取目标物体的RGB 图像和深度图像.建立深度图像的图像坐标系xy 与Kinect 摄像头动态参考坐标系XYZ,将深度图像的x、y 轴坐标转换到参考系的X、Y 轴坐标,Z 为Kinect 获取的深度值,即可获得三维点云数据(X,Y,Z).
上述两坐标系之间的对应关系为[13]
式中,fx、fy分别为红外相机对应方向上的焦距,cx、cy为红外相机主点坐标. 从上式可推出其逆运算关系式:
随着传感器移动而从不同视角扫描,新的数据将先前图像中的空洞逐渐填充. 通过图像帧间的点云配准算法计算,可以得到摄像头移动时的位姿变化轨迹以及当前摄像头相对于起始帧时摄像头的相对位姿变换关系.将深度图像序列进行滤波去噪并去除移动物体干扰后根据相应的位姿变换关系即可融合拼接出整个场景.
在现实空间根据需要选取适当位置为原点建立世界坐标系XwYwZw. Kinect 扫描与图像拼接完成后,将摄像头XYZ 参考坐标系下的点云数据通过旋转和平移矩阵转换到XwYwZw世界坐标系,最终得到世界坐标系下的场景表达.
1.2.2 纹理映射
为了消除由于Kinect 两个摄像头位置不同而产生的图像中心不一致,需要将深度图像经过坐标变换与对应的RGB 图像对齐.Kinect 扫描与图像拼接完成后,从RGB 摄像头视点位置对重建物体进行光线投射,对重建的点阵云产生渲染效果. RGB 摄像头与红外摄像头对应点之间的映射关系为[13]
式中:Xrgb、Yrgb、Zrgb分别是空间某点在RGB 摄像头坐标系下的坐标;Xir、Yir、Zir分别是该点在红外摄像头坐标系下的坐标;R 和T 为RGB 摄像头和红外摄像头之间的变换矩阵.
本研究的目的不是对空间物体表面进行精细识别,而是对车间宏观三维场景进行重建,故可忽略纹理映射细节精度.
1.2.3 扫描策略
RGB-D 摄像头视野和视距有限,所获取的单帧图像只能涵盖小范围空间,若进行车间大空间场景三维建模,需要对不同位置下所获取大量图像场景进行配准拼接,因此产生了扫描规划问题,即如何采用合理的扫描策略以获取覆盖全场的信息,并满足大空间场景图像序列匹配的要求. 特别是在未知环境中,没有任何先验信息,扫描规划难度更大.
文中使用移动机器人搭载Kinect 进行自动连续扫描. 扫描规划考虑以下4个方面的约束[14]:①Kinect沿扫描轨迹进行图像采集,其有效视野尽可能覆盖全场而不留盲区;②机器人在移动过程中,不能碰撞到障碍物;③扫描路径要有足够的闭环精度以保证从图像序列进行大场景三维建模的精度;④在满足前三者的前提下,使整个扫描路径尽可能短,尽量减小图像处理数据量和机器人执行时间.
前面提到RGB 摄像头与红外摄像头的视角并不完全一致,因此计算有效扫描范围时,以较小的红外摄像头视角进行计算,即有效水平视角57°,有效垂直视角45°.扫描时机器人做连续水平运动,选取合适的机器人移动速度和图像采集帧率使得相邻帧图像在水平方向上有一定重叠区域.由于AGV 高度通常很低(潜入式AGV 一般只有30 cm 高),加上承载的物料高度也低于1 m,因此文中规划扫描范围时,只考虑获取这个高度以下的场景信息,以节省大量数据存储空间并极大降低计算量. 将Kinect 传感器向下倾斜安装,使其垂直视角的上沿与地面平行,其扫描范围垂直截面如图2 中阴影部分所示,其中h 为Kinect 的安装高度,设为1 m;θ 为Kinect 有效垂直视角,45°;[l,L]为Kinect 有效深度测量范围,考虑Kinect 的扫描精度随视距增大而逐渐降低,将扫描截止视距定为5 m,因此有效深度(单位为m)测量范围为[0.4,5.0];[z,Z]为Kinect 在地面的扫描区域范围,由图中几何关系可算出其值为[1.0,4.9](单位为m).
图2 Kinect 的工作俯视角Fig.2 The working depression angle of Kinect
有两种扫描方式可以实现对室内大场景的全覆盖:一是沿直线移动连续扫描,二是旋转扫描与移动扫描相结合.前一种方式移动机器人沿由多条直线段组成的闭合路径移动,Kinect 扫描方向保持与移动方向一致或呈固定角度(即Kinect 两传感器连线与机器人移动方向垂直或呈一水平面夹角),这样扫描速度快,但是因目标物遮挡,固定角度直线扫描所获得的目标物信息量少,尤其是传感器背面的信息几乎都缺失.后一种方式移动机器人先以一定的角速度原地旋转,带动Kinect 旋转扫描采集图像,然后机器人直线移动到下一个旋转扫描点,移动过程中Kinect 也同时采集图像,以弥补机器人和传感器本身占位所造成的旋转圆内的信息空白;到达下一个预定旋转中心位置后,再次旋转扫描,以此类推,直到全景覆盖.
2 移动机器人硬软件平台设计
为了实现Kinect 自动连续图像采集,文中设计了一套具有软硬件可编程、灵活性强、模块化、易扩展、实时性强的移动机器人软硬件平台.
2.1 移动机器人及机电系统
移动机器人底盘采用4个独立驱动的麦克纳姆轮来实现任意方位的移动,每个电机都配备了旋转编码器进行脉冲计数,实现里程计的功能以及闭环控制.
图3 给出了移动机器人硬件构成示意图.其中,移动机器人内部硬件系统由嵌入式主控计算机、电机驱动器及相关传感器组成. 主控计算机采用基于NVIDIA K1 Soc 移动处理器的TK1 嵌入式开发平台,整合了四核Cortex-A15 的CPU 与192个CUDA核心的GPU,具有强大的移动计算能力(峰值可达326 GFLOPS)和良好的硬件灵活性,可满足移动机器人视觉计算的需求. Kinect 通过USB 接口连接主控计算机,负责环境信息的采集.底盘的电机驱动器通过串口接收主控计算机的运动控制指令,同时将实时采集得到的电机编码器数据发送给主控计算机.IMU 惯性测量单元作为辅助定位传感器,也通过串口连接至主控计算机.
图3 移动机器人硬件构成Fig.3 Hardware component of the mobile robot
2.2 ROS 移动机器人平台
底层软件平台采用开源ROS. 它不是完整的操作系统,而是一个面向机器人开发的分布式软件架构.由于其开源特性,研究者在这个框架下利用相应工具和库函数不断为ROS 社区贡献并完善了大量各种机器人操作和应用的程序代码包. 代码复用极大提高了机器人开发的效率,使得ROS 已经逐步成为机器人研发领域的通用性软件平台[15-16].
然而,ROS 的绝大多数功能原本是基于PC 机而设计,在中小型移动机器人的开发应用中ROS 尚有难度,尤其是在嵌入式系统中使用. 为此,文中将ROS 内核移植到一套移动机器人嵌入式系统中,搭建起一套低成本、高性能的ROS 移动机器人软硬件平台,用于车间环境的三维信息扫描和重建以及进一步的AGV 定位与导航.
图4 为AGV-ROS 平台架构,该平台包括远程节点和AGV 节点.远程端节点负责监控调度及信息存储,其中手持终端主要用于现场调试;AGV 端节点负责数据采集、运算和运动控制,AGV 端节点与远程端节点通过无线网络进行通讯. 软件系统根据功能划分为运动控制、信息采集、人机交互、通信以及数据运算5个模块.
该系统基于嵌入式Linux,并对Linux 内核添加实时补丁,从而提高ROS 单机节点的实时性,并利用DDS 协议提高ROS 节点间网络消息传递的实时性.在数据计算方面,使用NVIDIA CUDA 框架,利用TK1 开发平台中的192个核心GPU 进行硬件加速,实现3D 地图的在线构建,CPU 则负责信息采集、运动控制与调度通讯等功能.
图4 AGV-ROS 平台架构Fig.4 AGV-ROS platform architecture
3 三维扫描和重建实验
3.1 实验场地
文中实验场地选在一个金工实习车间,实际探测其车床集群局部,与中央通道呈斜角安装的数台车床彼此平行,通道与车床之间竖有教学指示牌隔离.图5 为场景照片.
图5 车间局部实景Fig.5 Local scene of manufacturing plant scene
3.2 扫描方式与重建结果
前文所述ROS 移动机器人平台按照图2 设定Kinect 俯视工作角及扫描截面,然后分别采用直线扫描和旋转加直线扫描方式,绕机床集群进行自动扫描,再进行三维重建.
首先是直线扫描.围绕3 台车床顺时针连续行进4 段直线路程,其扫描和重建结果如图6 所示(可扫到6 台机床). 从图中可以看出机床本身以及机床之间的空间关系,建模精度误差为厘米数量级(图6 中A 点为机床侧面一辅助支架下端,实际距地面40 cm,扫描重建测量为41 cm;B、C 为两机床底座拐点,两点实际距离232 cm,扫描重建测量为234 cm).但由于机床自身遮挡,造成机床侧后向大块区域信息缺失.不过这样的扫描方式花费时间少,完成一圈扫描仅需3 min,并且缺失的信息不会对AGV 运行路线范围的地图构建造成影响.
图6 围绕3 台机床的直线扫描与重建结果Fig.6 The result of linear scanning and modeling of three machine tools
在此基础上,为获取更丰富的三维信息,适当增加旋转扫描. 如图7 所示,在图6 场景的直线路径中,当机器人走到每两台机床之间时插入一个旋转运动.很显然,这样所得的三维信息比图6 更完整,不再留下如图6 中的信息盲区,如图7(a)和7(b)所示,不仅机床这样的大物体,就连教学指示牌支脚这样小的障碍目标也能清晰呈现.但是,加上旋转扫描后整个行程耗时延长,甚至翻番.
图7 直线扫描混合旋转扫描的轨迹和重建结果Fig.7 Track and 3D modeling using linear scanning combined with rotating scanning
实验过程中,移动机器人、Kinect 和远程PC 通过无线网络通讯顺畅,机器人直线运行和拐角转向以及旋转控制良好,扫描数据读取和记录完整,表明所构建的ROS 移动机器人平台可以很好地协调运行,并用于车间环境的三维重建.
4 结语
面向制造企业生产车间的大而复杂的环境,利用RGB-D 深度传感器,结合移动机器人及开源ROS建构的三维扫描和建模系统具有良好的集成性和可操作性,能够用于车间环境自动连续扫描、点云数据拼接、三维建模,具有轻巧、快速、成本低的特点,可达到厘米级重建精度. 该系统在对大场景三维信息自动连续获取和重建时,直线扫描方式能快速获得重建结果,但是会留下信息盲区;直线扫描加旋转扫描方式可以获得丰富的信息和良好的重建结果,但是相对费时.文中仅探讨了利用单台AGV 对车间场景三维建模,如何提高建模的鲁棒性以及利用多AGV 系统协作提高建模效率还需要进一步的研究.
[1]李润伟.基于声纳的室内环境栅格地图创建方法的研究[D].长沙:中南大学计算机科学与技术系,2008.
[2]朱建国,高峻峣,李科杰,等. 室内未知环境下移动机器人特征地图创建研究[J]. 计算机测量与控制,2011,19(12):3044-3046.Zhu Jian-guo,Gao Jun-yao,Li Ke-jie,et al. Research on feature map building of mobile robot in indoor unknown environment[J].Computer Measurement & Control,2011,19(12):3044-3046.
[3]林鸿生. 成像激光雷达与摄像机的图像融合研究[D].长沙:国防科学技术大学光学工程系,2007.
[4]Burcin B G,Jazizadeh F,Kavulya G.Assessment of target types and layouts in 3D laser scanning for registration accuracy[J]. Automation in Construction,2011,20(5):649-658.
[5]杨明.基于双目立体视觉的三维重建研究[D].武汉:武汉工程大学智能科学与技术系,2012.
[6]章秀华,白浩玉,李毅.多目立体视觉三维重建系统的设计[J].武汉工程大学学报,2013,35(3):70-74.Zhang Xiu-hua,Bai Hao-yu,Li Yi. Design of 3D reconstruction system based on multi-view stereo vision [J].Journal of Wuhan Institute of Technology,2013,35(3):70-74.
[7]Henry P,Krainin M,Herbst E,et al. RGB-D mapping:using Kinect-style depth cameras for dense 3D modeling of indoor environments[J]. The International Journal of Robotics Research,2012(5):647-663.
[8]Newcombe R A,Davison A J,Izadi S,et al.KinectFusion:real-time dense surface mapping and tracking[C]∥Proceedings of the 2011 IEEE International Symposium on Mixed and Augmented Reality.Basel:IEEE,2011:127-136.
[9]Zeng M,Zhao F,Zheng J,et al. A memory-efficient KinectFusion using octree[C]∥Proceedings of the 1st International Conference on Computational Visual Media.Beijing:[s.n.],2012:234-241.
[10]李国镇.基于Kinect 的三维重建方法的研究与实现[D].北京:北京交通大学软件工程系,2012.
[11]陈晓明,蒋乐天,应忍冬. 基于Kinect 深度信息的实时三维重建和滤波算法研究[J].计算机应用研究,2013,30(4):1216-1218.Chen Xiao-ming,Jiang Le-tian,Ying Ren-dong.Research of 3D reconstruction and filtering algorithm based on depth information of Kinect[J].Application Research of Computers,2013,30(4):1216-1218.
[12]El-Laithy R A,Huang J D,Yeh M. Study on the use of Microsoft Kinect for robotics applications[C]∥Proceedings of the 2012 IEEE/ION Position,Location and Navigation Symposium.Myrtle Beach:IEEE,2012:1280-1288.
[13]Bethencourt A,Jaulin L.3D reconstruction using interval methods on the Kinect device coupled with an IMU[J].International Journal of Advanced Robotic Systems,2013,10(2):1-10.
[14]王锋.面向服务机器人的室内语义地图构建的研究[D].合肥:中国科学技术大学计算机科学与技术学院,2013.
[15]Cousins S.Exponential growth of ROS[J].IEEE Robotics and Automation Magazine,2011,18(1):19-20.
[16]Reid R,Cann A,Meiklejohn C. Cooperative multi-robot navigation,exploration,mapping and object detection with ROS [C]∥Proceedings of 2013 IEEE Intelligent Vehicles Symposium.Gold Coast:IEEE,2013:1083-1088.