基于HoloLens的飞机维修远程指导系统
2023-06-02崔海青张旭鹏詹湘琳
崔海青,张旭鹏,詹湘琳
(中国民航大学 电子信息与自动化学院,天津 300300)
0 引言
目前我国民航业正处于飞速发展期,国内机场年起降达1 300万架次,运输机场达260个。航空运输作为一种快速、高效的运输方式已经成为大众对于远距出行的首选。面对如此庞大的机队规模和快速增长的运输需求,航空公司的安全运营压力和维护成本在不断上升。飞机维修的质量和效率决定着飞机运营的安全和成本,高质量的维修可以减少技术原因所带来的差错。飞机维修工作具有步骤冗杂,难度较高等特点,传统的维修方式在遇到紧急状况下已经无法满足上述的需求。同时维修人员需随时查阅维修手册,但传统纸质维修手册存在查询方式繁琐、容易沾染污渍、维修指示流程不直观等缺点。
进入信息化时代后,通信软件担当了最简单的远程维修指导媒介。视频指导可以一定程度的提高维修效率,但是实际操作过程中也会存在一些偏差。专家端对故障知识的理解和现场端对故障部位的判断存在着不对称性,无法对整个维修任务进行快速、直观的指导。故随着这一问题的出现,远程辅助维修有了更多的实现形式。李林瞳等[1]针对航天员在空间站中设备更换等问题,对适用宇航智能交互场景的混合现实技术做出了技术研究,证明了混合现实技术在航天员在轨辅助支持上实现的可能性。从远程维修设备方面来看,DOVE系统[2]和Huang W等[3]分别提出了不同的针对于计算机的远程辅助维修操作系统。Wang Peng[4]和Kerthyayana[5]提出了基于虚拟现实设备的远程辅助维修系统。这些设备都拥有未能解放维修人员双手、操作步骤繁琐、连接不稳定等特点。而从远程维修技术上来看,顾慧慧等[6]、郭建龙等[7]和崔义辉[8]均提出了以不同的3D模型库作为基础的远程协助操作系统,但是都未对所使用的设备对人机交互体验问题提出有效的解决方案,远程维修指导效率并未得到提升。
针对上述问题研究,本文通过对HoloLens端的深度传感器使用,专家端在远程电脑上进行维修指导操作,远程端生成具有三维空间位置信息的二维、三维标注,有效提高了设备修理的工作效率和工作质量。借助远程标注,解决了维修信息呈现方式单一、专家代入感不强、维修人员频繁切换维修辅助设备等带来的缺点,使专家端和现场端的交互更加简洁、具体。
1 系统设计
如图1所示,本文系统从设计角度分为专家端和现场端两部分。现场端维修人员佩戴HoloLens设备接收专家信息,专家端使用PC对现场端进行指导。专家端指导方式分为二维手势和三维手势两部分。二维标注包括圆形圈选、方形圈选、箭头指示、二维画线四部分。二维标注的圆形圈选和方形圈选为不同的维修部位提供了多种选择,给现场端和专家端更加直接的观感。二维箭头指示是帮助指引维修人员进行拿取零件、放置拆卸物、重点标注维修点等操作,且二维箭头在头戴设备中以三维方式呈现。二维画线部分用于专家端进行快速标注和快速书写内容,防止维修过程中出现流程遗漏。三维标注基于HoloLens端的空间感知能力,专家端在PC上进行二维画线,通过手势识别算法,识别出专家端手绘图形,调用立体空间的三维模型,放置在专家标识位置,显示在现场维修人员的头戴设备当中,使得维修人员无需停止当前工作翻阅维修手册。详细标注方式见表1所示。
图1 系统流程图
表1 本文设计的标注方式
2 标注工具
为了实现专家端自由选择标注类型和颜色,是通过改变Panel类对象的Switch属性实现。同时Mark类包含了标注起始点信息、结束点信息、颜色信息和标注索引信息。通过直接继承Mark类就可以实现对ArrowMark类、CircleMark类、RectMark类、LineMark类和3DMark类进行标注和转换。ArrowMark类代表二维箭头标注;CircleMark类代表二维圈选标注;RectMark类代表二维方框标注;LineMark类代表二维曲线标注;3DMark代表笔画识别三维标注。表2是Switch属性值对应的操作工具和功能。
表2 Switch属性值对应的操作工具和功能
3 远程指导标注方法
3.1 空间坐标转换
专家端在进行远程标注的过程中,涉及到世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换[9]。将现场维修人员启动设备位置设置为世界坐标系原点,专家端可以借助HoloLens设备得到现场端所有物体的位置坐标。
如图2所示,为各个坐标轴之间的关系。以HoloLens相机的光心作为相机坐标系的原点,用Oc表示,Xc,Yc,Zc表示相机坐标系坐标轴,物体坐标系分别于x轴、y轴的正方向平行,光轴与z轴重合。图像坐标系坐标原点为摄像机光轴与图像物理坐标系的交点位置[10],为x,y两条坐标系[11]。像素坐标系原点为图像左上角,为u,v两条坐标轴。
图2 坐标轴关系图
世界坐标系是以虚拟世界原点为坐标原点建立的三维坐标系,一般原点为Ow,Xw,Yw,Zw分别表示为三条坐标轴。而将世界坐标轴转换到相机坐标轴只有位置和朝向上的改变,借助旋转矩阵R和平移向量T,通过公式(1)来进行改变[12]:
(1)
同时HoloLens的相机矩阵和投射矩阵存储了当前设备的方向和位置,通过CameraToWorldMatrixAPI获取得到以上矩阵信息,为下一步标注做准备。
3.2 远程标注设计
在得到设备方向和位置的基础上,进行对现场端标注。基于维修人员操作流程和专家端绘制的简易程度,本文共设计了二维手势标注和三维手势标注两类操作指令。其中二维手势标注包括箭头指示、圆形圈选、方形圈选、二维画线四部分。三维手势包括顺逆时针指引、箭头放置物体指引。这些标注都需要借助于HoloLens端的空间感知能力。
HoloLens传输至专家的视频数据中包含了当前环境的空间矩阵数据,专家在PC端进行标注时,首先冻结当前视频画面,确认标注类型。真实空间确认空间标注点P2如图3所示,HoloLens端通过空间矩阵信息计算出当前视频冻结状态下相机在现场维修端位置A1,根据投射面C1C2C3C4计算出点P1。结合HoloLens的空间感知功能[13],计算出A1、P1两点连接所发出的射线碰撞在真实空间中的点P2,最终确定出标注在现场维修端的位置。
图3 真实标注点确认
3.2.1 $P算法改进
$-family识别器是一个非常庞大的手势识别器家族,其中包含$1[14-15]、$N[16]、$P[17-19]、$Q[20-21]等算法。$1算法为单笔画识别,$N算法虽然为多笔画识别并能识别多笔划的顺序,但是其占用内存较大,无法在HoloLens上进行快速运算;$Q算法在计算过程中计算速率不及$P算法,所以本文选择$P算法进行快速笔画识别改进。同时笔画识别是针对于二维笔画进行快速识别的算法。为了专家端进行快速的三维标注,本文对$P算法应用场景进行拓展,将其应用在三维空间当中。
$N算法在进行多笔划识别时,通过将多笔划分解成单个笔划,同时结合角度、时间等信息获得出具有方向信息的手势。而原始的$P算法是根据两个手势的点云状况来进行匹配。专家端绘制的笔划会产生一组候选点集合Q,同时模板也会生成一组模板点集合H。通过确定Q和H的最佳匹配度,来确定出当前手绘笔划的名称。识别过程需要满足以下几点:
1)对于专家端手绘速度或采样点数的变化具有高适应性;
2)允许专家自己定义手势笔划;
3)交互速度足够快。
专家端绘制笔划之后,第一步进行笔划路径的重采样。专家端在进行绘制笔划时的速度对手势笔划输入的数量有着明显的影响。为了能够使得在不同移动速度下的笔划具有可比性,通过对手势笔划进行重采样,原始点序列定义的路径由N个等距点序列定义。同时过低的采样点N会使得采样精度损失,过高的采样点N会增加运算时间。故在$P算法中选择N=32。首先计算手势笔划路径总长度,用总长度除以N-1计算出N个点之间每个增量的长度I。然后通过线性插值的方法,当步进距离超过I时,添加一个点,从而完成第一步重采样工作。
第二步为手绘笔划和模板笔划的旋转对齐。在可能的角度空间中找到两个笔划的最佳对齐。将手势质心和鼠标按下的第一点形成的角度记作手势的指示角度,通过旋转将其旋转到0°,进行模板对齐。
第四步是找到最佳匹配模板。两个手势点云的最小距离匹配值如公示(2)所示,假设手绘手势和待选手势分别为Q和H,对于Q中的每个点Qi,都可以找到最近的Hj与之匹配,直到所有的点都进行匹配。而匹配的结果随着Qi和Hj中点的选择的顺序变化而变化。选择不同的Qi作为匹配起点,计算从1到n个点匹配之后,返回所有运行结果的最小匹配值:
(2)
但在此计算过程中,Q中第一个点在进行匹配过程中拥有H的所有点的匹配数据。Q中后续的点在匹配过程中能够选择的点也相应减少,Q中最后一个点进行匹配时只有一个点可供选择。在此基础上添加一个加权值ωi∈[0,1],采用公示(3)线性加权的方式对最小匹配值进行计算:
(3)
其中:
(4)
最后得出的结果取决于Q和H的匹配的方向,因此需要返回一个最小值Min(d1,d2),其中d1,d2分别为Q到H和H到Q的点云距离。
同时$P算法中点序列未包含时间信息,故无法在运用到三维空间后进行标注方向识别问题。故在重采样之后加入特定时间点选择,$P点序列中加入时间序列T对点序列进行标注。在绘制笔画时,挑选3个特定时间点,并记录3个点的时间状况和位置信息,分别为:起始点P1、绘制时间中间点P2和结束点P3。后续通过三点之间的位置时间关系进行二维到三维的转换标注,实现改进的$P算法从二维空间到三维空间的应用。
改进后的$P算法的流程图如图4所示。在专家端绘制手绘信号之后,进行专家端手绘手势进行$P算法的重采样、对特定时间采样点进行挑选、手势旋转、手势缩放、手势模板匹配。在二维手势进行模板匹配之后,进行三维标注类型的选择。当标注类型为箭头标注时,同时设备计算专家端手绘笔画的长度和绘制方向,结合空间感知能力将三维箭头模型调用,放置在专家端确认标注的位置;当标注类型为旋转标注时,设备通过对特定时间点数据处理,调用出专家端所需含有旋转方向(顺时针、逆时针)的三维旋转模型,放置于专家端标注位置。
图4 改进后$P算法流程图
3.2.2 三维箭头指引
根据对远程辅助维修的实际指导过程中发现,二维的箭头标注指令不能更加立体的表现出专家端所描述的维修意图,并且为了缩短专家端操作步骤,故添加了三维箭头模型的快速调用过程。采用图5(a)二维箭头手势作为定义,专家端在屏幕上通过手绘曲线标注绘制出二维手势,现场端就会在对应的绘制位置生成预设好的三维操作模型,如图5(b)所示。在快速调用模型的过程中,本文对$P手势识别算法进行了改进,将二维手势识别应用在三维手势识别当中。将手绘手势与训练库中的手势模板进行匹配,从而快速调用出需求的三维模型。
廖:的确有许多领导都强调过二者的关联,可取的一面是认为此乃科学史“走出象牙塔”、发挥其社会功效的重要路径;但也有将其视为“走出经费困境”、可以赚钱的重要途径者.
图5 专家端和现场端三维箭头标注视角
在专家端手绘手势过程中,改进后的$P算法识别手势通过对手绘曲线进行点的重采样、旋转、缩放、模板匹配最高得分从而获取出最相近的手势。
在模板匹配过程中,原始的$P算法将手绘笔画缩放在统一标准的正方形内,在进行二维空间到三维空间的转换过程中,识别出来的三维模型大小一致。但针对实际安装指导过程中专家端需要不同长度的三维模型。所以通过对$P算法缩放部分进行改进,对专家端手绘笔画进行边框处理,计算出手绘图形的最小外接矩形,根据外接矩形的长和宽确定三维模型的大小,实现标注长度的可调节。
3.2.3 三维旋转指引
维修过程中,会涉及到旋拧螺丝、扳手方向等问题。旋转指引可分为顺时针旋转和逆时针旋转。专家端在PC端进行笔画绘制时,绘制笔画方向不同,结合绘制的点具有三维特性,可以通过对相邻点之间的叉积来计算出向量的方向。最后根据识别结果进行三维立体模型的放置。
如图6所示,改进$P算法对时间点采样的起始点,中间点和结束点分别为P1,P2,P3。设矢量P1=(x1,y1),P2=(x2,y2),P3=(x3,y3)。若P1×P2>0同时P2×P3>0,则识别为顺时针三维指引;若P1×P2<0同时P2×P3<0,则识别为逆时针三维指引。顺逆时针识别效果如图7所示。
图6 顺、逆时针手势识别
图7 专家端和现场端三维旋转标注视角
3.2.4 箭头指示标注指令
箭头指示是为维修人员在大范围寻找故障点、拿取零部件等场景提供的指示功能,可使维修人员在复杂的工作环境中迅速定位维修目标。发送箭头指令可根据专家端需求控制箭头指令的角度、长度。远程端需要在PC端进行二维图形的放置,现场端在现场端看到专家给出的二维指令信息,该信息不会随着人员的移动而移动。
绘制箭头的长度根据公式(5),Vector2表示二维空间中的向量和点,P0为专家端鼠标按下时起始点,P1为鼠标抬起时的终止点,分别在x轴,y轴上进行减法运算,得到指示箭头长度。箭头指示方向根据公式(6),只需要判断起始点和终止点y轴的正负问题。如果P1.y-P0.y>0,箭头朝向向上;如果P1.y-P0.y<0,箭头朝向朝下。同时更新绘制箭头的位置方向,保持x,y轴方向不变,z轴根据P1和P0所计算出的向量夹角进行旋转。如图8所示,专家端给出二维标注,借助HoloLens空间感知能力,绘制出HoloLens端的箭头标注。
图8 专家端和现场端箭头标注视角
Vector2.P1-Vector2.P0
(5)
P1.y-P0.y>0
(6)
3.2.5 圆形圈选标注指令和方形圈选标注指令
圆形圈选和方形圈选图9是为操作人员当前的操作步骤提供目标圈选功能,可帮助操作人员在复杂的工作环境中快速的找到所需目标,同时为了方便维修人员区分专家端的标注,防止标注类型单一所造成的维修事故。类似箭头标注指令,鼠标点击点P0为起始点,鼠标抬起点P1为结束点,根据公式(7)在标注过程中需要确定圈选的大小,只需分别确定x轴和y轴方向长度即可。根据公式(8)确定圈选位置,计算出中心点即为圈选图形的放置位置。
图9 专家端和现场端箭头标注视角
|P1.x-P0.x|,|P1.y-P0.y|
(7)
(Vector2.P1+Vector2.P0)/2
(8)
3.2.6 手绘曲线标注
手绘曲线部分使用的是Unity中的Line Renderer组件。通过Line Render组件对多个点数组的采集,在每个点之间绘制一条直线,可以完成任何线条的绘制。手绘曲线标注部分是应对不规则的维修部位、专家需要快速标注笔记所开发的功能。同样此部分功能也借助于HoloLens的空间感知功能,将标注部分显示在物体表面,可以从各个视角观察专家端所绘制的曲线。
4 远程标注实验结果及分析
4.1 开发实例环境
远程专家使用远程专家客户端进行标注指示和视频通话对用户进行维修指引,远程专家客户端如图所示,专家端操作面板操作选择界面包括清除上次标注、确认本次标注、删除所有标注,通过对标注标号的索引进行操作。为了方便专家端进行多种类的远程指导,远程专家端的可操作模块包括标注颜色选择、标注类型选择和标注清除选择,其中标注颜色包括红绿黄3种颜色;标注选择包括二维标注和三维标注,二维标注包括箭头、曲线、圆圈和方形标注,三维标注包括箭头和旋转标注;识别模块进行二维笔画标注到三维立体标注的识别和模型调用。视频传输部分通过UDP从现场端发送给专家端,TCP/IP协议则完成标注部分的发送。
MR硬件:Microsoft公司的第二代HoloLens眼镜。
软件运行环境:远程维修指导系统需要同时运行专家PC端在Unity端应用、HoloLens眼镜应用,同时为了保持维修过程中的网络流畅性,专家端和远程端都运行在同一个局域网中,表3是远程维修指导系统运行环境。
表3 远程维修指导系统运行环境
4.2 开发实例与分析
本文将二维标注和三维标注相结合,实现基于HoloLens的现场端和远程端的高效维修指导。整个系统在Unity3D中进行开发。
因为原始的$P算法不能对顺、逆时针进行判断,故对其相似算法$N进行了比较。在相同匹配模板下,对$N算法和改进之后的$P算法在Unity平台上进行了三维识别耗时对比。为了计算两组算法耗时对比,在改进$P和$N算法重采样之前加入sw.Start()开始监视代码运行时间,在手势识别结束之后加入sw.Stop()停止监视,进行手势指令耗时计算。
针对两种算法分别对10次手势识别耗时进行统计,两种算法在3种标注指令的耗时如图10所示。
图10 改进$P和$N耗时对比
图10(a)为三维箭头指令耗时对比图,图10(b)为三维顺时针指令耗时对比图,图10(c)为三维逆时针指令耗时对比图。从对比图中我们可以得出,在同样进行10次实验的条件下,三维箭头指令在改进的$P算法支持下平均耗时3.27 ms,而$N则平均耗时9.16 ms;三维顺时针指令在改进的$P算法支持下平均耗时1.74 ms,而$N则平均耗时10.74 ms;三维逆时针指令在改进的$P算法支持下平均耗时1.60 ms,而$N则平均耗时8.2 ms。
通过对比两种算法在三维空间中识别的耗时对比,证明了改进的$P算法有更快的识别速度,能够更好的应用在三维空间的标注当中,提升专家端的远程协助维修效率。
5 结束语
本文通过对$P算法进行改进,将二维空间的$P算法运用到三维空间进行三维远程标注,使得算法具有识别方向特性,也提高了三维模型的识别速率,提高了维修效率。同时远程维修辅助系统结合二维标注和三维标注,二者同时使用使得远程标注系统发挥稳定,解决了远程辅助不直观的问题,使得专家端和现场端联系更紧密。
本文的系统还有很多值得改进的地方,比如通过对改进$P算法和$N算法使用过程中内存统计,同样进行10次笔划识别,改进$P算法内存使用率上虽相较于$N内存使用率减少约为38.4%,但是相较于一笔识别的$1算法还是有一定差距。在接下来的系统开发中可针对减少算法内存的使用进行改进。