APP下载

民航机务维修工作的虚拟人姿态生成技术

2023-12-04马欣辰

计算机集成制造系统 2023年11期
关键词:姿态角度人体

郭 庆,马欣辰,付 宇

(中国民航大学 航空工程学院,天津 300300)

0 引言

随着国家科技的进步和民用航空业的快速发展,民航运输量持续增长且机队规模在不断扩大,在带来机遇的同时,也给民用航空业的安全运行提出了更高的要求[1]。民用航空器的维修保障是飞机全寿命周期中的重要部分,因此为了保证航空器及发动机的持续适航能力、减少机务维修人员维修过程中的人为差错,提前发现维修中人因方面的设计缺陷,就要求厂商在并行工程的框架下进行维修性验证[2-3]。近年来利用虚拟人代替物理人对航空产品进行人机工学分析成为了现阶段计算机辅助工程的热点问题,而维修作业姿态的生成是维修工作负荷分析和维修过程人为因素研究的基础[4-5]。

虚拟人的姿态生成需要能够快速准确的完成,目前国内外学者对虚拟人的作业姿态生成技术进行了大量研究。部分学者构建人体姿态数据库,利用这些数据重新组合生成目标任务的作业姿态,如焦庆龙等[6]提出了一种基于群体智能优化算法与聚类分析算法的虚拟人体维修作业姿态库设计方法;KUO等[7]利用基于逆向运动学的行为语义编辑虚拟人姿态的自动生成。但是上述方法自动化程度不足,适用性较低,无法生成自然的虚拟人姿态。为了提高姿态生成的效率,ZHANG等[8]运用反向神经网络进行逆向运动学求解。LIPPI[9]建立机器学习模型,运用在线学习预测器进行虚拟人人姿态控制。LI等[10]通过条件变分编码器和条件生成对抗网络模拟工人抬举任务的姿势。NGUYEN等[11]使用改进搜索空间的差分进化算法预测手臂的关节角度值。QIU等[12]提出了一种将原始运动、精细运动和过渡运动相混合的虚拟人控制方法,提高了仿真效率。与前一种方法相比,该方法虽然能更快速准确地生成人体的姿态,但无法兼顾平衡性等人机因素及空间大小等环境因素,因此现阶段大部分学者选择运用智能优化算法进行作业姿态生成。罗明宇等[13]提出了一种运用维修姿态库和带精英策略的快速非支配排序遗传算法(fast elitist Non-dominated Sorting Genetic Algorithm,NSGA-Ⅱ)求解手臂姿态的混合建模仿真方法。朱文敏等[14]通过构建虚拟人的可达性范围来自动确定合适的虚拟人姿态。武维维等[15]从平衡性、关节负荷等人机因素方面提出多个约束条件,并基于NSGA-Ⅱ方法求解最优解集以确定最佳姿态方案。

综合国内外学者的研究现状,针对现阶段的姿态生成方法,在民航机务维修性验证中存在求解方式复杂、无法兼顾实际工作中的多约束需求等问题,本文以民航发动机维修为研究对象,提出一种基于带收缩因子的粒子群优化算法(standard Particle Swarm Optimization with a Constriction Factor,PSO-CF)[16-17]的机务人员维修工作姿态生成方法。该方法通过已知的发动机设计参数和维修任务,综合分析可达性、平衡性、关节转动范围以及视域范围因素,运用逆向运动学和PSO-CF算法生成接近自然状态的机务维修虚拟人的作业姿态。最后,通过与某型发动机起动机拆装实验得到的动作捕捉数据对比,验证了在已知发动机设计布局情况下本文所提方法的有效性、可行性和适用性。

1 人体模型建立

人体是一种具有多维自由度的多关节链状结构,身体节段为有质量的刚体,关节可近似为铰链结构。本文采用的是简化后具有15个驱动关节和18个身体节段的虚拟人体模型,根据人体结构特点,人体各组成部分可以组成一个树形拓扑结构[18],本文所使用的人体骨架级联图如图1所示。

虚拟人关节与节段位置的确定由虚拟人拓扑关系给出,当父节点所在的关节发生旋转时,对应的子节点与子关节除了跟随父节段位移之外还同时进行旋转运动。子节段旋转与位移可以通过控制驱动关节的位置和姿态来确定。为避免因使用欧拉角坐标变换而发生万向节死锁的问题,本文采用欧拉四元数的方法来表示当前坐标系与初始状态坐标系的差异。ri=[xi,yi,zi]T表示身体节段在全局坐标系下的位置;qi=[ai,bi,ci,di]T是一组四元数,用来表示该身体节段的旋转轴与旋转角度。根据四元数的运算法则,身体某一节段si的末端位置Pi,j的位置向量为[19]

ri,j=ri,f+Qi·veci,i=1,2,…,N。

(1)

本文所定义虚拟人初始姿态为N-Pose状态,此时人体处于站立姿态且双臂自然下垂,各关节的初始坐标系与全局坐标系重合,全局坐标系原点定义在两脚根部连线的中点,坐标系中的x轴与人体冠状面垂直且指向前方,y轴与人体冠状轴重合,z轴垂直于水平面向上。初始时各关节的旋转四元数qi=[1,0,0,0]T,关节角度为0。

2 逆向运动学姿态求解

在发动机设计布局已知情况下求解虚拟人的维修工作姿态是一种逆向运动学问题,根据给定的末端关节位置,求解出人体所有关节的角度[20]。由图1给出的人体骨架级联图可知,虚拟人是由若干简单的关节链组成的。对于简单的关节链,如腕、肘和肩关节组成的关节链,可以通过解析法求解[21]。人的肩关节和腕关节具有3个自由度,肘关节只有1个自由度,因此在肩关节固定的情况下,肘关节在确定的肘圆平面内[22]。

(2)

(3)

(4)

由此可以求出肩关节和肘关节相对于肩关节的旋转四元数分别为

(5)

(6)

(7)

(8)

综合上述过程可知肩关节和肘关节的方向特征向量分别为

qs=qaqs0,

(9)

qe=qsqe0。

(10)

但是逆向运动学是多对一的映射,求解出的姿态有无数种,为了得到真实自然的虚拟人姿态就需要在这些姿态中寻找出最优解。

3 作业姿态的优化求解

在现实生活中,人体会自动地寻找最舒适的姿态来完成作业及任务。舒适姿态的选择受到多方面因素的影响,单纯地通过逆向运动学解析法求出的姿态往往与真实姿态存在较大差异,虽求解运算时间较短但姿态求解后需要再次根据经验进行参数调整。另外,根据中国民用航空规章《运输类飞机适航标准》(CCAR-25-R4)第25.611条,进行机务检查维修工作时需要保证良好的可达性和可视性,因此需要根据条件对关节角度进行调节优化。本文采用带收缩因子的粒子群优化算法[23],其本质是一种随机搜索算法,在多目标优化环境中拥有较好的寻优能力。将经过初始化后的随机粒子放入解空间中,根据粒子自身和群体信息共同决定运动的速度和方向,通过不断迭代来搜寻最优的关节角度解集。对于第k代粒子的速度、位置的更新公式为

(11)

其中,xk,vk为第i代粒子的位置和速度,xk=[θk1,θk2,θk3,…,θkd]T,Pkd(t),Pgd(t)分别表示第k个粒子在t时刻的最优位置和整体最优位置的第d维分量,c1,c2是自身认知因子和社会认知因子,r1,r2为(0,1)之间的随机数,χ为收缩因子,运用下述公式计算:

(12)

本文中自身认知因子和社会认知因子取2.05,此时c为4.1,收缩因子χ为0.729。基本流程如图2所示。

3.1 总体优化目标函数

机务人员在进行维修工作时,不仅要保证手臂可以触及到维修对象、被维修件在视野范围内,还应保证人体各关节处于舒适状态且不易摔倒,但在实际工作中以上各个目标间存在矛盾,难以同时达到最优。因此将人体的各关节角度作为变量构建下述目标函数:

(13)

3.2 可达性目标函数

(14)

3.3 平衡性目标函数

由于人体是一个刚体链状结构,姿态的变化往往会导致人体重心发生偏移,当人体重心的投影位于人体支撑面外时人就会因为平衡性不足而摔倒。人的重心坐标位置(xG,yG,zG)可通过下式计算得到:

(15)

(16)

(17)

其中式中的Gi和(xi,yi,zi)分别代表第i个身体节段的质量和重心位置。根据GB/T 10000-1988《中国成年人人体尺寸》和GB/T 17245-2000《成年人人体惯性参数》标准可得到人体各节段的质量和重心所在位置如表1所示。其中质心位置为该身体节段的重心到父节点的距离与整个节段长度的比值,可以根据下式计算得出:

表1 节段重量和重心位置参数表

(18)

其中:Uc表示重心位置;Uf表示父节点的位置;Us表示子节点的位置。

为了保持所求姿态的平衡性,人的重心投影点越靠近支撑面的中心点,姿态越稳定越安全[14]。因此建立考虑平衡性的目标函数:

(19)

其中dPFLPG表示脚踝位置PFL到人重心在支撑面上的投影点PG的距离,为脚踝位置到支撑面的中心点Pc的距离。

3.4 关节转角约束函数

人体关节的结构复杂,使得各个关节在不同旋转方向有不同的转动范围。肌群的紧张程度会影响人在维修任务中的舒适度[24],如果长时间处于不舒适的关节角度范围内,就会增加关节力的大小,施力的增加会增加维修人员在维修过程中的难度、维修风险和人为差错发生的概率,通常来说人体会自动选择各个关节协调、整体感觉较为舒适的关节角度。对此,本文采取下述关节角度评估函数:

(20)

由于关节转角处于不舒适的范围会提高工伤风险、增加维修任务中人为差错发生概率。为了使各个关节都尽量处于最舒适状态,在关节角度评估中评估值较高的关节将在考虑转动范围的目标函数中被赋予更高的权重,因此本节的目标函数表示为

(21)

3.5 视域约束函数

维修工作中的可视性是民用航空器维修性验证评判的重要指标,机务维修人员需要在任务时将视线集中于被维修部件,这样才可以确保维修任务可以准确的完成,避免发生人为差错。视野是人头部和眼球不动的情况下,眼睛观看正前方物体时所能看到的空间范围[25]。水平面内视野内的双眼视区大约在60°以内的区域。而垂直平面内能分辨颜色的最大视区为视平线以上30°和视平线以下40°,最佳眼睛转动区为视平线以上25°和视平线下30°。而实际上人的自然视线是低于标准视线的,一般情况下,站立时的自然视线低于水平线10°,坐着时的自然视线低于水平线15°。

(22)

该角度同时也是各个关节角度(θ1,θ2,…,θi)的函数,建立针对可视域的目标函数方程

(23)

4 实验与验证

将本文所提出的姿态生成方法使用Windows 11/Python 3.7.10进行开发,并将得到的虚拟人姿态进行可视化生成。首先通过设置不同的作业目标点进行姿态生成以验证本文方法的有效性。然后,以某型航空发动机起动机拆装维修作业作为验证实验,获取实验者执行该任务时的动作姿态数据,并将其与使用本文方法求得的姿态数据进行比较,通过结果比较验证本文方法的适用性和可行性。

4.1 实验虚拟人尺寸的获取

本实验中选取的实验者为年龄21岁,身高170cm,体重48kg,无骨骼疾病的健康男性。实验者在实验前已充分休息,不存在睡眠不足或肌肉疲劳的情况。实验者详细身体数据如表2所示。

表2 实验人员身体尺寸

4.2 姿态生成算法的有效性验证

将该实验人员人体参数作为姿态生成的虚拟人尺寸,设置作业目标点在虚拟人初始位置右侧手臂的正前方,距地面110 cm,与虚拟人冠状面的水平距离分别为30 cm和50 cm,取粒子数量50,迭代次数为100,使用第3章提出的姿态生成优化算法选取最优姿态。

水平距离30 cm时目标位置与虚拟人距离较近,如图3a所示虚拟人仅通过抬升手臂就可到达作业目标点,作业姿态较舒适且与日常生活经验一致。从图3b中可以看出在该场景下优化函数可以达到最小值0.432,分析优化函数中各项,发现该场景中可达性与关节转角舒适性较好,重心与站立时位置相仿,但视域约束函数值较大,表示该目标位置虽处于视野中,但不处于最佳视区范围内,而且颈关节负荷较大,长时间处于此状态可能会造成疲劳。

水平距离50 cm时目标位置距离稍远,且肩关节到目标点的距离大于手臂长度。为保证手掌能触及作业目标点并减少手臂大幅度抬升增加的肘关节和肩关节的负荷,虚拟人需要小幅度弯腰来满足可达性与转动范围的约束条件,同时需要稍微曲腿来抵消身体前倾带来的重心偏移以保证该姿态下的平衡稳定,如图4a所示。在此姿态下,第3章所述的4个约束条件均得到较好满足,优化函数值变化曲线如图4b所示。

综上所述,在给定操作目标位置后,通过本文所述的姿态生成算法生成的虚拟人姿态效果较好,且能够兼顾各项人机约束条件,因此本文提出的姿态生成算法拥有较好的有效性。

4.3 姿态生成算法的可行性验证

本算法可行性的验证实验在沉浸式虚拟维修系统中进行,基于HTC VIVE实现虚拟场景与物理人之间的位置映射。由于HTC VIVE所使用激光发射器交替发射水平和垂直的同步激光束进行扫描且手持控制器拥有较高的精度[26-27],因此可以用来替代真实的维修场景。在实验过程中,实验人员穿戴Xsens动作捕捉设备并使用MVN Studio软件对实验人员的动作姿态数据进行测量采集。实验内容选择为某型航空发动机的起动机拆装任务,并要求实验人员根据自身条件选择最舒适姿态完成维修任务。根据飞机维护手册(Aircraft Maintenance Manual,AMM)和零部件图解目录手册(Illustrated Parts Catalog,IPC)选取表3中的2个维修任务作为本文验证实验任务,起动机拆装任务虚拟场景与实验过程如图5所示。

表3 维修任务描述

将表3中的数据作为目标位置输入,运用本文所述的姿态生成算法分别对两个维修任务进行姿态生成。实验数据经过计算后,通过本文算法得到的仿真结果以及通过MVN Studio软件设备采集的人体关节角度结果如表4所示。

表4 仿真结果与测量结果关节角度

将表4中的仿真数据与实际实验采集的数据姿态进行可视化得到如图6所示的姿态对比图。从图中可以看出,任务1的目标位置较高,虚拟人主要呈站立而手臂向前平举的姿态,抬起双手便可以完成托举起动机任务,因此腿部和腰背部的转角较小,肩肘关节的屈曲伸展角度较大。任务2的目标位置较低且距离身体较远,虚拟人主要呈现弯腰且手臂平举的姿态,腰背部和髋/膝关节相比之下都有较大的旋转角度,肩肘部姿态与任务1中相差不大。

人体各关节的活动范围不一,即便在相同姿态下各个关节的角度也存在着不确定性,活动范围越大这种不确定性越明显,因此不能单纯地使用仿真结果与实际采集结果之间的差值来表征本文姿态生成算法的精确度。为抵消这种影响,本文采用计算每个关节仿真结果与实际实验采集的数据结果之间的绝对误差(Absolute Error,AE)与关节转动范围(Rotation Range,RR)的比值(AE/RR)来描述本文姿态生成算法的准确性,如表4所示。通过表4中两组数据的对比分析发现,两项任务的AE/RR基本在10%以内,这种偏差对于人体关节来说是可以接受的,因而使用本文算法生成的姿态具有较好的准确性。本实验过程中这种偏差产生的主要原因为虚拟实验中的设备测量误差以及真实人与虚拟人对各人机因素指标偏好的不确定性。其中任务2中手臂部分仿真结果与实验采集数据相差较大,主要原因是实验人员选择与本文优化算法不同的偏好,在目标位置较远需要大幅弯腰的场景下,该实验人员更倾向于保持身体平衡,而本文算法更倾向于使手臂的关节转角处于较舒适角度区间内。由此可见,人在进行任务操作时的姿态产生是一个随机性的过程,人会自主使用自己认为最舒适的姿态完成目标位置的触及,而本文姿态生成仿真结果与实际操作姿态相差不大,则可以认为本文所提方法生成的姿态是较为合理的。

将表4中结果代入第3章中的总体目标函数式(13)及各约束函数式(14)~式(23),每个任务约束函数值如图7所示。任务1仿真与测量姿态总体目标函数值分别为0.212和0.216,任务2的仿真与测量姿态总体目标函数值分别为0.105和0.257,可见在两个任务中的总体目标函数值都优于实际测量的姿态,这表明使用本文方法生成的姿态在各人机因素目标之间达到了更好的平衡。分开来看,任务1仿真姿态的可达性、平衡性、关节舒适性和可视性的目标函数值分别为0.031,0.399,0.654,0.036;通过设备采集的数据计算出的函数值为0.111,0.291,0.515,0.150。任务2中仿真姿态的优化函数值分别为0.016,0.177,0.384,0.003;而通过设备采集数据计算出的函数值分别为0.067,0.302,0.680,0.458。可见4个约束函数均在关节转动范围约束函数项达到极值,原因是该函数值由全身所有关节角度共同确定,虽然大部分关节处于较舒适的角度区域中,但个别关节角度不舒适就会造成约束函数值急剧增加。在任务2中,由于目标位置较低,各项人机因素指标出现明显劣化,在这种条件下使用本文姿态生成算法可以从整体上兼顾各个人机因素并筛选出最优的作业姿态。另外在本文使用的模型中可达性对最终姿态的确定起主导作用,同时视域约束可看作仅受一个关节影响,因而这两项目标函数值较小。

该实验表明,采用本文所述的姿态生成算法能够计算出在已知目标维修位置情况下较合理的机务人员作业姿态,在各人机因素间达到较好的平衡,拥有在工程实践中应用的可行性,同时该算法在不同的作业场景下也有较好的适用性。

5 结束语

本文针对已知发动机产品布局的维修任务,提出一种基于逆向运动学和多目标粒子群算法的虚拟人姿态生成方法,从可达性、平衡性、关节转动范围和视域范围等姿态约束因素提出优化目标函数,从而确定在维修过程中的最佳维修姿态。实验表明,本文方法在给定目标位置后生成的作业姿态符合人主观生活经验,有较好的有效性;姿态仿真结果与真实测量结果基本一致,拥有较好的应用可行性。另外,由于本文方法综合考虑了多种机务维修工作中常见的人机因素作为限制条件,因此所得虚拟人作业姿态更加逼真自然,具有较好的适用性,为后续运用虚拟人姿态进行维修工作负荷分析和维修过程人为因素研究打下基础。

猜你喜欢

姿态角度人体
人体“修补匠”
神奇的角度
人体冷知识(一)
排便顺畅,人体无毒一身轻
攀爬的姿态
一个涉及角度和的几何不等式链的改进
全新一代宋的新姿态
跑与走的姿态
奇妙的人体止咳点
角度不同