logo好方法网

一种基于ROS系统的多机器人通讯方法及装置


技术摘要:
本发明公开了一种基于ROS系统的多机器人通讯方法及装置,应用于多机器人系统中信息发送端,在当前ROS系统中订阅要发送的话题;调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;根据发送话  全部
背景技术:
】 机器人是自动执行工作的及其装置,随着机器人领域的发展,机器人可以为人们 干的事情越来越多。ROS系统是一种机器人的管理系统,通常在单个机器人上进行应用,使 用一个数据管理器对数据进行管理。 近年来,机器人的应用领域从单个机器人在单一环境下的应用逐渐发展到多机器 人在多场景环境下应用。这就要求管理人员必须统筹规划各个机器人的工作内容,当机器 人的数量较多时,这项工作会越来越复杂,需要消耗大量的人力资源去管理机器人。随之出 现的是基于局域网的多机通讯方法,但是,随着机器人的传感器和执行器的增加,机器人所 产生和执行控制的数据量大幅增加,各种信息数量庞大,经常会出现信息错误或者其他未 知错误。 【
技术实现要素:
】 本发明的目的是提供一种基于ROS系统的多机器人通讯方法及装置,以实现多机 器人系统中各个机器人之间或者机器人与控制终端之间的实时通讯。 本发明采用以下技术方案:一种基于ROS系统的多机器人通讯方法,应用于多机器 人系统中信息发送端,具体包括以下步骤: 在当前ROS系统中订阅要发送的话题; 调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端 编号、信息接收端编号、话题编号和发送次数编号构成; 根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题 序列号、话题类型和话题内容; 将数据包发送至信息接收端。 进一步地,将数据包发出包括: 将数据包通过预先指定的端口发送至信息接收端;其中,预先指定的端口为多机 器人系统中控制终端为当前信息发送端中的话题分配的空闲上行端口。 进一步地,将数据包通过预先指定的端口发送至信息接收端后还包括: 接收返回信息;其中,返回信息为信息接收端对数据包解析并得到正确信息后发 出的返回信息。 进一步地,将数据包通过预先指定的端口发送至信息接收端后还包括: 当未在预定时间内接收到返回信息时,重复发送数据包,直至接收到返回信息。 本发明的另一种技术方案:一种基于ROS系统的多机器人通讯装置,应用于多机器 人系统中信息发送端,具体包括以下步骤: 4 CN 111614741 A 说 明 书 2/8 页 订阅模块,用于在当前ROS系统中订阅要发送的话题; 调用模块,用于调用话题的回调函数生成发送话题序列号;其中,发送话题序列号 由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成; 生成模块,用于根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统 时间、发送话题序列号、话题类型和话题内容; 发送模块,用于将数据包发送至信息接收端。 本发明的再一种技术方案:一种基于ROS系统的多机器人通讯方法,应用于多机器 人系统中信息接收端,具体包括以下步骤: 接收数据包;其中,数据包为信息发送端发出的数据包,数据包包括信息发送端的 ROS系统时间、发送话题序列号、话题类型和话题内容; 解析数据包,得到发送话题序列号;其中,发送话题序列号由信息发送端编号、信 息接收端编号、话题编号和发送次数编号构成; 验证发送话题序列号; 当验证正确时,向信息发送端发送返回信息。 进一步地,验证发送话题序列号包括: 提取话题序列号中的信息接收端编号,并将接收端编号与当前信息接收端编号比 较,当接收端编号与当前信息接收端编号相同时,根据话题序列号提取话题编号和发送次 数编号; 根据话题编号调用当前信息接收端中与话题编号对应的接收次数编号; 比较发送次数编号和接收次数编号,当发送次数编号和接收次数编号满足第一条 件时,发送返回消息;其中,第一条件为:a=b 1,a为发送次数编号,b为接收次数编号。 进一步地,发送返回消息包括: 返回信息通过预先指定的上行端口发送至信息发送端;预先指定的端口为多机器 人系统中控制终端为当前信息接收端中的话题分配的空闲上行端口。 本发明的再一种技术方案:一种基于ROS系统的多机器人通讯装置,应用于多机器 人系统中信息接收端,具体包括以下步骤: 接收模块,用于接收数据包;其中,数据包为信息发送端发出的数据包,数据包包 括信息发送端的ROS系统时间、发送话题序列号、话题类型和话题内容; 解析模块,用于解析数据包,得到发送话题序列号;其中,发送话题序列号由信息 发送端编号、信息接收端编号、话题编号和发送次数编号构成; 验证模块,用于验证发送话题序列号; 发送模块,用于当验证正确时,向信息发送端发送返回信息。 本发明的再一种技术方案:一种基于ROS系统的多机器人通讯方法,应用于多机器 人通讯系统,多机器人通讯系统至少包括控制终端和至少两个机器人; 控制终端用于当检测到有机器人接入该多机器人通讯系统时,为每个机器人分配 IP地址;控制终端还用于根据当前ROS系统中的空闲端口建立空闲端口表,并根据空闲端口 表为每个机器人分配上行端口及下行端口; 方法还包括: 信息发送端在其ROS系统中订阅要发送的话题; 5 CN 111614741 A 说 明 书 3/8 页 调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端 编号、信息接收端编号、话题编号和发送次数编号构成; 根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题 序列号、话题类型和话题内容; 将数据包发出; 信息接收端接收数据包; 解析数据包,得到发送话题序列号; 验证发送话题序列号; 当验证正确时,向信息发送端发送返回信息。 本发明的有益效果是:本发明通过在信息发送端根据ROS系统中的话题回调函数 生成话题序列号,在通过话题序列号生成数据包,将信息发送至信息接收端中,可以有效地 实现在多机器人通讯系统中实现消息的准确发送及接收,通过在话题序列号中增加话题发 送次数和信息接收端编号,避免消息传输的准确性,减少通讯系统的信息传输错误。 【附图说明】 图1为本发明实施例中一种基于ROS系统的多机器人通讯方法的流程图; 图2为本发明另一实施例中一种基于ROS系统的多机器人通讯方法的流程图; 图3为本发明再一实施例中一种基于ROS系统的多机器人通讯装置示意图; 图4为本发明再一实施例中一种基于ROS系统的多机器人通讯装置示意图; 图5为本发明通讯方法的应用环境示意图; 图6为本发明实施例中机器人端的软件部署示意图; 图7为本发明实施例中发送话题序列号的组成示意图; 图8为采用本发明实施例中的通讯方法进行地图信息绘制时的过程示意图。 【
分享到:
收藏