朱文敏, 骆晓萌, 范秀敏,3, 张 磊, 蔡俊祺
(1. 上海交通大学 机械与动力工程学院, 上海 200240; 2. 上海船舶工艺研究所,上海 200032;3. 上海市网络化制造与企业信息化重点实验室,上海 200230)
近年来,计算机仿真与虚拟现实等技术在机械装备的各项设计环节中有着广泛应用,例如在装备研制初期,设计人员可以在虚拟环境中对装备的装配、维修维护等环节进行充分设计和仿真,从而提前发现设计缺陷,并及时采取相应措施进行优化改进[1-2].其中,虚拟人模型是真实操作人员在虚拟环境中的映射,是完成装配、维修操作仿真与分析评价工作的基础,设计人员通过驱动虚拟人完成仿真,进而开展人机工程学分析评价工作[3-4].
虚拟人作业姿态的快速、准确生成是进行操作仿真的关键,在确保虚拟人能够完成操作工作的前提下,应尽量使虚拟人具有更好的可达性、可视性和舒适性[5].目前,许多学者对虚拟人作业姿态生成方法进行了研究,主要包括手工驱动、数据驱动和模型驱动3种方法[6-7],同时,也有部分学者通过将上述驱动方法进行结合,提高了虚拟人作业姿态的生成效率[8].但是,由于人体结构非常复杂,简化后的虚拟人模型依然有至少30个自由度,在现有技术条件下,虚拟人作业姿态的生成效率仍然较低.因此,现有虚拟人操作仿真仍然需要耗费大量时间和人工干预,在装备研发周期的约束下,通常只能对装备的部分零部件进行操作仿真和分析评价,无法对装备设计方案的可行性进行充分地仿真验证[9].总的来看,虚拟人作业姿态生成的主要难点在于找到虚拟人生成精度和效率之间的平衡.
针对上述问题,部分学者构建了虚拟人作业姿态库,通过直接调用姿态库中的虚拟人动作参数快速生成虚拟人作业姿态.例如,陶松桥[10]构建了虚拟人装配姿态库,焦庆龙等[11]构建了虚拟人维修姿态库,伍朝晖等[12]构建了虚拟人焊接姿态库.但在仿真过程中,上述方法仍需通过人工干预方式从姿态库中选择采用何种动作,存在自动化程度不足的问题.
实际作业中,操作人员都自然地倾向于选择合适的姿态完成操作任务,以确保作业过程具有良好的可达性和可视性,从而尽可能地降低作业难度和复杂性.但是,在通过仿真方法分析操作人员的可达性和可视性时,现有研究很少考虑到人体作业姿态的变化,大多数研究只是针对静态的作业姿态进行分析.例如,在虚拟环境中,主要通过构建虚拟人静止姿态的可视性锥、可达性包络球进行可视性和可达性分析[5].而实际上,操作人员可以通过调整作业姿态来扩大作业范围和视野范围,即操作人员真实的可达域和可视域范围会比现有方法的分析结果更大.对于设计人员而言,仅仅分析并了解当前人体作业姿态下的可达性和可视性水平并不足够,更重要的是如何得到可以提高可达性和可视性水平的作业姿态.
基于上述分析,本文以装配仿真为研究对象,考虑作业姿态变化这一因素,采用几何方法计算不同虚拟人作业姿态的可达域范围,构建虚拟人的完整可达域,并根据虚拟人与操作对象的位置关系,自动确定合适的虚拟人作业姿态.首先,根据人体结构与运动特点,建立虚拟人装配动作模板;然后,通过理论分析和计算,推导出不同动作模板对应操作可达域的计算公式;在此基础上,结合虚拟人的完整可达域及作业姿态多目标优化模型,实现虚拟人作业姿态的自动生成;最后,通过案例对提出的方法进行了验证.
本文采用机械工程领域常用的Hanavan多刚体人体模型构建虚拟人,它的优点在于建模简单且便于进行运动学和动力学计算,能够有效支持复杂的人体运动仿真与分析[7].
如图1所示,Hanavan多刚体模型将人体分为15个刚体部件,包括:下躯干、上躯干、头部、左上臂、左下臂、左手、右上臂、右下臂、右手、左大腿、左小腿、左足、右大腿、右小腿和右足.上述刚体通过关节连在一起,Hanavan多刚体模型包含15个关节,即:根关节1个(J0)、腰关节1个(J1)、颈关节1个(J2)、肩关节2个(J3/J6)、肘关节2个(J4/J7)、腕关节2个(J5/J8)、髋关节2个(J9/J12)、膝关节2个(J10/J13)和踝关节2个(J11/J14).
人体躯干部分的装配动作可分为10个基本类型,包括:直立、弯腰、侧弯、转腰、下蹲、双膝跪、单膝跪、俯卧、仰卧和侧卧[10-11],各基本装配动作的代号和含义如表1所示.其中,每个基本动作类型都可引申出一系列具体的装配动作,例如在弯腰时,人体腰部弯曲程度的不同会形成不同的具体动作,它们都被称为弯腰动作,只是腰部关节的转动角度不一样.实际作业中,装配人员的操作动作都属于这些基本类型或它们之间的组合,例如人体既可仅通过弯腰动作完成装配操作,也可以通过同时弯腰、侧弯和转腰完成装配操作.
表1 装配动作基本类型Tab.1 Basic types of assembly actions
本文基于虚拟人模型并结合人体各关节的转动范围[13],对每种基本动作类型构建若干人体装配动作模板.通常,每个装配动作的形成都直接与一个或多个人体关节有关,如弯腰动作是通过人体上躯干绕根关节坐标系的x轴转动形成;而下蹲动作是通过踝关节、膝关节、髋关节和腰关节绕相应关节坐标系的x轴转动形成.对于主要受单个关节影响而形成的动作,如弯腰、侧弯和转腰,若影响动作形成的关节转角范围是[a1,a2],则基于最小转角a1,以c=(a2-a1)/n为转角增量可建立n个人体装配动作模板.以弯腰动作为例,上躯干在向前弯曲时的转角范围是[0°, 45°],故以11.25° 为增量时,可构建出4个不同的弯腰动作,如图2所示.
对于受多个关节影响而形成的动作,如下蹲、双膝跪、单膝跪、俯卧、仰卧和侧卧,各关节的不同转角组合会形成大量形态各异的动作,故不能采用上述转角增量生成方法,否则会产生大量无效的装配动作.实际上,为了完成上述特定的装配动作(指下蹲、双膝跪、单膝跪、俯卧、仰卧和侧卧动作),各关节的转角之间应符合一定的约束关系,而且这些动作之间有的差异并不显著.因此,本文基于影响上述动作的关节活动范围,有针对性的确定具有代表性的关节转角组合,从而构建虚拟人装配动作模板.
以下蹲为例,下蹲动作的实现主要与人体足部、小腿、大腿和上躯干有关,对应着4个关节转角范围,在进行下蹲时,这4个部位的关节转角必须满足一定约束关系而不是任意组合.为了确保动作模板的准确性,本文由实验人员做出各种下蹲动作,然后通过运动捕捉设备采集人体动作数据,并利用采集的数据驱动虚拟人生成具有代表性的下蹲姿势,如完全下蹲和半蹲动作等,如图3所示.此外,对于直立动作,只构建一个虚拟人装配动作模板.
基于以上方法,本文构建了82个人体装配动作模板,包括:直立1个、弯腰9个、侧弯10个、转腰10个、下蹲8个、双膝跪8个、单膝跪12个、俯卧6个、仰卧6个和侧卧12个.在实际应用中,可根据需求构建更多人体装配动作模板,以满足对虚拟人作业姿态精度的更高要求.表2中为本文构建的部分动作模板,其中,每个模板的命名规则为:动作代号-模板在该动作中的序号,例如Stand-1,Flexion-2,Squat-1,Squat-2和OneKneel-1.
表2 人体装配动作模板Tab.2 Templates of assembly actions
如图4所示,以虚拟人的右侧上肢为例,在不走动的情况下,虚拟人在固定操作位置上从直立到弯腰、侧弯、转腰和下蹲等动作变化的过程中,肩部位置发生了变化,人体的操作范围也随之发生着变化.因此,基于人体几何尺寸并结合各关节的转角范围,将所有虚拟人动作对应的操作范围进行叠加,可以构建出虚拟人完整的可达域范围.
Ws=S1∪S2∪S3∪S4∪S5∪S6∪
S7∪S8∪S9∪S10
(1)
本文构建虚拟人操作范围的构造函数F,根据虚拟人装配动作的相关描述参数,可以实现对虚拟人装配操作范围的计算与生成:
Si=F(α,β,γ,δ,λ1,λ2,λ3,λ4,λ5)
(2)
中:α、β和γ表示虚拟人上躯干绕其根关节坐标系的x轴、y轴和z轴转动的角度,分别对应于虚拟人的弯腰、侧弯和转腰动作;δ表示虚拟人双腿的下蹲系数,当δ=0时表示虚拟人双腿为直立状态,δ=1时表示虚拟人双腿为完全下蹲状态,当δ在0和1之间时表示虚拟人双腿为直立和完全下蹲间的一系列中间姿态.此外,δ=-1时表示虚拟人双腿既非直立也非下蹲动作,如可能是单膝跪等动作.相似地,λ1、λ2、λ3、λ4和λ5分别表示虚拟人的双膝跪系数、单膝跪系数、俯卧系数、仰卧系数和侧卧系数,当它们为-1时,分别表示虚拟人处于非双膝跪、非单膝跪、非俯卧、非仰卧、非侧卧状态,而当它们在[0, 1]之间时,则表明虚拟人处于双膝跪、单膝跪、俯卧、仰卧、侧卧状态.例如,λ1表示虚拟人的双膝跪系数,在λ1∈[0, 1]时,λ1=0表示虚拟人双膝跪于支撑面的同时,大腿和躯干为直立状态,λ1=1表示虚拟人双膝跪于支撑面的同时,大腿与小腿为完全贴合状态,当λ1在0和1之间时表示虚拟人处于以上两个姿态间的一系列中间姿态.装配动作描述参数与子空间Si的对应关系如表3所示.
Si=
(3)
(4)
(5)
(6)
(7)
采用类似的分析方法,可对其他虚拟人装配动作的肩关节中心和方向向量进行计算,由于篇幅有限,不再对其计算过程一一详述.最后,结合表3中动作描述参数的取值范围,将肩关节中心位置与方向向量代入式(3)中计算,可以得到各类虚拟人装配动作对应的操作范围以及虚拟人完整的可达域.
在第1.2节中构建了82个虚拟人装配动作模板,采用上述方法可构建出各个动作模板对应的操作范围,记为Si,j.其中,i表示动作类型代号,j表示模板在该动作类型中的序号.为了减少虚拟人完整可达域的计算量,用以上82个虚拟人动作模板对应的操作范围来描述虚拟人完整的可达域,即用离散空间代替连续空间.
实际装配过程中,装配人员与其周围作业环境之间的交互存在以下特点:首先,装配人员会避免与作业环境发生干涉碰撞或减少发生碰撞的次数;其次,装配人员会尽可能地接近装配对象,以确保装配操作过程具有良好的可达性和可视性;此外,装配人员会自然地以当前作业环境下最舒适的姿态完成装配操作.相应地,根据装配人员与作业环境交互的上述特点,本文提出虚拟人模型与作业环境模型交互的4个启发性原则,即:① 虚拟人与作业环境间的碰撞要尽可能少;② 虚拟人与装配对象之间的距离要尽可能小;③ 虚拟人视野要尽可能地落在装配对象的可视范围内;④ 虚拟人姿态要尽可能舒适.
因此,本文中虚拟人作业姿态的生成问题可以被定义为:在给定的装配作业环境下,确定出能够满足上述4个启发性原则的虚拟人位姿,包括虚拟人位置和动作.由于可以利用人体装配动作模板作为虚拟人动作的已知量,所以该问题可被进一步转化为:在给定的装配作业环境下,从人体装配动作模板集合中,寻找能够满足上述4个启发性原则的虚拟人装配动作及相应的虚拟人位姿.该问题实际上是一个多目标优化问题,可用数学表达式将其描述为
minf(Pn,An)=
[f1(Pn,An)f2(Pn,An)f3(Pn,An)f4(An)]
(8)
在装配仿真中,当给定虚拟人和操作对象的位置后,基于虚拟人直立时肩关节中心与操作对象中心之间的相对位置,在装配动作模板对应的操作范围Si,j中进行搜索,可以初步确定虚拟人能够采用哪些装配动作进行操作.通过这种方式,可以快速筛选出可能的虚拟人作业姿态,从而避免了繁琐的虚拟人姿态调整过程.在此基础上,基于虚拟人作业姿态的多目标优化模型并结合NSGA-II 算法,可以确定最终的虚拟人作业姿态.
NSGA-II 是采用带精英策略的快速非支配排序遗传算法(Non-Dominated Sorting Genetic Algorithm with Elitist Strategy),是目前求解多目标优化问题时最常使用的算法,它是在第一代非支配排序遗传算法NSGA的基础上经改进后提出的.相比于NSGA,NSGA-II 降低了算法的计算复杂度,提高了非支配排序计算的效率.此外,通过将父代种群和子带种群进行组合以共同产生下一代种群,确保了优良个体的延续.本文构建的作业姿态多目标优化模型是典型的多目标优化问题,同时,多目标优化模型中变量为位置向量Pn以及虚拟人动作向量An,属于较低维度的优化问题,因此,非常适合采用NSGA-II 算法进行求解.
本方法的输入为装配仿真环境的三维模型、操作对象的位置坐标,输出为虚拟人的位置坐标与动作信息,算法的主要流程和原理如图7和图8所示.首先,基于操作对象的位置,结合虚拟人的完整可达域,筛选出可采用的装配动作模板集合AnSet.然后,以虚拟人位置参数与动作参数为变量,利用NSGA-II 算法对多目标优化模型进行求解.其中,动作参数采用已筛选出的装配动作模板,从而可提高求解过程的效率.同时,动作模板的最佳匹配变换搜索按照一定顺序进行,分为动作间顺序(Order Among action Types, OAT)和动作内顺序(Order Within action Type, OWT).动作间顺序指按照直立、弯腰、侧弯、转腰、下蹲、双膝跪、单膝跪、俯卧、仰卧和侧卧的动作类顺序进行匹配变换搜索.动作内顺序则指在同一动作类型中优先采用舒适性高的动作进行匹配变换搜索,如果舒适性高的动作匹配成功,则不再对该类型中的其余动作进行匹配并转入下一动作类型,否则需要对舒适性低一级的动作进行匹配变换搜索,直到匹配成功为止;若该类型动作匹配都不成功,则直接转入下一动作类型进行匹配.最后,对所有匹配成功的虚拟人位置和动作进行分析比较,确定虚拟人的最佳作业姿态.
针对姿态因素,本文利用快速全身评估(Rapid Entire Body Assessment, REBA)方法对各人体装配动作模板进行评价,在评价时假设虚拟人负载相同,因而评价结果只与虚拟人的姿态有关.以弯腰动作为例,上躯干转动的角度越大则舒适性越差,反之则舒适性越好.因而在同等条件下优先采用转动角度小的弯腰动作,只有当其无法满足要求时,如转动角度小时会产生较多干涉碰撞,才考虑采用转动角度大的弯腰动作,即通过降低舒适性来避免发生碰撞.
利用NSGA-II 算法求解多目标优化问题时,得到的结果一般是非支配解集(又称非劣解集或Pareto解集),即解之间无法确定优劣关系,而且也没有比它们更好的解.本文称其为非支配动作解集,即解是不同动作类型中匹配成功且舒适性较高的虚拟人动作及其位置信息,其中同一个虚拟人动作可能存在多个对应的操作位置.为了从这些非支配解中确定最终解,必须再给定相应的权重来判断它们的优劣性,本文的权重选择参考层次分析法,即根据指标的相对重要性来确定指标间的标度值以及它们的权重.如A指标和B指标同等重要,则标度值为1,两个指标的权重都为0.5;如A指标比B指标稍微重要,则标度值为3,两个指标的权重分别为0.75和0.25;其余情况依此类推.因此,本文在优先保证舒适性的同时,采用对距离因素和视野因素赋权并综合排序的方式确定最佳的非支配动作解.由于距离因素比视野因素相对更重要,故权重分别设为0.75和0.25,根据这一原则,选择上述非支配动作解中0.75f2(Pn,An)+0.25f3(Pn,An)最小的虚拟人动作与位置为最佳作业姿态.此外,对于某些作业环境,若只存在一个虚拟人动作模板与其匹配成功且只有一个匹配位置,则直接以该虚拟人动作及其对应的操作位置为最佳作业姿态.
在本课题组自主研发的虚拟仿真软件VESP基础上对本文方法进行功能开发,并结合两个案例进行应用验证.
如图9(a)所示,当虚拟人和操作对象分别处于位置Pos1和Pos2时,通过在操作范围Si,j中搜索,确定可能的装配动作为弯腰并将其推送给虚拟人.而当虚拟人为直立或其他动作时,操作对象都超出了虚拟人的最大操作范围,因而不能采用这些动作,如图9(b)所示.
同时,并不是所有的弯腰动作都是可行的,当虚拟人上躯干转动的角度较小时,依然存在操作对象在虚拟人操作范围之外的情况,故只推送满足要求的弯腰动作,如图9(c)所示.同样地,图9(d)~9(l)中都只是各可能装配动作中的一种情况.当操作对象处于位置Pos3时,可能的装配动作包括直立、侧弯、弯腰、下蹲和仰卧等,如图9(d)~9(i)所示.当操作对象处于位置Pos4时,可能的装配动作包括下蹲、侧卧和单膝跪等,如图9(j)~9(l)所示,由于此时操作对象的位置较低,虚拟人无法通过直立或弯腰等动作接触到操作对象.
需要注意的是,图9(g)、9(h)和9(i)中并没有考虑碰撞和可视性等问题,只是初步确定了若干可能采用的虚拟人装配动作,而最终装配动作需要结合多目标优化模型的建立与求解才能够确定.以Pos4为例,按照图7中所示流程进行求解,得到满足要求的虚拟人装配动作为Squat-7、BothKneel-6和OneKneel-8,它们分别有18、14和11个非支配动作解.其中,装配动作Squat-7对应的求解过程如图10所示,横坐标为进化代数(T),纵坐标为每一代种群中全体个体适应度函数值的平均值(M).可见在迭代约40次后,评价结果接近稳定, 所得到的各非支配解及相应的子目标函数值如表4所示.
表4 Squat-7的非支配动作解Tab.4 Non-dominated action solutions of Squat-7
最后,分析各装配动作对应的非支配动作解(共43个),以距离因素和视野因素指标为依据,确定虚拟人的最佳作业姿态为:虚拟人装配动作Squat-7和操作位置(-188.055, 296.017, -357, 0, 0, 0.200) mm,即Squat-7对应的第10个非支配动作解,结果如图11所示.
如图12(a)所示,在对某型船舶机舱中的管道阀门进行装配时,由于作业环境很狭小,虚拟人极易与周围设备发生碰撞,所以虚拟人作业姿态的确定非常繁琐.采用本文方法在输入管道阀门的位置信息后,可以先筛选出可行的装配动作包括下蹲、侧卧和俯卧等,具体的虚拟人作业姿态如图12(b)~12(d) 所示.在此基础上,在多目标优化模型中考虑碰撞和可视性等因素后,确定的最终作业姿态为下蹲动作(Squat-7),如图13所示.
本文以装配操作为对象,构建了虚拟人装配动作模板,并采用几何方法推导了虚拟人的完整可达域.在此基础上,结合虚拟人作业姿态的多目标求解模型,实现了虚拟人作业位姿的自动生成.通过以上研究,减少了人工的参与,提高了虚拟人作业姿态生成的效率和自动化程度.
本文主要依据常见的装配动作构建了10种类型的装配动作模板,且每种类型是通过设置关节转角间隔来生成不同的标准姿态.然而,由于作业环境的复杂性和差异性,很多装配操作的完成需要一些特殊的装配动作,所以如果仅仅利用本文建立的装配动作模板,可能无法求解出符合要求的作业姿态.在以后研究中,将以扩大本文方法的应用范围为目的,并根据实际作业环境特点,结合人体动作捕捉设备对装配动作模板进行扩充与完善.