基于Unity 3D的虚拟测量实验系统
2016-11-11谢予星
季 铮,谢予星,王 玥
(武汉大学遥感信息工程学院,湖北 武汉 430079)
基于Unity 3D的虚拟测量实验系统
季铮,谢予星,王玥
(武汉大学遥感信息工程学院,湖北 武汉 430079)
为改善测绘学科实验教学硬件制约、时空限制的现状,降低训练作业成本,本文提出了一种基于Unity 3D游戏引擎的虚拟测量实验系统设计思路。在虚拟系统中,全面实现了设备虚拟、操作虚拟,数据虚拟,可操作全站仪、激光扫描仪等虚拟测量设备完成高真实度的导线测量、碎部测量、三维激光点云扫描等多种测量试验,并得到虚拟场景中的测量结果反馈,用于模拟真实的测量数据计算或后处理。该系统的使用,可填补目前测量试验自学方式的空白,为测绘学科实验教学提供新的开展模式。
虚拟实验; 测绘教学; Unity 3D; 数据模拟;游戏引擎
测绘学科应用性较强,其实践训练贯穿本科教育的始终。但就目前测绘学科的实验教育而言,仍存在较大的局限性。一方面,传统测量仪器的实验训练往往由于时空限制和教学资源制约,通常只能作为课程实习开展短暂的几周,学生对具体过程难有宏观理解,对测量原理缺乏微观认识,效果不佳。另一方面,测绘生产中的仪器较为昂贵,许多高校连基本的全站仪、水准仪、GPS等都未能满足教学要求,动辄数十上百万的无人机、激光扫描仪等新兴设备一般高校的实验经费更是难以负担,此类实验教学存在空白。就现状而言,测量仪器的虚拟化实验应用具有较高的研究价值[1]。
目前,专门针对测绘仪器与测量实验的虚拟应用研究较少,主流的模拟软件都是二维面板,可操作性与可视性较差;某些已有的三维应用仅提供动画展示,没有实现真正意义上的交互操作[2-3]。随着计算机技术的发展和三维交互技术的日益成熟,虚拟测绘实验平台的构建在技术上成为可能。本文利用现有的桌面式虚拟技术,研究并实现一种基于Unity 3D游戏引擎制作虚拟测量实验应用的设计方案,使用户能在虚拟应用平台上完成交互式虚拟测量实验。此外,本文所提出的测量设备系统构建思路对测绘领域的其他虚拟实验系统的设计也具有参考价值。
一、虚拟设备制作及实验技术手段
1. Unity 3D游戏引擎
Unity 3D是近年风靡的一款三维游戏引擎,因其优秀的跨平台支持、良好的易用性而广受轻量级开发者欢迎[4]。除用来开发传统意义上的游戏外,该引擎还广泛应用于各类基于场景的交互式虚拟系统开发,包括场景可视化、实时三维动画展示、场景漫游、仪器教学培训等[5-6]。尽管Unity 3D是一款商业化的游戏引擎,但其使用成本与提供的服务支持相比十分低廉。对于一般的中小型虚拟应用,甚至其免费版便可满足全部需求。
目前,在传统大型机械训练、驾驶培训、船舶模拟、医疗手术等领域,已有从业者尝试利用Unity 3D实现虚拟实验应用于教学或训练[7-10]。对于测绘领域而言,虚拟应用开发的关键在于模拟符合真实性的基本地理信息数据,如空间坐标、相对位置及方向、运动轨迹等,而这些恰好是游戏引擎所具备的基本属性。此外,从图形学的根本来看,游戏引擎的三维数学基础和现实世界相通,与测绘学科的几何原理存在很大重叠,导线测量、高程测量等基本测量方法的原理,都能通过游戏引擎无缝实现。
2. 虚拟测量实验系统功能模块设计
虚拟测量实验系统基于面向对象的思想,利用Unity 3D游戏引擎实现相应的功能模块和交互模式,即对于不同测量设备,可给出一套相同思路的实验教学模式;对于不同型号的同类设备,可实现共用内核,只需修改模型及交互操作模式即可。
单个虚拟测量实验系统主要分为可视化组件虚拟、操作虚拟和测量数据虚拟,每一部分又有几个细分的功能点。功能模块如图1所示。
图1 功能模块
虚拟测量实验系统可进行测量仪器虚拟操作,包括仪器搬运和架设、机身和镜头的机械控制、面板按键操作及对虚拟场景的测量数据反馈。在架设好所需虚拟设备的前提下,通过对主测量仪器进行一系列高真实度操作,实时获取测量数据,包括距离、角度、高程等。以下主要介绍虚拟测量实验模块的实现。
二、虚拟测量实验系统的研究与实现
虚拟测量系统的构建主要包括基于测量功能的可视化模型虚拟、操作虚拟、数据虚拟3大方面。以下就每个方面的技术手段进行介绍,说明虚拟测量系统的构建思路及其实现效果。
1. 基于测量功能的可视化模型构建
虚拟测量实验系统的可视化部分由测量的虚拟场景、测量设备虚拟模型和操作交互面板虚拟3部分组成。实现虚拟测量实验系统的可视化,即是在考虑交互功能设计的前提下,对相关的虚拟场景和设备组件进行三维建模、动画制作等,并制作出相应的按键贴图。
(1) 测量设备模型虚拟
Unity 3D支持大部分的通用三维格式,测量设备组件的几何构成相对规则,因此可使用3ds Max等常见的三维模型制作软件制作相关精细组件,并转成三维通用格式FBX导入Unity 3D中[11]。本文涉及的虚拟仪器主要为全站仪和激光扫描仪,所需的虚拟设备模型包括全站仪主体、激光扫描仪主体、三脚架、棱镜、对中杆等。虚拟仪器效果图如图2所示。
(2) 测量场景和环境虚拟
对于虚拟场景,Unity 3D内置的地形制作工具可以满足绝大部分要求,如简单的地形起伏关系或基本地物模型或贴图等。若要营造更逼真的实验场景效果,还可根据测绘领域中特有的数字高程模型(DEM)和数字正射影像(DOM)构建真实景观图,并将真实景观图的格式转换成3ds等通用三维格式,导入Unity 3D中作为真实地形。其中,DEM可提供区域内的高程数据集,DOM则提供区域的色彩纹理,将二者结合可以获得具有真实感的虚拟地形效果。
图2 虚拟仪器效果
(3)操作交互面板虚拟
操作交互虚拟需要将虚拟设备的面板尽可能真实地再现。由于Unity 3D中具有可视效果的响应控件通常是以二维贴图为载体的,因此在实现测量设备按钮(button)控件响应功能前应先准备按键贴图。按键贴图是严格按照真实测量设备的面板按键制作而成。由于Unity 3D对图片格式的支持良好,因此可用PhotoShop完成相关的制作工作,只需满足Unity原生或相关插件的图片大小要求即可。单独的贴图并不具备交互响应的功能,相关功能需要使用相关插件工具并编写控制脚本实现。附加贴图的仪器面板如图3和图4所示。
图3 全站仪控制面板
图4 激光扫描仪控制面板
2. 虚拟设备操作设计
交互功能是实现虚拟测量设备操作体验的重点。对于测量实验而言,交互功能主要包括角色控制虚拟、测量设备的机械控制、测量设备按键响应虚拟和测量观察虚拟。
(1) 角色控制虚拟
角色控制器现实个体在虚拟环境中的映射,在本系统中扮演虚拟测量员的角色。虚拟系统用户需要控制该虚拟角色完成虚拟场景漫游、虚拟仪器搬运及调整、虚拟测量等系列操作。Unity的预设功能中带有基本的第一人称控制器(first person controller)和第三人称控制器(3rd person controller),可以满足简单的场景漫游功能。搬运和架设仪器需要编写脚本程序实现控制。其控制算法的基本思路是根据搬运、架设、调整的不同操作需求,保持仪器和角色控制器的相对运动或相对静止。图5所示为第三人称视角下角色操作全站仪观察的情景。
图5 角色控制示意图
(2) 测量设备机械控制虚拟
测量设备的机械控制是指架设并调整好脚架后,对测量设备机身和镜头进行旋转调整。这需要在模型的制作阶段预设可相关移动组件,通过编写脚本程序进行控制。对于轴对称的旋转组件,可绕自身对称轴设置旋转方案;对于并不完全对称的旋转组件,需要新建一空游戏对象(Empty GameObject)作为旋转中心。Empty GameObject本身不具备可视化结构,对于测量设备的视觉效果没有影响。
对于测量仪器的自动操作部分(如激光扫描仪的测量是在预设扫描时间间隔、方位和扫描角度的情况下自动测量),则需要在测量仪器机械控制脚本的基础上将按键驱动仪器运动(即取消按键响应条件)改为参数驱动仪器运动(即新增参数设置和响应条件)。
(3) 测量设备面板按键虚拟
测量设备面板按键虚拟是对真实仪器按键操作的模拟。由于3ds Max这类三维软件构建的全站仪三维模型并不具备相关的按键响应功能,因此还需要借助其他工具为全站仪添加可响应的按键控件。本虚拟测量实验系统使用了Unity的第三方扩展插件NGUI的3D Camera UI功能,可在三维场景的摄像机的裁剪平面(clipping planes)中实现按钮(button)控件响应。具体的面板显示功能仍需自行编写脚本程序实现。
测量仪器的面板显示切换功能是较为复杂的多层嵌套条件判断结构,脚本的实质是对button控件的响应。对于具有共性的面板显示内容,可将其写成函数甚至定义成类,按需调用即可。对于不同型号的同种测量仪器,按键操作和面板显示上略有不同,只需对某些函数进行重载或改写,便可满足新仪器的测量需求。
(4) 测量观察虚拟
为模拟测量仪器的望远镜功能和对中功能,还应在仪器的各个部位添加辅助摄像头。作为望远镜的摄像头应置于全站仪镜头模型的中部,并添加与镜头同样状态的运动脚本;设置可调节的FOV值,用于控制望远镜视野的放大与缩小。用于对中的摄像头则应保持视线方向与地面的垂直,并在视野中加入一激光点实现激光辅助对中。为此,还应引入测量点(控制点)标志模型作为对中的目标参考及测量过程中的点位标记。望远镜观察效果图如图6所示,对中示意图如图7所示。
图6 望远镜观察效果
图7 激光对中示意图
3. 测量数据虚拟化设计
虚拟模型为虚拟测量提供了操作的平台和环境,交互功能为虚拟测量提供了实现的模式方法,而测量的有效性确认和正确性验证则需通过虚拟的测量结果反馈来体现。虚拟设备若能再现真实场景测量的过程和效果,则需要具有真实场景下的数据反馈机制。此外,虚拟化的测量数据还可以一定方式导出,用于CAD成图、点云分类、模型三维重建等后处理实验。
本文涉及的虚拟测量设备全站仪和激光扫描仪包含两类核心参数:测量角度和距离。角度主要是设备控制参数,由仪器获得;距离参数则是由设备输出介质与被测目标相交反馈获得,如全站仪和扫描仪的距离参数是由激光与被测目标的反射获得。在虚拟系统中,需要计算光线与场景模型的几何求交获取距离参数。为此需要对激光和被测物体添加碰撞属性,利用碰撞检测技术实现[12]。图8为测量参数获取的流程图。
图8 测量参数获取流程
三、虚拟测量系统的教学应用方式
以虚拟全站仪导线测量为例介绍虚拟测量系统的教学应用方式。
1) 在传统的测量教学实验环节中,教师作为测量实习的管理者,需要为项目施行者(学生)提供诸如控制点坐标等基本的数据信息[13]。校园中的控制点信息需要事先由GPS测量获取,时间成本较高。虚拟测量系统则可事先在虚拟场景的几个地点放置控制点模型,并通过Unity 3D后台读取准确的控制点坐标信息,提供给使用者(学生)。就一般情况而言至少需要4个控制点,首尾各两个[13]。
2) 仪器初始位置统一置于某一控制点附近,方便使用者快速架设仪器。使用者操作虚拟角色搬运棱镜至1号控制点和1号导线点;搬运全站仪至2号控制点,调平仪器。在此过程中可借助激光对中功能精确对准控制点中心。
3) 仪器架设完毕后,操作角色至全站仪处,进入望远镜视窗观察棱镜,上下左右粗调和微调全站仪机身、镜头,直至十字丝对准棱镜中心且成像清晰。锁定水平和竖直制动螺旋。
4) 退出望远镜观察视窗,控制角色视角对准全站仪面板,鼠标点击面板进行置零、参数设置、测量等操作。并像真实测量那样进行必要的文本记录或测存。
5) 记录所需数据后,再根据导线测量原则观测另一棱镜,获取相应角度和距离参数。上半测回完成后,还应倒转望远镜,完成下半测回。
6) 完成一站测量后,操作虚拟角色搬运仪器和棱镜至下一站,重复上述过程,直至完成整个测量过程。
7) 完成全部测量后,学生根据导线测量计算方法计算各导线点坐标,并提交相应结果数据。教师后台读取学生所选导线点真实坐标,检验评估测量的合理性与正确性。
8) 若是用于自主学习,则系统管理者可向使用者开放坐标读取权限。使用者可自定义控制点及对测量结果自我检验。
四、结束语
本虚拟测量实验系统为虚拟测量的实现提供了一种可行的解决方案,借助Unity 3D游戏引擎,实现了虚拟环境下基本测量仪器的测量实验操作。虚拟实验的搭建能直接建立概念、原理与实体的联系,通过可视化的方式直观展示。虚拟实验的交互模式直接建立学习者与学习目标的反馈渠道,快速将知识点与实践关联。虚拟学习模块大幅提高知识和技能的传输效能,比课堂板书、PPT幻灯片多了动态展示,比视频或动画多了交互操作,是融合性最高的知识传输和技能培训渠道。尽管还不能代替实际的操作训练,但在一定程度上能大大降低学习训练的实物成本,扩大辐射范围,并能促进学生自主学习,打破课堂集中学习在时间和空间上的限制,提供了一种更有效的碎片时间学习方式。除此以外,模块化的开发思路也为虚拟测量实验系统的扩展提供了可能。除了用于一般的高校教学,还可通过针对性修改对各类硬件乃至新型仪器进行定制,用于仪器的推广培训。
[1]王济军,魏雪峰. 虚拟实验的“热”现状与“冷”思考[J]. 中国电化教育, 2011(4):126-129.
[2]马春艳, 徐传阳, 沈成虎,等.基于虚拟现实仿真技术的测绘仪器模型设计开发[J].测绘通报,2013(8):71-73.
[3]李春燕, 王雅雯, 刘少华. 全站仪模拟训练操作系统在教学中的应用[J]. 科技信息, 2013(16):134.
[4]朱柱. 基于Unity3D的虚拟实验系统设计与应用研究[D]. 武汉:华中师范大学, 2012.
[5]修春华, 孙秀娟, 苗坡,等. 基于Unity3D的虚拟矿山漫游仿真系统设计与实现[J]. 金属矿山, 2015(4):262-266.
[6]倪乐波, 戚鹏, 遇丽娜,等. Unity3d产品虚拟展示技术的研究与应用[J]. 数字技术与应用, 2010(9):54-55.[7]师翊, 刘桂阳, 刘金明. 基于Unity 3D的撒肥机虚拟仿真[J]. 农机化研究, 2014(7):62-66.
[8]曾林森. 基于Unity3D的跨平台虚拟驾驶视景仿真研究[D].长沙:中南大学, 2013.
[9]李治军. 基于Unity 3D的船舶舵机舱虚拟现实设计与研究[D]. 大连:大连海事大学, 2014.
[10]潘丹. 基于Unity3D的手术训练游戏的设计与实现[D]. 济南:山东大学, 2014.
[11]王娜娜, 韩勇, 陈戈. 基于3DS MAX和MultiGen Creator的虚拟地理信息系统建模的比较分析[J]. 测绘通报, 2010(2):47-51.
[12]侯伟伟, 宁汝新, 刘检华. 虚拟装配中基于精确模型的碰撞检测算法[J]. 计算机辅助设计与图形学学报, 2010, 22(5):797-802.
[13]潘正风, 程效军, 成枢,等. 数字测图原理与方法[M]. 武汉:武汉大学出版社, 2009.
A Virtual Surveying Experiment System Based on Unity 3D
JI Zheng,XIE Yuxing,WANG Yue
季铮,谢予星,王玥.基于Unity 3D的虚拟测量实验系统[J].测绘通报,2016(10):97-100.DOI:10.13474/j.cnki.11-2246.2016.0339.
2015-12-13;
2016-06-02
国家863计划(2013AA063905);武汉大学实验技术项目(whu-2014-syjs-03)
季铮(1975—) ,男,副教授,研究方向为摄影测量与计算机视觉理论、实践教学等。E-mail: jz07@whu.edu.cn
王玥
P204
B
0494-0911(2016)10-0097-04