张智跃 梁 旭 游江维
(中国矿业大学〈北京〉机电与信息工程学院,中国 北京100083)
采用虚拟现实技术(VR)进行采煤工作面的三维场景仿真,将整个采煤过程可视化,进行采矿生产过程模拟,服务于工作面的隐患预警,提高煤炭开采的安全性,用于煤矿人员技术培训。
采煤工作面的设备包括刮板输送机、采煤机和液压支架,其中液压支架的结构组成复杂。液压支架由多个部件构成,组件类型多,部件的运动模式各不相同,包括垂直方向的升降运动、水平方向的平移运动,依赖升降的旋转运动等,组件间的运动关系难以准确描述。准确的实施液压支架运动仿真的基础是设计液压支架的运动控制技术,也是采煤工作面仿真的关键技术。
VR技术在煤矿领域的仿真工作主要有煤矿设备的虚拟设计、矿井火灾模拟和瓦斯爆炸模拟[1]等,但存在设备仿真模型粗糙、场景控制技术简单和实时性差等缺陷。由于采煤设备的多样性、采煤过程和场景的复杂性,采煤工作面的场景仿真研究很少。液压支架的运动仿真及运动控制的相关研究没有见诸报道。
1.1.1 液压支架的组件
液压支架一共由六个部件组成:前梁、顶梁、立柱、底座、掩护梁和连杆,如图1。液压支架的构造可以简化为图2,其中A为顶梁,B是立柱,C是底座,D掩护梁,E是连杆,F是前梁。
图1 液压支架原图
图2 液压支架示意图
1.1.2 液压支架的运动关系
液压支架的运动由立柱的升降为主导,随着B的升降,顶梁A随着立柱平动,底座C保持不变,拉杆E绕着W点旋转,掩护梁D的运动是最复杂的,不仅有升降还有旋转,对D的运动控制是工作的重中之重。液压支架组件描述表1如下:
表1 支架组件描述表
液压支架的运动是周期性的,设液压支架的一个周期为时间T,整个周期T运动状态又可以分为四个阶段,支架部件在上述阶段的运动模式见表2:
表2 支架部件不同阶段运动模式
液压支架运动过程表达为若干个关键帧,计算关键帧时刻支架所处的位置和状态信息,以帧的形式组织描述支架状态,连接关键帧形成支架运动仿真过程[2-3]。通过场景中的几何模型关系计算求解关键帧的方法,解决了液压支架的复杂运动部件的路径信息难以获取的问题。
设置运动路径是常用的运动控制及仿真方法,即求出场景中物体的真实运动数学关系模型,根据运动数学模型生成运动路径[4]。如果运动数学关系模型特别复杂,提取数学关系模型困难,以及场景仿真时会运算量巨大,仿真的实时性差,也无法提高渲染效率。提取关键帧的方法在保证仿真真实性的情况下,能够很好的解决这个问题。
液压支架的运动周期为[0,T4],从支架的运动周期中提取N个关键帧,帧间的时隔:
液压支架的关键帧表述为H(t),描述t时刻液压支架的状态,在液压支架第m个运动周期的第i帧的时刻为:
关键帧由支架的各组件状态组成:
本系统是基于Open Scene Graph(OSG)图形库开发[5],OSG包含了一系列的开源图形库,主要为图形图像应用程序的开发提供场景管理和图形渲染优化的功能。它使用可移植的ANSIC++编写,并使用已成为工业标准的OpenGL底层渲染API。因此,OSG具备跨平台性,可以运行在Windows,MacOSX和大多数类型的UNIX和Linux操作系统上。
OSG提供了树状的结构组织模型,有效液压支架进行场景组织。3DMAX制作生成前六个设备部件模型文件,并进行组织,然后由OSG Exp插件导出为.osg格式文件。
液压支架是采煤工作面仿真的核心设备模型,通过OSG中加载模型函数osgDB::read Node File()从文件中读取设备模型,然后对场景模型进行相应的运动控制。
加载液压支架模型,首先按照液压支架的运动位移范围及运动时间,切分出若干关键点实施控制。控制变量包括:双精度型时间变量,包括动画的起始时间和持续时间;向量型变量osg::Vec,用来控制关键点节点的位置;表示运动方式的四元数变量osg::Quat,其矢量部分表示旋转轴,标量部分表示关键点之间的旋转角度。
由于液压支架各部件功能各异,其运动形式也不同。因为液压支架为周期性运动,前面我们分析了在周期不同的阶段各部件的运动状态,针对不同阶段不同的运动状态给不同的部件编写动画函数。
首先设定动画持续的时间time,为整个周期T内一段时间,起始时间time_start,以及整个动画过程由n个关键帧组成。
1)平移运动控制
平移以顶梁A为例,需设定升降的距离,即位移量displacement。由函数osg::Vec position()生成平动时两关键帧之间的位移量;函数osg::Animation Path::insert()把运动时间、位移量插入动画路径函数,完成路径设置。顶梁A节点调用动画路径回调函数osg::Node::set Update Callback()完成运动路径。
2)旋转运动控制
旋转以连杆E为例,首先设置旋转角度angle。关键帧之间的节点旋转角度为angle/n,所用的时间为time/n,由函数osg::Quatrotation()更新旋转角度。最后同样调用insert()函数插入时间和当前状态,返回动画路径。同样连杆E节点通过函数osg::Node::set Update Callback()调用动画路径。
3)旋转和平移协同运动控制:
旋转又平移以掩护梁D为例,首先设置旋转角度angle,平移量displacement。关键点之间的节点旋转角度为angle/n,平移量为displacement/n,所用的时间为time/n,由函数osg::Quat rotation()更新旋转角度,由函数osg::Vec position()更新平移量。最后仍然调用insert()函数插入时间和当前状态,返回动画路径。最后节点调用回调函数osg::Node::set Update Callback()完成掩护梁D的运动路径。
图3
论文主要研究了在基于OSG的虚拟场景中对模型运动的控制所需要的理论和方法,尤其是在对液压支架的运动控制技术做了详细设计,提出了一种新的设备运动控制方法,能够解决复杂动画路径关系下对刚体的运动做准确的运动控制,很好的解决了采煤工作面中复杂运动关系的控制。并且可以应用在其它更复杂场景仿真中,都可以通过提取这种空间的几何关系来取代运动路径的数学模型关系,达到同样的仿真效果。
系统也有自己的不足之处,首先设备模型单一,整个液压支架精简成了六个部件的运动,虽然能体现出液压支架的运动状态,但很多其他次要部件都被忽略。其次整个系统都没有加入声音系统,整个场景的运动都是无声的状态,不可避免的降低了场景的真实感。
随着数字化矿山的发展,虚拟现实技术在矿业方面的应用将会越来越广,将来可以将三维仿真虚拟现实技术与动力学理论结合,做到场景的真实性,并且可以与传感器和网络设备一起结合,达到场景的实时性。
[1]禹亮.采煤工作面仿真系统研究[D].山东科技大学,2008.
[2]X.Shen,R.Hage and N.D.Georganas.Agent-aided Collaborative Virtual Environments over HLA/RTI[C]//Proc.IEEE/ACM Third International Workshop on Distributed Interactive Simulation and Real Time Applications (D IS-R’99),Greenbelt MD,Oct.1999.
[3]J.C.Oliveira,X.Shen,N.D.Georganas.Collaborative Virtual Environment for Industrial Training and e-Commerce[C]//Proc.Workshop on Application of Virtual Reality Technologies for Future Telecommunication Systems,IEEEGlobecom’2000 Conference,Nov.-Dec.2000,San Francisco.
[4]肖甫,王汝传,孙力娟.多关联性虚拟现实系统的设计与实现[J].计算机技术与发展,2009,19(12):36-39.
[5]杨化斌.Open Scene Graph3.0三维视景仿真技术开发详解[M].国防工业出版社,2012.