增强现实环境下装配操作感知方法研究
2024-03-21梁剑斌何汉武吴悦明胡兆勇徐梓麒
梁剑斌,何汉武 , ,吴悦明,胡兆勇,徐梓麒
(1.广东工业大学 机电工程学院,广州 510006;2.广东工贸职业技术学院,广州 510006)
虚拟装配技术已广泛应用在人工机械装配培训课程中[1],该技术可有效减少零部件损耗、培训成本[2-3]。虚拟装配系统的人机交互是提升培训效果的关键,为此研究者将自然虚拟装配操作作为研究目标。其通用的研究方法首先采用摄像头[4]、数据手套[5]、体感传感器[6]等设备采集操作者的手部甚至全身姿态信息,并把该信息与虚拟环境中的虚拟替身作绑定;接着根据虚拟替身与虚拟物体之间的相互位姿、碰撞等信息识别操作者的虚拟操作;最后根据操作修改虚拟场景内容并输出场景画面以完成交互。胡弘等以虚拟手指尖与虚拟物的距离为特征,实现单手抓取,并以此构建适用于航天员训练的虚拟装配交互模型[7]。包文运等以虚拟手与虚拟物的接触点计算为基础,构建虚拟物空间位姿自适应调整算法,实现三维模型抓取、推、抬等单手交互操作的精确模拟[8]。绪玉花等将机械零件进行归类,并为每类零件设计单独的单手抓取手势,实现虚拟装配交互性的提高[5]。熊巍等以拇指尖与其他指尖的距离为特征,建立单手抓取手势识别算法,并在此基础上根据整个手部运动趋势识别3 种装配手势,细化了虚拟操作表达[9]。袁伟等以虚拟手形状与虚拟手物距离为特征,实现抓握、捏取、托举等单手装配手势识别[10]。Ong 等将装配操作时手部形态定义为相对固定形状,实现基于拇指与食指碰撞检测的单手虚拟抓取[4];并在此基础上加入虚拟操作力反馈,使得交互更为真实[11]。
从实际执行的角度看,人工机械装配操作是一个基于操作者手部操作的流程化工作,其一般工作流程可用以下循环表达:
1)开始阶段:抓取当前工序所需零部件或工具;
2)执行阶段:按照工艺要求执行操作;
3)结束阶段:操作达到要求,执行下一步操作。
综合以上内容,现有自然虚拟装配操作研究多集中装配操作的在开始阶段,所使用的交互模型仍存在以下不足:
1)对双手协同操作关注较少,不能表达部分常见双手装配操作,例如双手搬动大型零部件、双手使用套筒扳手等;
2)缺少单步操作工作量描述,不能完整表达需重复累积完成的操作,例如:扳手绕螺纹轴线旋转一定累积角度以完成螺纹连接、锤头重复多次打击齿轮以完成过渡配合齿轮压入等。
针对自然虚拟装配操作研究存在不足,本文提出面向增强现实的装配操作感知模型,实现人工机械装配过程参数化描述。针对模型对虚拟物体位姿求解的需求,提出基于装配运动特征的位姿计算方法。针对模型的关键状态求解,给出其计算方法。以汽车变速箱为例,开发应用案例验证操作感知模型有效性。
1 增强现实装配操作感知模型
由于机械装配是基于装配工艺的流程化操作,因此定义增强现实装配操作感知模型Mop由s步装配操作mops组成。mops包含元素有:真实手部集合H、被操作的虚拟工具及零部件(以下简称:虚拟物体)集合VO、VO在世界坐标系ow-xwywzw下的几何约束集合FC、VO在ow-xwywzw下的起始与目标位姿集合DM、操作工作量集合cv和时序组成t,Mop为
式中:t,s∈N。
H是Mop内唯一实物元素,表达式如式(2)所示。单个手部姿态hi中包含元素有:手部坐标系oih-xihyihzih、位姿矩阵Mih、指尖点集pih、手指关节弯曲角度集合αih。
式中:i为手部标识序号,i={0, 1},h0为左手,h1为右 手;pih={pihm,m={1, ···, 5}};αih={αihn,αihn∈[π∕2,π],n={1, ··· ,15}}。
以左手为例,hi中各个元素与手部的对应关系图1 所示。图中,vihz为oih-xihyihzih在zih方向上的单位向量。
图1 手部元素与真实手部的对应关系Fig.1 Correspondence between hand elements and a real hand
VO表达式如式(3)所示,虚拟物体voj包含元素有:物体坐标系ojvo-xjvoyjvozjvo、位姿矩阵Mjvo、包围盒集合cbjvo。
式中:j为虚拟物体标识序号,其取值范围不固定,当操作所需的虚拟物体只有1 个时,j={0},当操作所需的虚拟物体有两个时,j={0,1}。
由于FC和DM包含的元素与voj是一一对应,因此FC和DM的元素个数取决于j的取值范围。
FC表达式为
单个虚拟物体运动约束fcj包含元素有:固定点pjfc、平移轴向vjfc、旋转状态qjfc。
DM表达式为
单个虚拟物体位姿参数集合dmj包含元素有:目标坐标系ojdm-xjdmyjdmzjdm、初始位姿Mjdm0、目标位姿Mjdm、zjdm方向的误差范围hjdm、ojdm-xjdmyjdm平面内的误差半径rjdm、旋转误差角度αjdm。
cv表达式为
其包含元素有:操作所需累积次数ncv、操作所需旋转角度αcv。
t的作用是记录mops操作时长,设变量e为文中除t外的任意变量,则e在t时刻的取值记为et。
Mop内各元素在ow-xwywzw内位置关系如图2所示。由图2 可知,H和VO是随着t变化而变化,需要实时求取。FC、DM和cv则是常量集合,其取值与当前操作的工艺需求相关。除了手部和虚拟物体的运动感知,Mop还需要对操作进程进行感知。在Mop内,mops根据序号s顺序执行。而在mops内,运行流程是随着t的增加循环执行,每次循环流程如图3 所示。
图2 装配操作感知模型元素空间关系Fig.2 Spatial relationship among elements in the assembly operation perception model
图3 单步操作在t 时刻工作流程Fig.3 Workflow of single operation at time t
图3 中,qGj为voj的抓取状态,取值范围为{0,1,2}。0 代表未被抓取,1 代表被单手抓取,2 代表被双手抓取。
qN为所有voj的到位状态,取值范围为{0,1}。0 代表未到位,1 代表到位。
qA为操作完成状态,取值范围为{0,1}。0 代表未完成,1 代表完成。
由上述可知,Mop运行关键是求解真实手部H、被操作的虚拟物体VO和模型的关键状态qGj、qN和qA。其中,H求解的相关理论已在作者前期研究[12]中详细阐述。因此,下文将着重阐述VO和模型关键状态的求解方法。
为了简化下文部分公式复杂度,定义以下符号:
定义1 定义θ(a,b)为三维空间内单位向量a、b的夹角[13]。
定义2 定义v⊥(a,b)为三维空间内与单位向量a、b的向量积[13]共向的单位向量。
定义3 根据三维变换矩阵性质[14],定义M(R|t)为三维变换矩阵M的扩展表达;其中,t为M内含的平移向量,R为M内含的旋转矩阵。
定义4 定义R(v,θ)为三维空间内任意点绕单位向量v按右手方向旋转角度θ的旋转矩阵,其计算方法可由罗德里格斯旋转公式[15]求出。
定义5 定义Rvr(a,b)为三维空间内单位向量a变换为b的旋转矩阵,其计算公式为
定义6 设a1,a2和b1,b2为三维空间内两组互相垂直的单位向量组,定义Rcr(a1,a2,b1,b2)为a1,a2变换为b1,b2的旋转矩阵,计算公式为
定义7 设a、b为三维空间内单位向量,b为平面P的法向量,定义vPrj(a,b)为与a在P上的投影共向的单位向量,其计算公式为
定义8 在三维空间内,设p为任意有向线段pp'的起点,v为与共向单位向量,α为绕v右手旋转角度,定义MR(p,v,α)为三维空间内任意点绕pp'旋转的变换矩阵,其计算公式为
式中:E为3 × 3 单位矩阵;0=[0 0 0]T。
2 面向装配需求的虚拟物体位姿计算
2.1 装配运动特征定义及其位姿计算应用
真实机械装配中,工具或零部件运动的特点:
1)大多需要手部直接操作,这意味着被手部操作的工具或零部件运动中心点相对自身并不固定,与手部抓取位置相关;
2)在手部操作过程中,手部与被操作工具或者零部件一般保持相对静止;
3)由于机械装配体涉及大量基于轴向的定位与紧固,因此工具或零部件运动经常受基于轴线的约束,例如:螺钉绕螺纹轴线紧固或放松、轴承沿轴头轴向压入等。
根据以上特点,提出一种基于装配运动特征的位姿变化计算方法以描述voj在ow-xwywzw内的运动。
因此,Mjvo的求解可转化为的求解。
从t-1 时刻到t时刻,假设在ow-xwywzw内存在点phvj、单位向量vhvj,使得过phvj,方向为vhvj的直线与ojvo-xjvoyjvozjvo相对静止,即phvj和vhvj满足
则称phvj、vhvj为voj在t时刻的运动特征点和运动特征向量。
假设ow-xwywzw内存在绕vhvj旋转角度αhvj满足式(13),则称αhvj为voj在t时刻运动特征角。
phvj、vhvj、αhvj合称为voj在t时刻的装配运动特征。根据装配运动特征定义,表达为
2.2 各运动方式的装配运动特征计算
在进行计算前,需要对手部交互进行一定限制:
1)所有虚拟物体必须由手部抓取物体后带动;
2)在抓取物体后,手指姿态无明显变化。
根据以上限制,只有手部整体位姿变化可引起虚拟物体位姿变化。另外,由于部分操作对虚拟物体存在几何约束,需要根据约束类型对虚拟物体运动方式进行归类。根据fcj各个元素取值,可使voj执行各种运动方式,具体对应关系如表1 所示。下面针对各种运动方式,给出装配运动特征计算方法。
表1 几何约束与虚拟物体运动方式的对应关系Tab.1 Correspondence between geometric constraints and virtual object movement modes
2.2.1 自由移动
对于单手抓取物体的自由移动,装配运动特征计算方法式为:
对于双手抓取物体的自由移动,装配运动特征计算方法为:
其中:β0和β1计算方法为
2.2.2 沿轴线移动
对于沿轴线移动,phvj和vhvj可用式(18)表达。因此,只需根据qGj和pjfc计算phvj和αhvj。
式中τ为位移系数,计算方法为
αhvj计算方法为
2.2.3 绕固定点转动
绕固定点转动一般用于描述螺纹紧固或放松操作时扳手的运动。在实际使用扳手时,通常是右手主发力,所以绕固定点转动的装配运动特征计算只有右手参与,其计算方法为:
3 感知模型关键状态计算方法
3.1 虚拟操作抓取状态计算
由于主流三维引擎已集成成熟碰撞检测算法,所以仅对碰撞状态进行定义。
在ow-xwywzw空间内,设pw为任意点,cb为任意包围盒集合。记q(pw,cb)为pw与cb的碰撞状态,取值范围为{0,1}。0 代表为碰撞,1 代表碰撞。
设g(hi,voj)为hi抓取voj的状态,其计算依据是拇指指尖与任一另外指尖或掌心与任一指尖是否同时碰撞到虚拟物体,计算方法为
对于qGj的计算,需要根据两个手部对该物体的抓取状态判断,其计算方法为
3.2 虚拟物体到位状态计算
设voj到位状态为qNj,其计算依据是Mjvo与Mjdm重合度。由于三维变换可分解为旋转和平移,因此使用平移重合状态qjND和旋转重合状态qjNR以计算qNj。qNj计算方法为
qjND计算依据是判断ojvo是否进入特定空间内。当hjdm有取值,这个空间为圆柱体;当hjdm无取值,这个空间为球体。qjND计算公式为
qjNR计算依据是ojvo-xjvoyjvozjvo与ojdm-xjdmyjdmzjdm坐标轴方向夹角小于αjdm,其计算公式为
式中:vjdmx、vjdmy、vjdmz为ojdm-xjdmyjdmzjdm坐标轴方向上单位向量;vjvox、vjvoy、vjvoz为坐标轴ojvo-xjvoyjvozjvo方向上单位向量。
qN的判断依据是所有voj是否到位,其计算方法为
3.3 虚拟操作完成状态计算
设VO在操作中累积有效旋转角度为 αtr,累积有效操作次数为ntr,则qA计算方法为
ntr的本质是记录当前操作qN的触发次数,计算方法不作详述。 αtr的计算方法为:
式中:βr为voj从t-1 到t绕vjdmz旋转角度;αr为voj旋转方向系数。
4 试验案例
4.1 交互场景及硬件配置
为验证增强现实装配操作感知模型的可行性,开发了以某汽车变速箱为装配对象的维修培训案例,变速箱虚拟模型如图4 所示。图5 展示验证案例的交互场景。场景的正上方和正面放置了RGBD 相机和彩色摄像头,用于采集操作者手部动作。RGBD 相机可同时采集深度图像和彩色图像;深度图像分辨率512 × 424,彩色图像分辨率为1 920 × 1 080,采集速率皆为30 fps。彩色摄像头采集图像的分辨率为1 280 × 720,采集速率为30 fps。在实际使用时,操作者需要佩戴光学透视式头戴显示器以接收系统反馈。头戴显示器的视场角为70° × 50°,投影显示屏分辨率为1 920 × 1 080。系统计算机硬件配置为:CPU 为Intel i7-10700,显卡为Nvidia RTX2070 Super,内存容量32G。
图4 汽车变速箱三维模型Fig.4 3D model of automobile gearbox
图5 交互场景实景图Fig.5 An interactive scene
4.2 常见机械装配操作求解
该变速箱装配所用到的装配操作类型有:放置、锤击、压入、悬停以及扭动扳手。
放置是最常用的操作类型,主要实现零部件和工具定位。图6 展示了双手放置盖板的操作。
图6 放置操作过程Fig.6 Process of set operation
盖板放置操作需使用参数的设置如表2 所示。从参数取值可知,该操作仅需操作单个物体;物体运动无约束;物体中心到达指定位置并且姿态正确即可完成操作。
表2 放置操作参数Tab.2 Parameters of set operation
锤击常用于过盈配合零件的装配,实现操作者锤击动作感知。图7 展示了使用锤击打入齿轮。对于真实锤击操作,操作者应一手将垫木固定在零件上,另一手持锤子重复打击垫木以完成零件装配。
图7 锤击操作过程Fig.7 Hammering operation process
因此,锤击打入齿轮操作需使用参数的设置如表3 所示。从参数取值可知,该操作需每个手部单独操作一个物体(垫木或锤子);物体运动无约束,垫木操作要求中心到位且姿态规整;锤子操作要求每次锤击中心落在一个圆柱空间内且姿态规整,该圆柱空间高度h1dm取值较少与半径r1dm取值较大,以模拟锤子对垫木的打击面;锤击需重复ncv次。
表3 锤击操作参数Tab.3 Parameters of hammering operation
压入常用于过渡或间隙配合零件的装配,实现操作者手部压入零件动作感知。图8 展示了手部压入齿轮操作。
图8 压入操作过程Fig.8 Push-in operation process
压入齿轮操作需使用参数的设置如表4 所示。从参数取值可知,该操作仅需操作单个物体;物体必须沿轴线运动且不能旋转,以模拟齿轮配合对运动的限制;物体中心到达指定位置并且姿态正确即可完成操作。
表4 压入操作参数Tab.4 Parameters of push-in operation
悬停常用于垂直面零部件定位,图9 展示了拨叉箱外手柄装配操作。在真实装配中,悬停与放置功能类似,两者区别在于悬停操作的零件不受其他零部件承托,需要一手固定零件位姿,另一手放置螺钉以完成操作。
图9 悬停操作过程Fig.9 Hover operation process
拨叉箱外手柄装配需使用参数的设置如表5 所示。从参数取值可知,该操作需操作两个物体(拨叉箱外手柄和螺钉);物体运动无约束;物体中心到达指定位置并且姿态正确即可完成操作。
表5 悬停操作参数Tab.5 Parameters of hover operation
扭动扳手常用于螺纹连接装拆操作,图10 展示了使用棘轮扳手装配盖板螺钉。在真实螺纹连接装拆中,扳手运动总是以钳口为基点,绕螺纹轴线作右手或左手旋转。因此,在对扳手类工具进行三维建模时,将其模型中心设置在钳口上以简化后续计算。在设置目标位姿时,可调整ojdm-xjdmyjdmzjdm姿态,使得zjdm朝向平行螺纹轴线,调整zjdm朝向以实现有效旋转方向的控制。
图10 扭动扳手操作过程Fig.10 Twisting wrench operation process
使用棘轮扳手装配盖板螺钉的参数设置如表6所示。从参数取值可知,该操作仅需操作单个物体;物体必须绕定点旋转,以模拟扳手绕螺钉旋转的运动;物体中心应到达指定位置;物体需要累积有效旋转角度为αcv。
表6 扭动扳手操作参数Tab.6 Parameters of twisting wrench operation
5 结论
针对现有自然虚拟装配操作模型在双手协同操作、操作工作量等操作内容表达上存在不足,提出增强现实环境下的装配操作感知模型。该模型可实现单手或双手协同虚拟装配操作,并且可表达单步操作所需工作量。试验结果证明,该方法可对表达5 种常见装配操作,满足增强现实环境下徒手虚拟装配培训需求。
在进一步研究中,将探索可同时识别手部和机械零部件的视觉识别算法,验证在操作者和装配体都为实物的装配环境下操作感知模型的可行性。将模型的适用场景从虚拟培训推广到实际机械装配培训和实时引导,扩大理论的适用范围。