CN111614741A - 一种基于ros系统的多机器人通讯方法及装置 - Google Patents
一种基于ros系统的多机器人通讯方法及装置 Download PDFInfo
- Publication number
- CN111614741A CN111614741A CN202010390663.4A CN202010390663A CN111614741A CN 111614741 A CN111614741 A CN 111614741A CN 202010390663 A CN202010390663 A CN 202010390663A CN 111614741 A CN111614741 A CN 111614741A
- Authority
- CN
- China
- Prior art keywords
- topic
- sending
- information
- data packet
- robot
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种基于ROS系统的多机器人通讯方法及装置,应用于多机器人系统中信息发送端,在当前ROS系统中订阅要发送的话题;调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;将数据包发送至信息接收端;本发明可以有效地实现在多机器人通讯系统中实现消息的准确发送及接收,通过在话题序列号中增加话题发送次数和信息接收端编号,避免消息传输的准确性,减少通讯系统的信息传输错误。
Description
【技术领域】
本发明属于机器人通讯技术领域,尤其涉及一种基于ROS系统的多机器人通讯方法及装置。
【背景技术】
机器人是自动执行工作的及其装置,随着机器人领域的发展,机器人可以为人们干的事情越来越多。ROS系统是一种机器人的管理系统,通常在单个机器人上进行应用,使用一个数据管理器对数据进行管理。
近年来,机器人的应用领域从单个机器人在单一环境下的应用逐渐发展到多机器人在多场景环境下应用。这就要求管理人员必须统筹规划各个机器人的工作内容,当机器人的数量较多时,这项工作会越来越复杂,需要消耗大量的人力资源去管理机器人。随之出现的是基于局域网的多机通讯方法,但是,随着机器人的传感器和执行器的增加,机器人所产生和执行控制的数据量大幅增加,各种信息数量庞大,经常会出现信息错误或者其他未知错误。
【发明内容】
本发明的目的是提供一种基于ROS系统的多机器人通讯方法及装置,以实现多机器人系统中各个机器人之间或者机器人与控制终端之间的实时通讯。
本发明采用以下技术方案:一种基于ROS系统的多机器人通讯方法,应用于多机器人系统中信息发送端,具体包括以下步骤:
在当前ROS系统中订阅要发送的话题;
调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;
将数据包发送至信息接收端。
进一步地,将数据包发出包括:
将数据包通过预先指定的端口发送至信息接收端;其中,预先指定的端口为多机器人系统中控制终端为当前信息发送端中的话题分配的空闲上行端口。
进一步地,将数据包通过预先指定的端口发送至信息接收端后还包括:
接收返回信息;其中,返回信息为信息接收端对数据包解析并得到正确信息后发出的返回信息。
进一步地,将数据包通过预先指定的端口发送至信息接收端后还包括:
当未在预定时间内接收到返回信息时,重复发送数据包,直至接收到返回信息。
本发明的另一种技术方案:一种基于ROS系统的多机器人通讯装置,应用于多机器人系统中信息发送端,具体包括以下步骤:
订阅模块,用于在当前ROS系统中订阅要发送的话题;
调用模块,用于调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
生成模块,用于根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;
发送模块,用于将数据包发送至信息接收端。
本发明的再一种技术方案:一种基于ROS系统的多机器人通讯方法,应用于多机器人系统中信息接收端,具体包括以下步骤:
接收数据包;其中,数据包为信息发送端发出的数据包,数据包包括信息发送端的ROS系统时间、发送话题序列号、话题类型和话题内容;
解析数据包,得到发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
验证发送话题序列号;
当验证正确时,向信息发送端发送返回信息。
进一步地,验证发送话题序列号包括:
提取话题序列号中的信息接收端编号,并将接收端编号与当前信息接收端编号比较,当接收端编号与当前信息接收端编号相同时,根据话题序列号提取话题编号和发送次数编号;
根据话题编号调用当前信息接收端中与话题编号对应的接收次数编号;
比较发送次数编号和接收次数编号,当发送次数编号和接收次数编号满足第一条件时,发送返回消息;其中,第一条件为:a=b+1,a为发送次数编号,b为接收次数编号。
进一步地,发送返回消息包括:
返回信息通过预先指定的上行端口发送至信息发送端;预先指定的端口为多机器人系统中控制终端为当前信息接收端中的话题分配的空闲上行端口。
本发明的再一种技术方案:一种基于ROS系统的多机器人通讯装置,应用于多机器人系统中信息接收端,具体包括以下步骤:
接收模块,用于接收数据包;其中,数据包为信息发送端发出的数据包,数据包包括信息发送端的ROS系统时间、发送话题序列号、话题类型和话题内容;
解析模块,用于解析数据包,得到发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
验证模块,用于验证发送话题序列号;
发送模块,用于当验证正确时,向信息发送端发送返回信息。
本发明的再一种技术方案:一种基于ROS系统的多机器人通讯方法,应用于多机器人通讯系统,多机器人通讯系统至少包括控制终端和至少两个机器人;
控制终端用于当检测到有机器人接入该多机器人通讯系统时,为每个机器人分配IP地址;控制终端还用于根据当前ROS系统中的空闲端口建立空闲端口表,并根据空闲端口表为每个机器人分配上行端口及下行端口;
方法还包括:
信息发送端在其ROS系统中订阅要发送的话题;
调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;
将数据包发出;
信息接收端接收数据包;
解析数据包,得到发送话题序列号;
验证发送话题序列号;
当验证正确时,向信息发送端发送返回信息。
本发明的有益效果是:本发明通过在信息发送端根据ROS系统中的话题回调函数生成话题序列号,在通过话题序列号生成数据包,将信息发送至信息接收端中,可以有效地实现在多机器人通讯系统中实现消息的准确发送及接收,通过在话题序列号中增加话题发送次数和信息接收端编号,避免消息传输的准确性,减少通讯系统的信息传输错误。
【附图说明】
图1为本发明实施例中一种基于ROS系统的多机器人通讯方法的流程图;
图2为本发明另一实施例中一种基于ROS系统的多机器人通讯方法的流程图;
图3为本发明再一实施例中一种基于ROS系统的多机器人通讯装置示意图;
图4为本发明再一实施例中一种基于ROS系统的多机器人通讯装置示意图;
图5为本发明通讯方法的应用环境示意图;
图6为本发明实施例中机器人端的软件部署示意图;
图7为本发明实施例中发送话题序列号的组成示意图;
图8为采用本发明实施例中的通讯方法进行地图信息绘制时的过程示意图。
【具体实施方式】
下面结合附图和具体实施方式对本发明进行详细说明。
本发明实施例公开了一种基于ROS系统的多机器人通讯方法,应用于多机器人系统中信息发送端,如图1所示,具体包括以下步骤:
步骤S110、在当前ROS系统中订阅要发送的话题;步骤S120、调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;步骤S130、根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;步骤S140、将数据包发送至信息接收端;步骤S150、将发送次数加1。
通过在信息发送端根据ROS系统中的话题回调函数生成话题序列号,在通过话题序列号生成数据包,将信息发送至信息接收端中,可以有效地实现在多机器人通讯系统中实现消息的准确发送及接收,通过在话题序列号中增加话题发送次数和信息接收端编号,避免消息传输的准确性,减少通讯系统的信息传输错误。
在本发明实施例中,多机器人通讯系统中的每个终端都将运行一个自己的ROS系统,管理本终端的相关数据。此外,每个终端都将运行一个数据发布与订阅节点用于进行通讯,简称通信节点,在通信节点中将主要包括以下算法和协议。
在本发明中,局域网内通信主要是通过socket端口方式进行,每个话题将进行数据打包后通过Socket端口发出。因此在通信过程中,需要固定进行通讯的IP地址和端口号。
在每个终端接入多机系统时,控制终端将给每个终端(即机器人)分配一个固定的IP地址,该地址将作为每个终端在系统中的唯一身份识别码。
在通讯过程中,每个终端需要发送的话题都将到分配到一个端口号进行通讯。由于端口数量是有限的,因此,需要对端口号进行动态分配。首先生成一张空闲端口表,根据端口号顺序依次赋予编号,在后续程序中将直接通过编号来调用对应的端口号。
在该实施例中,假定该多机器人通讯系统用来完成某地的地图绘制,则机器人端需要向控制终端实时发送地图(具体为激光雷达数据,表示每个地图上的坐标点的表示方式)、传感器数据(如激光雷达传感器,MU数据,感性传感器数据,视觉传感器)和位姿数据(机器人在整个地图中的坐标位置,俯仰角、偏航角等),该类机器人传输该类信息的端口称为数据上行端口。控制终端需要向机器人端发送速度和目标点信息,称为数据下行端口。在完成端口分配后,即进行上述方法进行数据的传输交互。
由于每个终端的ROS系统时间可能存在较大的差异,因此,在发送信息时打上时间戳(即ROS系统运行时间),这样就可以检测信息发送的时间间隔,如果时间间隔长了,说明有可能漏掉信息,采用该方法以便时间数据同步。
发送话题序列号在本实施例中是针对相关话题内容提出的一个数据校验号码,如图7所示,发送话题序列号将根据发送终端编号+话题编号+话题发送次数生成,每完成一次发送,话题发送次数就会自行加1,当接收方接收到数据时,通过解析话题序列号就可以知道数据的来源,通过判断当前的话题发送次数与之前接收到的话题发送次数是否连续来判断通讯间隔中是否丢失了相关数据包。例如,当前计数是2,接收到的是4,可以返回消息,具体以标志符的格式发送,信息发送端和接收端进行数据清空,当前接收的数据不采用,并重新计数。通过这种数据打包方式可以有效提高数据通信的可靠性。
在ROS系统中数据订阅发送流程为:启动数据发送程序,首先订阅需要发送的话题,等待该话题更新。如果该话题更新则调用该话题对应的回调函数,在回调函数中,根据发送方和接收方,以及话题编号和当前记录的发送次数生成话题的序列号。根据数据打包协议,将话题数据生成数据包协议并发送至socket端口。等待返回的发送结果,如果发送成功则继续等待话题更新,如果没有发送成功,则应该循环发送直至发送成功。
作为一种可能的实现方式,将数据包发出包括:
将数据包通过预先指定的端口发送至信息接收端;其中,预先指定的端口为多机器人系统中控制终端为当前信息发送端中的话题分配的空闲上行端口。通过控制终端为ROS系统中每个不同的话题分配不同的空闲上行端口,从端口端有效对机器人终端发送的信息进行梳理,避免信息发送错误。
在本发明实施例中,将数据包通过预先指定的端口发送至信息接收端后还包括:接收返回信息;其中,返回信息为信息接收端对数据包解析并得到正确信息后发出的返回信息。为了监控所发出的信息是否被信息接收端接收,所以,在将数据包发出之后,等到信息接收端发出的返回信息,通常情况下,该返回信息为一标识符,传输方便,且能保证信息传输不会发丢失。
具体的,将数据包通过预先指定的端口发送至信息接收端后还包括:当未在预定时间内接收到返回信息时,重复发送数据包,直至接收到返回信息。由于发送信息后,当数据包被信息接收端所接收,并发送返回信息,这个过程的传输时间可控,如果在预定的时间内未接受到返回信息,可能是信息在传输途中丢失,还有可能是数据包未被信息接收端成功解析,因此,为了保证信息传输的完整性,该信息发送端会重复发送未成功发送的数据包,直到收到返回消息。
在本发明实施例中,信息发送端可以是机器人端,也可是控制终端,信息接收端可以是机器人端,也可以是控制终端,也就是说该发明的方法并不会对终端进行限制,进而可以对整个系统中的端口进行随意扩展。
在本发明另一实施例中,如图3所示,公开了一种基于ROS系统的多机器人通讯装置,应用于多机器人系统中信息发送端,具体包括以下步骤:
订阅模块110,用于在当前ROS系统中订阅要发送的话题;
调用模块120,用于调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
生成模块130,用于根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;
发送模块140,用于将数据包发送至信息接收端。
本发明的再一种实施例公开了一种基于ROS系统的多机器人通讯方法,应用于多机器人系统中信息接收端,如图2所示,具体包括以下步骤:
步骤S210、接收数据包;其中,数据包为信息发送端发出的数据包,数据包包括信息发送端的ROS系统时间、发送话题序列号、话题类型和话题内容;步骤S220、解析数据包,得到发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;步骤S230、验证发送话题序列号;步骤S240、当验证正确时,向信息发送端发送返回信息。
数据接收发布程序中,首先完成对端口的初始化,使端口处于等待连接的状态并监听端口状态。当端口接收到相关数据产生更新时,对数据进行解析,分解出序列码,判断接收方编号和自身编号是否一致,根据序列码中的话题编号判断该话题已经接收的次数与自身记录是否一致,如果通过校验则根据发送话题序列号中的话题编号进行发布,以使在信息接收端中的当前ROS子系统发到另外的ROS子系统,并返回接收成功消息(标识符形式),重新进入监听状态。
本发明实施例中,通过物理拓扑网络中通讯方式互补,能够有效维持机器人之间的数据交互和控制,通过话题序列码机制,对话题信息进行二次校验,大大提高了数据通讯的可靠性。该发明能够为后续的多机器人实验研究提供一种简单高效的数据交互方式。
该方法应用于信息接收端,并与应用于信息发送端的通讯方法互相对应互相补充。具体的,该方法中验证发送话题序列号包括:
提取话题序列号中的信息接收端编号,并将接收端编号与当前信息接收端编号比较,当接收端编号与当前信息接收端编号相同时,根据话题序列号提取话题编号和发送次数编号;根据话题编号调用当前信息接收端中与话题编号对应的接收次数编号;比较发送次数编号和接收次数编号,当发送次数编号和接收次数编号满足第一条件时,发送返回消息;其中,第一条件为:a=b+1,a为发送次数编号,b为接收次数编号。
具体的,发送返回消息包括:
返回信息通过预先指定的上行端口发送至信息发送端;所述预先指定的端口为所述多机器人系统中控制终端为当前信息接收端中的所述话题分配的空闲上行端口。
本发明的再一实施例中,公开了一种基于ROS系统的多机器人通讯装置,应用于多机器人系统中信息接收端,如图4所示,具体包括以下步骤:
接收模块210,用于接收数据包;其中,数据包为信息发送端发出的数据包,数据包包括信息发送端的ROS系统时间、发送话题序列号、话题类型和话题内容;
解析模块220,用于解析数据包,得到发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
验证模块230,用于验证发送话题序列号;
发送模块240,用于当验证正确时,向信息发送端发送返回信息。
本发明的再一种实施例中,公开了一种基于ROS系统的多机器人通讯方法,应用于多机器人通讯系统,多机器人通讯系统至少包括控制终端和至少两个机器人。在本实施例中,如图5所示,硬件设备包括一个控制终端,一个局域网路由器,一个5G通讯模块,一个主机器人终端和若干个子机器人终端。
控制终端主要部署在用户端,主要和用户进行人机交互,用户可以通过数据终端查询订阅每个机器人的相关数据和状态,并且可以对每个机器人进行在线控制发布相应的控制指令。
局域网路由器主要部署在主机器人上,将会跟随主机器人进行运动,对在主机器人附近运动的子机器人进行通讯覆盖,当主机器人与控制终端距离较近时,控制终端可以直接通过无线接入方式接入多机器人系统进行监控和通讯,当主机器人与控制终端距离较远时,将切换至5G通讯方式,控制终端将通过虚拟局域网的方式接入多机系统,此时为了保证通讯速率,将会对通讯内容和数据量进行限制,具体为限制传输的数据包的大小。
5G通讯模块也将搭载在主机器人上,并将跟随主机器人实时移动,当通讯距离渐远时,系统将启用5G模块进行数据通讯,控制终端通过虚拟局域网的方式进行接入。
主机器人终端是指在多机任务系统中担任主要任务角色的机器人终端,主机器人终端搭载了最为完善的传感器系统和通讯系统,能够对环境进行更为广阔的监测,能够对子机器人进行实时的任务分配和规划,在多机通讯机制将主要承担数据中继方式,根据与控制终端的距离远近实时切换通讯方式(超过两三百米,切换5G,通过各个终端上携带的GPS定位,根据各终端之间的定位计算距离差),并且实时监控子机器人位置,确保每个子机器人在主机器人的通讯覆盖范围之内(任务从主机器人获取子机器人的坐标,超过距离时不要求执行,或者是主机器人移动)。
子机器人终端是多机系统的末端执行机构,通过控制器自带的无线网卡接入主机器人开设的无线网络之中,根据控制终端和主机器人的任务需求返回对应的数据,并根据接收到的控制命令进行相关任务。
在该通讯系统中控制终端用于当检测到有机器人接入该多机器人通讯系统时,为每个机器人分配IP地址;控制终端还用于根据当前ROS系统中的空闲端口建立空闲端口表,并根据空闲端口表为每个机器人分配上行端口及下行端口。通过预先为每个机器人分配IP地址,在为每个机器人分配对应的上行下行端口,可以使得信息在传输的过程中安全性更高,准确性更强。
更进一步的,该方法包括:
信息发送端在其ROS系统中订阅要发送的话题;调用话题的回调函数生成发送话题序列号;其中,发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;根据发送话题序列号生成数据包;其中,数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;将数据包发出。以上为信息发送端的步骤。
在信息接收端还进行下述步骤,信息接收端接收数据包;解析数据包,得到发送话题序列号;验证发送话题序列号;当验证正确时,向信息发送端发送返回信息。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
在本发明在实际部署场景中,图5中的主机器人首先上电,车载的路由器开始工作,在主机器人附近工作的子机器人开始搜索并接入无线局域网中,由于在从机器人中已经对从机器人的IP地址进行果过设定,因此在接入局域网后每个从机器人都会分配到一个在网络内唯一的IP地址作为身份的唯一识别码。按IP地址最后三个数据的顺序形成机器人的ID号,并发送给主机器人记录,完成机器人群体的组网。
控制终端计算自身位置与主机器人的相对距离,当距离较远时,控制终端通过5G网络与主机器人进行通讯,通过5G网络模块形成一个虚拟局域网;当距离较近时,则通过无线局域网方式直接接入机器人网络。
在各个终端部署的程序如图6所示,在实际使用中,完成组网之后,控制终端将统计组网内机器人数量以及需要进行数据通讯的话题个数,以统计多机通讯所需的端口数量。读取网络内目前空闲的端口数量并进行分配,在分配时将根据一个机器人的一个话题占用一个端口的原则进行分配,生成端口分配表,以供进行通讯时进行调用。根据socket方式的通讯原则,首先在每个数据接收端开始运行数据接收程序,根据接收方的IP地址和话题对应的端口来打开socket的端口服务器等待数据发送方进行连接,对端口进行监听。
在每个数据发送端开始数据发送程序,根据数据接收方的IP地址和话题来打开socket的端口客户端准备连接到对应的端口服务器端。当需要发送的话题信息进行更新时,开始执行数据发送流程,话题数据更新后调用话题的回调函数,在回调函数中生成发送话题序列号。按照当前ROS系统时间、信息序列号、话题类型、话题具体内容的顺序生成字符串数据包内容发送到socket端口进行数据发送,等待socket的发送反馈数据,当发送成功时,则关闭端口连接完成一次发送,当发送失败时则循环发送直至发送成功。
数据接收方监听到对应端口有数据进入时则执行数据处理流程。首先对接收到的字符串数据进行解析,分离出话题序列号进行校验,当校验通过时,则执行话题发布程序,根据数据对应的话题格式进行发布。当校验不通过时,则关闭当前端口,提示数据发送方数据发送错误信息之后,会继续监听。
运行实施例:
在本运行实施例中描述了运行多机器人协同地图构建任务,采用了本发明的放大,通过一个控制终端和两个机器人实现对某指定区域的地图绘制,在控制终端中安装有地图绘制软件。实际运用过程如下:
在运行过程中,系统由一个控制终端和二个子机器人组成,子机器人使用自身传感器对所处区域进行环境地图构建,并将构建的地图,激光雷达数据和里程计数据使用本发明方法发送给控制终端,控制终端运行地图融合拼接软件将子机器人的地图拼接形成一张完整的全局地图。主要实施步骤如下。
第一步,控制终端和二个子机器人开机后自主接入同一局域网,获取在局域网内的唯一IP地址。例如,控制终端IP地址为(192.168.1.100),二个子机器人分别对应的IP地址为(192.168.1.101)和(192.168.1.102)。在子机器人端运行Gmapping程序进行地图构建,该程序订阅激光雷达数据话题(/scan)和机器人的里程计数据话题(/odom),根据两个话题的数据生成并输出局部地图(/map)。运行Move_base程序进行子机器人的运动控制,主要订阅路径话题(/path)和速度控制话题(/cmd_vel)。程序部署如图6所示。
根据当前端口实际占用情况,每个子机器人需要三个端口作为数据上行端口,因此,将(9000、9001、9002)端口分配给机器人1,将(9003、9004、9005)端口分配给机器人2。
控制终端将根据生成的全局地图将进行路径规划,生成每个子机器人的路径(/path)和速度控制指令(/cmd_vel)并发送给子机器人,因此,每个子机器人需要有两个数据下行端口,共占用四个端口,其中将(9009、9010)端口分配给机器人1,将(9010、9011)端口分配给机器人2。完成端口分配之后,在控制终端运行子机器人数据接收程序,在每个子机器人端运行控制数据接收程序,打开各自对应端口等待连接。
第二步,子机器人打开每个话题对应的数据订阅发送程序。每当地图数据、激光雷达数据或者里程计数据更新时,就调用一次对应的回调函数连接对应的通讯端口,生成话题序列号之后打包成数据包之后,通过指定端口发送到控制终端。控制终端在数据包到达之后进行数据解析,并根据端口号来判断数据发送方,在话题前增加机器人编号后进行发布,例如在接收到9000端口发来的机器人1地图数据时,则按照/robot1/map的话题名称进行发布,其他端口数据以此类推。完成发布后结束当前连接状态,等待下一次连接。
第三步,控制终端运行地图拼接融合程序,将子机器人构建的局部地图合并生成一张全局地图并进行发布。运行多机器人路径规划程序后,生成每个机器人的运行轨迹话题(/robot/path)和对应的速度指令话题(/robot/cmd_vel),为机器人编号,每个话题更新之后调用对应程序通过端口发送给每个子机器人,子机器人根据路径和速度指令运动。
第四步,结束。
应用本运行实施例的实验过程及结果,如图8所示。实验显示子机器人自行构建局部地图,通过本发明的方式将对应数据发送到控制终端,在控制终端生成了全局地图。
Claims (10)
1.一种基于ROS系统的多机器人通讯方法,其特征在于,应用于多机器人系统中信息发送端,具体包括以下步骤:
在当前ROS系统中订阅要发送的话题;
调用所述话题的回调函数生成发送话题序列号;其中,所述发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
根据所述发送话题序列号生成数据包;其中,所述数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;
将所述数据包发送至信息接收端。
2.如权利要求1所述的一种基于ROS系统的多机器人通讯方法,其特征在于,将所述数据包发出包括:
将所述数据包通过预先指定的端口发送至信息接收端;其中,所述预先指定的端口为所述多机器人系统中控制终端为当前信息发送端中的所述话题分配的空闲上行端口。
3.如权利要求2所述的一种基于ROS系统的多机器人通讯方法,其特征在于,将所述数据包通过预先指定的端口发送至信息接收端后还包括:
接收返回信息;其中,所述返回信息为信息接收端对所述数据包解析并得到正确信息后发出的返回信息。
4.如权利要求3所述的一种基于ROS系统的多机器人通讯方法,其特征在于,将所述数据包通过预先指定的端口发送至信息接收端后还包括:
当未在预定时间内接收到所述返回信息时,重复发送所述数据包,直至接收到所述返回信息。
5.一种基于ROS系统的多机器人通讯装置,其特征在于,应用于多机器人系统中信息发送端,具体包括:
订阅模块,用于在当前ROS系统中订阅要发送的话题;
调用模块,用于调用所述话题的回调函数生成发送话题序列号;其中,所述发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
生成模块,用于根据所述发送话题序列号生成数据包;其中,所述数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;
发送模块,用于将所述数据包发送至信息接收端。
6.一种基于ROS系统的多机器人通讯方法,其特征在于,应用于多机器人系统中信息接收端,具体包括以下步骤:
接收数据包;其中,所述数据包为信息发送端发出的数据包,所述数据包包括信息发送端的ROS系统时间、发送话题序列号、话题类型和话题内容;
解析所述数据包,得到所述发送话题序列号;其中,所述发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
验证所述发送话题序列号;
当验证正确时,向所述信息发送端发送返回信息。
7.如权利要求6所述的一种基于ROS系统的多机器人通讯方法,其特征在于,验证所述发送话题序列号包括:
提取所述话题序列号中的所述信息接收端编号,并将所述接收端编号与当前信息接收端编号比较,当所述接收端编号与所述当前信息接收端编号相同时,根据所述话题序列号提取所述话题编号和发送次数编号;
根据所述话题编号调用当前信息接收端中与所述话题编号对应的接收次数编号;
比较所述发送次数编号和接收次数编号,当所述发送次数编号和接收次数编号满足第一条件时,发送返回消息;其中,所述第一条件为:a=b+1,a为发送次数编号,b为接收次数编号。
8.权利要求5所述的一种基于ROS系统的多机器人通讯方法,其特征在于,发送返回消息包括:
所述返回信息通过预先指定的上行端口发送至信息发送端;所述预先指定的端口为所述多机器人系统中控制终端为当前信息接收端中的所述话题分配的空闲上行端口。
9.一种基于ROS系统的多机器人通讯装置,其特征在于,应用于多机器人系统中信息接收端,具体包括:
接收模块,用于接收数据包;其中,所述数据包为信息发送端发出的数据包,所述数据包包括信息发送端的ROS系统时间、发送话题序列号、话题类型和话题内容;
解析模块,用于解析所述数据包,得到所述发送话题序列号;其中,所述发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
验证模块,用于验证所述发送话题序列号;
发送模块,用于当验证正确时,向所述信息发送端发送返回信息。
10.一种基于ROS系统的多机器人通讯方法,其特征在于,应用于多机器人通讯系统,所述多机器人通讯系统至少包括控制终端和至少两个机器人;
所述控制终端用于当检测到有机器人接入该多机器人通讯系统时,为每个所述机器人分配IP地址;所述控制终端还用于根据当前ROS系统中的空闲端口建立空闲端口表,并根据所述空闲端口表为每个机器人分配上行端口及下行端口;
所述方法还包括:
所述信息发送端在其ROS系统中订阅要发送的话题;
调用所述话题的回调函数生成发送话题序列号;其中,所述发送话题序列号由信息发送端编号、信息接收端编号、话题编号和发送次数编号构成;
根据所述发送话题序列号生成数据包;其中,所述数据包包括当前ROS系统时间、发送话题序列号、话题类型和话题内容;
将所述数据包发出;
所述信息接收端接收所述数据包;
解析所述数据包,得到所述发送话题序列号;
验证所述发送话题序列号;
当验证正确时,向所述信息发送端发送返回信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010390663.4A CN111614741A (zh) | 2020-05-11 | 2020-05-11 | 一种基于ros系统的多机器人通讯方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010390663.4A CN111614741A (zh) | 2020-05-11 | 2020-05-11 | 一种基于ros系统的多机器人通讯方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111614741A true CN111614741A (zh) | 2020-09-01 |
Family
ID=72197614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010390663.4A Pending CN111614741A (zh) | 2020-05-11 | 2020-05-11 | 一种基于ros系统的多机器人通讯方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614741A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873189A (zh) * | 2021-12-06 | 2021-12-31 | 江铃汽车股份有限公司 | 一种数据处理方法、装置、存储介质及设备 |
CN114253211A (zh) * | 2021-12-15 | 2022-03-29 | 意欧斯智能科技股份有限公司 | 一种plc与上位机wcs信号交互验证的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110054684A1 (en) * | 2009-09-01 | 2011-03-03 | Electronics And Telecommunications Research Institute | Method and system for transferring/acquiring operation right of moving robot in multi-operator multi-robot environment |
CN107798016A (zh) * | 2016-09-06 | 2018-03-13 | 北京百度网讯科技有限公司 | 用于机器人操作系统的数据传输方法和装置 |
CN110587606A (zh) * | 2019-09-18 | 2019-12-20 | 中国人民解放军国防科技大学 | 一种面向开放场景的多机器人自主协同搜救方法 |
CN110598783A (zh) * | 2019-09-10 | 2019-12-20 | 中国科学技术大学 | 基于分布式移动机器人系统的视觉一致性方法 |
CN110955536A (zh) * | 2019-11-25 | 2020-04-03 | 中国科学院自动化研究所 | 用于连接ros的通讯系统 |
-
2020
- 2020-05-11 CN CN202010390663.4A patent/CN111614741A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110054684A1 (en) * | 2009-09-01 | 2011-03-03 | Electronics And Telecommunications Research Institute | Method and system for transferring/acquiring operation right of moving robot in multi-operator multi-robot environment |
CN107798016A (zh) * | 2016-09-06 | 2018-03-13 | 北京百度网讯科技有限公司 | 用于机器人操作系统的数据传输方法和装置 |
CN110598783A (zh) * | 2019-09-10 | 2019-12-20 | 中国科学技术大学 | 基于分布式移动机器人系统的视觉一致性方法 |
CN110587606A (zh) * | 2019-09-18 | 2019-12-20 | 中国人民解放军国防科技大学 | 一种面向开放场景的多机器人自主协同搜救方法 |
CN110955536A (zh) * | 2019-11-25 | 2020-04-03 | 中国科学院自动化研究所 | 用于连接ros的通讯系统 |
Non-Patent Citations (1)
Title |
---|
钟兴: "基于时延预测的无人机集群控制技术及系统", 《中国优秀硕士学位论文全文数据库(工程科技Ⅱ辑)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873189A (zh) * | 2021-12-06 | 2021-12-31 | 江铃汽车股份有限公司 | 一种数据处理方法、装置、存储介质及设备 |
CN114253211A (zh) * | 2021-12-15 | 2022-03-29 | 意欧斯智能科技股份有限公司 | 一种plc与上位机wcs信号交互验证的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416840B (zh) | 一种计算资源的远程映射方法、装置、设备及存储介质 | |
EP1941334B1 (en) | Unmanned air vehicle interoperability agent | |
WO2022001120A1 (zh) | 一种多智能体系统及其控制方法 | |
CN111443990B (zh) | 一种边缘计算任务迁移仿真系统 | |
WO2020258967A1 (zh) | 工业应用服务处理方法和系统 | |
CN108306804A (zh) | 一种Ethercat主站控制器及其通信方法和系统 | |
CN112340557A (zh) | 呼梯信息的处理方法、控制板和存储介质 | |
CN111614741A (zh) | 一种基于ros系统的多机器人通讯方法及装置 | |
CN107959620B (zh) | 综采设备识别方法、装置、系统、网关及存储介质 | |
CN106169994B (zh) | 容器间通信的安全控制方法及装置 | |
CN108737169A (zh) | 一种基于sdn的异构工业网络集中式融合管理方法 | |
CN106506515A (zh) | 一种认证方法和装置 | |
CN112585927A (zh) | 通信链路的检测方法、装置、系统和可移动平台 | |
CN116827854A (zh) | 一种基于冗余信息反馈的车载通信系统及方法 | |
CN114124952B (zh) | 一种数据采集设备的云平台接入系统和方法 | |
CN113873033B (zh) | 一种具有容错功能的智能边缘计算网关平台 | |
CN113572817B (zh) | 云平台下的车载接口平台系统及通信系统 | |
CN112689000A (zh) | 一种基于vnc工具的远程桌面控制系统及方法 | |
KR20200054838A (ko) | 모드버스 프로토콜 변환과 연동 방법, 및 이를 수행하는 장치들 | |
CN105827468B (zh) | 网络性能实时监控方法 | |
CN110597192A (zh) | 工作流程执行方法、系统和存储介质 | |
CN116389513B (zh) | 基于云架构的多机器人视觉协同通信控制方法及系统 | |
CN113949628B (zh) | 设备自动添加方法和系统 | |
CN113543049B (zh) | 信息处理方法、装置和业务服务器 | |
CN115037639B (zh) | 边缘数据平台接口信息的处理方法、装置、设备及介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200901 |