周 帅,李娟莉,3,谢嘉成
(1.太原理工大学 机械工程学院,山西 太原 030024;2.山西焦煤集团有限责任公司博士后科研工作站,山西 太原 030024;3.煤矿综采设备山西省重点实验室,山西 太原 030024)
由于井下条件的限制,很难对工作面设备的运行情况、作用范围和相互匹配情况进行细致的研究。利用虚拟现实技术生成综采工作面,可以清楚地看到工作过程的过程和隐患。通过系统数据接口实现综采面虚拟现实,读出相应监控系统提供的数据,并在虚拟矿山中显示相应的现场操作,达到数据三维可视化的目的。近年来矿用虚拟现实技术发展迅猛,在综合、培训、可视化3个方向上都有快速大跨越式的发展[1-14]。基于此,采用虚拟现实(VR)场景构建技术、三维虚拟模型制作技术、多媒体技术和网络技术,建立三维可视化操作和仿真平台,实现综采工作面的全景流程,提出优化展现综采工作面各设备的外观及实际运行环境、事故故障渲染动态效果的方法。
系统体系结构如图 1,系统架构包括2个主要部分:全景造型设计与故障渲染研究。
图1 系统体系结构
实现功能的主要手段:①几何建模:专注于事物中基元的形状和轮廓,颜色基元间的连接性,包括人物、设备、巷道的建模渲染以及装配;②物理建模:物理建模多考虑事物的物理属性,典型的是分形技术和粒子系统,如矿井中的石块,煤渣,火焰,烟雾,水;③运动建模:在构建虚拟场景时,只有的静态3D模型是不够的,例如:碰撞检测,刚体的置入以及第一第三操作视角的制作;④行为建模:涉及到事物的运动和行为特征,当事物交互时,不需要用户控制就能体现事物之间的动态关系,例如设备的自行移动,矿工的巡视,刮板输送机输送煤块等。
综采工作面全景造型设计包括矿工人物建模,地形巷道建模、煤机设备建模、综采工作面布置、第一第三人称漫游设置,5个模块让使用者可以根据优化的全景造型设计更加直观全面的了解综采工作面的各个方面。
1)矿工人物建模。矿工的角色建模使用3DSMAX软件来建模,绘制和渲染角色。为了使建模出的人物更加逼真生动需要利用Lightmapping(光照贴图)以增强场景光照贴图效果,用较少的性能占用使场景更加真实丰富,而且更加立体,为了产生光滑,真实而不显眼的质感光线效果。需要对其进行骨骼的绑定与蒙皮操作才能在Unity-3D时动画效果逼真,在人物建模完成之后转换为FBX格式同时保存animation文件导出,在导出时保持开始帧,结束帧,步幅值保持默认不变,选择Embed Media连同贴图一并导出。Unity-3D中的Mecanim为人形模型提供工作流与动画创作的能力,从3DS-MAX中导入的模型会自动生成Avatar(人形骨架)但某些关键关节还需要进行手动调整配置,在配置Avatar(骨骼)、Mecanim(肌肉)、Body Mask(身体遮盖)等基础参数之后、可利用Animator Controller(动画控制)控制角色动画,与动画重复时间。矿工在综采工作面中的巡视等行为建模需要通过铺设路点来实现,并利用C#编写脚本核心代码如下:
void Start()
{inst=this;}
void Update()
{RotateTo();
MoveTo();}
public void RotateTo()
{float current=transform.eulerAngles.y;
this.transform.LookAt(m_currentNode.transform);
Vector3 target=this.transform.eulerAngles;
float next=Mathf.MoveTowardsAngle(current,target.y,120*Time.deltaTime);
this.transform.eulerAngles=new Vector3(0,next,0);}
2)地形巷道建模。系统利用Unity-3d中的地形编辑器LOD功能,摄像机与地形之间的距离以及地形的起伏程度可调整贴片栅格的密度。使用疏密变化的网格,使场景更加真实,精细,再放入由3DSMAX建模生成的巷道模型,加以贴图展现井下的仿真场景。
3)煤机设备建模与综采工作面布置。设备造型采用UG10.0对综采设备中的采煤机,刮板输送机和液压支架进行建模,使父子零部件之间的连接精确,以便于呈现单独运动和设备之间的相互运动,以及后期置入骨骼,GUI操控。综采工作面的主要设备由采煤机,液压支架,刮板输送机,液压泵站,电源,控制系统、转载机、辅助运输设备等7大类设备所组成。将各设备参照真实矿下情况,布置到正确位置。
4)第一第三人称视角漫游设置。基于整体漫游行为路径的设计与设置理论,在以Unity-3D为平台的第一人称漫游的设计与实现已经非常成熟,在调节胶囊体底部略高于地面之后调整Character Controllers(角色控制器)、Rigibody(刚体)参数之后便可以顺畅的使用。第三人称漫游设置是为了让用户有更好的身临其境的效果。在场景中的人物模型自身已经带有动画、Avatar(骨骼)、Animator(动画)、需要再进行Mecanim状态机设置使转向,跳跃,跑,走等动作更加顺畅。
综采工作面故障渲染研究包括事故渲染与设备故障渲染2个部分,设备故障分类如图2。
1)事故故障分类渲染。煤矿事故展示是一项系统工程,旨在提高矿工的逃生技能,减少意外伤亡。系统将井下事故分为:顶板灾害,井下水灾、火灾,瓦斯煤尘爆炸。
图2 设备故障分类
2)环境粒子系统与后期频幕特效的设置。系统中为了更好的展现事故或者设备故障,必须研究如何渲染出更加逼真的效果。Unity-3D粒子系统的制作遵循三要素原则,发射(发射形状、速度等),存在期间的动画(存在时间、存在期间速度限制、存在期间受力、存在期间粒子半径),粒子渲染(粒子颜色,粒子衰减、死亡、相互碰撞),通过调整一系列参数实现效果。在操作系统中,Shuriken粒子系统用于水,火,烟,雾,爆炸,的岩石和煤渣的效果渲染。设计师通过模块化管理,个性化粒子模块和粒子曲线编辑创建多彩且复杂的粒子效果。环境粒子系统设置完成后需要添加后期屏幕渲染特效(Image Effets)图像特效,该设置主要应用于Unity-3D系统中的摄像机对象上,使用OnRenderimage函数,附加到相机对象的任何Image Effects脚本都可以通过编辑代码来修改效果。二者的互相合作搭配会带来更完美的效果。井下水灾火灾效果图如图3。
图3 井下水灾火灾效果图
3)设备故障展示。系统中采用SQL Server 2008后台数据库接入监测设备故障,如某一零件已经发生故障,系统将发出警报,并将画面自动切换到故障设备,并出现问题提示故障部位,故障零件将间歇性闪耀红色光芒。井下设备故障效果图如图4。
图4 井下设备故障效果图
4)操作系统GUI设计。基于漫游过程中的人机交互理论,GUI在系统开发中有重要的地位,系统是否友好,使用是否方便,很大程度上决定用户体验。该模块模拟液压支架。鼠标右键拖拽可改变使用者的位置。点击相应的控制按钮完成相应的操作。包括升降柱,推滑框架,前梁伸缩,保护和延伸,盖梁伸缩,调整和千斤顶升降,共6组作业。所有操作都以实时交互的形式体现,动作流畅自如,相互无干扰。本模块中模拟液压支架的机械臂动作是主要的难点,机械臂类似人的胳膊,各个关节支架相互约束匹配,在一定的角度数值范围内做出动作,不能超出规定的范围。液压支架操控界面如图5。
5)模拟液压支架的操作核心代码。模拟液压支架的操作,例如提升立柱,移动汽车以及降低立柱,都需要碰撞检测。各种动作的实现利用EventSystem系统实现,核心代码如下:
图5 液压支架操控界面
public class EventSystemChecker:MonoBehaviour
{void Awake()
{if
(!FindObjectOfType<EventSystem>())
{GameObject obj=new GameObject("EventSystem");
obj.AddComponent<EventSystem>();
obj.AddComponent <StandaloneInputModule >().force-ModuleActive=true;}
6)鼠标操作按钮模拟操作核心代码。鼠标操作按钮需要碰撞检测,由输入设备与三维场景物体的模型实现,系统通过鼠标模拟人手对NGUI制作的按钮进行模拟操作,核心代码如下:
public UIPanel parentPanel{get{return mParentPanel;}}
public int clipCount
{get
{int count=0;UIPanel p=this;while(p!=null)
{if(p.mClipping==UIDrawCall.Clipping.SoftClip||p.mClipping==UIDrawCall.Clipping.TextureMask)++count;
p=p.mParentPanel;}
return count;}
从虚拟现实的角度对综采工作面全景造型设计、故障渲染系统的关键技术进行研究:实现优化综采工作面造型设计,完善工作环境的构造,并加入人物漫游功能,使综采工作面更加生动;实现井下各种事故的呈现与设备的故障预警监测,将更逼真的可视化系统呈现在使用者面前。