(东华大学机械工程学院,上海 201600)
装配是产品生产的末端环节,同时也是直接影响产品性能的重要环节之一[1]。复杂装配产品由于其零部件众多、工艺繁杂等特点,在产品研制过程中,通常会伴生有各类型的装配信息,比如零部件间的组成关系、装配特征间的配合关系以及装配工艺过程。然而这些装配信息往往分散于CAD模型文件和装配工艺文档中,由于两者语义的异构性会导致装配工艺决策无法得到产品几何模型的支撑,在工艺规划等应用层面难以进行工艺知识的积累,同时大量分散、无规范的装配数据也不利于复杂装配产品的数字化管理,难以进行历史数据的追溯[2]。因此,建立能够清晰表达多层次、多类型装配语义的统一信息模型是解决上述问题的关键。
目前,装配语义信息的建模方法主要分为面向对象、基于可扩展标记语言XML、基于本体以及基于知识图谱。Xu 等[3]以面向对象的思想将复杂产品的装配关系、装配结构的组成部分以及特性封装为对象类,有效地避免装配信息发生组合爆炸的情况,但面向对象的思想侧重于描述类的结构及行为方法,对类与类之间的关系描述能力较弱;张鑫[4]针对协同环境下装配设计信息的数据共享问题,提出基于XML 框架设计装配语义元单元,将异构CAD 系统中的装配特征和装配约束进行统一映射,但其语义框架并未考虑也难以表达装配工艺中的序列关系;乔立红等[5]基于本体语义建立结合产品几何信息的装配工艺本体模型,以该模型为基础实现装配工艺相关信息的推理。相较于抽象的本体概念,知识图谱在概念的基础上以“实体-关系-实体”,“实体-属性-值”的形式组织信息[6],从而能够更清晰地描述装配语义中复杂的序列、配合、约束等装配关系,并且近年来深度学习的发展使得知识图谱中的实体、关系等语义信息能够以稠密、低维的实数向量进行表示[6],通过该表示形式可以计算语义信息间的相似度以及预测实体间的关系,在模型层面为装配工艺的智能规划奠定了基础。Chen 等[7]基于知识图谱将CAD 几何信息与装配工艺文档信息进行集成建模,有效地提升了装配信息之间的交互效率,但该模型并未考虑装配特征配合中几何元素的影响,同时也未描述该知识图谱的构建方法。
针对以上研究的优缺点,本文基于知识图谱提出一种面向多层次装配语义信息的建模方法。首先根据装配语义的层次类型设计知识图谱框架,并描述各层次所包含的类与关系;然后结合CAD 文件和装配工艺文档介绍如何从中抽取并映射相关语义数据,实现知识图谱模型的构建;最后以航空航天产品中的速度调节机构为例,验证该模型框架及构建方法的可行性。
定义1。基于知识图谱的装配语义模型KG-ASM(Knowledge graph-based assembly semantics model),通过知识图谱的信息组织形式“节点-关系-节点”与“节点-属性-值”表达装配体的几何语义、装配工艺过程语义以及两者之间的语义关系,即KGASM={AE ∪GF ∪AO ∪SR}。
定义2。装配元素AE:总装FA、子装配体SA、零件PA 统称为AE,即AE={FA ∪SA ∪PA}。
定义3。几何特征GF:面向装配时GF 可分为装配特征AF 和非装配特征NAF,其中AF代表直接参与配合的几何特征;面向几何拓扑时GF 由面“Face”、边“Edge”、顶点“Vertex”构成,即GF={AF ∪NAF}={Face ∪Edge∪Vertex}。
定义4。装配操作AO:典型的AO包含装配工序AP、装配工步AS 与工装夹具AT,即AO={AP ∪AS ∪AT}。
定义5。语义关系SR:由广义的包含关系HAS、面向装配结构的结构拓扑关系ST、面向装配几何的几何拓扑关系GT 以及面向装配工艺的序列关系SE、装配约束关系AC 共同组成,即SR={HAS ∪ST ∪GT ∪SE ∪AC}。
需要强调的是上述概念可以覆盖装配几何语义和装配工艺语义,但是部分概念本身是抽象的(如语义关系SR),有时无法直接作为知识图谱所需要的实体类节点和关系类节点。因此为了更加准确清晰地描述面向装配的复杂语义信息,KG-ASM 将从装配结构、几何表达、装配工序、装配工步4个层次出发,结合各层次的语义表达特征将抽象的概念具象化为类节点。
装配结构层用于描述总装产品的BOM 信息以及零部件间的组成关系。该层将定义5中的ST 具象化,定义hasSub、subOf表示总装产品与子装配体间的组成关系;hasPart、partOf表示子装配体与零件间的组成关系;relativePosition 则表示实体类节点间的相对位置关系,其“matrix”属性用于存储不同零部件在同一基准坐标系下的相对旋转和相对平移矩阵。
几何表达层用于描述总装产品中零件的几何形状语义和几何拓扑关系。针对几何形状,该层为“零件”节点附加“URL”属性以链接外部CAD模型,“面”节点附加“名称”、“类型”和“形位公差”属性,“边”节点附加“名称”、“类型”和“尺寸公差”属性,“顶点”节点附加“坐标”属性。针对几何拓扑关系,该层将定义5中的GT 具象化,定义hasAF与hasNAF表示零件几何体具有的装配/非装配特征;hasFaces表示装配/非装配特征由一系列特征面构成;hasEdges 与hasStrips表示形成特征面的边界和离散三角形面片;hasDatum表示特征面的形位公差所相对的基准;hasAnchors表示形成边界的锚点;AdjacentTo 则表示该层实体类节点间的相邻关系。
装配工序层用于描述各装配工序包含的装配工步,经历的时间跨度,所处的生产地点,需要的工装夹具以及不同工序间的装配顺序。考虑到装配件在经过一道工序后结构形状会发生变化,同时在进入下一道工序前可能需要调整位姿,该层额外定义一个 “工序间”实体类节点以记录装配件在前后工序间的装配状态,其“位姿”属性用以存储当前工序的位姿矩阵和进入下一工序的位姿变换矩阵,“URL”属性用以指向当前工序在装配结构层中对应的“子装配体”节点。“工装夹具”节点具有“类型”和“名称”属性以明确该设备是用于定位还是夹紧。针对工序之间的装配顺序关系该层将定义5中的SE 具象化,定义“before”与“after”表示装配工序的先后顺序;“with”表示两道装配工序是同时进行的,无先后关系;“cycle”则表示需要对某一道工序重复操作。
装配工步层用于描述某一工步下两个装配元素的配合过程以及工步与工步之间的顺序关系。在装配顺序关系的定义上该层与装配工序层类似,同时该层也额外定义一个“工步间”节点,作为装配件在前后工步间的引用。与“工序间”节点不同的是由于装配工步测重于装配特征间的配合关系,“工步间”节点将继承该道工步中两个装配元素所有未参与配合的装配特征,作为后续工步中的待装配特征。针对两个装配元素在各工步中需要明确主次之分,同时直接参与装配的装配特征需要满足一定的约束条件,该层基于广义包含关系HAS 定义hasBase 和与之匹配的isAssembledAt 以表示该道工步中某一装配元素为基体单元,另一装配元素为待装配单元,并根据指定的约束条件将定义5中的AC 具象化(此处以两个装配特征同轴举例将其具象化为coaxialWith)。
基于上述类节点及其属性可得KG-ASM的多层次语义模型框架,如图1所示。
图1 KG-ASM语义框架Fig.1 KG-ASM semantic framework
知识图谱模型的本质是一种由很多实例三元组构成的大型语义网络[8],构建的关键在于数据抽取和知识表示。上文已经对KG-ASM 用于表达语义知识的架构及各语义层的类节点进行了描述,下文将以此为基础,介绍如何从CAD 文件和装配工艺文档中抽取相关语义对应的数据,从而实现类节点的实例化。
为了能够直接快捷地对各类CAD 产品模型中的装配结构信息进行解析和抽取,本文选择中性文件3DXML 作为KG-ASM 装配结构层中实例三元组的数据来源。
在3DXML 文件中产品的装配结构信息由<ProductStructure >节点开始,它共有4个子节点[9],其中与装配结构直接相关的是<Reference3D>引用节点和<Instance3D>实例节点。<Instance3D>既是某一<Reference3D>的组成部分,同时也是另一<Reference3D>的实例,这两个不同<Reference3D>的ID 属性值分别存储在<Instance3D>的<IsAggregatedBy>子 节点 和<IsInstanceOf>子 节点中。因此可以将各<Instance3D>作为KG-ASM 中装配元素类(零件、子装配体、总装)的实体节点,以<Reference3D>为过渡进行结构拓扑关系类节点的实例化。结合3DXML文件中的部分描述片段,该方法的具体步骤如图2所示。
在KG-ASM 几何表达层中几何语义的基本单元为“面”、“边”、“点”,装配特征和非装配特征则是由这些基本单元组合而成,这种表示方法符合B-rep 边界表示法的“体-面-环-边-点”几何表达思想,因此本文选择以B-rep 边界表示法为几何描述形式的STEP AP242 文件作为KG-ASM 几何表达层中实例三元组的数据来源。
STEP AP242 文件分为头部段和数据段,产品的几何元素存储于数据段中,其基本格式为:#数字=关键字(‘名称’,‘属性值’,‘属性值’,……)[10]。其中#数字是几何元素的标识符,几何元素之间可以通过标识符相互引用;关键字代表几何元素的语义特征;后续括号里的内容则是该语义特征具有的属性,属性既可以是数值,也可以是其他几何元素的标识符。因为STEP AP242中包含大量丰富的几何语义特征,以STEP 文件的部分片段为例,定义STEP 中部分关键字与KG-ASM 中几何语义类实例之间的映射关系,如图3和表1所示。
虽然STEP AP242可以完整地表达一个产品的几何特征,但是装配特征是由一系列特定的几何特征构成,因此无法直接从STEP AP242 中获取装配特征。对于装配特征的获取方法可以采用一些特征识别算法,比如基于规则的边界匹配识别[11],也可以基于CAD API 对造型特征进行提取[12],本文采用的方法是后者。
图2 装配结构类节点实例化Fig.2 Instantiation of assembly structure node
图3 STEP文件部分片段Fig.3 Part of STEP file
装配操作的工艺信息记录在装配工艺文档中,目前大部分的工艺文档还属于半结构化甚至非结构化的形式,以人工方式对装配工艺文档中的语义信息进行抽取,在面对大量文档时会耗费大量的人力和精力。因此本文选择基于自然语言处理NLP中的词性标注与实体识别任务[13]对装配工艺文档中的语素进行分解并分类,然后将分类后的词序列用于KG-ASM 装配工序层和装配工序层中类节点的实例化。为了适当简化NLP 任务的复杂度,假设输入的工艺文档为半结构化形式,即工序和工步具有独立的序号表示顺序关系,且工序内容后紧跟该工序包含的工步内容。基于此假设,装配工艺语义信息的抽取及类节点实例化的方法如表2所示。
表1 STEP与KG-ASM的几何语义映射Table1 Geometric semantic mapping of STEP and KG-ASM
表2 工艺语义节点实例化算法Table2 Process semantic node instantiation algorithm
本文以航空航天产品中速度调节机构(图4)的试装过程为例,分别从CAD模型文件与装配工艺文档中抽取装配结构、装配几何特征、装配工序过程等语义数据,并使用开源的Neo4j 图数据库对抽取出的语义数据进行知识图谱建模,从而验证该模型框架与构建方法的可行性。
首先根据速度调节机构的3DXML文件提取零部件间的装配结构信息,结构信息的抽取方法与知识图谱中相应节点的实例化方法于前文进行了描述,得到的装配结构类节点如图5所示。其中蓝色节点为速度调节机构的总成产品,红色节点为包含多个装配元素的子装配体,棕色节点则为零件。通过图数据库的CQL 语法可以便捷地查询每个节点的属性以及它们之间的组成关系,如图5中名为“输入轴总成”的子装配体包含有输入轴、轴承、垫圈等零件。
图4 速度调节机构Fig.4 Speed adjusting mechanism
图5 装配结构类节点Fig.5 Assembly structure nodes
得到零部件在知识图谱模型中的节点后便可根据各零件的STEP AP242 文件与表1中定义的关键字映射关系构建相关的几何元素节点与几何拓扑关系,如输入轴总成中的输入轴所对应的部分几何类节点,如图6所示。
最后基于百度的Bi-GRU-CRF深度网络模型对速度调节机构的装配工序文档进行词素的分解分类,词性类别的标签与含义如表3所示。
由于装配工艺文档所涉及的一些专有名词或术语在通用中文语料数据集的训练下通常会被统一认为是普通名词,如在“将键装入轴段的键槽”的分类结果中“键”、“轴段”和“键槽”的词性类别都为“名词”,但对于装配工艺而言“键槽”是“轴段”的“装配特征”。因此本文以工艺文档中出现的专有词语构建干预语料集,部分片段如图7所示,经过干预后工艺文本的部分词素分类结果如图8所示。
图6 输入轴对应的几何类节点Fig.6 Geometric nodes corresponding to input axis
分类后的词序列将根据表2 中定义的工艺类节点实例化方法生成装配工序/工步层的知识图谱,速度调节机构中壳体总成、输入轴总成、中间轴总成的工序内容所对应的部分知识图谱节点如图9所示,表4为上述3个部件的所有工艺/工步类节点数据统计。
表3 词性类别的标签与含义Table3 Labels and meanings of part-of-speech
装配总成产品在生产过程中的装配数据通常分散于CAD模型文件与装配工艺文档中,不利于产品的统一数字化管理,也难以积累基于产品几何信息的工艺知识。为此本文提出了一种基于知识图谱的装配语义模型,并描述了其建模方法。
(1)分别从装配结构、几何表达、装配工序、装配工步4个层次定义装配语义中的实体类语义与关系类语义,并通过“实体-属性-值”、“实体-关系-实体”的信息组织形式将不同层次间的语义信息进行关联,实现了CAD 数据与装配工艺文本在语义层面的集成。
图7 干预语料集部分片段Fig.7 Part of intervention corpus
图8 部分词素分类结果Fig.8 Part of word classification results
表4 节点数据统计Table4 Node data statistics
图9 部分装配工艺/工步类节点Fig.9 Part of assembly process/step nodes
(2)描述了3DXML、STEP 文件与装配语义模型中节点的语义映射关系,并通过NLP技术对半结构化的装配工艺文档进行词素的分解分类,实现了该模型的自动构建。
(3)以航空航天产品中速度调节机构的试装过程为例,验证了该装配语义模型及其构建方法的可行性。