CN110502217A - 一种基于ros的机器人云平台设计方法 - Google Patents
一种基于ros的机器人云平台设计方法 Download PDFInfo
- Publication number
- CN110502217A CN110502217A CN201910787684.7A CN201910787684A CN110502217A CN 110502217 A CN110502217 A CN 110502217A CN 201910787684 A CN201910787684 A CN 201910787684A CN 110502217 A CN110502217 A CN 110502217A
- Authority
- CN
- China
- Prior art keywords
- robot
- cloud platform
- service
- node
- cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本发明公开了一种基于ROS的机器人云平台设计方法、电子设备及计算机可读介质。该方法根据功能层次将该平台设置为基础层、平台层和服务层三个层次;利用OpenStack的松散耦合机构设计并开发该云平台基础层;提供3台服务器,一台作为控制节点、一台作为计算节点、一台作为存储节点;对机器人云平台软件进行OpenStack组件安装和平台环境部署;基于OpenStack ocata版本实现机器人云平台基础层的安装;创建安全组,并添加相应的协议;搭建机器人云平台服务层。因此本发明能够解决机器人开发者需要重复构建开发环境和机器人软件服务的问题,为机器人应用程序的开发提供方便。
Description
技术领域
本发明涉及计算机信息处理领域,具体而言,涉及基于ROS的机器人云平台设计方法、电子设备及计算机可读介质。
背景技术
云计算是一种计算模型,可以随时随地的按需访问共享的、可配置的计算资源。池(如网络,服务器,存储,应用程序和服务),只需最少的管理工作就可以快速配置和分发。云计算将硬件资源虚拟化、动态地扩展,并在Internet上作为服务提供,它还允许提供者为用户提供几乎无限资源的访问。
云机器人技术是机器人借助云计算而发展起来的一种新兴技术。传统机器人的存储和计算能力仅限于机器人本体,而智能化则要求更多的知识存储、检索以及推理计算能力。针对此问题,2010年Carnegie Mellon University的James Kuffner教授首次提出云机器人的概念。云机器人是机器人技术与云计算的结合,把机器人的数据处理、规划、决策、协作等复杂计算功能卸载到云端,机器人本体只要装备基本的传感器联入网络就可以实现复杂的任务,机器人也由此真正实现了物美价廉。机器人云平台可以给每个机器人都提供整个云的计算能力,加强机器人的记忆能力和判断水平;把开发和测试环境、机器人的程序设计部署为一种服务放在云中,革新机器人开发流程;在云中部署服务,让机器人通过更换其在云平台中的配置来转变这个机器人的功能,提高机器人实用性。利用云计算对硬件资源进行调配,将机器人服务部署在云端,机器人通过注册到云端即可建立一个机器人知识共享库,云端也能够很好根据用户的需求对机器人资源进行合理的分配。
现有的机器人云平台架构或多或少的还存在一定的局限性,例如服务机器人云平台总体架构用面向服务的架构(SOA)来构建机器人云服务,重在研究对云平台服务的调度和管理,但SOA集成机制和集中式治理在系统需要扩展时预先确定了瓶颈。如图5所示,传统的基于SOA的机器人云平台总体架构。该机器人云平台架构并不统一,造成了很多重复技术性研究。
规范机器人云平台的架构,统一机器人与云平台的接口,将更多类型的异构机器人融入到机器人云服务平台中,使得适应不同类型的机器人的需求成为亟待解决的问题。
为了解决上述现有技术中的问题,本发明提供了一种基于ROS的机器人云平台设计方法、电子设备及计算机可读介质。将云机器人技术与ROS结合,利用现有的机器人开发框架与云平台框架并结合微服务,提出了一种全新的机器人云平台框架模型。
发明内容
本发明旨在解决现有技术中,规范机器人云平台的架构,统一机器人与云平台的接口的问题。本发明提供一种基于ROS的机器人云平台设计方法、电子设备及计算机可读介质。可以让开发人员专注在算法上,有助于提升机器人领域的整体技术水平。本发明能够解决机器人开发者需要重复构建开发环境和机器人软件服务的问题,为机器人应用程序的开发提供方便。
为了解决上述技术问题,本发明第一方面提出一种基于ROS的机器人云平台设计方法,该方法包括以下步骤:
S1,根据功能层次将该平台设置为基础层、平台层和服务层三个层次,其中,
该基础层是提供基础设施资源的物理硬件层次,包括云平台底层的硬件服务器和网络设备。
该平台层是用于促进用户应用开发、部署的中间件云服务,为机器人软件程序提供开发、测试和运行环境的层次。
该服务层是将资源抽象和虚拟化封装成服务统一部署在云平台上,以提供软件的方式为用户服务。
S2,利用OpenStack的松散耦合机构设计并开发该云平台基础层,实现原型系统,该OpenStack设计一个专门用于支持计算密集型工作负载的以计算为中心的云,根据需求特别定制,以支持用户向云平台托管计算密集型任务。
该系统各组件服务分布式部署在服务器集群,分为横向分配和纵向分配两种模式部署在各节点上。
可选地,横向分配是在控制节点上部署数据库、分布队列、缓存、身份认服务、Neutron服务和镜像服务,计算节点上部署计算服务,存储节点上部署块存储和对象存储服务。纵向分配是在每一个节点上都部署所有服务。
S3,提供3台服务器。可选地,一台作为控制节点、一台作为计算节点、一台作为存储节点。可选地,该控制节点负责管理整个云平台基础层的服务器集群,安装Keystone认证组件、Glance镜像组件、Neutron网络组件和Horizon仪表板组件;各服务组件部署完成后,通过登录到该控制节点来实现对整个机器人云平台的管理;该控制节点是管理整个机器人云平台的包括网络、调度、身份验证和镜像管理等在内的物理节点。
该计算节点部署Nova计算服务和Neutron服务,负责管理机器人云平台中的云主机,为该云平台提供计算资源;该云中的虚拟机和应用最终都运行在该计算节点上,该计算节点在运行过程中通过访问该控制节点上HAProxy对外提供的VIP实现对控制节点服务的访问。
该存储节点安装Cinder、Swift组件来为云平台提供存储服务;交换机负责为云平台提供网络的功能,将网络配置为两个网段,一个网络为服务器提供外部网络的通道,为机器人云平台中的虚拟机提供浮动IP地址,实现云平台外部网络对内部虚拟机实例的访问;另一网络是云平台的管理网络,负责提供机器人云平台管理相关功能,用于该节点之间各服务组件内部通信以及对数据库服务的访问,所有节点都需要连接到管理网络。
S4,对机器人云平台软件进行OpenStack组件安装和平台环境部署;首先安装Openstack各组件服务来完成基础层的虚拟化,该Openstack软件部署可用源码手动安装或者使用自动化部署工具来一键式部署;该云的可扩展性的关键部分是运行云所需的工作量,所以要最大限度地降低运行云的维护成本,自动化部署工具可以让我们在少量的手动工作之后自动部署系统在另一个新服务器上;
S5,基于OpenStack ocata版本实现机器人云平台基础层的安装;创建安全组,并添加相应的协议;搭建机器人云平台服务层。
可选地,该机器人云平台基础层的安装步骤,具体包括:
(1)每个节点都需要安装NTP服务并配置同步时间,使得该计算节点、该存储节点的时间与该控制节点的时间保持一致;
(2)将该控制节点的管理网络IP地址、计算的管理网络IP地址和存储节点的管理网络IP地址填入到hosts文件中,使得各节点能互相ping通实现通信。
(3)安装OpenStack依赖包;
(4)在控制节点上装Keystone组件、Glance组件、Neutron组件和Horizon组件,在数据库里创建nova_api、nova、nova_cell0数据库来管理compute服务的功能;创建neutron数据库来管理neutron服务;创建cinder数据库、swift数据库来管理存储服务的功能;
(5)在计算节点上安装nova组件并添加计算节点到cell数据库中使得控制节点发现计算节点;
(6)在存储节点上安装持久性块存储服务、对象存储服务;所述存储节点服务器至少需要两块硬盘。
可选地,在该机器人云平台基础层的安装步骤之后,还包括:
登录到控制节点验证服务组件,显示已启动成功,基于ROS的机器人云平台运行在ubuntu系统环境中,具体包括以下步骤:
(1)登录到机器人云平台管理界面,根据任务需求定制云主机配置,请求分配一台云主机。
(2)通过在web图形可视化界面或者命令行工具将ubuntu16.04镜像上传到机器人云平台镜像管理系统中,在web浏览器界面中通过vnc登录到系统安装引导界面为云主机安操作系统;系统安装完成后,需要在操作系统之上安装ROS和turtlebot机器人通用软件;最后在云平台上部署机器人应用程序开发环境。
可选地,一个网段为192.168.100.0/24,另一网段为10.1.12.0/24。
可选地,该搭建机器人云平台服务层具体为利用微服务架构封装云服务。
为了解决上述技术问题,本发明第二方面提出一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该处理器执行所述程序时,实现上述方法。
为了解决上述技术问题,本发明第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序能够被处理器执行来实现上述方法。
ROS(robot operation system)是在2010年对外发布了源代码的机器人操作系统,目前由OSRF公司维护,从公布之初就受到无数机器人应用程序开发人员的推崇。ROS目前已经成为有史以来使用最多的分布式模块化的开源机器人框架,提供了底层驱动程序到上层的算法,再加上强大的开发工具来帮助软件开发人员创建机器人应用程序。其目的在于提高软件代码的复用性,允许代码共享和重用。ROS给用户提供了期望从操作系统获得的服务,包括硬件配置、底层设备控制、工具和库、进程间的消息传递和包管理。ROS不是类似于Windows、linux、MacOS这样传统的操作系统,而是提供了一种跨平台模块化软件通讯机制和软件开发框架。ROS实现的基于话题(Topic)的通讯机制为机器人提供了通信支持功能,很好的解耦了不同应用程序(节点)之间的逻辑,所以被普遍应用到机器人软件服务的实际开发中。
通过以上方法,可以让开发人员专注在算法上,有助于提升机器人领域的整体技术水平。本发明能够解决机器人开发者需要重复构建开发环境和机器人软件服务的问题,为机器人应用程序的开发提供方便,为开发人员搭建机器人云平台时提供参考意义。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是示出了根据本发明实施例的一种基于ROS的机器人云平台设计方法的示意图。
图2是示出了根据本发明实施例的一种基于ROS的机器人云平台总体架构的示意图。
图3是根据本发明实施例的一种电子设备的示例性实施例的结构框图。
图4是根据本发明实施例的一种计算机可读介质的示意图。
图5是示出了传统的基于SOA的机器人云平台总体架构示意图。
图6是示出了根据本发明实施例的节点网络规划的示意图。
图7是示出了根据本发明实施例的微服务化后的系统架构的示意图。
具体实施方式
现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
图1是示出了根据本发明实施例的一种基于ROS的机器人云平台设计方法的流程图。一种基于ROS的机器人云平台设计方法,该方法包括以下步骤:
S1,根据功能层次将该平台设置为基础层、平台层和服务层三个层次,如图2所示的根据本发明实施例的一种基于ROS的机器人云平台总体架构的示意图。其中,
该基础层是提供基础设施资源的物理硬件层次,包括云平台底层的硬件服务器和网络设备。
该平台层是用于促进用户应用开发、部署的中间件云服务,为机器人软件程序提供开发、测试和运行环境的层次。
该服务层是将资源抽象和虚拟化封装成服务统一部署在云平台上,以提供软件的方式为用户服务。
本文提出的基于ROS的机器人云服务平台架构结合了现有的机器人云平台架构,在其基础上进行了优化,基于微服务体系结构设计平台云服务的封装。
S2,针对基于ROS的机器人云服务平台架构,利用OpenStack的松散耦合机构设计并开发该云平台基础层,实现原型系统,该OpenStackOpenStack构建的目的是承载各种工作负载和应用程序,并且不会对任何特定的计算方面产生繁重的负担,所以设计一个专门用于支持计算密集型工作负载的以计算为中心的云,根据需求特别定制,以支持用户向云平台托管计算密集型任务。
该系统各组件服务分布式部署在服务器集群,分为横向分配和纵向分配两种模式部署在各节点上;其中,
横向分配是在控制节点上部署数据库、分布队列、缓存、身份认服务、Neutron服务和镜像服务,计算节点上部署计算服务,存储节点上部署块存储和对象存储服务。
纵向分配是在每一个节点上都部署所有服务;
S3,提供3台服务器,其中,
一台作为控制节点、一台作为计算节点、一台作为存储节点。经过充分调研论证,根据实验室内的网络环境和硬件资源部署一个私有云,基于OpenStack实现机器人云平台基础层的虚拟化。其所需要的硬件资源为3台ThinkPad SR650机架式服务器,一台作为控制节点、一台作为计算节点、一台作为存储节点;还需要核心交换机来为服务器集群提供网络。各节点硬件配置具体如表1所示。
表1硬件配置表
节点名称 | 配置 | 操作系统镜像 |
controller节点 | 16VCPU32GB内存2T硬盘 | CentOS-7.4-x86_64.iso |
compute节点 | 16VCPU32GB内存2T硬盘 | CentOS-7.4-x86_64.iso |
storage节点 | 16VCPU32GB内存2T硬盘 | CentOS-7.4-x86_64.iso |
该控制节点controller负责管理整个云平台基础层的服务器集群,安装Keystone认证组件、Glance镜像组件、Neutron网络组件和Horizon仪表板组件;各服务组件部署完成后,通过登录到该控制节点来实现对整个机器人云平台的管理;该控制节点是管理整个机器人云平台的包括网络、调度、身份验证和镜像管理等在内的物理节点。
该计算节点compute部署Nova计算服务和Neutron服务,负责管理机器人云平台中的云主机,为该云平台提供计算资源;该云中的虚拟机和应用最终都运行在该计算节点上,该计算节点在运行过程中通过访问该控制节点上HAProxy对外提供的VIP实现对控制节点服务的访问。
该存储节点storage安装Cinder、Swift组件来为云平台提供存储服务;交换机负责为云平台提供网络的功能,将网络配置为两个网段,一个网络为服务器提供外部网络的通道,为机器人云平台中的虚拟机提供浮动IP地址,实现云平台外部网络对内部虚拟机实例的访问;另一网络是云平台的管理网络,负责提供机器人云平台管理相关功能,用于该节点之间各服务组件内部通信以及对数据库服务的访问,所有节点都需要连接到管理网络。可选地,一个网段为192.168.100.0/24,另一网段为10.1.12.0/24。
各个节点网络规划如图6所示,图6是示出了根据本发明实施例的节点网络规划的示意图。如图6所示,所有的节点都要链接到管理网络,包括无线AP,接入交换机,光纤,Internet,外部网路,控制节点,计算节点,存储节点等。
进行完节点硬件规划后,对机器人云平台进行软件部署。机器人云平台软件部署分为OpenStack组件安装和平台环境部署。首先安装Openstack各组件服务来完成基础层的虚拟化。Openstack软件部署可用源码手动安装或者使用自动化部署工具来一键式部署。云的可扩展性的关键部分是运行云所需的工作量,所以要最大限度地降低运行云的维护成本,自动化部署工具可以让我们在少量的手动工作(包括物理架设,MAC到IP分配和电源配置)之后自动部署系统在新服务器上,安装和配置操作系统无需运营人员的干预。本文采用通过源码安装部署的方式来安装云平台所需要的组件,能加深理解各个组件的配置方法和依赖关系。
S4,借鉴OpenStack松散耦合架构的设计,本文对机器人云平台软件进行OpenStack组件安装和平台环境部署;首先安装Openstack各组件服务来完成基础层的虚拟化,该Openstack软件部署可用源码手动安装或者使用自动化部署工具来一键式部署;该云的可扩展性的关键部分是运行云所需的工作量,所以要最大限度地降低运行云的维护成本,自动化部署工具可以让我们在少量的手动工作之后自动部署系统在另一个新服务器上。
S5,基于OpenStack ocata版本实现机器人云平台基础层的安装;创建安全组,并添加相应的协议;搭建机器人云平台服务层。
可选地,该机器人云平台基础层的安装步骤,具体包括:
(1)每个节点都需要安装NTP服务并配置同步时间,使得该计算节点、该存储节点的时间与该控制节点的时间保持一致;
(2)将该控制节点的管理网络IP地址、计算的管理网络IP地址和存储节点的管理网络IP地址填入到hosts文件中,使得各节点能互相ping通实现通信。
(3)安装OpenStack依赖包;
(4)在控制节点上装Keystone组件、Glance组件、Neutron组件和Horizon组件,在数据库里创建nova_api、nova、nova_cell0数据库来管理compute服务的功能;创建neutron数据库来管理neutron服务;创建cinder数据库、swift数据库来管理存储服务的功能;
(5)在计算节点上安装nova组件并添加计算节点到cell数据库中使得控制节点发现计算节点;
(6)在存储节点上安装持久性块存储服务、对象存储服务;所述存储节点服务器至少需要两块硬盘。
可选地,在该机器人云平台基础层的安装步骤之后,还包括:
登录到控制节点验证服务组件,显示已启动成功,基于ROS的机器人云平台运行在ubuntu系统环境中,具体包括以下步骤:
(1)登录到机器人云平台管理界面,根据任务需求定制云主机配置,请求分配一台云主机。
(2)通过在web图形可视化界面或者命令行工具将ubuntu16.04镜像上传到机器人云平台镜像管理系统中,在web浏览器界面中通过vnc登录到系统安装引导界面为云主机安操作系统;系统安装完成后,需要在操作系统之上安装ROS和turtlebot机器人通用软件;最后在云平台上部署机器人应用程序开发环境。
可选地,该搭建机器人云平台服务层具体为利用微服务架构封装云服务。
在基础层硬件节点的组件均安装部署完毕后,登录到控制节点验证服务组件都已启动成功,标志着机器人云平台原型系统的基础层成功实现虚拟化。接着就需要部署机器人软件环境,机器人云平台环境一般包括操作系统和专业软件环境两部分。基于ROS的机器人云平台需要运行在ubuntu系统环境中,所以机器人云平台原型系统基于ubuntu安装ROS等软件框架。具体实现步骤如下:
(1)登录到机器人云平台管理界面,根据任务需求定制云主机配置,请求分配一台云主机。
(2)通过在web图形可视化界面或者命令行工具将ubuntu16.04镜像上传到机器人云平台镜像管理系统中,在web浏览器界面中通过vnc登录到系统安装引导界面为云主机安操作系统;系统安装完成后,需要在操作系统之上安装ROS和turtlebot等机器人通用软件。最后在云平台上部署好机器人应用程序开发环境,如roboware软件或其他IDE。
机器人云平台还需要创建安全组,并添加相应的协议,为创建的云主机提供访问与安全管理。如安全组规则中未打开相应的端口,例如22端口等,则云主机访问不了外网,也不能远程连接到云主机。
最后搭建机器人云平台服务层,本文利用微服务架构封装云服务。微服务体系结构是一种云原生体系结构,它的目标是将应用程序拆分成一系列小型的微服务来实现,每个小服务都可以独立部署在可能不同的平台和技术堆栈上,并在通信时运行在自己的进程中。机器人系统软硬件结合,集成度高,涉及专业多、跨度大。将软件结构更改为基于微服务的体系结构,可以降低复杂性和耗时的流程步骤。单个微服务很容易开,每个服务进行独立自治,开发起来更加自由。
机器人云平台采用微服务的架构设计服务的封装,采用Docker来构建我们的微服务。Docker是基于容器的虚拟化的开源平台提供了一系列用于打包、管理和传送图像的工具,独立运行在一个轻量级虚拟环境中,用户不需要深入了解底层的技术知识,比如设备节点、依赖的第三方库或成功执行应用程序所需的其他相关软件构件。此外,DockerHub的公共存储库允许每个用户访问、共享和下载可用的镜像。微服务架构的部署和维护是使用DevOps执行的,即将软件开发(Dev)与软件操作(Ops)相关联的实践集合。DevOps主张在软件构建的所有步骤中实现自动化和监控。通过使用DevOps方法,可以减少提交系统更改和正常生产中的更改的时间,同时确保高质量。微服务化后的机器人云平台架构的示意图如图7所示。
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图3是根据本发明实施例的一种电子设备的示例性实施例的结构框图。图3显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
参考图3,在硬件层面,该电子设备310包括处理器311、内部总线312、网络接口313、内存314以及非易失性存储器315,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。例如,所述处理器可以执行如图1所示的步骤。
内部总线312可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
应当明白,尽管图中未示出,电子设备310中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图4是本发明实施例的一种计算机可读介质的示意图。如图4所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:提供一种基于ROS的机器人云平台设计方法、电子设备及计算机可读介质。该方法根据功能层次将该平台设置为基础层、平台层和服务层三个层次;利用OpenStack的松散耦合机构设计并开发该云平台基础层;提供3台服务器,一台作为控制节点、一台作为计算节点、一台作为存储节点;对机器人云平台软件进行OpenStack组件安装和平台环境部署;基于OpenStack ocata版本实现机器人云平台基础层的安装;创建安全组,并添加相应的协议;搭建机器人云平台服务层。因此本发明能够解决机器人开发者需要重复构建开发环境和机器人软件服务的问题,为机器人应用程序的开发提供方便。
与综上所述,现有技术相比,本发明改进的技术手段如下:
(1)改进现有的机器人云平台架构提出一种基于ROS的机器人云服务平台架构,根据功能层次分为基础层、平台层和服务层三层。
(2)针对基于ROS的机器人云服务平台架构,借鉴OpenStack的松散耦合架构完成基础层的设计;根据微服务体系结构将应用程序拆分为一系列小型的微服务来实现平台云服务的封装。应用OpenStack开源云平台管理系统和ROS机器人操作系统开发设计了一个机器人云平台原型系统,在原型系统上用建图与导航测试验证本文提出的基于ROS的机器人云服务平台架构的可行性。
(3)将移动机器人自主导航云服务模块部署到机器人云平台原型系统上,并对子模块对一些优化,对改进效果进行测试与分析,验证了基于ROS的机器人云服务平台对具体任务场景的支持能力。
与现有技术相比,本发明有益效果为:
1.通过将机器人关键技术与云计算相结合,改进得出基于ROS的机器人云服务平台架构,为搭建机器人云平台提供参考,也为构建统一机器人云服务平台提出了一个可行方案。
2.机器人云平台能够解决机器人开发人员在开发过程中需要重复构建开发环境和部署机器人软件服务的问题,为机器人程序的开发提供便利。
3.借鉴OpenStack的松散耦合架构完成基础层的设计;根据微服务体系结构将应用程序拆分为一系列小型的微服务来实现平台云服务的封装。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于ROS的机器人云平台设计方法,所述方法包括以下步骤:
S1,根据功能层次将所述平台设置为基础层、平台层和服务层三个层次,其中,
所述基础层是提供基础设施资源的物理硬件层次,包括云平台底层的硬件服务器和网络设备;
所述平台层是用于促进用户应用开发、部署的中间件云服务,为机器人软件程序提供开发、测试和运行环境的层次;
所述服务层是将资源抽象和虚拟化封装成服务统一部署在云平台上,以提供软件的方式为用户服务;
S2,利用OpenStack的松散耦合机构设计并开发所述云平台基础层,实现原型系统,所述OpenStack设计一个专门用于支持计算密集型工作负载的以计算为中心的云,根据需求特别定制,以支持用户向云平台托管计算密集型任务;
所述系统各组件服务分布式部署在服务器集群,分为横向分配和纵向分配两种模式部署在各节点上;其中,
横向分配是在控制节点上部署数据库、分布队列、缓存、身份认服务、Neutron服务和镜像服务,计算节点上部署计算服务,存储节点上部署块存储和对象存储服务;
纵向分配是在每一个节点上都部署所有服务;
S3,提供3台服务器,其中,
一台作为控制节点、一台作为计算节点、一台作为存储节点;其中,
所述控制节点负责管理整个云平台基础层的服务器集群,安装Keystone认证组件、Glance镜像组件、Neutron网络组件和Horizon仪表板组件;各服务组件部署完成后,通过登录到所述控制节点来实现对整个机器人云平台的管理;所述控制节点是管理整个机器人云平台的包括网络、调度、身份验证和镜像管理等在内的物理节点;
所述计算节点部署Nova计算服务和Neutron服务,负责管理机器人云平台中的云主机,为所述云平台提供计算资源;所述云中的虚拟机和应用最终都运行在所述计算节点上,所述计算节点在运行过程中通过访问所述控制节点上HAProxy对外提供的VIP实现对控制节点服务的访问;
所述存储节点安装Cinder、Swift组件来为云平台提供存储服务;交换机负责为云平台提供网络的功能,将网络配置为两个网段,一个网络为服务器提供外部网络的通道,为机器人云平台中的虚拟机提供浮动IP地址,实现云平台外部网络对内部虚拟机实例的访问;另一网络是云平台的管理网络,负责提供机器人云平台管理相关功能,用于所述节点之间各服务组件内部通信以及对数据库服务的访问,所有节点都需要连接到管理网络;
S4,对机器人云平台软件进行OpenStack组件安装和平台环境部署;首先安装Openstack各组件服务来完成基础层的虚拟化,所述Openstack软件部署可用源码手动安装或者使用自动化部署工具来一键式部署;所述云的可扩展性的关键部分是运行云所需的工作量,所以要最大限度地降低运行云的维护成本,自动化部署工具可以让我们在少量的手动工作之后自动部署系统在另一个新服务器上;
S5,基于OpenStack ocata版本实现机器人云平台基础层的安装;创建安全组,并添加相应的协议;搭建机器人云平台服务层。
2.根据权利要求1所述的方法,其特征在于:
所述机器人云平台基础层的安装步骤,具体包括:
(1)每个节点都需要安装NTP服务并配置同步时间,使得所述计算节点、所述存储节点的时间与所述控制节点的时间保持一致;
(2)将所述控制节点的管理网络IP地址、计算的管理网络IP地址和存储节点的管理网络IP地址填入到hosts文件中,使得各节点能互相ping通实现通信;
(3)安装OpenStack依赖包;
(4)在控制节点上装Keystone组件、Glance组件、Neutron组件和Horizon组件,在数据库里创建nova_api、nova、nova_cell0数据库来管理compute服务的功能;创建neutron数据库来管理neutron服务;创建cinder数据库、swift数据库来管理存储服务的功能;
(5)在计算节点上安装nova组件并添加计算节点到cell数据库中使得控制节点发现计算节点;
(6)在存储节点上安装持久性块存储服务、对象存储服务;所述存储节点服务器至少需要两块硬盘。
3.根据权利要求1所述的方法,其特征在于:
在所述机器人云平台基础层的安装步骤之后,还包括:
登录到控制节点验证服务组件,显示已启动成功,基于ROS的机器人云平台运行在ubuntu系统环境中,具体包括以下步骤:
(1)登录到机器人云平台管理界面,根据任务需求定制云主机配置,请求分配一台云主机;
(2)通过在web图形可视化界面或者命令行工具将ubuntu16.04镜像上传到机器人云平台镜像管理系统中,在web浏览器界面中通过vnc登录到系统安装引导界面为云主机安操作系统;系统安装完成后,需要在操作系统之上安装ROS和turtlebot机器人通用软件;最后在云平台上部署机器人应用程序开发环境。
4.根据权利要求1所述的方法,其特征在于:
一个网段为192.168.100.0/24,另一网段为10.1.12.0/24。
5.根据权利要求1所述的方法,其特征在于:
所述搭建机器人云平台服务层具体为利用微服务架构封装云服务。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1至5中任一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,该程序能够被处理器执行来实现如权利要求1至5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910787684.7A CN110502217B (zh) | 2019-08-26 | 2019-08-26 | 一种基于ros的机器人云平台设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910787684.7A CN110502217B (zh) | 2019-08-26 | 2019-08-26 | 一种基于ros的机器人云平台设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502217A true CN110502217A (zh) | 2019-11-26 |
CN110502217B CN110502217B (zh) | 2021-07-13 |
Family
ID=68589311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910787684.7A Active CN110502217B (zh) | 2019-08-26 | 2019-08-26 | 一种基于ros的机器人云平台设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502217B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328318A (zh) * | 2020-09-27 | 2021-02-05 | 北京华胜天成科技股份有限公司 | 专有云平台自动规划的方法、装置及存储介质 |
CN112734174A (zh) * | 2020-12-28 | 2021-04-30 | 镇江市高等专科学校 | 水下机器人智能交互和服务系统 |
CN113037867A (zh) * | 2021-04-12 | 2021-06-25 | 普华鹰眼科技发展有限公司 | 一种多型无人机统一数据接入与处理系统 |
CN113157429A (zh) * | 2020-01-22 | 2021-07-23 | 中移智行网络科技有限公司 | 一种saas云服务实现方法及系统 |
CN114089721A (zh) * | 2021-11-17 | 2022-02-25 | 东方红卫星移动通信有限公司 | 基于云平台的控制系统构建方法及控制系统 |
RU2815598C1 (ru) * | 2022-11-02 | 2024-03-19 | Автономная некоммерческая организация высшего образования "Университет Иннополис" | Способ создания робототехнических систем |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105945943A (zh) * | 2016-05-12 | 2016-09-21 | 东北大学 | 一种基于动态Agent的云机器人分布式控制系统及方法 |
CN106506636A (zh) * | 2016-11-04 | 2017-03-15 | 武汉噢易云计算股份有限公司 | 一种基于OpenStack的云平台集群方法及系统 |
CN106534338A (zh) * | 2016-12-05 | 2017-03-22 | 东北大学 | 一种云机器人系统及实现方法 |
CN108055327A (zh) * | 2017-12-15 | 2018-05-18 | 佛山三维二次方科技有限公司 | 基于OpenStack的云计算实验平台 |
CN109040304A (zh) * | 2018-09-10 | 2018-12-18 | 东北大学 | 一种CloudROS云机器人架构 |
CN109218378A (zh) * | 2018-01-10 | 2019-01-15 | 陕西科技大学 | 一种基于云平台的小型物流管理平台设计方法 |
-
2019
- 2019-08-26 CN CN201910787684.7A patent/CN110502217B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105945943A (zh) * | 2016-05-12 | 2016-09-21 | 东北大学 | 一种基于动态Agent的云机器人分布式控制系统及方法 |
CN106506636A (zh) * | 2016-11-04 | 2017-03-15 | 武汉噢易云计算股份有限公司 | 一种基于OpenStack的云平台集群方法及系统 |
CN106534338A (zh) * | 2016-12-05 | 2017-03-22 | 东北大学 | 一种云机器人系统及实现方法 |
CN108055327A (zh) * | 2017-12-15 | 2018-05-18 | 佛山三维二次方科技有限公司 | 基于OpenStack的云计算实验平台 |
CN109218378A (zh) * | 2018-01-10 | 2019-01-15 | 陕西科技大学 | 一种基于云平台的小型物流管理平台设计方法 |
CN109040304A (zh) * | 2018-09-10 | 2018-12-18 | 东北大学 | 一种CloudROS云机器人架构 |
Non-Patent Citations (2)
Title |
---|
李文刚: "基于OpenStack的私有云平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈彬 等: "一种基于ROS的机器人云平台架构设计", 《制造业自动化》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157429A (zh) * | 2020-01-22 | 2021-07-23 | 中移智行网络科技有限公司 | 一种saas云服务实现方法及系统 |
CN113157429B (zh) * | 2020-01-22 | 2024-04-09 | 中移智行网络科技有限公司 | 一种saas云服务实现方法及系统 |
CN112328318A (zh) * | 2020-09-27 | 2021-02-05 | 北京华胜天成科技股份有限公司 | 专有云平台自动规划的方法、装置及存储介质 |
CN112328318B (zh) * | 2020-09-27 | 2024-05-14 | 北京华胜天成科技股份有限公司 | 专有云平台自动规划的方法、装置及存储介质 |
CN112734174A (zh) * | 2020-12-28 | 2021-04-30 | 镇江市高等专科学校 | 水下机器人智能交互和服务系统 |
CN112734174B (zh) * | 2020-12-28 | 2023-10-10 | 镇江市高等专科学校 | 水下机器人智能交互和服务系统 |
CN113037867A (zh) * | 2021-04-12 | 2021-06-25 | 普华鹰眼科技发展有限公司 | 一种多型无人机统一数据接入与处理系统 |
CN113037867B (zh) * | 2021-04-12 | 2023-02-10 | 普华鹰眼科技发展有限公司 | 一种多型无人机统一数据接入与处理系统 |
CN114089721A (zh) * | 2021-11-17 | 2022-02-25 | 东方红卫星移动通信有限公司 | 基于云平台的控制系统构建方法及控制系统 |
RU2815598C1 (ru) * | 2022-11-02 | 2024-03-19 | Автономная некоммерческая организация высшего образования "Университет Иннополис" | Способ создания робототехнических систем |
Also Published As
Publication number | Publication date |
---|---|
CN110502217B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502217A (zh) | 一种基于ros的机器人云平台设计方法 | |
CN112585919B (zh) | 利用基于云的应用管理技术来管理应用配置状态的方法 | |
Mambretti et al. | Next generation clouds, the chameleon cloud testbed, and software defined networking (sdn) | |
CN103189846B (zh) | 计算环境的数据网络的管理 | |
US20160357522A1 (en) | Physical space map overlay and interaction for an internet of things integrated developer environment | |
CN101430649B (zh) | 基于虚拟机的虚拟计算环境系统 | |
US20160357521A1 (en) | Integrated developer environment for internet of things applications | |
US20140344323A1 (en) | State-based configuration management for distributed systems | |
CN109961151A (zh) | 用于机器学习的计算服务的系统及用于机器学习的方法 | |
CN105897805A (zh) | 对多层架构的数据中心的资源进行跨层调度的方法和装置 | |
CN107343045A (zh) | 云计算系统及用于控制服务器的云计算方法和装置 | |
CN110463163A (zh) | 用于提供对会话服务器的按需唤醒访问的方法及系统 | |
US11397620B2 (en) | Deployment of event-driven application in an IoT environment | |
Danylo et al. | Development of recommendations for the implementation of virtualization concepts in modern networks | |
CN105027504A (zh) | 用于数据中心的可编程物理网络拓扑 | |
CN107924332A (zh) | Ict服务供应的方法和系统 | |
US20200151621A1 (en) | System and method for preparing computing devices in anticipation of predicted user arrival | |
CN109901823A (zh) | 基于云环境的交互式模型开发环境系统和方法 | |
Trunov et al. | Legacy applications model integration to support scientific experiment | |
CN112348302A (zh) | 具有无状态协调器的可扩展工作流引擎 | |
CN117616395A (zh) | 迁移期间应用的连续活跃度和完整性 | |
US20230161633A1 (en) | Avoidance of Workload Duplication Among Split-Clusters | |
CN114466005A (zh) | 物联网设备编排 | |
CN114846480A (zh) | 支持多种量子计算技术的量子计算服务 | |
US20210011947A1 (en) | Graphical rendering of automata status |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |