基于真三维模型的室内定位系统设计

2020-06-13 11:49仲思东李学鹏
科学技术与工程 2020年13期
关键词:位置服务定位软件

彭 亮, 仲思东,2, 李学鹏

(1.武汉大学电子信息学院,武汉 430072;2.测绘遥感信息工程国家重点实验室,武汉 430079)

据统计,人的一生有70%~80%的时间是在室内度过的[1],而室内环境之复杂远远高于室外。在室外定位方面,技术已比较成熟,主要包括四套不同的卫星定位导航系统[2]:包括中国的北斗卫星导航系统、美国的全球定位系统、俄罗斯的格洛纳斯卫星导航系统、欧洲的伽利略卫星导航系统。但是在室内定位方面,卫星定位导航系统鞭长莫及,无法很好地实现定位功能,因此利用室外定位原理,通过在室内搭建基站以及安装信号接收器,再基于无线数据通信技术,同样能够实现室内定位功能。目前主要的室内定位方法有:时间到达法、时间到达差法、到达角度法及信号强度法;主要的定位技术主要有:WiFi定位、磁场定位、超声波定位、蓝牙定位、红外线定位以及射频识别定位[3-5]。其中,单纯的地磁场定位因为受空间布局影响较大[6],因此多和其他技术混合使用。超声波定位技术定位精度较高,能达到1~10 cm的精度,但其成本较高,且受环境湿度影响大,测量距离短[7]。WiFi、蓝牙定位技术因能与智能手机等移动终端设备有极好的兼容性,且其成本相对低廉、定位精度较好,在大兴公共场合能够得到广泛应用,但是易受环境干扰,稳定性差[8]。

这些基于无线通信的室内定位方法,需要在室内场景中搭建基站和安装相应的信号接收器,而其定位精度还受室内场景的复杂程度影响,当信号发射器和信号接收器之间所经过的场景越复杂时,对定位精度的影响越大。为了克服这一问题,提出了一种不同的室内定位方式,将建筑物及其室内场景做成三维模型[9-10],再将其做成能在安卓设备上运行的软件,结合现有的计算机技术、全球定位技术和WiFi室内定位技术,再充分利用现有技术整合室外电子导航地图和室内三维模型,通过虚拟现实技术及设置在软件中的空间位置服务功能,达到室内定位要求。

1 系统原理及组成

1.1 室内定位原理

在没有电子地图进行定位,人们依靠将眼前所见场景与之前保存在大脑中的场景进行对比,判断自己此时所在的位置。利用这种定位思维,通过将周围建筑物及建筑物内的场景进行三维数据采集制成真三维模型,再使用Unity3D游戏引擎将模型制作成安卓软件[11],即将画面以虚拟形式呈现在安卓设备上。首先用户利用基于百度地图SDK(software development kit)开发的二维电子地图软件通过WiFi及GPS定位到此时所处二维地图的位置,软件再通过自动搜索获取周边已经载入系统的三维室内定位软件,用户根据需求打开相应的三维室内定位软件进入软件的室内场景,并对离自身位置最近的地点选择位置服务,软件场景则会改变到所选位置服务的地点,通过对设置在软件内的虚拟摇杆手动控制场景进行改变,结合虚拟现实技术将现实场景和虚拟场景进行对比,从而定位用户此时所处位置。

如图1所示,当用户到达某大型室内场景时,手机调用并打开当前场景下的模型软件,进入室内场景进行位置服务功能操作,再通过对虚拟环境操作,将所处环境的现实场景与虚拟场景进行对比,判断自身所在位置。通过对虚拟场景进行浏览,用户可了解更多的周边环境并对下一个所要前往的目的地进行路径规划。

图1 定位原理

1.2 系统组成

整个系统主要集成在安卓设备上,包括两部分:二维室外定位软件和三维室内定位软件。二维室内定位软件是基于百度地图SDK在eclipse开发工具下设计开发的,具有实时定位及离线定位功能,实时定位功能是能通过WiFi和GPS实时获取设备所在位置,而离线定位是用户可根据自身需求自主选择定位地点。三维室内定位软件是基于Unity3D游戏开发引擎开发的,能够在安卓设备上对模型及其室内场景进行浏览及位置服务。如图2所示为系统的基本模块组成。

图2 系统模块组成

2 系统设计及开发

2.1 定位软件开发

根据需求,在百度地图官网下载相应的SDK文件,将其导入eclipse创建的工程中,开发一个能够具有实时定位和离线定位功能的二维电子地图,并将工程导出Apk安装在安卓设备上。

如图3所示,三维室内定位软件的开发过程主要包括图中所示部分。其中模型制作和模型格式转换是在3DMax工具中进行操作,脚本编写是在VS2013中进行操作,其余部分则是在Unity3D中进行操作。

图3 三维室内定位软件制作流程

程序开发中所用到的真三维模型是根据实物场景按比例为1制成的,先利用实验室自主研发的Z-system双目立体视觉系统,并结合为配合双目立体视觉系统使用而开发的双目系统测量软件Visurv,获取到三维空间数据,再通过3DMax 软件按获取到的三维空间数据建立三维模型。并把模型文件转换为FBX格式,便于Unity3D对模型的识别和导入。

将模型载入Unity3D中,进行三维室内定位软件的场景搭建[12]。为场景寻找一个合适的点作为场景所在空间坐标系的原点,并给模型的每一个组成部分添加Mesh Collider组件使模型具有碰撞属性。切换到Navigation面板将导航时所能经过的路径模型(一般为路、楼道、楼梯等)设置为Walkable,即选择可路径烘焙的对象,如图4所示为烘焙后的效果图。

图4 路径烘焙

路径烘焙是使软件能够具有位置服务功能,自动寻路到所选择的位置服务地点,在场景中添加需要位置服务的地点,即能够自动寻路的地点。位置服务功能是基于A*算法实现的,A*算法的思想是,首先设置一个Open表,一个Close表。A*算法每一个点都有一个估值函数F用来评价当前点到目标点的估值,F值越高表明到目标空间上越远。初始状态的时候,把起点放在Open表中,Close初始为空。在Open表中选取一个F值最小的节点作为当前节点,并将其添加到Close表并从Open表中移除。如果为终点节点则搜索结束,否则处理当前节点的所有临接节点,如果这些节点不在Open表中,那么就将其添加到Open表,并找出其临接节点的最优点,再加入Open表,重复此过程,直到找到目标节点位置,通常情况下,最优路径就是最短路径。

在Unity3D中利用自带的用户界面组件给程序设计操作界面实现三维室内定位软件的人机交互功能,并创建对应C#脚本实现软件功能。在导出Apk文件时,程序的包名按格式“com.CCD.程序名称_纬度_经度”进行导出,其中程序名称由开发者根据模型的名称自定义选取,纬度和经度则是该模型所在地的经纬度保留小数点后六位并去除小数点后的数值,即相当于将经纬度乘以1 000 000后保留整数部分,经纬度的查询应该以百度地图为准。按此格式进行包名的命名是为了和在eclipse下开发的二维室外定位软件相呼应,便于模型所在地的经纬度数据直接传递给二维软件,从而使二维软件能够快速识别和调用此时所在地的基于真三维模型设计的三维软件。

2.2 系统工作流程

系统工作流程如图5所示,启动安装在安卓设备上的二维电子地图,并确保GPS和WiFi功能已开启从而进入实时定位模式,程序将定位到此时设备所处二维平面所在位置(若选择离线定位,则需用户自行选定定位地点),并按就近原则对三维室内定位软件中的模型所在实际位置进行排序,开启三维室内定位软件,选择位置服务的地点,软件将自动寻路到该地点处,如果用户所处位置即为位置服务地点,系统则完成了定位功能。用户也可选择通过操作虚拟摇杆对场景位置进行改变,通过现实环境和虚拟环境进行对比,获取此时所处位置。在不需要定位时,用户亦可操作虚拟摇杆对三维模型中的室内场景进行浏览和观察,了解建筑物中室内场景的具体结构。

图5 系统工作流程图

3 软件测试及结果

如图6(a)所示为基于百度地图SDK开发的二维室外定位软件运行界面,点击界面中的空间传感按钮即可进入三维室内定位软件。如图6(b)~图6(e)所示为根据本文提出的室内定位方法而设计的三维室内定位软件的运行界面,选择所需位置服务的地点并点击,软件则会将场景移动到位置服务地点处。在位置服务过程中,在地面上有线条和箭头提示,在屏幕上方有距离目的地的剩余距离提示。当不需要位置服务时,用户也可通过拖拽左下角的虚拟摇杆来控制第一人称角色移动,并且可通过滑动屏幕来控制运动的方向,从而实现虚拟环境下对模型的整体浏览。目前,通过此方法已经对学校内的大多数学院即其他大型建筑进行了建模[13]并开发了相应的应用程序。如图7所示为以深圳北站和广州博物馆制作的三维软件。

4 结论

三维室内定位软件中用到的模型数据都是符合国家精细三维模型建模标准,精度在 0.2 m 以内。根据此三维室内定位软件的原理,其定位精度主要受模型精度影响,在程序设计中所引起的误差可忽略不计,因此提出的基于真三维模型的室内定位方法的定位精度在0.2 m以内。

提出的室内定位方法,再结合基于百度地图SDK开发的室外定位导航程序所组成的室内外一体化定位导航系统,具有直观、全面和综合的特点。具有的功能基本满足用户室内外定位的需求,适用于一些大型的室内外公共场合,如商场、机场和车站等。此软件在消防方面意义巨大,利用此软件消防人员可以快速了解建筑的内部结构并迅速做出相应的消防措施,能够有效地减少灾害损失。在购物商场内,也可将商品放置在软件模型中,让买家能够不在现场也能直观地观察商品[14]。但是,由于百度地图SDK和导航SDK冲突,系统分为了二维室外定位软件部分和三维室内定位软件部分,两部分软件通过数据传递来交换信息,无法将两部分直接集成在一个应用程序中。后续将对系统进一步优化,使三维室内定位部分直接以离线地图包的形式载入二维电子地图,从而实现系统整体化。另外,由于在对室内场景进行完数据采集后,制作的三维模型精度越高,所耗费的时间相对较久,无法达到数据获取后迅速生成三维模型的需求,因此还需对该系统进一步优化以使系统更能满足用户要求。

图6 软件运行界面

图7 其他三维模型

猜你喜欢
位置服务定位软件
定位的奥秘
禅宗软件
《导航定位与授时》征稿简则
银行业对外开放再定位
软件对对碰
少儿智能定位鞋服成新宠
第六届中国卫星导航与位置服务年会暨首届卫星应用国际博览会
智能车辆专利技术综述
Beacon技术在图书馆信息服务中的应用研究
基于GPS和iBeacon的智能校园信息发布平台设计与实现