你将学习:
- 如何构建一个室内导航解决方案,使用传感器融合。
- 如何组织传感器融合系统的架构,任务在CPU和DSP之间划分。
当传感器一起工作时——将来自多个来源的数据组合在一起——是最有效的,这被称为“传感器融合”。
其中一个应用就是使用手机进行室内导航。GPS无法在室内工作,信标导航只能在有信标基础设施的地区发挥作用。相反,一种有效的方法是同时定位和绘图(SLAM)。SLAM可以在任何提供室内地图的地方工作,这些地图可能在很多地方可用,如写字楼或购物中心。
SLAM在增强现实和虚拟现实(AR/VR)方面也很有价值,可以根据用户的位置和他们正在看的地方调整场景,还可以用于无人机和机器人的避碰,以及其他许多应用。SLAM市场有望增长到到2023年的465美元健康的36%复合年增长率
那么,如何使用SLAM和传感器融合构建室内导航解决方案呢?
开箱即用的实现
构建您的解决方案可以像集成优化的软件模块一样简单,也可以根据您的需要进行定制。首先,我将描述如何将一个现成的解决方案组合在一起并测试它切瓦的SensPro传感器集轴DSP硬件,以及我们的SLAM和MotionEngine软件模块来调节和管理运动输入。
我们需要一个相机和惯性测量传感器(imu),一个主机CPU和一个DSP处理器。我们将使用CPU来托管MotionEngine和SLAM框架,并使用DSP来卸载繁重的算法SLAM任务。
为了简化解释,我将从OrbSLAM开始,这是一个广泛使用的开源实现。它有三个主要功能:
- 跟踪:处理视觉帧到帧的注册,并在当前地图上定位一个新帧。
- 映射:在地图上添加点,并通过创建和解决一组复杂的线性方程进行局部优化。
- 关闭循环:通过在您返回到您已经到达的点处进行全局优化。这是通过解决一个庞大的线性方程组来实现的。
其中一些功能可以在CPU内核上的主机应用程序中非常有效地运行,比如应用程序特有的控制和管理功能。另一方面,所需的计算能力意味着一些必须在DSP上运行才能实用或获得竞争优势。
例如,在CPU上跟踪可能只需要每秒一帧(fps),而特征提取会消耗40%的算法运行时间。相比之下,DSP实现可以达到30帧每秒,这一分辨率对于视频和运动传感器(IMU)之间的细粒度相关性非常重要。
这种优势的原因很容易理解。DSP实现提供了非常高的并行性和固定/浮点支持,这对跟踪和映射至关重要。这是由一个特殊的指令集补充,以加速特征提取。主机和DSP之间的简单链接让您可以将DSP用作加速器,将密集的计算转移到SensPro DSP硬件。
融合imu和Vision
在这个解决方案中,CEVA提供了两个重要的组件来处理传感器数据:使用CEVA-SLAM SDK的可视化SLAM,以及解决六个运动自由度中三个IMU输入的CEVA MotionEngine软件。
然后,融合IMU和视频信息依赖于一种迭代算法,该算法通常是定制的,以适应应用程序的需求。这最后一步将视觉数据与运动数据相关联,以产生精确的定位和映射估计。CEVA提供了经过验证的视觉SLAM和IMU MotionEngine作为融合算法开发的坚实基础。如前所述,构成大部分计算的算法密集型函数将在DSP(如CEVA的SensPro2平台)上运行得最快。
一旦你建立了原型平台,当然,它将需要测试。几个SLAM数据集可以提供帮助:Kitti就是一个例子,EuroC是另一回事。在数字,我们展示了OpenCV实现和CEVA-SLAM SDK实现的准确性比较。你会想对你的产品做类似的分析。
如前所述,有多种方法可以构建SLAM平台。例如,你不需要从OrbSLAM开始,或者你可以混合你自己喜欢的或不同的算法。这些可能性很容易在SensPro传感器集线器DSP中得到支持。