基于CHAI3D的虚拟手术训练系统研究

分类:论文范文 发表时间:2022-05-11 11:03

  摘 要:CHAI3D具有强大的力觉渲染能力,但相关应用并不广泛,为此,在CHAI3D平台下搭建虚拟手术场景,导入手术台及人体的3ds文件,通过属性设置、纹理贴图、视角变换增强系统的视觉表现;详细给出CHAI3D平台下虚拟手术场景设计的具体流程及其在虚拟训练系统中的力觉渲染优势;最后呈现了不同视角下的虚拟手术训练系统实例。关键程序段及训练系统实例充分体现了CHAI3D在虚拟现实场景创建及人机交互方面的便利性与高效性,为初学者快速入门提供了参考。

  关键词:虚拟现实;CHAI3D;虚拟手术;力觉渲染

  1 引言(Introduction)

  CHAI3D(Computer Haptics and Active Interface)是用于計算机触觉、可视化和交互式实时仿真的开源C++库。它最初由斯坦福大学人工智能实验室开发,其设计目的是提供一个用于虚拟现实的程序框架,并将实验触觉引入研究领域。瑞士洛桑联邦理工学院和意大利锡耶纳大学进一步发展了CHAI3D,2004 年发布了第一个公共版本,致力于让研究人员更容易地创建结合3D模型与力反馈渲染的应用程序[1]。多年来,CHAI3D已成为流行的开源多平台触觉渲染框架之一,全球有100多个行业和研究机构在开发基于CHAI3D的应用,主要包括汽车、航空航天、医疗、娱乐、工业机器人、游戏、模拟器、交互艺术、科学可视化等领域,支持各种商业可用的三自由度、六自由度和七自由度触觉设备,并使其易于支持新的自定义力反馈设备[2]。

  在3D场景搭建、力觉信息反馈等相关研究中,CHAI3D的运用可极大缩减场景搭建时间,提高力反馈程序的开发效率。国外针对CHAI3D平台的应用研究较早[3-4],北京航空航天大学、东北大学、哈尔滨工业大学、沈阳工业大学、上海工程技术大学等国内科研团队也先后基于CHAI3D开发了各类虚拟手术系统训练环境,结合力反馈设备实现了外科手术场景中虚拟人体组织的视觉仿真与力觉的虚拟感知[5-6]。但他们没有给出CHAI3D具体的使用方法,这对初学者尤其是没有程序设计及应用经验的研究人员而言,需花费更多时间入门学习,甚至在未触及其核心功能时就遇挫放弃,从而影响了CHAI3D优势的发挥及其广泛应用。

  为了使初学者更容易掌握CHAI3D并基于此平台迅速搭建虚拟场景,本文详细介绍了虚拟场景创建的CHAI3D程序架构及其力反馈渲染过程,通过设计虚拟手术训练场景实例,给出具体的实现流程。

  2 虚拟场景设计流程(The design process of virtual scene)

  CHAI3D安装与运行十分简单,不需要配置环境变量。CHAI3D的可视化系统使用OpenGL渲染引擎,支持照明、阴影、纹理映射等效果。通过引入第三方组件扩展了CHAI3D的核心功能。扩展模块目前包括对BULLET、ODE和GEL动力学引擎的实例支持,用于实时模拟刚体和可变形体,每个例程共享相同的结构和文档。新版本的CHAI3D提供了48 个例程,包括31 个CHAI3D基本案例及17 个BULLET(刚体)、GEL(形变体)、OCULUS(刚体)应用案例,可在现有的案例基础上创建自己的虚拟环境[3],具体实现流程如图1所示。

  虚拟场景设计流程可归纳为七个操作步骤:

  (1)预设虚拟场景空间:采集现实场景中的实物尺寸,对虚拟现实场景整体结构进行空间预设。

  (2)创建世界类:具体包括创建相机类、创建灯光类、创建对象类和创建工具类,每一种创建都可以根据不同的场景进一步增添细节,例如通过添加多个相机,呈现场景的不同视角;通过添加场景隐形约束空间,限制虚拟对象的活动范围在可视空间内等。

  (3)构建图元/导入3ds模型:CHAI3D可构建自己的基本图形,也可导入专业建模软件3DMAX创建的复杂模型,包括复杂的手术器械工具类对象。

  (4)添加对象物理属性:上述基本模型建立后,还需赋予刚体对象物理属性,包括颜色、硬度、质量、表面摩擦力等;为软体对象添加节点属性,包括节点半径、质量、线性阻尼、转动阻尼等,这些属性将为后续力反馈模型的引入和构建做准备。

  (5)添加力反馈框架:主要实现与外部力反馈设备的对接。CHAI3D已为用户提供了较完善的程序框架,用户可在此框架下设计力反馈算法,表现不同的力觉效果。

  (6)完善场景细节:如调整灯光角度或增加光源数量,添加对象的阴影效果,增添场景的第二视角或缩放场景,通过纹理映射美化地板、墙壁及对象,增加文字显示信息等,多方位提升虚拟场景的真实性。

  (7)呈现虚拟场景界面:运行CHAI3D程序需要安装Visual Studio,并在此编译环境下调试程序。这里通过CHAI3D示例呈现的虚拟场景界面如图2所示。

  (a)CHAI3D基本案例 (b)BULLET刚体案例 (c)GEL软体案例

  3 训练系统中的力觉渲染(Force rendering of training systems)

  触觉反馈可以有效地引导学员进行规范训练,弥补传统手术训练系统由于缺乏力觉反馈信息而出现的手术模拟不准确、训练低效等问题。CHAI3D为触觉技术提供简单而紧凑的程序框架,内置了代理算法、势场算法等力觉渲染方法,可以模拟具有质量、摩擦、阻尼和刚度的对象特性,也可以模拟虚拟工具与周围虚拟对象交互的黏、滑、振动和磁效应等力觉行为,从而为3D模型的力反馈渲染提供了极大的便利。

  CHAI3D通过名为cGenericHapticDevice的基类与常见的3D触觉设备通信。触觉设备末端执行器或句柄的位姿可以通过getPosition()、getRotation()、getGripperAngleDeg()等方法读取;当虚拟手术工具接收到交互信息時,仿真模型将做出反应,并在每次仿真迭代中计算力和力矩信息,最后通过setForce()、setForceAndTorque()和setForceAndTorqueAndGripperForce()等方法发送到触觉设备,从而实现力觉信息的双向交互。

  CHAI3D实现了几种特定力反馈设备的类(例如cDeltaDevice、cPhantomDevice、CLeapDevices),具有用户和虚拟手术工具之间的接口功能。它们是cGenericHapticDevice的派生类,而cGenericHapticDevice又继承自通用设备类cGenericDevice,这两个类对力反馈设备的操作函数及属性进行了详细的定义,因此只需要改写部分函数就可以实现CHAI3D平台对自定义力反馈设备的支持[7]。

  目录tools包含两种实现触觉工具的类,单个交互点代表一个非常简单的工具,两个相互依赖的交互点代表一个夹具。这些工具将触觉设备类连接到虚拟环境中,实现与对象交互的虚拟角色[8]。力觉渲染流程如图3所示。

  4 虚拟手术场景设计(The scene design of virtual surgery)

  (1)世界类创建

  世界类(cWorld)是虚拟场景的基础,是相机、光源、对象、工具等其他任何类的父类,需要首先创建。世界类划分为刚体世界类(Bullet World)与软体世界类(GEL World),根据虚拟场景中构建的对象类型进行调用,本案例采用刚体世界类。

  (2)相机类创建

  如果只有世界类,场景界面是无法观察读取的,需要添加一个观察世界的相机类(cCamera)。相机类的创建需要定义相机剪切面与三个主要位置属性,分别为相机位置、观察视角位置与法线位置。相机类主要充当虚拟场景中的人眼,对世界进行观察。如图4所示是相机观察到的初始世界界面,黑色小球为力反馈设备类链接球。

  (3)灯光类创建

  图形渲染的核心工作就是模拟光照,CHAI3D默认的光照类型主要有三种,分别为定向光源(cDirectionalLight)、定位光源(cPositionlLight)、聚光灯光源(cSpotLight),此外还为聚光灯创建了阴影映射类(cShadowMap)。与相机类相似,也采用三个位置定义坐标属性,但不同于相机类,灯光类主要照亮世界,增强虚拟对象的立体效果,让充当“人眼”的相机类可以观察到更加真实的虚拟世界。添加灯光类后的效果如图5所示,与图4对比球体有明显的立体效果,更符合真实对象特性。

  推荐阅读:计算机软件工程的现代化技术研究

上一篇:小学数学课堂教学互动有效性的策略 下一篇:计算机网络技术在电子信息工程中的应用探索