APP下载

基于Lightning的生产线仿真

2011-09-07单忠德HansPeterLentes

中国机械工程 2011年14期
关键词:生产线虚拟现实数据库

徐 正 单忠德 李 周 Hans Peter Lentes

1.机械科学研究总院先进制造技术研究中心,北京,100083 2.弗劳恩霍夫工业经济与组织研究所,斯图加特,德国,70569

0 引言

基于虚拟现实技术的生产线仿真可以对逻辑、控制进行系统仿真并对生产能力进行评估。但因设计者无法判断自身所处的真实环境和具体尺度[1],故整个仿真过程并不十分直观。基于Lightning的虚拟现实系统解决了生产线仿真的此类问题,采用1∶1的比例对在线设备进行仿真,为生产线设计者提供一个具有高度沉浸感和真实性的最优平台。同时系统可以还利用来自CAD的几何数据和在线设备的控制信号对生产线进行进一步的评估,在来自在线设备实时控制信号的驱动下,模拟设备的真实运行过程。

1 系统框架

在一定数量的硬件基础上,虚拟现实可实现多视角环境[2]。为此本系统在硬件方面,采用英伟达Quadro FX5800专业显卡的工作站,并外接了光学跟踪系统 ART;软件方面,采用基于Ubuntu操作系统的Lightning,成功地搭建了面向对象的多视点环境(图1)。系统的设备管理器负责以上硬件的管理工作;交互管理器负责跟踪设备及控制设备的信号运算,并将计算结果发送到Lightning内核中;模型管理器负责管理模型数据库中的虚拟模型,以确保模型在虚拟场景中具有正确的渲染顺序。

图1 基于Lightning的生产线虚拟现实系统框架

1.1 Lightning虚拟现实系统

Lightning虚拟现实系统作为快速的虚拟现实应用开发工具于1996年面世[3],最初应用在建筑和展示领域,后来发展成为拥有3D用户接口的工程交互仿真系统[4]。利用它可以进行不同应用类型的开发实验,如对CAD设计的评估、虚拟装配和数字化工厂等。Lightning的另一个重要特性是可以连接各类外部资源库,以此来快速扩展其功能模块,在程序运行时载入指定的库文件,使所有模块都将共享这些库文件;实际的主程序则成为一种带有内部解释器的加载器,可加载程序运行中的各类模块。Lightning引入域变量作为各类参数的载体(所有的对象都存在于对象池中)。同时,Lightning将简捷的脚本语言TCL作为其接口开发语言集成到核心系统中,更方便了程序的快速开发。

1.2 建立模型数据库

Lightning支持很多标准的虚拟现实文件格式(如 VRML-97 、obj、flt),因此可以更加自由地创建模型数据库。来自生产线设计者的数据一般为CAD模型格式,这类数据不仅包含了模型的几何信息,还包含了约束、公差和其他的工程信息。如果直接将其转换为虚拟现实数据,模型将会含有大量的多边形,而过多的多边形将给图形工作站带来极大负担,无法完成此类数据的实时渲染任务。因此,建立模型数据库的第一步是优化这类直接由CAD数据转换的虚拟现实模型,在减少模型多边形数量的前提下最大限度地保存其几何信息。如图2所示,优化后多边形的数量不到原模型多边形数量的1/10,而模型的几何信息得到了较好的保留。

图2 简化前后的多边形数量

第二步是将模型有组织地加入到数据库中并建立合理的层次结构。虽然系统中的模型管理器会将模型按照正确的顺序进行渲染,但合理的数据库层次结构将会显著提高计算机的渲染速度。逻辑结构和空间结构是模型数据库中应用最为广泛的两种结构[5]。在逻辑结构中,相同类型的模型(节点)将被划分至同一组中。由于相同类型的设备具有相同的行为,当信号传递到由相同类型节点组成的组节点时,所有的组内节点将同时获得这一信号,因此模型间的信号传递时间将会大大缩短。在空间结构中,相同区域内的模型将被划分至同一组,因为相同区域的模型在系统运行时将在同一时间被渲染器剔除和绘制,判断模型是否可见的时间将会大大缩短。考虑到两类结构的优点,我们将模型数据库设置为图3所示结构。图3中,数据库的上层节点以空间结构进行组织,下层节点以逻辑结构进行组织,模型管理器占用的模型数据库访问时间将会降低到最少。

图3 模型数据库层次结构

1.3 系统运行过程

在本系统中,我们将基本的显示和交互模块,如窗口、摄像头和按钮控制定义在viewer.ltcl文件中,将与生产线相关的其他模块定义在run.ltcl文件中。解释器将执行run.ltcl文件并生成计算循环,通过定义在脚本中的时间模块所产生的系统时间来渲染并更新系统的状态。

系统在开始运行时,首先通过传感器或从外部信号处获得输入数据,然后开始计算循环,如图4所示。计算循环中,系统将输入数据传递给模型对象中的函数,基于这些数据,模型对象的状态如位置、方位和运动速度将在每一帧中被更新。经函数运算后,模型对象之间的内部信号也将路由到其他模型的接收端口。同时,系统将利用已经更新的数据来渲染新的状态,并将输出数据传递给外部硬件设备。结束一帧的计算后,系统将返回循环的开始并进行下一帧的计算。

图4 系统运行过程

2 系统功能仿真

为了更加快捷高效地对虚拟现实应用系统进行设计,仿真过程采用适用于快速开发的解释性语言TCL[6]为开发语言。所有模块都可以通过应用程序中的脚本进行加载,通过简单的连接口,TCL还可以提供外部工具和内置解释器的连接。在Lightning中,TCL以基于字符串的形式被集成在系统层次,因此不会受限于个别的节点实例。

2.1 设备功能的模块化仿真

模型数据库中的模型仅仅含有几何信息,模型相应的行为信息则需要进一步进行设置。当虚拟设备的运动状态与真实生产线上的设备行为相一致时,生产线的虚拟场景才会更具有真实性,从而让人更加信服。设备行为的实现有两种方式:一种是在VRML文件中定义模型的运动,并加入相应的javascript脚本,然后在Lightning中调用VRML模块;另一种是利用 TCL语言直接在Lightning中定义运动模块。

Lightning支持VRM L模型的各种行为,包括插补器和javascript的应用,因此对于设备的简单运动过程,可以在VRML-97格式的文件中利用时间插补器、位置插补器、方位插补器等来实现运动,其中的VRML模块可以读取VRML-97格式的文件,并可为其定义域值,从而控制模型的运行。我们定义系统时间输入域变量来接受当前的系统时间,同时VRML模块将系统时间直接路由给VRML-97文件中的时间传感器,并以此来驱动文件中的所有插补器,如图5所示。定义的端口还可以作为外部控制信号的接口通过javascript中的函数来进行访问。

图5 VRML模块的实现

使用VRML中的插补器和脚本很难实现实时的复杂运动,特别是一些需要有运动学方程计算而得出的复杂运动。为了达到实时处理的目的,我们可以通过TCL脚本直接定义包含优化算法的复杂运动模块,如图6所示,Lightning在运行时直接调用运动模块,系统用来解释VRML脚本的时间将会被节省。

对于一个典型的设备,我们将其划分为若干功能部分,如控制部分、传感器、电源部分、电机等,然后利用TCL脚本来定义各功能部分对应的抽象模块,这些抽象的模块将分别仿真其对应部分的功能。

图6 设备模块及脚本实现

在每一次计算循环中,域存储的数据都会更新,模块中的函数将同步检查域的状态并相应更新其参数值。

2.2 信号的多层次仿真

设备是生产线的基本元素,但在线的每台设备并不是相互独立存在的,而是相互协同工作来完成整条生产线的任务,因此在生产线运行时,在线设备间的相互通信将变得尤为重要。在本系统中,我们根据信号传递的优先级和范围将其划分为3个等级:设备级、功能单元级和生产线级,如图7所示。

图7 多层级信号传递

图7中,在设备内部传递的信号属于设备级信号,它是多层次信号仿真中的最低级,所有模块的信号与设备级通信模块相连接。首先,传感器模块接收到外界信号,并将其传递给通信模块;然后控制模块从通信模块处取得信号,对信号进行分析后将控制信号传回通信模块;最后,电机模块和电源模块得到控制信号并将驱动信号传递给机械模块。我们也可以直接向控制模块发送信号,并将其作为外部的紧急中断。

为了完成某一项功能,若干设备协同工作并组成了一个功能单元。在功能单元内部各设备之间传递的信号属于功能单元级信号,其处于多层级仿真的中间层级。在此层级中,所有的设备全部连接到控制总线上,控制中心接收来自设备的信号,并将控制信号通过总线进行反馈。功能单元之间传递的信号属于生产线级信号,是多级仿真中的最高级,但是其拥有的优先级最低,在紧急情况下可以被来自功能单元级或设备级的信号中断。

这类多层级信号传递机制可以用来进行系统测试,并可以很快找到故障的原因。当我们进行生产线的测试时,可以将整条生产线划分为简单的功能单元,然后将功能单元划分为若干设备的集合,最后将设备划分为更为简单的功能模块,这样便可以通过逐步缩小故障的范围最终来确定故障原因。

3 典型案例

我们以某全自动纺织染整生产线为原型,建立了一套逼真的虚拟现实仿真系统。在系统设计的初期,将各类在线设备的CAD数据进行优化及整合,建立了详实而准确的模型数据库。在分析各在线设备的功能和内部信号传递逻辑后,针对其各个模块建立抽象的多层次模型。

系统在运行时调用了各类外部的库函数,同时将烘干机、调湿机和移载车等设备的抽象模块调入内存,如图8所示,在图形工作站的实时渲染下,系统按照事先编订的运行程序仿真各类设备的运行情况。若设备在运行中出现干涉等错误,虚拟场景中将出现提示信息。系统还具有输入外部中断信号的功能,可以对单个设备及整条生产线进行人工调试,并观察其实时的反馈情况。利用各种反馈信息,设计者可以及时对生产线进行优化和修改,在提高了工作效率的同时,减少了现场调试所消耗的能源和材料。

4 结语

图8 系统运行场景

利用Lightning来实现数据库的建立和仿真,所有的设备都被抽象化为 Lightning中的模块,而模块之间的信号则被定义为模块功能函数中的参数,在这种设备-模块的对应关系中,可以方便地进行整条生产线的仿真实验。建立了不同的在线设备对应的几何与行为模型,使其具有高度的沉浸感、真实性和交互性。生产线的设计者可以通过增加或删除对应的模块来方便地更改在线的设备并对生产线进行系统的测试。在未来的研究中,将利用TK对系统添加各类对话模块,以加强系统的交互性和灵活性,并采用物理引擎来模拟真实物体间的碰撞和响应。

[1]Neugebauer R,Weidlich D,Zickner H,et al.Virtual Reality Aided Design of Parts and Assemblies[J].InternationalJournalon InteractiveDesign and Manufacturing,2007,1(1):15-20.

[2]Frö hlich B,Blach R,Stefani O,et al.Implementing Multi-Viewer Stereo Displays[C]//International Conferences in Central Europe on Computer Graphics,Visualization and ComputerVision.Plzen,2005:139-146.

[3]Landauer J,Blach R,Bues M,et al.Towards Next Generation Virtual Reality Systems[C]//IEEE International Conference on Multimedia Computing and Systems.Ottawa,1997:581-588.

[4]Blach R,Landauer J,R ö sch A,et al.A Flexible Prototyping Tool for 3D Real-time User-interaction[C]//Proceedings of the Eurographics Workshop on Virtual Environments.Stuttgart,1998:195-203.

[5]徐正,沈笑云,韩丹.基于Creator的飞行视景数据库建模技术[J].计算机工程,2009,35(9):265-268.

[6]Ousterhout J K.Tcl and the Tk Toolkit[M].Indianapolis,Indiana:Addison-Wesley Professional,1994.

猜你喜欢

生产线虚拟现实数据库
方便小米粥亿级生产线投入运行
虚拟现实技术在中学校园中的应用
数据库
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
数据库
数据库
数据库
半桥壳冷冲压生产线的设备组成及其特点
Hazelett生产线熔炼工艺探讨