[发明专利]一种通过云服务协议访问机器人软件包的方法有效

专利信息
申请号: 201710284862.5 申请日: 2017-04-26
公开(公告)号: CN106936932B 公开(公告)日: 2019-07-26
发明(设计)人: 丁博;王怀民;刘惠;胡奔;张鹏飞;史佩昌;李艺颖;车慧敏;包慧 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: H04L29/08 分类号: H04L29/08
代理公司: 湖南兆弘专利事务所(普通合伙) 43008 代理人: 谭武艺
地址: 410073 *** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种通过云服务协议访问机器人软件包的方法,技术方案是搭建由机器人计算节点与云计算中心组成的云机器人计算节点环境,然后比较机器人计算节点的发布主题名对应的主题消息类型与云计算中心上的同名订阅主题名的主题消息类型是否相同,同时比较机器人计算节点的订阅主题名的主题消息类型与云计算中心的发布主题名的主题消息类型是否相同;若相同,机器人计算节点使用订阅主题名订阅云计算中心同名主题的ROS消息,同时机器人计算节点向云计算中心按发布主题名发布ROS消息。本发明使得ROS机器人软件包无需修改就可部署在云计算中心,且使用WebSocket协议实现了机器人计算节点与云计算中心之间ROS消息的交互。
搜索关键词: 一种 通过 服务 协议 访问 机器人 软件包 方法
【主权项】:
1.一种通过云服务协议访问机器人软件包的方法,其特征在于包括以下步骤:第一步,搭建云机器人计算节点环境,它由m个机器人计算节点与1个云计算中心组成,m≥1,m是整数;机器人计算节点是可以运行软件程序的机器人硬件设备;云计算中心是运行计算密集型或者数据密集型机器人应用并对外提供服务的计算设备;机器人计算节点间以及云计算中心通过网络设备互联;每个机器人计算节点上除了安装有操作系统Ubuntu、机器人中间件ROS、WebSocket协议外,还安装有第一ROS消息执行模块、第一消息转换模块和WebSocket连接模块;第一ROS消息执行模块由第一服务验证组件、第一消息订阅组件和第一消息发布组件组成;第一服务验证组件的功能是比较机器人计算节点和云计算中心发布与订阅具有相同主题名的主题消息类型是否一致;第一服务验证组件与第一消息转换模块、第一消息发布组件、第一消息订阅组件和用户相连;第一服务验证组件从用户接收发布与订阅主题名,设置消息操作类型、调用服务名称,将消息操作类型、调用服务名称和主题名发送给第一消息转换模块;第一服务验证组件从第一消息转换模块接收云计算中心返回的发布与订阅主题名对应的主题消息类型和应答结果标记,使用发布与订阅的主题名作为参数调用所属机器人计算节点的/rosapi/topic_type服务获取所属机器人计算节点这些主题名对应的主题消息类型,并与从云计算中心获取的主题名对应的主题消息类型进行比较,若机器人计算节点和云计算中心相同的主题名对应的主题消息类型相同,则机器人计算节点和云计算中心的ROS机器人软件包可以通过云服务协议进行交互,将订阅主题名和主题消息类型发送给第一消息订阅组件,将发布主题名和主题消息类型发送给第一消息发布组件;若主题消息类型不同,则不能访问;消息操作类型是用于描述ROS消息传输的操作方式的变量,它的值有三种:发布主题操作即publish、订阅主题操作即subscribe、调用服务操作即call_service;第一消息订阅组件使用已经通过验证的订阅主题名订阅云计算中心的ROS消息,并接收云计算中心返回的主题名和主题消息内容,在所属机器人计算节点构造和发布ROS消息;第一消息订阅组件与第一服务验证组件、第一消息转换模块、ROS机器人软件包中ROS消息订阅者相连;第一订阅消息组件从第一服务验证组件接收订阅主题名和主题消息类型,设置消息操作类型,将主题名、主题消息类型和消息操作类型发送给第一消息转换模块;第一消息订阅组件从第一消息转换模块获取主题消息内容和主题名,通过ROS消息机制构造和发布ROS消息,ROS机器人软件包中ROS消息订阅者通过ROS消息机制接收到ROS消息;第一消息发布组件的功能是将已经通过验证的发布主题名上的ROS消息发布到云计算中心;它与第一服务验证组件、第一消息转模块、ROS机器人软件包中ROS消息发布者相连;第一消息发布组件从第一服务验证组件接收发布主题名和主题消息类型,使用ROS消息机制订阅该主题上的ROS消息;第一消息发布组件使用ROS机制接收到ROS消息发布者在该主题上发布的ROS消息,将ROS消息和消息操作类型发送给第一消息转换模块;第一消息转换模块与第一消息订阅组件、第一消息发布组件、第一服务验证组件、WebSocket连接模块相连,具有构造和解析JSON消息的功能;WebSocket连接模块与第一消息转换模块、云计算中心相连;WebSocket连接模块通过URL即统一资源定位符和端口与云计算中心建立WebSocket链接;WebSocket连接模块的功能是发送和接收JSON消息;WebSocket连接模块从第一消息转换模块接收JSON消息,使用WebSocket链接将JSON消息发送给云计算中心;WebSocket连接模块通过WebSocket链接从云计算中心接收JSON消息,将JSON消息发送给第一消息转换模块;云计算中心上除了装有操作系统Ubuntu、机器人中间件ROS、WebSocket协议外,还有第二ROS消息执行模块、第二消息转换模块和WebSocket服务模块;WebSocket服务模块与第二消息转换模块、机器人计算节点的WebSocket连接模块相连;WebSocket服务模块的功能是使得机器人计算节点能够通过URL和端口与云计算中心建立WebSocket链接;WebSocket服务模块通过监听WebSocket连接从WebSocket连接模块接收JSON消息,将JSON消息发送给第二消息转换模块;WebSocket服务模块从第二消息转换模块接收JSON消息,使用WebSocket连接将JSON消息发送给机器人计算节点的WebSocket连接模块;第二消息转换模块与WebSocket服务模块相连,其功能与机器人计算节点的第一消息转换模块的功能基本相同,具有构造和解析JSON消息的功能;第二ROS消息执行模块由第二服务验证组件、第二消息订阅组件和第二消息发布组件组成;第二服务验证组件的功能是获得发布与订阅主题名对应的主题消息类型;第二服务验证组件与第二消息转换模块相连,第二服务验证组件从第二消息转换模块接收调用服务名称和主题名,使用主题名作为参数调用服务,获得主题名对应的主题消息类型,并将消息操作类型和主题消息类型发送给第二消息转换模块;第二消息订阅组件使用订阅消息主题名订阅ROS消息,接收ROS消息并向机器人计算节点发布ROS消息;它与第二消息转换模块、ROS机器人软件包中ROS消息发布者相连;第二消息订阅组件从第二消息转换模块接收订阅消息主题名和主题消息类型,使用ROS消息机制进行ROS消息订阅;第二消息订阅组件使用ROS消息机制接收ROS消息发布者在某一主题上发布的ROS消息,将ROS主题消息内容和消息操作类型发送给第二消息转换模块;第二消息发布组件使用ROS消息机制发布ROS消息;它与第二消息转换模块、ROS机器人软件包中ROS消息订阅者相连;第二消息发布组件从第二消息转换模块接收消息主题名和主题消息内容,使用ROS消息机制构造和发布ROS消息,机器人软件包中ROS消息订阅者通过ROS消息机制接收到ROS消息;第二步,机器人计算节点和云计算中心相互配合,比较机器人计算节点的发布主题名对应的主题消息类型与云计算中心上的同名订阅主题名的主题消息类型是否相同,同时比较机器人计算节点的订阅主题名的主题消息类型与云计算中心的发布主题名的主题消息类型是否相同;具体步骤如下:2.1机器人计算节点的WebSocket连接模块通过使用URL和端口与云计算中心的WebSocket服务模块建立WebSocket连接;如果无法连接则显示报错信息,执行第四步,正确连接则执行步骤2.2;2.2机器人计算节点的第一服务验证组件接收用户指定的发布和订阅主题名,使用主题名作为参数,通过WebSocket连接模块获得云计算中心同样主题名对应的主题消息类型;具体步骤如下:2.2.1机器人计算节点的第一服务验证组件接收用户指定的发布和订阅主题名,设置调用服务名称为“/rosapi/topic_type”和消息操作类型为"call_service",将该用户指定的发布和订阅主题名、调用服务名称和消息操作类型发送给第一消息转换模块;2.2.2机器人计算节点的第一消息转换模块接收到发布和订阅主题名、调用服务名称和消息操作类型,对消息操作类型进行判断;消息操作类型是"call_service",构造调用服务请求格式的JSON消息,并将调用服务请求格式的JSON消息发送给WebSocket连接模块;2.2.3机器人计算节点的WebSocket连接模块接收到调用服务请求格式的JSON消息后,使用WebSocket连接向云计算中心的WebSocket服务模块发送调用服务请求格式的JSON消息;如果发送失败则打印错误信息并执行第四步,发送成功则执行步骤2.2.4;2.2.4云计算中心的WebSocket服务模块通过监听WebSocket连接获得机器人计算节点发送的调用服务请求格式的JSON消息,将调用服务请求格式的JSON消息发送给云计算中心的第二消息转换模块;2.2.5云计算中心的第二消息转换模块接收到调用服务请求格式的JSON消息后,解析调用服务请求格式的JSON消息的内容,获取消息操作类型;消息操作类型是call_service,第二消息转换模块解析调用服务名称和参数,并将调用服务名称和参数发送给云计算中心的第二服务验证组件;2.2.6云计算中心的第二服务验证组件接收到调用服务名称和参数,使用发布与订阅主题名作为参数运行服务/rosapi/topic_type,获取主题消息类型;如果成功获取主题消息类型,设置应答结果标记为“1”,表示成功获取结果;否则设置应答结果标记为“0”,主题消息类型置为空;第二服务验证组件将发布与订阅主题的主题消息类型、应答结果标记、调用服务名称和消息操作类型发送给云计算中心的第二消息转换模块;2.2.7云计算中心的第二消息转换模块接收到消息操作类型、调用服务名称、发布与订阅主题的主题消息类型和应答结果标记之后,构造调用服务应答格式的JSON消息,并将调用服务应答格式的JSON消息发送给WebSocket服务模块;2.2.8云计算中心的WebSocket服务模块接收到调用服务应答格式的JSON消息后,使用WebSocket连接将调用服务应答格式的JSON消息发送给机器人计算节点的WebSocket连接模块;2.2.9机器人计算节点的WebSocket连接模块接收到调用服务应答格式的JSON消息后,将其发送给第一消息转换模块;2.2.10机器人计算节点的第一消息转换模块接收到调用服务应答格式的JSON消息后,解析调用服务应答格式的JSON消息的内容,获取消息操作类型;消息操作类型是call_service,获取云计算中心发布与订阅主题的主题消息类型和应答结果标记,并将主题名的主题消息类型和应答结果标记发送给第一服务验证组件;2.3机器人计算节点的第一服务验证组件接收到云计算中心发布与订阅主题的主题消息类型和应答结果标记,对应答结果标记进行判断;如果应答结果标记是0,说明没有成功获得云计算中心发布与订阅主题名对应的主题消息类型,打印错误信息并执行第四步;如果应答结果标记是1,使用云计算中心发布与订阅的主题名作为参数调用所属机器人计算节点的/rosapi/topic_type服务,获取所属机器人计算节点发布与订阅主题名对应的主题消息类型,将所属机器人计算节点发布与订阅的主题名对应的主题消息类型与云计算中心的同名主题名对应的主题消息类型进行比较;如果机器人计算节点的发布主题名对应的主题消息类型和云计算中心同名的订阅主题名对应的主题消息类型相同并且机器人节点订阅主题名对应的主题消息类型和云计算中心同名的发布主题名对应的主题消息类型相同,则将发布主题名和主题消息类型发送给第一消息发布组件,将订阅主题名和主题消息类型发送给第一消息订阅组件,执行第三步;否则显示错误信息并执行第四步;第三步,机器人计算节点按3.1的步骤使用订阅主题名订阅云计算中心同名主题的ROS消息;同时,机器人计算节点按3.2的步骤向云计算中心按发布主题名发布ROS消息,具体步骤如下:3.1机器人计算节点使用订阅主题名订阅云计算中心同名主题的ROS消息,具体步骤如下:3.1.1机器人计算节点的第一消息订阅组件从第一服务验证组件接收订阅主题名和主题消息类型,将消息操作类型设置为"subscribe",将消息操作类型、订阅主题名和主题消息类型发送给第一消息转换模块;3.1.2机器人计算节点的第一消息转换模块接收到订阅主题名、主题消息类型和消息操作类型,判断消息操作类型为"subscribe",构造订阅主题格式的JSON消息,并将订阅主题格式的JSON消息发送给WebSocket连接模块;3.1.3机器人计算节点的WebSocket连接模块接收到订阅主题格式的JSON消息,使用WebSocket连接发送给云计算中心的WebSocket服务模块;如果发送失败则打印错误信息并执行第四步,发送成功则执行步骤3.1.4;3.1.4云计算中心的WebSocket服务模块通过监听步骤2.1建立的WebSocket连接获取到机器人计算节点发送的订阅主题格式的JSON消息,将该订阅主题格式的JSON消息发送给云计算中心的第二消息转换模块;3.1.5云计算中心的第二消息转换模块接收到订阅主题格式的JSON消息后,解析订阅主题格式的JSON消息的内容,获取消息操作类型,对消息操作类型进行判断;消息操作类型是subscribe,获得订阅主题名和主题消息类型,并将订阅主题名和主题消息类型发送给第二消息订阅组件;3.1.6云计算中心的第二消息订阅组件接收到订阅主题名和主题消息类型,以消息的主题名和主题消息类型作为参数,使用ROS消息机制订阅该主题名上的消息;3.1.7第二消息订阅组件通过ROS消息机制接收云计算中心的ROS机器人软件包中ROS消息发布者基于该主题名发布的ROS消息,设置消息操作类型为"publish",并将ROS消息和消息操作类型发送给云计算中心的第二消息转换模块;3.1.8云计算中心的第二消息转换模块接收到ROS消息和消息操作类型,判断消息操作类型为"publish",第二消息转换模块解析ROS消息,获取主题名和主题消息内容,将主题消息内容转化成JSON字段;构造发布主题格式的JSON消息,并将发布主题格式的JSON消息发送给WebSocket服务模块;3.1.9云计算中心的WebSocket服务模块接收到发布主题格式的JSON消息,使用WebSocket连接将发布主题格式的JSON消息发送给机器人计算节点的WebSocket连接模块;3.1.10机器人计算节点的WebSocket连接模块通过监听WebSocket连接接收到发布主题格式的JSON消息,将发布主题格式的JSON消息发送给第一消息转换模块;3.1.11机器人计算节点的第一消息转换模块接收到发布主题格式的JSON消息,获取消息操作类型;判断消息操作类型为"publish",获取主题名和主题消息内容,并将主题名和主题消息内容发送给第一消息订阅组件;3.1.12机器人计算节点的第一订阅消息组件接收主题名和主题消息内容,通过ROS消息机制构造和发布ROS消息,机器人软件包的ROS消息订阅者通过ROS机制接收到ROS消息,转步骤3.1.7;3.2机器人计算节点向云计算中心按发布主题名发布ROS消息,具体步骤如下:3.2.1机器人计算节点的第一消息发布组件从第一服务验证组件接收发布主题名和主题消息类型,使用ROS消息机制订阅该主题名;3.2.2机器人计算节点的第一消息发布组件通过ROS消息机制接收机器人计算节点的机器人软件包中ROS消息发布者基于该主题名发布的ROS消息,将消息操作类型设置为“publish”,并将ROS消息和消息操作类型发送给第一消息转换模块;3.2.3机器人计算节点的第一消息转换模块接收到ROS消息和消息操作类型后,判断消息操作类型为“publish”,第一消息转换模块解析ROS消息,获取主题名和主题消息内容,构造发布主题格式的JSON消息,并将发布主题格式的JSON消息发送给WebSocket连接模块;3.2.4机器人计算节点的WebSocket连接模块接收到发布主题格式的JSON消息后,使用WebSocket连接将发布主题格式的JSON消息发送给云计算中心的WebSocket服务模块,如果WebSocket连接模块发送失败则打印错误信息并执行第四步;如果WebSocket连接模块发送成功,则执行步骤3.2.5;3.2.5云计算中心的WebSocket服务模块通过监听WebSocket连接接收机器人计算节点发送的发布主题格式的JSON格式的消息,将该消息发送给云计算中心的第二消息转换模块;3.2.6云计算中心的第二消息转换模块接收到发布主题格式的JSON消息后,获取消息操作类型;判断消息操作类型为"publish",获取主题名和主题消息内容,并将主题名和主题消息内容发送给第二消息发布组件;3.2.7云计算中心的第二消息发布组件接收到主题名和主题消息内容后,通过ROS消息机制构造和发布ROS消息;3.2.8云计算中心ROS机器人软件包中ROS消息订阅者使用发布主题名订阅ROS消息,通过ROS消息机制接收到ROS消息,转步骤3.2.2;第四步,结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201710284862.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top