论文部分内容阅读
随着应用领域的扩展,今天的机器人需要更为复杂的算法、庞大的数据与丰富的知识。但是,受硬件平台、制造成本等条件的约束,机器人本地资源往往极其有限,严重制约了机器人在复杂环境下的自主行为能力。在这样的背景下,云机器人概念进入了人们的视野。云计算与机器人的结合,不仅能够为机器人提供按需使用的计算资源,而且能够通过大数据等资源极大增强机器人智能,通过后台基础设施有效支持多机器人协同。随着云机器人的发展,如何高效构造面向机器人任务的各类云服务,进而打造云机器人软件生态链,已经成为亟待解决的挑战。这一过程中,“平台即服务”层级的云端软件平台不可或缺。这一平台应当能够高效复用机器人领域已有积累(例如基于机器人软件事实标准ROS的大量软件包),同时又要能够支持机器人以服务化形式按需访问其上服务。针对这一客观需求,本文以支持ROS软件包直接部署的云机器人软件平台为目标,围绕ROS软件包映射为云服务过程中的协议转换、并发访问、资源隔离等问题,进行了以下三个方面的研究:(1)支持ROS软件包部署和服务化使用的云平台架构。本文提出了一个基于Docker与ROS的通用云平台架构,采用ROS软件包作为该平台的应用程序模型,通过协议转换与按需实例化实现了服务化封装,并通过Docker实现了资源隔离,以支持多机器人场景下ROS软件包的快速部署与服务化使用。(2)ROS软件包接口的云端服务化封装机制。本文提出了对于ROS接口的云端服务化封装机制,旨在针对ROS自身过于面向局域网的特性与直接云端服务化手段缺乏的问题,通过ROS消息与JSON消息的相互转换并使用WebSocket协议在互联网上进行传输,使得ROS软件包不再受限于局域网环境,而云端基于ROS软件包的服务提供方式变得可行。(3)面向多机器人的云端资源隔离与调度机制。本课题以对多机器人场景下云端的资源隔离与调度进行了探索,提出了基于容器的资源隔离机制与面向容器粒度的调度机制,保证每台机器人都能获得质量有保证的服务。在此基础上,本文实现了相应的原型系统,并通过SLAM实验对于本文工作在平台架构的可行性,机器人任务的加速效果以及对于多机器人场景的支持能力进行了验证。