CN113301121A - 一种机器人遥操作中指令的传输方法及系统 - Google Patents
一种机器人遥操作中指令的传输方法及系统 Download PDFInfo
- Publication number
- CN113301121A CN113301121A CN202110481885.1A CN202110481885A CN113301121A CN 113301121 A CN113301121 A CN 113301121A CN 202110481885 A CN202110481885 A CN 202110481885A CN 113301121 A CN113301121 A CN 113301121A
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- character string
- length
- execution cycle
- 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.)
- Granted
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/14—Session management
- H04L67/141—Setup of application sessions
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C19/00—Electric signal transmission systems
-
- 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
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Manipulator (AREA)
Abstract
本发明实施例提供了一种机器人遥操作中指令的传输方法及系统。其中,一种机器人遥操作中指令的传输方法,应用于机器人的接收端,通过与发送端之间的多条通信链路接收发送端发送的多份指令封装包,并将多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后得到拼接字符串;当拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据;从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于目标指令数据进行接收端的控制。本方案可以减少机器人遥操作中指令数据的粘连和拆分,以及传输时延。
Description
技术领域
本发明涉及机器人技术领域,特别是涉及一种机器人遥操作中指令的传输方法及系统。
背景技术
随着技术的发展,可以提高作业效率、安全性以及便捷性的可进行遥操作的机器人应运而生。具体的,可进行遥操作的机器人可以包括控制端也就是主端,以及远离主端的操作端也就是从端,其中,主端通过与从端之间的远程通信控制从端工作,实现机器人遥操作。并且,由于机器人在进行遥操作时对主从端指令交互的可靠性要求非常严格,因此,主端和从端之间采用传输控制协议(Transmission Control Protocol,TCP)进行通信。
在进行机器人遥操作中指令的传输时,可以将主从端中发送指令数据的一端看作发送端,接收指令数据的一端看作接收端。其中,发送端发送的指令数据为大小不等的数据块,但是,TCP通信是基于字节流的,这样所传输的指令数据会被看作一连串无结构的字节流,导致接收端在接收指令数据时出现多个指令数据粘连或单个指令数据被拆分的情况。具体的,发送端在进行指令传输时,把要发送的指令数据暂存在发送缓冲区等待发送。若发送的指令数据长度过小,调用TCP的Nagle算法,等待后面的指令数据进入到缓冲区后进行合并,并根据发送窗口的大小截取缓冲区里的指令数据发送出去,于是发送端要发送的指令数据在TCP发送缓冲区产生了指令粘连或拆分的情况。示例性的,如图1所示,指令数据P1和指令数据P2粘连;指令数据P1被拆分为P11和P11,且P12和指令数据P2粘连;指令数据P2被拆分为P21和P22,且P21和指令数据P1粘连等等。并且,接收端在接收指令数据时也会把数据暂存在指令接收缓冲区中,等待进程读取缓冲区里的数据。若控制程序没有及时地对缓冲区里的数据进行读取和取出,后面带来的指令数据会并入缓冲区末尾,同样造成指令数据粘连和拆分的情况。可见,上述黏连和拆分的情况均会导致指令数据发生错误,若将错误的指令数据直接传递给机器人,会导致机器人指令异常而停止工作或者进行异常操作,影响机器人的性能。
发明内容
本发明实施例的目的在于提供一种机器人遥操作中指令的传输方法及系统,以实现减少机器人遥操作中指令数据的粘连和拆分,提高机器人的性能的效果。具体技术方案如下:
第一方面,本发明实施例提供一种机器人遥操作中指令的传输方法,应用于机器人的接收端,所述机器人还包括发送端;所述方法包括:
建立与所述发送端之间的多条通信链路;
通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;其中,所述多份指令封装包均相同,且分别与所述多条通信链路一一对应;任一指令封装包为所述发送端将指令数据封装为预设指令长度得到的数据;
分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;
当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为指令数据,以及对所述拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据;
从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
第二方面,本发明实施例提供一种机器人遥操作中指令的传输方法,应用于机器人的发送端,所述机器人还包括接收端;所述方法包括:
建立与所述接收端之间的多条通信链路;
将指令数据封装为预设指令长度得到指令封装包,并基于所述指令封装包,获得多份分别与所述多条通信链路一一对应的相同的指令封装包;
针对所述多份指令封装包,通过该指令封装包对应的通信链路发送该指令封装包给所述接收端,以使得所述接收端执行如下步骤:
通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;
分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;
当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为指令数据,以及对所述拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据;
从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
第三方面,本发明实施例提供一种机器人遥操作中指令的传输系统,所述系统包括:机器人的接收端以及发送端;所述接收端与所述发送端之间建立有多条通信链路;
所述发送端,用于将指令数据封装为预设指令长度得到指令封装包,并基于所述指令封装包,获得多份分别与所述多条通信链路一一对应的相同的指令封装包;针对所述多份指令封装包,通过该指令封装包对应的通信链路发送该指令封装包给所述接收端;
所述接收端,用于通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为指令数据,以及对所述拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个消息接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据;从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
本发明实施例有益效果:
本发明实施例提供的方案中,指令封装包为机器人的发送端将指令数据封装为预设指令长度得到的数据;并且,机器人的接收端从指令接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串。其中,在进行一个执行周期的首次拼接时当前字符串为预设空字符串;当拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据,进而从多个候选指令数据中确定属于本次执行周期的目标指令数据,可以保证得到的目标指令数据为一个完整指令数据。并且,对拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,进而对后续指令封装包进行同样的拆封处理,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据,保证在接收端和发送端的指令交互过程中,每次拼接字符串的长度等于预设指令长度时,均可得到的指令数据为一个完整指令数据。并且,通过多条通信链路接收端可以有效降低因TCP通信存在的时延波动累积影响而造成的指令传输时延扰动,进而降低主从端指令交互整体的传输时延。可见,本方案可以减少机器人遥操作中指令数据的粘连和拆分,以及遥操作中指令的传输时延,提高机器人的性能。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为机器人遥操作中指令粘连和拆分情况示例图;
图2为本发明一实施例提供的一种机器人遥操作中指令的传输方法的应用场景示例图;
图3为本发明一实施例提供的一种机器人遥操作中指令的传输方法的流程示意图;
图4为本发明另一实施例提供的一种机器人遥操作中指令的传输方法中,获取指令数据的流程示意图;
图5为本发明另一实施例提供的一种机器人遥操作中指令的传输方法的应用场景示例图;
图6为本发明另一实施例提供的一种机器人遥操作中指令的传输方法的流程示意图;
图7为本发明一实施例提供的一种机器人遥操作中指令的传输系统的结构示意图;
图8为本发明一实施例提供的机器人接收端的结构示意图;
图9为本发明一实施例提供的机器人发送端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种机器人遥操作中指令的传输方法,可以应用于机器人的接收端。示例性的,如图2所示。机器人可以包括控制端也就是主端,以及远离主端的操作端也就是从端,因此,机器人的主端和从端中一端为接收端时,另一端为发送端。其中,主端作为发送端,从端作为接收端时,指令数据可以为控制从端电机运动的运动指令。从端作为发送端,主端作为接收端时,指令数据可以为反馈从端状态的状态指令。在具体应用中,上述机器人可以为手术机器人以及海底作业机器人等等。
在具体应用中,机器人控制程序的运行周期一般是10ms左右,即每十毫秒机器人主端会发送出一次动作指令,而这些指令数据暂时存放在TCP的发送缓冲区里,排队等待发送。并且,TCP是面向连接的可靠通信,在TCP通信过程中,TCP接收端收到报文段后需向发送端回复一个确认字符(Acknowledge character,ACK),发送端接收到ACK后才会往下发送新的报文段。在进行跨地域远程通信时,发送出去的数据包到接收方及接收方接收数据后返回ACK至发送方的这一往返过程存在较大的网络时延。若网络环境较差,这一网络时延将会出现大的扰动,使得TCP发送端缓冲区发送数据的速率减慢。但待发送数据进入缓冲区的速率没变,导致缓冲区里的数据不断增加,且在缓冲区里等待发送的数据的排队时间会增大,因此,从准备发送数据至到达接收端的总传输时延因等待发送的排队时间的增大而增大。因此,机器人在利用TCP传输指令数据时,若出现网络环境较差的情况时,会使一批待传输的指令数据的传输时延出现影响累积的情况。直至网络环境回复,TCP缓冲区发送数据的速率变快以至于缓冲区里累积的指令数据能及时发送出去后,这种因累积影响使一批传输时延增大的现象会逐渐恢复为正常大小。上述所描述的时延累积影响会导致指令的传输时延存在的扰动现象加剧,影响机器人的性能。
为提高机器人的性能,本发明实施例提供一种机器人遥操作中指令的传输方法。
如图3所示,本发明一实施例提供的一种机器人遥操作中指令的传输方法,该方法可以包括如下步骤:
S301,建立与发送端之间的多条通信链路。
S302,通过多条通信链路,接收发送端发送的多份指令封装包,并将多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区。
其中,多份指令封装包均相同,且分别与多条通信链路一一对应;任一指令封装包为发送端将指令数据封装为预设指令长度得到的数据。
为了保证指令传输的可靠性,接收端和发送端之间采用TCP进行通信。因此,上述多条通信链路均为TCP通信链路,并且,每建立一条TCP通信链路相应存在TCP消息接收缓冲区,该TCP消息接收缓冲区即为上述消息接收缓冲区。
S303,分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串。
其中,在进行一个执行周期的首次拼接时当前字符串为预设空字符串。
在具体应用中,预设空字符串可以为任意字符串,该字符串为空即可。示例性的,可以预先创建空字符串‘recvStr’作为拆封指令封装包的操作空间。并且,可以调用套接字(Socket)接口来读取消息接收缓冲区中的数据。其中,Socket接口是应用程序通过网络协议进行通信的接口,用于完成两个应用程序之间的数据传输中消息的接收。
S304,当拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据,以及对拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行步骤S303,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据。
示例性的,可以通过字符串长度读取函数获得拼接字符串的长度,并将与设定的固定指令长度Len相比。当拼接字符串的长度等于预设指令长度时,那么该字符串的内容即为一个完整的指令封装包,拼接字符串中的数据即为一个指令数据。并且,为了处理后续接收的指令封装包,对拼接字符串赋空值作为当前字符串,并执行步骤S303。
为了便于理解和合理布局,后续以可选实施例的形式,对拼接字符串的长度不等于预设指令长度的情况进行具体说明。
S305,从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于目标指令数据,进行接收端的控制。
其中,从多个候选指令数据中确定属于本次执行周期的目标指令数据的方式可以是多种的。示例性的,当候选指令数据中携带执行周期的周期编号时,可以将多个候选指令中最先接收、且携带本次执行周期的周期编号的候选指令确定为目标指令数据。或者,示例性的,可以创建与多条通信链路一一对应的指令接收缓冲区,每个指令接收缓冲区划分有多个缓存单元,且每个缓存单元的单元编号与不同的执行周期对应。这样,可以将每个候选指令数据存入相应的缓存单元,从而遍历各各指令接收缓冲区中具有与当前的执行周期对应的单元编号的缓存单元,若缓存单元非空,取出缓存单元中的候选指令数据,作为目标指令数据。为了便于理解和合理布局,后续以可选实施例的形式对第二个示例性说明进行具体描述。
在具体应用中,电机驱动器针对不同的电机运行模式会有对应的数据控制协议,电机控制指令需按照对应的协议格式进行编写、封装成驱动器能识别的控制指令,继而控制电机运行。因此,当接收端为机器人的从端时,基于指令数据,进行接收端的控制,具体可以包括:根据电机驱动器的数据控制协议封装指令数据,并发送给电机驱动器,以控制电机运行。当接收端为机器人的从端时,基于指令数据,进行接收端的控制,具体可以包括:根据电机驱动器的数据控制协议封装指令数据,并发送给电机驱动器,以控制电机运行。
本发明实施例提供的方案中,在进行一个执行周期的首次拼接时当前字符串为预设空字符串;当拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据,进而从多个候选指令数据中确定属于本次执行周期的目标指令数据,可以保证得到的目标指令数据为一个完整指令数据。并且,对拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,进而对后续指令封装包进行同样的拆封处理,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据,保证在接收端和发送端的指令交互过程中,每次拼接字符串的长度等于预设指令长度时,均可得到的指令数据为一个完整指令数据。并且,通过多条通信链路接收端可以有效降低因TCP通信存在的时延波动累积影响而造成的指令传输时延扰动,进而降低主从端指令交互整体的传输时延。可见,本方案可以减少机器人遥操作中指令数据的粘连和拆分,以及遥操作中指令的传输时延,提高机器人的性能。
在一种可选的实施方式中,在上述分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串之后,本发明实施例提供的机器人遥操作中指令的传输方法,还可以包括如下步骤:
当拼接字符串的长度大于预设指令长度时,裁剪并拆封拼接字符串中前预设指令长度的数据作为指令数据;
将剪去指令数据后的拼接字符串作为本次执行周期的下一次拼接的当前字符串,并执行分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据。
在一种可选的实施方式中,在上述分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串之后,本发明实施例提供的机器人遥操作中指令的传输方法,还可以包括如下步骤:
当拼接字符串的长度小于预设指令长度时,执行分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据。
当拼接字符串的长度大于预设指令长度Len时,裁剪拼接字符串中前预设指令长度的数据,也就是拼接字符串的前Len字段内容,并对裁剪的内容进行拆封得到指令数据。这样,裁剪后的拼接字符串中数据是下一个指令数据的一部分,例如,图1所示,裁剪的内容为数据P1,裁剪后的拼接字符串中数据为数据P21,因此,将剪去指令数据后的拼接字符串作为本次执行周期的下一次拼接的当前字符串,执行上述从指令接收缓冲区中读取指定字节长度的数据,以保证下一次从指令接收缓冲区读取数据后,可以将数据P21和数据P22确定为指令数据,从而保证指令数据的完整。当上述拼接字符串的长度小于预设指令长度时,执行上述分别从每个指令接收缓冲区中读取指定字节长度的数据,以得到长度为预设指令长度的数据,也就是完整的指令数据。
为了便于理解,下面以示例性说明的形式,对上述获取指令数据的各实施例进行整合说明。示例性的,如图4所示,本发明另一实施例提供的一种机器人遥操作中指令的传输方法中,获取指令数据的流程,可以包括如下步骤:
S401,分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串。
其中,在进行一个执行周期的首次拼接时当前字符串为预设空字符串。
S402,当拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据,以及对拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行步骤S401,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据。
S403,当拼接字符串的长度大于预设指令长度时,裁剪并拆封拼接字符串中前预设指令长度的数据作为候选指令数据;将剪去指令数据后的拼接字符串作为本次执行周期的下一次拼接的当前字符串,并执行S401,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据。
S404,当拼接字符串的长度小于预设指令长度时,执行S401,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据。
本示例性说明与上述图1实施例和可选实施例中获取候选指令数据的过程相同,具体详见上述图1实施例和可选实施例的说明,在此不再赘述。
本实施例把机器人主从端的指令数据封装为固定长度的指令封装包后利用TCP通信进行传输交互。指令接收端能根据此固定长度对TCP接收缓冲区里的消息进行正确处理,提取出每个完整的指令信息。这样,有效解决机器人在利用TCP通信传输指令数据时出现的指令粘连和拆分问题,保证指令能进行有序、可靠的传输。
在一种可选的实施方式中,上述指令封装包中还封装有指令编号;指令编号与机器人遥操作的执行周期对应;
在上述建立与发送端之间的多条通信链路之后,本发明实施例提供的机器人遥操作中指令的传输方法,还可以包括如下步骤:
创建与多条通信链路一一对应的指令接收缓冲区;其中,每个指令接收缓冲区中划分有缓存单元,每个缓存单元的单元编号与不同的执行周期对应;
每个指令接收缓冲区中划分有缓存单元,每个缓存单元的单元编号与不同的执行周期对应;
相应的,上述从多个候选指令数据中确定属于本次执行周期的目标指令数据,具体可以包括如下步骤:
针对每个候选指令数据,将该候选指令数据存入目标缓存单元;其中,目标缓存单元为指令数据对应的指令接收缓冲区中,具有与当前的执行周期对应的单元编号的缓存单元;
访问各接收缓冲区中具有与当前的执行周期对应的单元编号的缓存单元,若缓存单元非空,取出缓存单元中的候选指令数据,作为本次执行周期的目标指令数据。
示例性的,如图5所示。以主端作为发送端,从端作为接收端,发送运动指令的过程为例。主从端之间建立n条通信链路:通信链路1,通信链路2,……通信链路n。接收端创建每条通信链路对应的指令接收缓冲区。例如,接收端可以通过开辟大小为1000的List_s1、List_s2,...,List_sn列表实现指令接收缓冲区的创建。并且,发送端对待发送的指令的封装具体可以为:在运动指令前加上指令编号Number_m,Number_m可以写为“abc”的固定格式,长度为三个字节,接着把含有运动指令和指令编号的数据封装成为长度为Len字节的指令封装包,并把指令封装包复制n份后通过n条通信链路发送给接收端。这样,接收端每次可读取n条通信链路传输的候选指令封装包中,最先拆封并存储在缓存单元中的候选指令数据作为目标指令数据,从而将目标指令数据用于执行相应的指令动作。因此,可以有效降低因TCP通信存在的时延波动累积影响而造成的指令传输时延扰动,进而降低主从端指令交互整体的传输时延。
并且,在封装得到指令封装包时,发送端中当前的执行周期编号可以作为指令编号添加到指令数据中。例如,当前的执行周期编号为Flag_m,则指令编号为Number_m,m即表明该指令编号属于周期Flag_m。并且,当前的执行周期编号取值可以为0到999,每执行完一个程序周期加一,以此循环。接收端在接收到指令封装包并拆封得到候选指令数据后,根据候选指令数据携带的指令编号把候选指令数据暂存在指令接收缓冲区中单元编号与该指令编号对应的缓存单元中。进而接收端对n个指令接收缓冲区进行遍历,访问单元编号为当前的执行周期编号也就是具有与当前的执行周期对应的单元编号的缓存单元,若非空则取出候选指令数据作为当前的执行周期要执行的目标指令数据,并停止对后面缓冲区的访问。这样,机器人主从端的指令数据在通过多个通信链路传输以降低传输时延的同时,可以有效保证指令数据以正确顺序的执行。
如图6所示,本发明一实施例提供的一种机器人遥操作中指令的传输方法,该方法可以包括如下步骤:
S601,机器人的发送端建立与接收端之间的多条通信链路;
S602,机器人的发送端将指令数据封装为预设指令长度得到指令封装包,并基于指令封装包,获得多份分别与多条通信链路一一对应的相同的指令封装包。
S603,机器人的发送端针对多份指令封装包,通过该指令封装包对应的通信链路发送该指令封装包给接收端。
S604,机器人的接收端通过多条通信链路,接收发送端发送的多份指令封装包,并将多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区。
S605,机器人的接收端分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串。
其中,在进行一个执行周期的首次拼接时当前字符串为预设空字符串。
S606,机器人的接收端在拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据,以及对拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行S605,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据。
S607,机器人的接收端从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于目标指令数据,进行接收端的控制。
本发明实施例提供的方案中,在进行一个执行周期的首次拼接时当前字符串为预设空字符串;当拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据,进而从多个候选指令数据中确定属于本次执行周期的目标指令数据,可以保证得到的目标指令数据为一个完整指令数据。并且,对拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,进而对后续指令封装包进行同样的拆封处理,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据,保证在接收端和发送端的指令交互过程中,每次拼接字符串的长度等于预设指令长度时,均可得到的指令数据为一个完整指令数据。并且,通过多条通信链路接收端可以有效降低因TCP通信存在的时延波动累积影响而造成的指令传输时延扰动,进而降低主从端指令交互整体的传输时延。可见,本方案可以减少机器人遥操作中指令数据的粘连和拆分,以及遥操作中指令的传输时延,提高机器人的性能。
在一种可选的实施方式中,上述将指令数据封装为预设指令长度得到指令封装包,具体可以包括如下步骤:
将指令数据和指令编号封装为预设指令长度得到指令封装包;其中,指令编号与机器人遥操作的执行周期对应,以使得接收端执行如下步骤:
在建立与所述发送端之间的多条通信链路之后,创建与所述多条通信链路一一对应的指令接收缓冲区;其中,每个指令接收缓冲区中划分有缓存单元,每个缓存单元的单元编号与不同的所述执行周期对应;
针对每个候选指令数据,将该候选指令数据存入目标缓存单元中;其中,所述目标缓存单元为所述指令数据对应的指令接收缓冲区中,具有与当前的执行周期对应的单元编号的缓存单元;
访问各指令接收缓冲区中具有与当前的执行周期对应的单元编号的缓存单元,若所述缓存单元非空,取出所述缓存单元中的候选指令数据,作为本次执行周期的目标指令数据。
上述图6各实施例与本发明图1各实施例相似,区别在于图6各实施例以发送端与接收端交互的形式进行描述,对于相同内容在此不再赘述,详见本发明图1各实施例的描述。
相应于上述方法实施例,本发明实施例还提供一种机器人遥操作中指令的传输系统。
如图7所示,本发明实施例提供的一种机器人遥操作中指令的传输系统,该系统包括:机器人的接收端以及发送端;所述接收端与所述发送端之间建立有多条通信链路;
所述发送端701,用于将指令数据封装为预设指令长度得到指令封装包,并基于所述指令封装包,获得多份分别与所述多条通信链路一一对应的相同的指令封装包;针对所述多份指令封装包,通过该指令封装包对应的通信链路发送该指令封装包给所述接收端;
所述接收端702,用于通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;分别从每个指令接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为候选指令数据,以及对所述拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个消息接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据;从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
本发明实施例提供的方案中,在进行一个执行周期的首次拼接时当前字符串为预设空字符串;当拼接字符串的长度等于预设指令长度时,取出并拆封拼接字符串中的数据作为候选指令数据,进而从多个候选指令数据中确定属于本次执行周期的目标指令数据,可以保证得到的目标指令数据为一个完整指令数据。并且,对拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,进而对后续指令封装包进行同样的拆封处理,直到一个执行周期结束,停止从消息接收缓冲区中读取指定字节长度的数据,保证在接收端和发送端的指令交互过程中,每次拼接字符串的长度等于预设指令长度时,均可得到的指令数据为一个完整指令数据。并且,通过多条通信链路接收端可以有效降低因TCP通信存在的时延波动累积影响而造成的指令传输时延扰动,进而降低主从端指令交互整体的传输时延。。可见,本方案可以减少机器人遥操作中指令数据的粘连和拆分,以及遥操作中指令的传输时延,提高机器人的性能。
在一种可选的实施例中,所述接收端702,还用于:
当所述拼接字符串的长度大于所述预设指令长度时,裁剪并拆封所述拼接字符串中前预设指令长度的数据作为候选指令数据;
将剪去所述指令数据后的拼接字符串作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据。
在一种可选的实施例中,所述接收端702,还用于:
当所述拼接字符串的长度小于所述预设指令长度时,执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据。
在一种可选的实施例中,所述发送端701,具体用于:
将指令数据和指令编号封装为预设指令长度得到指令封装包;其中,所述指令编号与所述机器人遥操作的执行周期对应;
所述接收端702,还用于:
在所述建立与所述发送端之间的多条通信链路之后,创建与所述多条通信链路一一对应的指令接收缓冲区;其中,每个指令接收缓冲区中划分有缓存单元,每个缓存单元的单元编号与不同的所述执行周期对应;
所述接收端702,具体用于:
针对每个候选指令数据,将该候选指令数据存入目标缓存单元中;其中,所述目标缓存单元为所述指令数据对应的指令接收缓冲区中,具有与当前的执行周期对应的单元编号的缓存单元;
访问各指令接收缓冲区中具有与当前的执行周期对应的单元编号的缓存单元,若所述缓存单元非空,取出所述缓存单元中的候选指令数据,作为本次执行周期的目标指令数据。
本发明实施例还提供了一种机器人接收端,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
建立与机器人的发送端之间的多条通信链路;
通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;其中,所述多份指令封装包均相同,且分别与所述多条通信链路一一对应;任一指令封装包为所述发送端将指令数据封装为预设指令长度得到的数据;
分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;
当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为候选指令数据,以及对所述拼接字符串赋空值作为所述当前字符串,并执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据;
从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
本发明实施例还提供了一种机器人发送端,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:
建立与机器人的接收端之间的多条通信链路;将指令数据封装为预设指令长度得到指令封装包,并基于所述指令封装包,获得多份分别与所述多条通信链路一一对应的相同的指令封装包;针对所述多份指令封装包,通过该指令封装包对应的通信链路发送该指令封装包给所述接收端,以使得所述接收端执行如下步骤:
通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;
当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为候选指令数据,以及对所述拼接字符串赋空值作为所述当前字符串,并执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据;从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
上述接收端和发送端提到的通信总线可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述接收端或者发送端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processor Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一机器人遥操作中指令的传输方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一机器人遥操作中指令的传输方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种机器人遥操作中指令的传输方法,其特征在于,应用于机器人的接收端,所述机器人还包括发送端;所述方法包括:
建立与所述发送端之间的多条通信链路;
通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;其中,所述多份指令封装包均相同,且分别与所述多条通信链路一一对应;任一指令封装包为所述发送端将指令数据封装为预设指令长度得到的数据;
分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;
当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为候选指令数据,以及对所述拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个消息接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据;
从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
2.根据权利要求1所述的方法,其特征在于,在所述分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串之后,所述方法还包括:
当所述拼接字符串的长度大于所述预设指令长度时,裁剪并拆封所述拼接字符串中前预设指令长度的数据作为候选指令数据;
将剪去所述指令数据后的拼接字符串作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据。
3.根据权利要求1所述的方法,其特征在于,在所述分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串之后,所述方法还包括:
当所述拼接字符串的长度小于所述预设指令长度时,执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据。
4.根据权利要求1所述的方法,其特征在于,所述指令封装包中还封装有指令编号;所述指令编号与所述机器人遥操作的执行周期对应;
在所述建立与所述发送端之间的多条通信链路之后,所述方法还包括:
创建与所述多条通信链路一一对应的指令接收缓冲区;其中,每个指令接收缓冲区中划分有缓存单元,每个缓存单元的单元编号与不同的所述执行周期对应;
所述从多个候选指令数据中确定属于本次执行周期的目标指令数据,包括:
针对每个候选指令数据,将该候选指令数据存入目标缓存单元;其中,所述目标缓存单元为所述指令数据对应的指令接收缓冲区中,具有与当前的执行周期对应的单元编号的缓存单元;
访问各指令接收缓冲区中具有与当前的执行周期对应的单元编号的缓存单元,若所述缓存单元非空,取出所述缓存单元中的候选指令数据,作为本次执行周期的目标指令数据。
5.一种机器人遥操作中指令的传输方法,其特征在于,应用于机器人的发送端,所述机器人还包括接收端;所述方法包括:
建立与所述接收端之间的多条通信链路;
将指令数据封装为预设指令长度得到指令封装包,并基于所述指令封装包,获得多份分别与所述多条通信链路一一对应的相同的指令封装包;
针对所述多份指令封装包,通过该指令封装包对应的通信链路发送该指令封装包给所述接收端,以使得所述接收端执行如下步骤:
通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;
分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;
当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为候选指令数据,以及对所述拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个消息接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据;
从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
6.根据权利要求5所述的方法,其特征在于,所述将指令数据封装为预设指令长度得到指令封装包,包括:
将指令数据和指令编号封装为预设指令长度得到指令封装包;其中,所述指令编号与所述机器人遥操作的执行周期对应,以使得所述接收端执行如下步骤:
在所述建立与所述发送端之间的多条通信链路之后,创建与所述多条通信链路一一对应的指令接收缓冲区;其中,每个指令接收缓冲区中划分有缓存单元,每个缓存单元的单元编号与不同的所述执行周期对应;
针对每个候选指令数据,将该候选指令数据存入目标缓存单元;其中,所述目标缓存单元为所述指令数据对应的指令接收缓冲区中,具有与当前的执行周期对应的单元编号的缓存单元;
访问各指令接收缓冲区中具有与当前的执行周期对应的单元编号的缓存单元,若所述缓存单元非空,取出所述缓存单元中的候选指令数据,作为本次执行周期的目标指令数据。
7.一种机器人遥操作中指令的传输系统,其特征在于,所述系统包括:机器人的接收端以及发送端;所述接收端与所述发送端之间建立有多条通信链路;
所述发送端,用于将指令数据封装为预设指令长度得到指令封装包,并基于所述指令封装包,获得多份分别与所述多条通信链路一一对应的相同的指令封装包;针对所述多份指令封装包,通过该指令封装包对应的通信链路发送该指令封装包给所述接收端;
所述接收端,用于通过所述多条通信链路,接收所述发送端发送的多份指令封装包,并将所述多份指令封装包分别存入与传输该指令封装包的通信链路对应的消息接收缓冲区;分别从每个消息接收缓冲区中读取指定字节长度的数据,并将所读取的数据拼接在当前字符串后,得到拼接字符串;其中,在进行一个执行周期的首次拼接时所述当前字符串为预设空字符串;当所述拼接字符串的长度等于所述预设指令长度时,取出并拆封所述拼接字符串中的数据作为候选指令数据,以及对所述拼接字符串赋空值作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个消息接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据;从多个候选指令数据中确定属于本次执行周期的目标指令数据,并基于所述目标指令数据,进行所述接收端的控制。
8.根据权利要求7所述的系统,其特征在于,所述接收端,还用于:
当所述拼接字符串的长度大于所述预设指令长度时,裁剪并拆封所述拼接字符串中前预设指令长度的数据作为候选指令数据;
将剪去所述指令数据后的拼接字符串作为本次执行周期的下一次拼接的当前字符串,并执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据。
9.根据权利要求7所述的系统,其特征在于,所述接收端,还用于:
当所述拼接字符串的长度小于所述预设指令长度时,执行所述分别从每个指令接收缓冲区中读取指定字节长度的数据,直到一个执行周期结束,停止从所述消息接收缓冲区中读取指定字节长度的数据。
10.根据权利要求7所述的系统,其特征在于,所述发送端,具体用于:
将指令数据和指令编号封装为预设指令长度得到指令封装包;其中,所述指令编号与所述机器人遥操作的执行周期对应;
所述接收端,还用于:
在所述建立与所述发送端之间的多条通信链路之后,创建与所述多条通信链路一一对应的指令接收缓冲区;其中,每个指令接收缓冲区中划分有缓存单元,每个缓存单元的单元编号与不同的所述执行周期对应;
所述接收端,具体用于:
针对每个候选指令数据,将该候选指令数据存入目标缓存单元中;其中,所述目标缓存单元为所述指令数据对应的指令接收缓冲区中,具有与当前的执行周期对应的单元编号的缓存单元;
访问各指令接收缓冲区中具有与当前的执行周期对应的单元编号的缓存单元,若所述缓存单元非空,取出所述缓存单元中的候选指令数据,作为本次执行周期的目标指令数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110481885.1A CN113301121B (zh) | 2021-04-30 | 2021-04-30 | 一种机器人遥操作中指令的传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110481885.1A CN113301121B (zh) | 2021-04-30 | 2021-04-30 | 一种机器人遥操作中指令的传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113301121A true CN113301121A (zh) | 2021-08-24 |
CN113301121B CN113301121B (zh) | 2022-05-17 |
Family
ID=77320801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110481885.1A Active CN113301121B (zh) | 2021-04-30 | 2021-04-30 | 一种机器人遥操作中指令的传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113301121B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361399A (zh) * | 2018-10-19 | 2019-02-19 | 上海达梦数据库有限公司 | 一种获取字节序列的方法、装置、设备及存储介质 |
CN109814482A (zh) * | 2019-02-13 | 2019-05-28 | 珠海格力智能装备有限公司 | 机器人的控制器及其控制方法和工业机器人 |
JP2019144823A (ja) * | 2018-02-20 | 2019-08-29 | 富士通株式会社 | 情報取得プログラム、情報取得方法及び情報取得装置 |
CN110798518A (zh) * | 2019-10-25 | 2020-02-14 | 深圳市元征科技股份有限公司 | 一种数据传输方法及装置、终端设备、存储介质 |
-
2021
- 2021-04-30 CN CN202110481885.1A patent/CN113301121B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019144823A (ja) * | 2018-02-20 | 2019-08-29 | 富士通株式会社 | 情報取得プログラム、情報取得方法及び情報取得装置 |
CN109361399A (zh) * | 2018-10-19 | 2019-02-19 | 上海达梦数据库有限公司 | 一种获取字节序列的方法、装置、设备及存储介质 |
CN109814482A (zh) * | 2019-02-13 | 2019-05-28 | 珠海格力智能装备有限公司 | 机器人的控制器及其控制方法和工业机器人 |
CN110798518A (zh) * | 2019-10-25 | 2020-02-14 | 深圳市元征科技股份有限公司 | 一种数据传输方法及装置、终端设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
陈伟等: "基于无线通讯的移动机器人远程控制系统的设计和实现", 《山东科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113301121B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204070B2 (en) | Method, device, system and storage medium for implementing packet transmission in PCIE switching network | |
US6693880B2 (en) | System of controlling the flow of information between senders and receivers across links being used as channels | |
US7577707B2 (en) | Method, system, and program for executing data transfer requests | |
US7835359B2 (en) | Method and apparatus for striping message payload data over a network | |
EP0472486A2 (en) | System and method for controlling data transmission | |
US20080049617A1 (en) | System for fine grained flow-control concurrency to prevent excessive packet loss | |
CN107666415B (zh) | Fc-ae-1553协议桥的优化方法和装置 | |
JP3214454B2 (ja) | プログラム内蔵方式パケット処理装置 | |
KR20060126691A (ko) | 완료 프로세싱 방법 및 시스템 | |
WO2005104478A2 (en) | Network interface card with rdma capability | |
KR101975082B1 (ko) | 소프트웨어 정의 네트워킹 네트워크에서 트랜잭션 관리 방법 | |
CN116887418B (zh) | Epa网络中对高优先级消息进行调度的方法、设备和介质 | |
CN113301121B (zh) | 一种机器人遥操作中指令的传输方法及系统 | |
US6854017B2 (en) | Method of controlling the flow of information between senders and receivers across links being used as channels | |
CN107181657B (zh) | 一种wtb链路层接口适配器及其实现方法 | |
CN111447046B (zh) | 业务数据传输方法、装置、设备和存储介质 | |
US20060031603A1 (en) | Multi-threaded/multi-issue DMA engine data transfer system | |
US7529812B2 (en) | Socket connections over a serial link | |
CN110430110B (zh) | 一种现场总线网关及其协议转换方法 | |
CN111198840B (zh) | 一种适用于双核系统的goose和mms共网通信方法和系统 | |
US8904062B2 (en) | Network control model driver | |
WO2017199913A1 (ja) | 送信装置、方法、プログラムおよび記録媒体 | |
WO2023098530A1 (zh) | 一种事务的处理方法及设备 | |
WO2021208834A1 (zh) | 底层驱动转发方法及基于uefi实现的多核系统 | |
CN108255770B (zh) | 基于1394总线事件消息响应机制的处理方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |