Rapyuta

互联网社区已经在人类社会取得很大的成功,人们通过互相提供信息相互帮助。《RoboEarth语言:关于行为、目标、环境的表示与交换》论文中提出了RoboEarth的框架,致力于构建一个机器人的互联网社区。尝试给机器人也这样的web社区,让他们能够自主的分享他们学到的任务、他们创造的物体模型和他们探索过的环境。为机器人共享信息指定了行业标准。
而RoboEarth这样的信息社区背后,Rapyuta作为RoboEarth的云端Engine,为机器人提供了计算卸载功能。很多的web云服务都是单核的,云机器人架构需要多核,并且计算节点之间需要通信,像Google App Engine只提供一部分API,没有提供sockets这样就不能和ROS交互了。Heroku有自由的APIs和sockets但是没有下传数据到机器人的能力,节点之间也不能相互通信。
DAvinCi项目只提供了一个计算环境并且没有实现任务分离和安全性保护,任务之间的交互是通过ROS主节点,并且没有开源。
Rapyuta提供了开源PaaS框架,为云机器人提供个性化服务,弹性的计算节点为机器人动态的分配计算环境资源,并且计算环境紧密联系已于多机协作。与RoboEarth高速相连,在请求RoboEarth的数据之后,在本地进行处理、规划和推理之后,使得机器人学习其他人的技能更加容易。Rapyuta的ROS兼容性极强,这使得Rapyuta可以运行所有ROS包,(这意味着超过3000个开源ROS包) ,使用了Linux Containers的技术,其对硬盘资源、内存限制、I/O速率,CPU限制等定制十分便捷,比例加大可以用来像IaaS一样提供基础设施服务,减小可以向DAvinCi一样使用Hadoop的框架。
每一个环境下的一个process(处理器)都是一个ROS节点,相同环境下的process可以通过ROS的通信机制通信。
ROS有三种通信机制:1.所有处理器之间的通信2.机器人和Rapyuta的通信3.Rapyuta和容器中运行的应用程序的通信(应用程序使用ROS)
在这里插入图片描述
这是R的基本通信通道,EP使用RPC协议连接到master(主控制器),I是用来连接到机器人或者计算单元的,P是EP(EndPoints)之间的通信的。EP代表了有Ports和Interfaces的处理器。
Interfaces是用来和外部非Rapyuta处理器通信的,外部非Rapyuta处理器既可以是机器人也可以是计算环境,这些外部的处理器他们实现了一个抽象类来表示服务提供者,客户端、主题发布者或主题订阅者(类似ROS中的概念)。容器EndPoints的接口是标准的ROS接口,所以其实现了外部JSON对象到内部ROS消息的转换,反之亦然。

master主要监视和维护命令,并且在整个Rapyuta中只有一份
包括组织机器人和Rapyuta之间的连接;处理来自所有机器人的设置请求;监控网络和其他任务设定

机器人需要能够上传设置给master,转换数据信息,能够和其他的机器人和Endpoints通信
环境根据需要设定,能够与master或者其他EP通信,启动ROS节点,增加删除参数
容器由启动/停止计算环境所需的功能定义。每个机器内部都运行一个包含容器任务集的进程。
还有一个负载均衡器,用来在合适的机器上负载新的容器

Rapyuta有自己用来通信的协议,并且可以处理大规模的数据,这里不再多说,详细的可以去看论文。
在这里插入图片描述
这个就是使用Rapyuta的一个例子,机器人连接到EP,使用内部的资源进行计算,融合还可以连接到RoboEarth,不过Rapyuta和RoboEarth的处理还需要自己来写,工作没有做到这一地步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值