【技术实现步骤摘要】
一种通过云服务协议访问机器人软件包的方法
本专利技术涉及机器人分布计算
,具体涉及一种在云机器人架构中,将机器人软件包部署为云计算服务,通过云服务协议访问机器人软件包,使得机器人软件包能够通过互联网远程为机器人提供后台云计算支持的方法。
技术介绍
机器人中间件是支撑机器人架构的软件基础设施,它封装了机器人服务共性问题(如数据通信、事务)的解决方案,从而可以大幅简化此类应用的开发过程。ROS(RobotOperatingSystem)是目前主流的机器人中间件,它包含了一个开源的中间件框架和一个用于机器人开发和管理的综合工具链。这个中间件框架实现了能够与各个软件模块进行交互的通讯基础设施,综合的工具链包括一系列机器系统开发、调试、检查、状态可视化的工具,包括基本的命令行工具、传感器数据可视化工具、图形化界面开发工具等。从分布式的观点出发,ROS可以看做一个面向消息的中间件。一个ROS应用由一组ROS自描述软件实体组成,这种软件实体称为软件包。这些软件包能够在不同的位置运行,它们通过ROS消息传输通道交互ROS消息从而实现共同的任务目标。ROS消息传输有两种传输通道,一种是主题(Topic)消息通道,该消息通道基于发布/订阅机制广播消息。主题消息通道上传输的消息叫主题消息,主题消息按照主题名进行分类。主题消息通道分成两种消息模式:1)消息发布(Publish)模式,ROS机器人软件包基于主题名发布ROS消息用于广播数据;2)消息订阅(Subscribe)模式,ROS机器人软件包订阅其他软件包发布的主题消息,订阅完成之后,其他软件包一旦发布该消息,就能接收到 ...
【技术保护点】
一种通过云服务协议访问机器人软件包的方法,其特征在于包括以下步骤:第一步,搭建云机器人计算节点环境,它由m个机器人计算节点与1个云计算中心组成,m≥1,m是整数;机器人计算节点是可以运行软件程序的机器人硬件设备;云计算中心是运行计算密集型或者数据密集型机器人应用并对外提供服务的计算设备;机器人计算节点间以及云计算中心通过网络设备互联;每个机器人计算节点上除了安装有操作系统Ubuntu、机器人中间件ROS、WebSocket协议外,还安装有第一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",将消息操作类型、订阅主...
【专利技术属性】
技术研发人员:丁博,王怀民,刘惠,胡奔,张鹏飞,史佩昌,李艺颖,车慧敏,包慧,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。