APP下载

基于混合现实的自行火炮维修指导系统

2023-05-04朱金达赵永衡

兵器装备工程学报 2023年4期
关键词:锚点坐标系物体

朱金达,赵永衡

(河北科技大学 机械工程学院, 石家庄 050018)

0 引言

武器装备的维修保障是其发挥整体效能的基础和战争胜败的关键。自行火炮是自行机动能力和独立作战能力相结合的武器系统,具有机动性强、射程远、火力猛等优点,是陆军作战的重要组成部分。随着其结构复杂度、关联性和使用技术的不断提高,维修保障困难也在逐步加大,传统自行火炮维修多依赖维修人员经验、技术手册和专家现场指导,存在缺乏直观形象的辅助手段、专业指导不及时等问题,特别是一旦某些关键设备出现故障,专业知识储备不足的维修人员不能立刻有效处理,专家指导又因时间、空间、交互限制导致交流沟通成本高效率低,难以满足设备维修的实时性指导要求。

混合现实(mixed reality,MR)技术是VR/AR 技术的进一步发展,具有虚实融合、实时交互、真实沉浸等特点,可融合现实世界与虚拟世界而产生新的可视化环境,通过手势、语音、视觉等方式实现物理和数字对象的共存互动[1]。混合现实装备维修具有不受时空限制、低风险、高效率、远程指导实时性强等优势,已成为军事装备保障和复杂机电设备维修领域的研究热点[2-6]。

Karczmarz等[7]设计了一套基于MR的防空导弹程序诊断模拟器及虚拟指控台,实现通过“Opticalsee-through HMD”头戴显示器以文本、活动箭头、3D模型、动画序列和多媒体的形式显示在实际图像上,显著减少了操作时间、降低了培训成本。Henderson等[8]开发了一套支持美国海军陆战队(USMC)维修人员在LAV-25A1装甲运兵车炮塔内操作的MR维修原型系统,实现了野外条件下在装甲运兵车炮塔狭窄内部进行包括安装和拆卸紧固件、指示灯、连接电缆等操作手册中18项具有代表性的维修任务,对维修人员完成装甲运兵车相应现实而富有挑战性的维修任务提供了有效的帮助。Vorraber等[9]使用Hololens进行远程辅助维修,对汽车维护行业进行了探索创新,并对其维护过程做出测试评估,验证了通过Hololens进行远程辅助维修可很大程度上提高远程维护任务的效率,解决了经验不足的工作人员无法正常进行复杂或困难任务的难题。张旭辉等[10]研发了基于MR技术的故障辅助维修指导系统,实现对矿用设备的维修实时指导,实现了维修设备信息化管理,确保维修流程规范化,可有效提高维修效率和维修人员的技术水平。

本研究利用混合现实的优势,结合现有自行火炮维修方式和流程,设计了基于混合现实技术的自行火炮维修指导系统。该系统以Unity3D平台为开发工具,通过混合现实设备Hololens2以全息交互的方式实现维修知识展示和远程专家指导,可有效解决自行火炮维修人员维修知识储备不足、新手维修人员错误率高、专家指导周期长等难题,提高维修工作效率。

1 系统总体设计

1.1 系统总体架构

基于MR的自行火炮维修指导系统架构如图1所示。包括数据支撑层、关键技术层、Hololens虚实融合应用层。

图1 基于MR的自行火炮维修指导系统架构Fig.1 MR-based self-propelled artillery maintenance guidance system architecture

数据支撑层:主要包括三维数字化模型、各零部件表面纹理贴图和维修指导方案信息等底层基本数据。根据自行火炮维修技术手册、机械图纸等相关资料,使用CAD制图软件Solidworks完成自行火炮各零部件的制作与装配,借助Cinema4D软件进行三维数字化维修指导模型动作片段的制作,运用Photoshop软件制作自行火炮各零部件表面纹理贴图,然后将这些三维数字化模型、指导动作片段、材质贴图等导入混合现实开发软件Unity3D中,以C#控制脚本实现UI交互面板和维修指导流程的逻辑控制,采用模块化思路完成常见不同故障类型维修指导片段的开发。将不同的维修指导方案片段及其相关信息存储在MySQL数据库,待接收到相关指令后进行调用。

关键技术层:主要包括虚实坐标同一化表达技术、三维注册融合技术、环境感知运动追踪技术和虚实遮挡处理技术。虚实坐标同一化表达技术主要用于实现虚实物体不同坐标系的坐标变换,得到维修空间内虚拟物体坐标系和真实世界物体坐标系在像素坐标系中的同一表达。三维注册融合技术以虚实坐标同一化表达技术为基础,主要用于实现虚拟维修指导信息与真实维修空间的注册融合。环境感知运动追踪技术主要用于实现对维修场景及维修操作过程的空间特征点进行识别与跟踪,保障人机虚实自然交互。虚实遮挡处理技术则是对最终呈现效果的保障,主要用于实现将虚实融合后的场景具有空间深度的接近真实物理定律表达,改善用户感官体验。

Hololens虚实融合应用层:主要实现系统应用程序发布后的虚实融合,将自行火炮相关故障维修工艺的虚拟维修指导面板、三维数字化维修操作演示和空间语音文字提示等虚拟信息与真实维修场景内的设备相关信息进行虚实信息融合,并可通过创建空间锚点、分享空间锚点、获取空间锚点等相关操作,实现虚拟对象在维修人员意愿维修指导位置的锚定及不同设备之间的位置共享,以满足不同维修情况的需求。

1.2 系统运行机制

基于MR的自行火炮维修指导系统以自行火炮维修指导手册为基础,将MR技术的虚实注册融合、运动跟踪、虚实交互等技术用于自行火炮维修指导中,主要由故障诊断模块、三维维修指导书模块、维修作业场景管理模块、维修指导操作模块、MR显示模块、MR解算模块以及各种通信接口组成,系统运行机制如图2所示。

图2 基于MR的自行火炮维修指导系统运行机制图Fig.2 Operation diagram of self-propelled artillery maintenance guidance system based on MR

故障诊断模块负责诊断设备可能出现的具体故障,分析故障类别,形成故障ID识别号,与维修指导解决方案进行匹配,包括故障信号采集、诊断分析、故障类别判断、类别传输等。在设备周边布置相应传感器进行故障信号采集,并运行神经网络、深度学习等算法对故障信号进行识别和分类,例如运用卷积神经网络提取获得的信号数据特征,对其进行归一化处理以消除由于数量维度不同导致的误差,运用BP神经网络进行故障分类以实现故障准确定位,再通过网络数据端口将诊断结果传送到场景管理模块进行与故障维修数据库内所需维修指导片段匹配。三维维修指导书模块为系统提供自行火炮各种故障的维修指导信息,这些信息由空间化文本、图片、视频、三维数字化演示模型等提示信息组成。维修作业场景管理模块是系统的核心,通过通信接口实现系统各模块信息流的调用与传输管理,主要包括MR信息解析、维修片段匹配管理、三维数字化模型虚拟维修状态更新以及维修流程逻辑控制等运行管理。维修指导操作模块主要运用虚实交互、语音识别、手部射线跟踪等技术,根据维修指导操作过程中维修人员自然交互操作得到正确的系统指导信息反馈。MR显示模块通过混合现实硬件显示设备Hololens2眼镜将虚拟全息图和现实维修场景进行混合显示,也可实现将专家远程指导以全息的形式展现给维修人员,同时进行空间环境感知和维修人员维修及交互操作的运动跟踪。MR解算模块主要完成将Hololens2获取到的全息图和真实维修场景进行空间坐标变换及虚实注册融合,并且对维修人员操作进行虚实交互检测计算。

2 系统关键技术实现

2.1 虚实坐标同一化表达技术

在基于混合现实技术的辅助维修指导过程中,其虚拟指引信息能否在维修人员所需位置显示将直接影响维修指导效果。欲将虚拟维修指导内容与真实维修车间设备进行有机融合展现给维修人员,则需基于光学透镜式相机成像模型。通过在维修空间内建立不同的空间坐标系,再经过不同坐标系之间的空间位姿变换,实现对虚拟维修指导内容和真实维修车间设备在维修空间内的同一表达。

为实现虚实坐标同一化表达并通过图像屏呈现给用户,首先进行维修空间坐标系统的建立,如图3所示。维修空间坐标系统包含虚拟物体坐标系(VCS)、真实世界坐标系(WCS)、摄像机坐标系(CSS)、眼睛坐标系(RCS)、图像物理坐标系(O1CS)、像素坐标系(O2CS)六大坐标系,分别为图3中的OV—XVYVZV、OW—XWYWZW、OC—XCYCZC、ORE—XREYREZRE、O1—xy、O1—uv。

图3 维修空间坐标系统Fig.3 The spatial coordinate system of maintenance

为实现虚实同坐标系表达,需将维修空间中一对对应点P的虚拟物体坐标系p(xv,yv,zv)和真实物体坐标系p(xw,yw,zw)转换为像素坐标系,所需经历坐标系变换过程如图4所示。

图4 维修空间坐标系统坐标系变换过程Fig.4 Maintenance of the spatial coordinate system conversion process

经过以上坐标系变换便可得到维修空间内虚拟物体P点的虚拟坐标系在像素坐标系中的表达如式(1):

(1)

式中:K为Hololens2相机内参,由矩阵中的ax、ay、u0、v0决定;T为Hololens2相机运动的外部矩阵,包含相机的移动R和旋转矩阵t;A表示虚实世界坐标系之间的缩放比例因子;M为四阶转换矩阵,为固定值且通过微软官方提供的硬件参数和实际测量数据确定[11]。

维修空间中一对对应点P的虚拟物体坐标系p(xv,yv,zv)和真实物体坐标系p(xw,yw,zw)在像素坐标系内展示效果如图5所示。

图5 维修空间中一对虚实对应点PFig.5 A pair of virtual and real corresponding points P in the maintenance space

2.2 三维注册融合技术

在虚实坐标同一化表达的基础上,需要将虚拟维修指导信息与真实维修空间进行注册融合[12],提出一种基于人工标识与空间锚点相结合的方式进行注册融合,整个过程包括人工标识、空间锚定和锚点存储与分享3个阶段。

人工标识:系统选用Vuforia插件作为虚拟物体初步定位开发工具,按照Vuforia标识图制作要求和流程设计出二维码人工标识,在Vuforia官网配置数据库然后获得一个key并打包数据库导入Unity3D中,在Unity3D中创建该项目工程。当相机在真实世界中识别到与Vuforia数据库中相匹配的特征点时,所构建的三维数字化虚拟模型便加载到真实世界的相应位置,其位姿变换遵循上述维修空间坐标变换规则,如图6为Hololens2扫描生成的其中一个维修场景的特征点三维空间。

图6 Hololens2扫描生成的特征点场景Fig.6 The resulting feature scene scaned by Hololens2

空间锚定:由于人工标识放置位置、人眼瞳距差、跟踪使用的IMU传感器存在误差累计特性等原因,完成初步注册后,还需通过图像检测技术进行误差修正。空间锚定的作用是绑定虚拟物体与MR维修空间,被赋予锚点的物体可以被看作将其固定在维修空间中的特定位置,并进行位置校正,确保物体在维修空间中保持相同位姿。在添加锚点之前,维修人员可通过双手拖拽的方式将虚拟物体移动到所需维修空间目标位置,这一过程中虚拟物体主要经过了平移、旋转2种齐次坐标变换技术实现的;调整到合适位置后,通过点击添加空间锚点按钮来实现空间锚点的添加,如图7所示。通过Hololens2的相机采集维修环境的图像信息、特征点信息,然后通过点云匹配将所选物体和维修环境特征点绑定,这样即使产生了漂移但这些特征点之间的相互关系还在,所选物体便还可恢复到原来的空间位置。

图7 维修指导中空间锚点的运用Fig.7 The use of spatial anchor points in maintenance instructions

锚点存储与分享:锚点是和空间中特征点、特征信息绑定的,可通过保存这些特征信息,待下次重新打开应用扫描环境感知到同样的空间特征点后,还可将这些已添加的锚点恢复到它原来的位置,这样挂载到该锚点上的物体也就可以恢复到空间上对应的位置。锚点存储本质是将MR场景的空间状态信息转换为可存储、可传输的形式(即序列化)保存到文件系统或数据库中,当使用者再次加载这些场景状态信息后即可恢复应用进程,如图8所示。锚点存储与分享解决了相同维修场景、维修中断重新进入等情况需重复注册及虚实融合的问题,使得二维码人工标识可脱离真实环境。

图8 空间锚点存储及分享Fig.8 Spatial anchor storage and sharing

2.3 环境感知运动追踪技术

环境感知与运动追踪技术借助混合现实硬件显示设备Hololens2的TOF深度摄像机,利用SLAM运动跟踪构建现实场景表面几何网格,完成虚实环境的标定、跟踪与配准,借助这些与现实环境相匹配的几何网格来完成维修指导虚拟信息的虚实交互[13-14]。为防止物体漂移保证定位,通过IO(惯性里程计)将来自于加速度计、陀螺仪的IMU传感器数据利用牛顿第二定律计算出设备的当前位置变化状态,同时为解决IO存在的误差累积通过VIO(视觉惯性里程计)校正消除误差,VIO利用对积几何原理解算出不同时刻摄像头姿态变化,达到跟踪设备运动的目的。

具体解算过程为,当系统启动后HoloLens2不间断捕获从摄像头采集的图像数据,从这些图像数据中提取出特征点并持续进行跟踪,当带着HoloLens2的维修人员位置发生变化,从不同方位观察同一空间时,特征点就会在不同方位捕获的两张图像中呈现视差,如图9所示。设第一幅图像为I1,第二幅图象为I2。

图9 对极几何与三角测量示意图Fig.9 Schematic diagram of counterpoint geometry and triangulation

其中,O1、O2为同一摄像头在不同位置的光心;P为空间中的一个三维坐标点;P1、P2为P点在2张摄像头图像中的投影,利用对极几何知识可以解算出不同时刻摄像头姿态变化,以进入系统后拍摄第一帧图像时的相机坐标系为世界坐标系,2幅图像的投影方程式分别为:

s1p1=KP

(2)

s2p2=K(RP+t)

(3)

采用归一化平面获取深度信息,两幅图像归一化平面坐标为x1、x2,归一化平面与像素坐标变换为:

x1=K-1p1

(4)

x2=k-1p2

(5)

(6)

设本质矩阵E=tΛR,这有:

(7)

(8)

由此可知,只需通过8对特征点便可算出本质矩阵E=tΛR,矩阵分解可得到其对应平移和旋转矩阵,进一步利用式(4)和式(5)即可得到三维空间点在不同视角下的深度信息。

由于VIO的校准是通过图像进行的,利用SLAM内的回环检测算法,使维修人员在使用过程中通过回头看便可达到消除误差的效果,其中回环检测主要通过构建词袋模型进行相似度计算来实现,根据描述每帧图像包含单词来快速寻找可能闭环帧的过程,同时还可利用这些单词加速特征点的匹配。

2.4 虚实遮挡处理技术

维修空间虚体遮挡处理[15-16]是为将注册到现实场景中的虚拟物体表现出正确的位置关系,其本质是对同一视线上虚实物体特征点深度信息进行解算,并根据深度信息值确定遮挡关系。这一环节的处理主要包括3个过程,一是对维修场景识别跟踪,二是对虚实物体特征点深度信息解算,三则是对根据深度值解算出的虚实物体的前后位置关系进行材质控制渲染处理。

场景识别跟踪是通过本文中的环境感知与运动追踪技术完成的,深度信息解算通过利用立体视觉原理来获得渲染视角下场景深度信息,并实时计算维修空间中虚实物体的深度值,对渲染时虚拟物体各像素点离相机的距离与真实物体离相机的距离进行对比,判断虚实物体的前后位置关系,从而进行遮挡渲染。当虚拟物体比周边真实物体离相机的距离近时正常进行渲染,反之则反。材质控制渲染则是通过对维修指导过程中各零件的渲染进行逻辑管理,来进一步增强空间展现效果。结合维修指导库中目标设备的维修操作流程,在Unity3D中对目标设备的零件材质在原有装配及遮挡关系的基础上进行材质管理,结合相应的逻辑控制,使维修指导目标设备中当零件还未进行维修指导演示时按其真实零件材质进行渲染,当对应零件处于拆卸状态时高亮显示,当零件被拆卸下来后零件则不被渲染。维修端在运行后对目标设备零部件有选择性地进行渲染,增强虚实融合遮挡效果,本系统中传动装置齿轮故障维修中虚实遮挡处理如图10所示。

图10 传动装置虚实遮挡处理Fig.10 Virtual and real occlusion processing of a transmission device

3 实例验证与分析

3.1 系统发布

在Unity3D配置好混合现实环境并选择UWP平台进行打包,利用Visual Studio将系统以APP的形式发布到Hololens2设备上。系统发布前进行适应性配置,这是保证维修指导系统各功能正常运行的关键,包括系统许可证、网络许可、麦克风使用权限等设置,以及相机、环境感知、输入系统语音命令手势识别功能等相关参数设置。系统发布过程利用Hololens2的IP地址与进行开发与发布的电脑建立联系,在Hololens2上生成应用。

3.2 系统测试

以传动装置齿轮故障维修指导应用实例进行验证,在Hololens2上打开生成的系统应用,根据系统人机交互界面显示、语音提示及维修指导过程中三维数字化演示等提示信息完成相关操作。在选择该故障维修指导后,首先需要将显示的相应三维数字化模型通过手动拖拽到维修人员感觉最佳的位置,点击添加锚点按钮利用空间锚定技术进行物体空间锚定,根据维修人员喜好同一故障维修指导锚定位置有所不同,然后根据系统提示进行当前维修指导的故障信息查询、原理认知,并在系统对话框界面显示、语音提示及维修指导三维数字化演示等提示信息引导下一步步完成该故障的维修工作,且当遇到难以解决的问题时还可通过请求远程专家在线指导加以解决,如图11所示。

图11 基于MR的自行火炮维修指导系统测试Fig.11 Test of the self-propelled gun maintenance guidance system based on MR

实验表明,维修人员不仅能根据系统给出的维修指导方案完成维修工作,且其培训上手时间得到显著缩短,有效解决了自行火炮维修人员维修知识储备不足、新手维修人员错误率高、专家指导周期长等难题。

4 结论

1) 提出了一种基于混合现实技术的自行火炮维修指导方法,通过Unity3D和Hololens2设备构建了自行火炮故障维修指导系统。

2) 通过注册融合和环境感知将虚拟维修指导信息融合到真实维修场景中,完成了自行火炮常见故障相应部件的故障数据查询、切面分析、原理展示,通过运动追踪以虚实人机自然交互的方式逐步完成所遇故障的维修拆装和故障件更换。当所遇问题难以解决时,还可通过请求远程专家在线指导的方式进行解决。

3) 结果表明该系统具有良好的实时性和可操作性,实现了维修学习和实操同时进行,从而掌握自行火炮各种故障维修过程。使该系统在自行火炮维修培训中具有广阔的应用前景。

猜你喜欢

锚点坐标系物体
基于NR覆盖的NSA锚点优选策略研究
5G手机无法在室分NSA站点驻留案例分析
5G NSA锚点的选择策略
5G NSA组网下锚点站的选择策略优化
深刻理解物体的平衡
我们是怎样看到物体的
解密坐标系中的平移变换
坐标系背后的故事
基于重心坐标系的平面几何证明的探讨
为什么同一物体在世界各地重量不一样?