基于现代智能实验室的三维场景用户界面设计

来源 :软件 | 被引量 : 0次 | 上传用户:jhiphop
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:针对现代智能实验室二维展现形式上的局限性,本论文提出了三维虚拟现实用户界面的改进方案。重点阐述了三维建模,osg实时渲染驱动,碰撞检测,物体拾取,与web服务器通信等关键技术的实现。实际测试表明,该系统很好的整合了二维系统缺失的空间信息,使用户体验得到极大的提升。同时该系统也为虚拟现实技术与物联网的结合做出了有益的尝试。
  关键词:虚拟现实;智能实验室;物联网;ZigBee ;OSG
  中图分类号: TP31 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.07.016
  文本著录格式:[1]白雪飞,赵文深,崔岩松,等.基于现代智能实验室的三维场景用户界面设计[J].软件,2013,34(7):41-45
  0 引言
  随着通信技术的发展和物联网技术的日趋成熟,传统的实验室逐渐向现代智能化实验室转变,实现了诸如远程查看实验室温湿度,监控实验室中的照明,门禁,投影仪,摄像头等设备状态的功能。此外智能实验室中还可以安装通用的智能插座,方便灵活地控制其他各种电器设备。现代智能实验室多采用分布式结构,通常由一个web服务器和一定数量的传感节点,和控制节点组成。传感节点采集设备信息汇总到web服务器,而控制节点则根据web服务器的指令来操作相应的硬件设备,web服务器则以二维GIS的形式展示实验室的结构、内部设施、电器设备状态,同时提供控制电气设备的接口,实现了实验室的远程监控和管理。
  但是该智能实验室系统以二维的形式展示三维的信息,存在一定的信息缺失,同时场景缺乏真实感,操作界面单一,用户体验不佳。而三维虚拟现实技术则很好地弥补了二维展现形式的缺陷。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身临其境一般,可以及时、没有限制地观察三维空间内的事物。虚拟现实技术与智能实验室物联网系统有机结合[1,9-10],将满足用户对实验室空间信息的迫切需求,增加场景的逼真度,以及操作的直观性和乐趣性。
  1系统框架
  如图1所示:本系统的总体框架有三个层次构成:最底层是由各种控制节点,传感节点,以及ZigBee节点组成的网络层,该层主要负责节点状态信息的采集和上传[2]。中间是服務层,它由一个web服务器组成,主要负责信息汇总,数据计算,与节点控制。最上层是显示层,也是本文要重点讲述的虚拟现实场景用户界面。
  1.1 ZigBee网络层与服务层构成
  本文中介绍的智能实验室节点网络采用ZigBee无线网络技术结合JavaWeb服务,组织和管理实验室智能控制节点,如图2所示。
  1.1.1 ZigBee局域网络:
  每一个智能实验室中都必须有一个ZigBee网络协调器(Coordinator),若干个ZigBee路由器(Router)和网络终端设备(end device)。其中ZigBee网络协调器的职责是建立和初始化设备,管理网络节点,存储关联节点路由信息等。ZigBee网络路由器主要负责搜索网络,传输数据,发送请求,起到路由的作用。ZigBee网络终端设备,则是相应的功能硬件设备,如温湿度传感器,门禁,智能开关等[3]。
  1.1.2 网关
  网关又称为协议转换器,是一种网络互连设备,用于连接不通通信协议的两种网络系统。在本系统中采用基于linux操作系统的ARM处理器作为网关,连接ZigBee无线局域网络和外部Internet网络[4]。
  1.1.3 Web服务器。
  在一个智能实验室系统中Web服务器是不可或缺的。它向下汇聚传感器节点采集的数据,发布指令控制ZigBee终端设备;向上为用户提供监控实验室设备的用户接口,是人机交互的关键环节。本论文中的Web服务器是利用Java语言构建并运作的,以web页面的形式,展现实验室的二维结构布局和设备分布。
  1.2虚拟现实显示层构成
  1.2.1三维模型
  智能实验室模型的建立直接决定了虚拟环境场景的逼真程度。本系统最终采用3ds Max软件,以北邮校园为背景,建立智能实验室的室内外三维模型,再现室外真实环境和室内桌椅,实验设施布局,温湿度传感器,灯光,门禁,投影仪,以及智能节点等。
  1.2.2 osg虚拟引擎,实时驱动渲染。
  OSG(OpenSceneGraph)是一款高性能跨平台的3D图形开发库,完全由C++和OpenGL编写而成,具有跨平台和开源的突出优点。OpenSceneGraph在对OpenGL封装的基础之上,建立一个面向对象的框架,使得编程者可以摆脱底层的繁杂建模,便于应用程序的开发和管理[5]。此外它还提供了大量的优化算法,提升运行时性能,提供几乎所有主流数据格式的数据接口,以及对脚本语言的支持。因此其广泛应用于可视化仿真、游戏、虚拟现实、高端技术研发等领域。
  现智能实验室的虚拟现实接口,必须建立基于OSG的人机交互接口,实现以下功能:
  (1)场景漫游功能:使用户可以在虚拟环境中自由行走,犹如漫游于真实场景之中。
  (2)碰撞检测功能:此功能保证人在虚拟环境中自由移动,但不会“穿越”墙等障碍物。
  (3)点选场景中物体的功能:使人能够选中,拾取,释放虚拟环境中的某个物体。
  (4)场景控制功能以及菜单功能:场景控制指虚拟场景中照明开关,门禁,投影仪的等控制,并在点选某设备时弹出菜单,显示该设备的参数信息。
  (5)与web服务器的通信接口。当人在虚拟场景中关闭的某一盏灯时,osg程序要向web服务器发送指令,关闭真实场景中的照明灯。然后osg程序再检测真实场景中的照明状态,在虚拟场景中再现照明状态。   2针对智能实验室虚拟现实接口的关键技术
  本系统采用3ds Max建模工具进行三维建模,利用Visual Studio 2008建立C++工程,引用osg三维渲染库,进行虚拟场景的渲染,漫游控制,碰撞检测,拾取物体等动态控制。
  2.1三维建模
  智能实验室场景的生成过程具体包括实景获取、建模、场景材质设置和真实感贴图、虚拟现实系统初始化、模型对象化导入与实时呈现几个部分,其中三维建模是核心部分,其质量好坏直接影响智能实验室虚拟场景的呈现效果[6]。
  智能实验室三维模型流程如图3所示,对于室外建筑和室内设施,其轮廓多为规则的几何体,故用一个长方体构建起其建筑轮廓,再增加门、窗、台阶、周围花草树木、室内设施等构成三维场景的模型。而纹理则通过高像素的相机拍摄,但由于受建筑物高度、拍摄距离、透视关系、光照条件等因素的影响,拍摄的图片比例失调,不能直接用作纹理,需要用PhotoShop等图像处理软件对照片进行裁切变换等处理,使之成为正射状态,最终以JPG格式保存,形成贴图库。贴图的长度和宽度应是2的幂次的整数,否则贴图在后期可视化中将不能正常显示。
  拍摄的过程中要注意相机镜头的法线尽量与建筑物垂直,尽量避免仰视拍摄和俯瞰拍摄,如图4所示:正确的拍摄角度可以大大的减少图像的后期处理压力。
  2.2 osg场景控制
  建立好智能实验室三维模型以后,剩下的工作就是在osg中进行实时渲染驱动,主要包括漫游控制,碰撞检测,拾取物体,和web服务器通信等。如图5所示:
  2.2.1漫游控制
  Osg中场景的漫游涉及到两个主要的类:osgGA::GUIEventHandler和osgGA::CameraManipulator。
  osgGA::GUIEventHandler是osg引擎中的事件处理类,它可以捕捉鼠标和键盘的操作。定义一个osgGA::GUIEventHandler的子类,即可自定义某个鼠标或键盘事件触发的操作,如按下W、S、A、D键 分别向前、向后、向左、向右移动模型等。而osgGA::CameraManipulator继承自osgGA::GUIEventHandle,专门用于相机视角的调整。其setByMatrix(const osg::Matrixd & matrix)和setByInverseMatrix(const osg::Matrixd& matrix)方法是其特有的用于调整相机视角的角度和位置的方法。自定义一个继承自osgGA::CameraManipulator的类,由继承关系,该类具有捕捉事件的能力,根据捕捉到的键盘事件,自由的调整相机视角和相机的位置。
  2.2.2碰撞检测
  本系统从实现的复杂度和运算开销角度考虑,采用射线体相交测试的方案进行碰撞检测,即用一个描述用的正方体或者球体包裹住3D物体对象(或者对象的主要部分),之后根据该包装盒的位置、距离等信息来计算,某一个时刻T,对象物体是否与其他的物体发生了碰撞和交叠。
  如图6所示,在进行相交测试时,首先连接物体A的旧位置与新位置构成一条线段,然后创建一个IntersectVisitor交叉访问实例,并把线段加载入该交叉访问实例,初始化访问实例位于场景图的根节点,然后线段跟随其遍历场景层次,与场景对象进行相交测试[7]。
  2.2.3拾取物体
  拾取物体是指用鼠标点击虚拟场景中的某一个物体之后,可以选中该物体,取消选中该物体,并能检测出点击的是哪一个物体等。本系统使用射线相交法实现物体拾取的目标,即通过遍历模型结构树,检测视点与鼠标选择点之间所确定的射线与哪个实体相交,从而确定被选中的实体。
  如图7所示:OSG引擎首先捕获鼠标的单击事件,然后获得鼠标点击的位置,进而运用射线相交法得到一个相交物体的集合,最后运用模型节点的唯一性标志 NodeName筛选出用户所要选取的模型结点。
  2.3封装ActiveX插件,与web服务器互动、通信
  如何将osg虚拟环境嵌入到网页中,并与web服务器通信,实现在虚拟环境中对现实场景中设备的控制呢? 将osg工程封装成基于MFC的ActiveX 控件为上述问题提供了解决方案。
  2.3.1 ActiveX技术
  ActiveX控件是基于组件对象模型(COM)的可重用软件组件,广泛的应用于桌面以及web应用中。ActiveX作为组件可以嵌入到web网页中,网页程序就成为了组件的容器。ActiveX控件为我们提供了两种机制:“事件机制”,“方法和属性机制”。“事件机制”用来实现当某种条件满足时,控件主动通知控件容器发生了某些事情。“方法和属性”机制用来实现组件容器主动通知控件发生了某些事情。
  2.3.2完整的通信过程
  虚拟环境与真实场景的完整通信流程如图8所示,通過“事件机制“和“方法属性机制”,完成了“虚拟环境事件触发web服务器指令,web服务器反馈信息更新虚拟环境中节点状态”的通信过程[8]。
  当用户在虚拟场景中单击灯的开关时,首先通过osgGA::GUIEventHandler检测到用户单击了鼠标左键,并通过“拾取物体”技术,判断出用户单击的是灯的开关,此时利用ActiveX的事件机制,在ActiveX内部触发开灯事件(假设灯状态由关到开),通知web容器(这里的容器指网页)灯被打开,再由嵌入到网页中的JavaScript指令向web服务器发消息,消息中包含灯所属控制节点的编号,以及“开或关”的状态,由服务器和ZigBee节点去将指定的灯打开。
  与此同时,Web服务器存在一个独立的线程,不停的检测ZigBee网络上传的各个节点的状态数据。当检测到某个灯的状态由“关”设置成了“开”,服务器便通过Web容器,利用ActiveX中的“方法和属性”机制,调用ActiveX中预留出的关灯方法,将虚拟场景中的指定的灯关闭。
  3 虚拟现实接口的实现,以及测试结果
  本系统所设计的智能实验室三维虚拟现实接口,在原来智能实验室的基础上,增加了三维立体的展现形式。并且经过了实际的测试和实验:虚拟环境中开灯,真实环境中灯会相应被开启;真实环境中将灯关闭,虚拟环境灯会随之置成关闭状态,实现了虚和实的有机统一。三维场景的效果如图10所示,和二维GIS的表现形式(图9所示)相比,大大增加了场景的“逼真度”,接口的“易操作性”,改善了用户体验。
  4结束语
  本论文在现有的智能实验室物联网系统基础之上,提出了基于虚拟现实的三维虚拟场景接口。重点阐述了三维建模、利用osg进行场景渲染驱动,以及虚拟场景与实际场景的有机连接等关键技术。实际的测试和检验,证明基于虚拟现实的三维用户界面,不仅实现了“实验室设施受控于三维场景”、“三维场景反映实验室设备状态”的功能,而且明显增强了展现形式的真实性和直观性,改善了用户体验。同时此系统所用到的技术和方案,可进一步拓宽应用范围,直接应用到现代智能家居领域,也是虚拟现实与智能家居的有机结合。
  参考文献
  [1]刘莉,黄海平,王汝传,叶宁.面向普适计算的虚拟现实在智能家居中的应用[J].信息化研究,2011,37(5):48-52.
  [2]周游,方滨,王普.基于zigBee技术的智能家居无线网络系统[J].电子技术应用,2005,31(9):37-39.
  [3]张周,周剑扬,闰沫.ZigBee在智能家居系统中的应用研究[J].工业控制计算,2006,19(12):7-9.
  [4]满莎,杨恢先,彭友,王绪四.基于ARM9的嵌入式无线智能家居网关设计[J].计算机应用,2010,30(9):2541-2544.
  [5]明芳,李峻林,基OSG的虚拟场景漫游技术研究[J].计算机与数字工程.2011,39(3):133-137.
  [6]包欣,王诺.基于3DMAX的三维虚拟校园建模的方法研究[J].数字技术与应用,2012,(12):56-59.
  [7]温转萍,申闰春. 基于OSG的虚拟校园漫游系统的设计与实现[J]. 计算机技术与发展:2009,19(1):217-230.
其他文献
摘要:随着云计算技术的蓬勃发展,OpenStack作为“云”家族中的新兴成员正在逐步成为该领域的核心技术。作为公有云和私有云的共同技术基础,OpenStack不但可以提供基础平台层的服务,而且能够实现统一的云管理平台自动化。然而,OpenStack作为一种新型的、动态的云服务,目前在安全性方面仍不完善。本文重点对OpenStack的对象存储进行安全性分析,发现OpenStack对象存储中身份认证、
期刊
摘 要:文章以四川交通职业技术学院为例,采用C#和SQL Server2008设计并实现了单独招生考场安排系统。对系统的初步使用表明,系统设计达到了预期目标,满足设计要求,极大的提高了单独招生考试考场安排的效率。  关键词:单独招生考试; C#; SQL Server2008  中图分类号:TP311 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.06.
期刊
摘要:现代网络的快速发展,使网络上出现了大量的不同形式的信息内容,大量的信息内容通过不同的形式呈现。因此,需要用户自身的习惯偏好和知识环境在信息导航系统中发挥相应的主要作用。从用户个体认知语境作为出发点,通过导航实例对问题进行了深入研究,希望对相关工作人员的工作能够有所帮助。  关键词:用户;导航研究;认知语境  0 引言  信息时代飞速发展,同时也使得导航用户对知识的掌握程度得到了不断的提升。在
期刊
摘要:针对张家口市气象局声像预报解说词编辑工作的实际需求,结合编辑工作者与气象节目主持人的组成现状,设计了声像预报解说词用语库。主要目的一是方便编辑人员参考学习其它电视台的声像预报解说词;二是方便编辑者及主持人借鉴其他电视天气预报节目解说词的语言风格。程序设计中主要利用Visual Basic6.0、access数据库以及网络编程等核心技术,在实际工作中多次补充修整升级,基本实现了预定目标。  关
期刊
摘要:相比传统地基测控技术,中继卫星的应用具有显著的优势,其“天基”设计思想,从根本上解决了测控、通信的高覆盖率问题。在实际应用当中,为了实现天基测控在火箭、卫星、飞船等航天器上加装中继终端设备。航天远洋测量船接收航天器实时下传的天基设备状态数据,积累算法如何兼具有效性、容错性是测控应用中的关键环节。而现有算法在特殊情况下不能从火箭遥测中将天基设备状态数据提取出来,本文讨论了现有积累算法的处理流程
期刊
摘要:Visual Basic(简称VB)程序开发系统,利用可视化技术进行编程,使编程工作变得轻松与快捷,因此,其在国内外各个领域中应用非常广泛。利用VB和SQL等技术开发的学生信息管理系统,为学校实现“学生管理现代化”奠定了基础。  关键词:VB程序设计;SQL数据库管理系统;学生信息管理系统  中图分类号:TP311.52 文献标识码:A DOI:10.3969/j.issn.1003-697
期刊
摘要:人脸检测在许多应用中有着很重要的作用,其中人眼作为人脸中最重要的特征之一,没有单一的人眼检测算法甚至是一个系列技术可以解决所有精确定位人眼问题。因此对四种不同的人眼定位算法进行比较试验,分别是基于多角度的模版匹配法,霍夫变换法,自适应边缘提取法,对称变换法,比较各自的优缺点以及适应使用的环境,以期于在不同的图像条件和外部环境下达到识别的最优效果。  关键词:人眼定位;模版匹配;霍夫变换;边缘
期刊
摘 要:首先针对防空作战C3I系统功能性能指标的灵活测试需要,对防空作战C3I系统组成、主要功能以及主要指标测试项目与方法进行了深入研究,然后介绍了防空作战C3I系统仿真测试环境的组成、主要信息交互关系和运行工作流程,最后介绍了测试环境构建以及分布交互式互联测试中的通用装备仿真模型设计、分布式时间同步、空情作战态势生成、半实物系统互联的时空一致性等关键技术的设计实现。  关键词:防空作战C3I系统
期刊
摘 要:以长沙市望城区为例,探讨格网法修测地形的模式。  关键词:望城;格网法;地形;修测  中图分类号:P207 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.07.046  本文著录格式:[1]刘苏洲.格网法地形修测方法[J].软件,2013,34(7):132-133  0 引言  地形图在规划系统的主要用途为规划设计、用地蓝线的划定等。望城全域有两种比
期刊
摘 要:网路嗅探器能够分析出一段网络中数据包使用的协议、IP、源端口等内容,经常用来检测一段网络的运行状况,排除网络故障。网路协议纷繁众多,采用Lua嵌入脚本来解析协议数据包,能够使程序灵活的扩展。本文简要介绍了嗅探器和Lua的概念;然后着重阐述了Lua脚本嵌入方案关键技术,对如何实现系统功能给予详细的描述;最后展示了Lua嵌入脚本实现的功能。通过测试表明,Lua嵌入脚本模块能够有效的使用新编的嵌
期刊