EasyAR4.0带了运动跟踪功能,用这个试着做了个室内导航的例子。
基于运动跟踪的室内导航,效果不理想,一是偏差还是比较大,二是导航开始的时候需要扫描特定图片。
原理很简单,利用运动跟踪功能,及当移动设备在空间移动的时候,能够很准确的知道设备当前的位置角度的变化。简单说就是,设备在空间中向某个方向移动了多少距离,设备自己是知道的。
利用运动跟踪这个特性,在Unity中建立一个和现实要导航的空间1:1对应的导航路径(NavMesh)。
导航开始的时候,通过扫描一副特定图片,实现虚拟空间的导航路径和现实空间位置角度对应。当对应起来以后,在Unity虚拟空间导航的结果,就能正确的反应到现实空间。
做法是这样的,首先在空间中扫描特定图片获取关键点,然后,根据关键点设置路径。在导航开始的时候,先根据关键点和设置的路径建立出路径,扫描到特定图片以后,将建立的路径和现实对应起来并烘焙导航信息。然后利用Unity自带的导航功能即可完成导航。
EasyAR官方例子中,有个叫MotionTracking_ImageTarget的场景,即运动跟踪和图片识别同时作用的场景,整个过程中用到EasyAR的内容就和这个例子场景中用到的一样。
导航效果如下
EasyAR4.0运动跟踪室内导航
使用过程如下:
EasyAR4.0运动跟踪室内导航
源码放在了github:https://github.com/wuyt/Shingeki
编译好的apk和需要打印的图片都在网盘里:
https://pan.baidu.com/s/1wpQ4HvP4VeOB5ndIYtjl4g
ebdq