虚拟教育机器人三维模型特征表示方法*
2010-05-28程旭
程旭
中国教学仪器设备总公司科学仪器部 北京 100032
教育机器人作为培养与提升学生综合能力的试验平台,得到学校和社会的广泛关注。基于虚拟现实技术设计开发的集成虚拟装配与运动仿真的教育机器人平台,可以克服价格高、维修难以及不能重复利用等缺点,促进机器人教育的普及。图形与参数相结合的表达方法,可以很好地解决数据量与模型三维特征精确性、逼真性的矛盾,为教育机器人系统提供丰富的零件库。另外,XML语言表示机器人模型文件相关特征,可以使每个零件本身具有很多的固有属性。
图1 5孔杆件的结构图
XML是互联网联合组织(World Wide Web Consortium,W3C)创建的一组规范,其目的在于满足不断增长的网络应用需求,同时确保通过网络进行的交互合作具有良好的可靠性与互操作性。XML为基于网络的数据表示和数据交换提供了有效途径,其最突出的功能是数据表示和数据交换。XML在数据交换、Web的数据挖掘、智能交通系统、电子商务、通信技术和虚拟现实等许多领域都有应用,但是采用XML技术来表示教育机器人模型三维特征的研究在国内外还比较少见。本文将结合XML技术,提出一种模型三维特征的表达方法。
1 图形和参数相结合的表达方法
图形与参数相结合的表达方法,指模型的一部分三维特征采用图形来表达,另一部分采用参数来表达。该方法既可以表现模型的逼真性,又可以尽量减少存储的数据量,为教育机器人虚拟平台提供合适的零件模型,是三维设计器模型三维特征表达的最佳方式。
首先以一个5孔杆件为例,介绍简单模型的图形和参数相结合的表达。由于模型的部分三维特征可以采用图形来代替,所以在建立基本特征时可以采用较低的参数。如图1所示,分析5孔杆件的结构,基本模型由矩形和半圆组成的外围轮廓线挤压(Extrude)生成,基本模型再与5孔杆件俯视图片(平面贴图)结合,构成5孔杆件的三维实体模型。
在参数表达方面,第一步,采用样条曲线(Spline)绘制模型俯视外围轮廓线,其总长为40 mm,宽度为8 mm;第二步,添加挤压(Extrude)修改器,在垂直该平面方向挤压8 mm,这样就建立了图1中的三维模型A。在不影响模型三维特征的前提下,需尽可能地减少模型数据量。因此,在挤压过程中,挤压方向的段参数(Segments)设置为最小1,这样就用最小的数据量表示了能够被教育机器人虚拟平台所使用的三维模型。但是该模型只有实际5孔模型的基本结构,并没有5个通孔和其他的表面凹痕,在模型细节和视觉效果方面远远不能达到虚拟现实的效果。所以,这些没有被参数所表达的特征就需要用另一种方法来补充,这样才能实现一个完整的三维模型。
根据上述描述,5孔杆件的模型三维特征还缺乏5个通孔、表面凹痕、颜色和光泽等信息。针对这一问题,本文采用图形的方法来补充这些特征信息。在图1中三维模型A的基础上为其添加材质,即把图1中的5孔杆件的俯视贴图B赋予模型A。由于5孔杆件在通孔方向的上下表面是对称的,减少了图形参数表达的复杂性。在图形参数赋予模型后,为了调整通孔的位置、模型细节和视觉效果,必须为此模型添加UVW Mapping修改器。此修改器一方面确定平面图形的贴图方向,另一方面精确调整模型细节。此修改器的贴图方式有平面、圆柱、球状、包裹和立方体等方式。根据5孔杆件的特点,选用平面方式,即通孔方向上下表面为特征表现方向,侧面则为次要方向。先确定贴图方向,再修改贴图长度为40 mm,宽度为8 mm,就可以完整地表现参数所未能表示的某些特征。
表1列举了5孔杆件分别用高模参数表示方法和图形与参数相结合的表达方法表示时的各项数据。
由表1可见,高精确性和逼真度的模型并不是只有高参数表示法一种方法能表达,采用图形与参数相结合的方法较高模参数表示方法有更多的优点和实用性。图形与参数相结合的表达方法,为教育机器人虚拟平台的模型表达提供了一种合适的途径,用较少的数据量表达模型的完整信息,为该平台的运行提供了最基本的保障。
表1 高模参数表示法和图形与参数相结合的表达方法对比图
采用图形与参数相结合的方法不仅可以几乎完美地表达简单模型,对于复杂模型也同样适用,限于篇幅,不再赘述。
虽然模型信息看似表达完整了,但是图形所表示的孔毕竟不是真正意义上的通孔,只能是一个通孔位置的占位符。针对这个问题,下面将讨论如何使用基于XML的三维模型特征表示方法解决上述问题。
2 基于XML的三维模型特征表示方法
XML主要包含3个要素:文档类型定义(Document Type Definition,DTD)或者模式定义(Schema)、可扩展样式语言(eXtensible Stylesheet Language,XSL)和可扩展链接语言(eXtensible Link Language,XLL)。Schema规定了XML文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素和元素的属性之间的关系;XSL是用于规定XML文档样式的语言;XLL将进一步扩展目前Web上已有的简单链接。
2.1 单个模型三维特征的XML Schema定义
基于教育机器人模型信息的表达要求,为了保证模型数据和装配的精确性,本文利用XML Schema的强大描述功能,选择XML Schema来规范教育机器人虚拟平台中模型的信息表达,设计出如图2所示单个模型的XML Schema,称为RobotPart XML Schema。
如图2所示,在RobotPart XML Schema中定义了Joints(关节类型元素)、ElecPort(电子端口元素)和RobotPart自身的一些基本元素,如mesh(模型所需的网格模型信息)、rb(模型的刚体属性信息)、type(模型所属类型)和axisscale(轴向缩放)等。其中,Joints元素是最关键的属性,用于记录零件模型关节类型、装配面、装配孔的信息以及声明等;ElecPort元素定义了电子端口的数据结构,包括类型和取值范围。RobotPart XML文档以RobotPart元素为根元素,主要包括以上子元素,其全部内容在RobotPart XML Schema中进行详细的定义(框1)。
图2 单个模型的XML Schema
框1 RobotPart元素的定义
图3 Joints元素的模式结构
如图3所示,详细定义了Joints元素的模式结构。Joints元素作为RobotPart XML Schema中最关键的元素,详细记录了单个零件模型的以下重要信息:1)Plane,装配面的数目、类型和位置信息;2)Joint,每个装配面上装配孔的数目和位置信息。
零件模型是以装配面为基本信息单元来组织的。零件模型的不同装配面有不同的装配类型,装配类型的不同导致装配孔的信息内容也有所不同。丰富的装配模式为机器人的搭建提供了多种方法,有利于搭建的多样性和灵活性。
Joints元素的详细定义见框2。
从上述XML代码可以看出,Joints元素包含Plane(装配面)这个重要的子元素,同时自身还有一个type属性。Plane元素可以有一个,也可以有多个。Plane元素自身同样有一个Type属性,可以指定装配面是固定方式还是铰链方式。distance元素和normal元素用于确定该装配面的位置和方向。Joint元素可以有一个,也可以有多个,它代表了该装配面上的装配孔的数目和详细位置,是装配成功的关键。
框2 Joints元素的详细定义
以上述简单模型的定义作为基础,复杂模型的定义也有规律可循。复杂模型相比简单模型,只是空间结构增多了,只要将空间结构按一定规律分解成简单模型,即能完成其定义。第一步,分解成多个简单模型;第二步,分别完成各个简单模型的定义;第三步,将这些定义组合在一起,还原成复杂模型。
2.2 组合模型三维特征的XML Schema定义
组合模型,顾名思义,是由多个单独的零件模型组合而成的,可以作为一个整体模型被教育机器人虚拟平台直接使用的模型。例如,接触传感器由传感器外壳和接触开关组合而成,控制盒则有主板盒和电路接口组合而成。为了清晰有条理地表示组合模型,设计出如图4所示组合模型的XML Schema。
框3 CompoundPart元素定义
组合模型由一个或者多个CompoundPart元素组成,主要包括位置、方向、零件模型和装配关节类型等详细属性。CompoundPart元素定义见框3。
组合模型可以由一个或者多个PartGroupInfo元素组成,最终分解到PartGroup下的RobotPart元素。而RobotPart元素表示的就是单个模型的信息。
3 简单模型的特征表示示例
以5孔杆件为例,首先分析此零件模型,具有上下两个装配面,每个装配面各有5个独立的装配孔。根据RobotPart XML Schema的定义,可以为此零件模型编写框4中的代码。
在此段代码中,指定了5孔杆件的网格模型文件为coupler5_8mm.mesh,即图中5孔杆件CSG图所建立的模型,刚体属性文件为coupler5_8mm.rb,模型类型是mech,属于机械类。Joints元素属于Plane类型,其装配面有2个,类型都是HINGE(铰链方式),每个装配面上都有5个独立的装配孔,共10个。
图4 组合模型的XML Schema
框4
对于Plane元素的自身属性distance(距离)属性和normal(法向)属性的意义和确定,在图4中可以清楚地看出来。图5中5孔杆件模型的位置中心位于自身的几何中心,屏幕上红、绿、蓝三色表示的坐标轴分别代表normal(法向)属性的x、y、z三轴。由此可以看出,模型的装配面在y向,并且不在位置中心,分别与位置中心相距半个模型高度。“
确定了装配面之后,接下来就可以确定该装配面上的装配孔了。如图6所示,屏幕上亮黄色的面为被激活的装配面,是模型的上表面;5个圆柱体为装配轴,分别表示该装配面上的5个独立的装配孔的位置信息和装配信息。
图5 5孔杆件模型
图6 装配面、装配轴被激活的5孔杆件模型
装配孔的位置是靠Joint元素来描述的,其只有一个position(位置)属性,描述装配孔的三维空间位置。代码如下:
描述了图6中最中间那个装配孔的信息,是位置中心y正方向上相距4 mm的位置。图中红色装配轴(鼠标停留处)表示它代表的装配孔处于被选中状态,而该装配孔的位置信息由如下代码描述:
其表示与最中间那个装配孔位于同一平面上且在x轴正方向相距8 mm的位置处的装配孔(右数第二个位置)。其他装配孔位置信息定义与此相类似,同一平面内的y方向数值不变,只和x和z方向有关系。
定义完一个装配面上的装配孔信息之后,其他装配面上的信息定义完全类似。对于n孔杆件,m×n孔板件这类简单零件模型,具备两个相对称的装配面,其装配面信息除了法向不同,其他均相同。两个装配面上的装配孔也是相对应的,只是在y轴向数值相反。此类零件模型装配面类型只有HINGE(铰链方式)一种,因此具有很高的对称度和规则性,是最简单的一种。
4 结束语
本文介绍了图形与参数相结合的模型三维特征表达方法,阐述了该方法的原理。图形与参数相结合的模型三维特征表达方法解决了模型数据量与三维特征精确性、逼真性之间的矛盾,提出了基于XML的模型装配信息表达,补充了三维模型的装配信息。
[1]Golovinsky A, Yim M, Ying Zhang, Eldershaw C, Duff D. PolyBot and PolyKineticTM System: a modular robotic platform for education[A]//IEEE International Conference on Robotics and Automation,2004:1381-1386
[2]陈俊杰.ZHR组合机器人三维仿真及其控制系统的研究[D].浙江大学机械学院,2000
[3]Andreoli R, De Chiara R, Erra U, Scarano V. Interactive 3D Environments by using videogame engines[C]//Proceedings of the Ninth International Conference on Information Visualisation,2005
[4]DeKnudt B, Desmet S, Van Eychen L. Coding of Dynamic Texture for Mapping on 3-D Scenes[J].IEEE Transactions on Circuits and Systems for Video Technology,1999,9(2):210-217
[5]Cheah T C S, Ng K-W. A Practical Implementation of a 3-D Game Engine[C]//Proceedings of the Computer Graphics, Imaging and Vision: New Trends,2005
[6]洪著财,史金飞,张志胜.动态质量信息的XML体系建模研究[J].中国机械工程,2004,14(7):613-615
[7]张志胜.基于XML的动态质量信息系统关键技术研究[D].东南大学机械工程学院,2004