加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

快速云:基于云计算的机器人SLAl架构的实现与优化

发布时间:2022-10-26 20:10:18 所属栏目:云计算 来源:未知
导读:



摘要:同步地图构建与定位(SLAM)是机器人领域经典问题,也是典型的计算密集型任务,传统实现方法完全依靠机器人本地的计算资源进行实时求解,具有精度低、执行速度慢、计算开销很大缺

基于服务架构的云计算研究及其实现_云计算实现_群体智能与仿生计算——matlab技术实现

云计算实现_基于服务架构的云计算研究及其实现_群体智能与仿生计算——matlab技术实现

基于服务架构的云计算研究及其实现_群体智能与仿生计算——matlab技术实现_云计算实现

基于服务架构的云计算研究及其实现_云计算实现_群体智能与仿生计算——matlab技术实现

摘要:同步地图构建与定位(SLAM)是机器人领域经典问题,也是典型的计算密集型任务,传统实现方法完全依靠机器人本地的计算资源进行实时求解,具有精度低、执行速度慢、计算开销很大缺点。本文针对这一现状,基于云机器人架构和“软件即服务”(SaaS)的思想,提出了基于云计算的SLAM服务框架。该框架能够以黑盒形式为机器人提供SLAM问题求解服务,从而有效降低机器人在同步地图构建与定位过程中的计算开销。本文进一步提出了了这一框架下云端和机器人端之间的数据传输优化解决方案。原型实现和实验表明,通过引入后端云计算基础设施,该框架能够有效提升机器人SLAM问题的求解速度,降低机器人端的能耗,并且将数据传输量控制在合理范围之内。

关键词:云机器人;SLAM;云计算;通信优化

中图分类号:TP3 11.5 文献标识码:A DOI: 10.3969/j.issn.1003-6970.2015.10.005

引言

云机器人(Cloud Robotics)近年来正在逐渐成为机器人领域的热点问题。该技术充分利用网络的泛在性,采用开源、开放和众包的开发策略,提升了机器人的能力,扩展了机器人的应用领域,加速和简化了机器人系统的开发过程,降低了机器人的构造和使用成本。具体而言,通过引入“后台云+前端机器人”架构,机器人可以访问后台云计算基础设施,将判断和决策的一部份过程放到“云”端,从而使得其可以以较小代价执行各种计算密集型的复杂任务,减少本地资源开销的同时提升机器人能力。

同步定位与地图构建(SLAM,Simultaneouslocalization and mapping)是机器人领域经典的计算密集型任务,其核心在于通过“定位”与“构图”的多次增量式迭代,同时实现定位和构图,从而使得机器人可以完全没有先验知识的陌生环境中自主导航和规划。这一问题和其解决方案的提出被认为是机器人学的一个重大进展,具有重大的理论意义和应用价值云计算实现,“为机器人实现真正自主提供了必要手段”。但SLAM本身所具有的高计算复杂性和机器人资源有限性之间却产生了矛盾,而上述的云机器人技术成为了一个良好的突破口。文献指出,云计算的引入对于机器人而言有如下一些潜在的优势:(1)提供海量的存储空间,有可能利用基于大数据的智能;(2)提供强大的计算能力,足以应对各种数据分析、学习以及行动规划;(3)实现机器人知识共享:通过云机器人之间可以分享策略、控制方法以及输入输出;(4)支持人类参与协助:利用大量人类的分析经验,帮助机器人更好地处理各类数据和任务。

目前已经存在一系列基于云机器人架构的SLAM求解方案,例如DaVincj、Rapyuta、c2TAM等架构。这些T作已经验证了“云+机器人”协同SLAM的可行性和有效性。但真正要实现按需获取和使用的机器人SLAM云服务,一系列挑战还有待解决,其中突出的两个问题是:(1) SLAM服务化的架构问题,即设计何种架构、接口和基础设施,将云端的SLAM能力以“软件即服务”的形式暴露给前端机器人,使得(多个)机器人能够按需获取、定制和使用云端的SLAM服务;(2)云机器人SLAM过程的效率保证问题。基于云机器人的SLAM过程引入了许多新的、可能影响实时性的因素,其中最突出的问题是如何降低机器人和云之间持续进行SLAM数据通信的延迟。

本文围绕上述两个方面的挑战展开研究,提出并实现了一个的“云+机器人”提供SLAM服务的基础模型,并基于此模型开展了实验测试验证,在此基础上提出了一种通信改良方法以提升了了SLAM数据通信效率,并对此进行了实验验证。本文后续内容安排如下:第1节简述背景和相关工作,第2节基于云机器人提出了一个SLAM服务架构进行了实现,对其数据通信进行了优化,第3节基于上述架构进行了原型实现,第4节针对具体实现进行了实验测试验证了本文架构的有效性,第5节结束语。

1 背景与相关工作

SLAM可以被一般描述为:在建立新地图模型或者改进已知地图的同时,在该地图模型上定位机器人。由此可以看出,SLAM可以被看做是一个鸡生蛋蛋生鸡的问题:精确有效的自我定位需要一个无偏差的地图,而这样一个地图的绘制又必须得到准确的位置信息。这是一个明显的迭代问题,其运算复杂度较高,加之是对于图像信息这类数据量较大的信息单元进行处理和运算,因此EKF-SLAM、FastSLAM以及PTAM等具有代表性的算法,都具有计算复杂度高的特点。而在实际应用中,机器人个体受限于硬件水平、电池容量、成本等设计约束,其计算资源往往是受限的。在这种客观状态下,如何解决SLAM计算复杂性和单个机器人资源有限性之间的矛盾,就成了解决SLAM问题的重大挑战之一。

在这种思路下,SLAM问题出现了一种新的解决思路,即把机器人SLAM过程划分为传感器数据获取和计算两个阶段,把计算密集的部份放到资源富裕的后台“云”上去执行。在这一方面,DaVinci等项目做出了初步探索,验证了“云+机器人”协同进行SLAM的技术可行性和潜在收益。例如,早期的Davinci项目通过实验即已证明,相对于单台计算机,基于粒子滤波的FastSLAM算法在多结点集群上可以得到显著加速,400次迭代、300*300分辨率的SLAM过程的执行时间可以从数百秒降到秒级;2014年Rapyuta项目通过实验证明,只有极为有限的计算能力、基于树莓派(Rasberry Pi)的机器人在云端支持下,可以实现实时的三维地图构建。

2 基于云机器人架构的SLAM服务化框架

如前节所述,现有的云机器人SLAM 工作尚停留在验证可行性和有效性层面。要将云机器人架构成功应用到SLAM实践中,一系列挑战还有待解决。其中最突出的两个问题是:(1)服务化问题,即设计何种架构、接口和基础设施,将云端的SLAM能力以“软件即服务”形式提供给前端机器人;(2)通信效率问题,即如何在网络化和资源动态变化环境下保证云机器人协同SLAM的效率,例如如何降低机器人和云之间SLAM数据通信的延迟。本节将针对上述两个方面问题提出解决方案。

2.1 SLAM服务化框架总体结构

在云机器人架构中,云端以服务化的形式“按需”提供SLAM能力。此处的服务化和“按需”是指:机器人端无需了解云端算法的实现细节,只需加载SLAM云服务调用包并持续输入必要感知数据,即可以实时获取地图构建和定位结果;云端服务对外暴露唯一的接口,可以同时为多个机器人提供个性化、高效的SLAM服务。针对这一目标,本课题给出了基于云机器人架构的SLAM服务化框架,其结构如图1所示。

图4中架构主要分为两个部分:机器人部分以及云端部分。下面将分别阐述两个部分的设计思想和实现思路。机器人上主要是实现一个SLAM的服务调用包,通过该服务调用包使用云端为机器人提供的“软件即服务”。该服务调用包至少应该包含如下功能:(1)提供启动和停止SLAM过程的方法,即至少提供两个接口,使得机器人可以启动或者停止SLAM服务;(2)提供接收感知数据方法,即能够将机器人观测采集到的数据机制提供给云端处理;(3)提供当前地图和位置的查询方法,即云端处理数据后得到的结果能够返回到服务调用包,并提供接口供机器人内部其他模块得到SLAM的处理结果。云端主要是为机器人端提供“软件即服务”,包括至少如下模块:(1)服务入口模块,接受请求并转发到相应的SLAM执行实例;(2)实例池管理模块,负责为每个SLAM执行实例分配资源,如从已有的实例池中找一个空闲的SLAM执行实例,或者动态增加一个新的SLAM虚拟机到实例池中;(3)服务实例池模块,配置和运行实例;(4)资源仓库模块,存储各种不同SLAM算法的实现(如包含不同算法实现的虚拟机镜像)。

2.2 云与机器人之间的数据传输优化

上一节叙述了云机器人架构下的SLAM服务框架,影响该框架效率的一个关键性问题在于云端与机器人间的数据传输效率。机器人和云端间传输的数据类型一般是图像这类较庞大的数据,同时机器人网络很多情况下是资源受限的无线网络。因此,有必要合理控制机器人和云端间传输的数据规模。本文使用数据压缩来减轻传输的数据量,从而提高该框架的执行效率和可用性。数据压缩通常分为有损压缩以及无损压缩两种。有损压缩不适应本文的应用场景,因为去除了部分的信息后,可能会丢失SLAM算法所需的关键信息,导致算法无法正常进行。无损压缩的基本方法是Abraham Lempel以及Jacob Ziv在1977年和1978年提jL的L277以及L278。其基本思想,就是对于数据中的重复出现的块,采用数据块标记+信息位置的方法来表示(图2、3)。其中L277只是选择重复H{现最多的信息,通过标记来简化表示后续重复出现的内容,适合有单一反复出现的信息的数据。而L278通过建立字典,将重复的信息和标记一一对应,将压缩后的数据以及字典打包发送,从而获得更加充分的压缩效果。

本文考虑到需要压缩的数据类型,主要分为激光扫描线信息、RGB图像信息以及深度图像信息三种,因此基于L278方法,提出了针对本文云+机器人架构下的数据压缩方法,其主要实现如下:对于激光扫描信息,因为其属于向量信息,采用先使用L277方法压缩,再通过哈夫曼编码统一编码的方法进行处理;对于RGB图像以及深度图像信息,根据中所述,因为其属于矩阵信息,根据图像的精度和大小,选取合适的图像块作为L278压缩的单位,考虑到深度图像有大量的冗余信息,直接使用L278即能够取得较好的效果。

3 原型实现

基于上述的云机器人架构的SLAM服务框架架构和,本文实现了相应的原型系统。考虑到该框架旨在为不同机器人提供一个统一的SLAM服务平台,因此要对不同机器人有着广泛的适用性,故而选择了基于目前广泛用于不同机器人的机器人通用操作系统ROS。同时为了便于实现和验证,简化了云端模型,采用预先部署已经配置好了SLAM模块的虚拟机来替代云端实例。具体实现如下图4的所示。

该实现分为如下几个部分:(1)机器人基于ROS运行图像获取模块(如Primesense模块),通过摄像头等设备获取图像信息;(2)云端虚拟机同样基于ROS,运行SLAM运算模块(如Gmapping模块),得到地图数据和位置信息;(3)机器人和云端通过Multimaster Fkie模块进行同步通信,Master-Discovery用于不同的Master节点互相发现,SyncModul用于不同的Master节点相互同步;(4)数据压缩懈压缩模块介于Multimaster Fkie和机器人/云端虚拟机之间,用于必要的图像数据压缩懈压缩,本文如前节所述,采用了L278压缩算法,编写了该模块。整个实现的执行流程为:机器人启动图像获取模块,向云端发送SLAM请求;Multimaster Fkie发现可用的云端虚拟机,将虚拟机与机器人同步;机器人将压缩的图像数据传输到云端;云端虚拟机解压缩后进行SLAM处理,并将得到的结果返回机器人。

4 实验对比

本节针对云机器人架构下的SLAM服务进行测试,主要测试其SLAM处理速度、能耗以及网络带宽占用,以验证本文工作的有效性。实验选取两台服务器作为云端,通过千兆带宽交换机相连,其具体配置如下:Inter Xeon E5-1620处理器16G内存、Ubuntu12.04操作系统。机器人端采用智能小车,小车搭载了基于ARM的板载计算机Odroid-u3及Primesense深度摄像头。环境选择了较为复杂但具有规则的普通办公室环境,并选择了SLAMBench作为测试和模拟工具。

首先,我们测试了对于相同SLAM算法,基于云机器人架构的SLAM服务、单机SLAM之间的性能对比(图Sa))。主要测试了FastSLAM算法在本文服务架构下和单机器人情况下,从图中结果可知,相比于单机SLAM,本文的服务框架帧数从1.5Fps提升到了20Fps,能量消耗从12.3J/10帧降低到了4.8J/10帧,充分发挥了云端优势,提升了SLAM速度,并有效降低了能耗。

其次,我们测试了普通点对点网络下和本服务框架中,运行SLAM时网络带宽占用的情况(图Sb))。图中展示了在整个SLAM过程中,,普通的点对点网络网络带宽占用维持3.7MB/s到4.9MB/s之间,而在本文的服务架构中网络带宽占用降低到了2.4MB/s到3MB/s之间,证明了通过数据通信优化,本文的服务框架有效降低了网络带宽占用,降低了网络负担。

5 结束语

本文主要针对云机器人架构下的SLAM的服务化和有效性问题,提出了一个基于云机器人架构的SLAM服务化框架,并优化了该框架下的传输效率。在此基础上,基于ROS系统给出了原现实现,并在其上开展了基于真实机器人的对比实验。实验结果表明,本文提出的SLAM服务架构充分利用了云端的计算优势,提升了机器人SLAM的能力,同时本文提出的数据通信优化方法有效降低了SLAM过程中网络带宽占用,提升了SLAM效率。下一步,我们将在云端实现动态资源调度,以适应更为广泛的服务需求。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!