采用Open Inventor类库开发的三维虚拟现实软件 |
2012-11-19 10:41 作者:张军 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
【硅谷网11月19日文】据《硅谷》杂志2012年第17期刊文称,虚拟现实(VR)软件是被广泛应用于虚拟现实制作和虚拟现实系统开发的一种图形图像三维处理软件。介绍OpenInventor类库的架构和体系,通过对场景数据库的合理设计和驱动引擎的编程,实现一台具有6自由度的医疗机器人的运动控制过程进行虚拟仿真,对于其他领域的虚拟现实技术开发具有一定的参考意义和较好的市场应用前景。
1绪论
计算机仿真技术是建立在控制理论、相似理论、信息处理技术和计算技术等理论基础之上的,以计算机以及其专用辅助设备为工具,利用系统模型对真实或者假象的模型进行实验,并借助专家的经验知识、统计数据和信息资料对实验结果进行分析研究,进而做出决策的一门综合性的和试验性的学科[1,2]。它具有经济、可靠、实用、安全、灵活而多次重复使用等优点,已经成为许多复杂系统或工程分析、设计、实验、评估等不可缺少的重要手段。目前,计算机仿真已经在诸如科学实验、军事工程、医疗手术等领域中广泛应用开来[3,4]。
虚拟现实技术(简称VR),又称灵境技术,是以沉浸性、交互性和构想性为基本特征的计算机高级人机界面[5,6]。它综合利用了计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间,具有广阔的应用前景。
OpenInventor(以下简称OIV)是SGI公司开发的基于OpenGL的面向对象三维图形软件开发包。使用OIV开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。OIV具有平台无关性,它可以在MicrosoftWindows、Unix、Linux等多种操作系统中使用。OIV允许使用C、C++、Java、DotNet多种编程语言进行程序开发。经过多年的发展,OIV已经基本上成为面向对象的3D图形开发“事实上”的工业标准。[7,8]广泛地应用于机械工程设计与仿真、医学和科学图像、地理科学、石油钻探、虚拟现实、科学数据可视化等领域。
2OpenInventor架构
OpenInventor就是这样一个基于面向对象封装OpenGL库,当前基于OpenInventor的库有三个:SGI的OpenInventor、TSG(VSG)的OpenInventor和SIM的OpenInventor[9,10]。由于前两个都是商业开发包,使用必须支付十分庞大的费用所以代价很高,但是最后的SIM的既有商业版也有开源的教学版,这就方便了广大学生和初学者来学习OpenInventor。SIM的OpenInventor库又叫Coin3D,可以在网上非常容易的下载到。OpenInventor成功的将OpenGL的状态机抽象封装化,程序员只需要关注如何创造场景对象,而不是如何绘制场景。OpenInventor提供了很多方便机制来完成这些功能,比如场景数据库、结点、引擎、路径、传感器、观察器和照相机等类,用户只需要创建相关对象,配置一些简单的属性连入场景数据库中就可以实现很多复杂的功能。
3三维虚拟现实方法
3.1仿真对象建模
选择合适的3D造型软件对机器人进行三维建模,同时利用相应的应用程序框架和图形库编写出一个机械臂运动仿真软件。本课题给定的仿真对象一台六自由度医用机器人,本虚拟仿真软件的设计目的即:利用现有的手控器遥控操作仿真机器人的6个自由度,同时实时显示出仿真机械臂6个自由度的坐标参数。SGI公司的一款叫做COSMOWorld的VRML建模软件是比较理想的建模环境。
3.2场景数据库设计
OpenInventor场景数据库是一个使用非对等结点的树状无环图来组织各个场景中要显示的元素的。根结点是一个没有祖先的结点,直接传递给场景数据库管理器,这个功能在初始化视类的时候实现。最右侧的场景坐标显示是一个二维文字结点,独立显示坐标,其显示内容是从场景数据库的引擎网络中实时获取的。然后是右侧7个机械臂元件结点,除了第一个结点是静态的、不能移动的结点之外,其他6个结点都是可以运动的,且对应着6个自由度中的X、Y、α、β和Z’。每个元件结点的组织都是类似的,一个分隔结点作为根结点,然后最左子结点是一个从磁盘读入的3D模型文件的分割节点,然后右侧有一个初始向量变换和一个初始化为零向量的动态向量,静态向量和动态向量配合引擎网络可以实现不同自由度的移动变换和位置记忆功能,这一点的实现主要在下一节叙述。然后静态向量和动态向量都是要连入引擎网络进行数据更新的。
3.3驱动引擎网络设计
整个引擎网络的组织基本思想是:使用时间引擎提供正比于开通时间的输出数据流,输出数据流送入运算器引擎中,运算器引擎根据用户操作改变的运动标志变量来确定数据输出的方向是正还是负,进行简单计算和标度变换后送出到一个向量组合引擎,将输出数据整合成一个向量。之后这个向量使用OpenInventor内建的数据更新机制直接连接到动态向量上去,这样就可以实现平移动画了。当用户选择停止移动时,这用户松开移动按键,在消息回调函数中将静态向量和动态向量求和然后回送静态向量,同时对动态向量进行置零操作,这样就够建了一个简单的反馈网络实现了移动位置的自动记忆。
3.4虚拟现实效果
机械臂的六个自由度所对应的坐标轴正如图1所示。由于使用的各个自由度都是单一自由度,所以只需要两个按键就可以完全地控制该自由度。因此,只需要使用手控器上的2轴方向键控制X轴、Z轴的联动,同时使用手柄上的其他八个按键控制其余4个轴的运动。同时手控器可以实现多轴联动,只要同时按下想要运动方向的控制按键就可以使多个轴同时运动。本课题属于基于VR技术的运动仿真软件开发,在一些比较不容易直接实验或者直接实验成本和难度较大的领域往往使用计算机仿真来获取相对客观地实验数据,比如飞行员培训系统、虚拟手术培训系统等。本课题就是一种可以应用于培训医疗人员使用医用机械臂的仿真软件,同时也可以基于现有的医用机械臂进行改造、重构,利用硬件IO和动作同步技术从而实现在线仿真。
图1虚拟现实运行效果
4结论
随着计算机技术的发展,虚拟现实被广泛应用于医学领域、娱乐与艺术文化、卫星于航天工业、室内设计领域、虚拟工业仿真领域、教育学、地址文化研究等领域。就目前现有的功能直接投入使用还有一定的差距,但可以考虑在日后加入碰撞检测、物体切割、人体模型导入等更加复杂、高深的VR技术来完善课题。在远距离遥控外科手术,复杂手术的计划安排,手术过程的信息指导,手术后果预测及改善残疾人生活状况,乃至新型药物的研制等方面,VR技术都有十分重要的意义。用这项技术,由于不受标本、场地等的限制,所以培训费用大大降低,虚拟现实的优越性和效果是非常好的。
|
|
|
|
【对“采用Open Inventor类库开发的三维虚拟现实软件”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|