CN111464422B - 交互方法、装置、电子设备及存储介质 - Google Patents

交互方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111464422B
CN111464422B CN202010231044.0A CN202010231044A CN111464422B CN 111464422 B CN111464422 B CN 111464422B CN 202010231044 A CN202010231044 A CN 202010231044A CN 111464422 B CN111464422 B CN 111464422B
Authority
CN
China
Prior art keywords
interaction
data
sdk
receiving
preset
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.)
Active
Application number
CN202010231044.0A
Other languages
English (en)
Other versions
CN111464422A (zh
Inventor
肖军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202010231044.0A priority Critical patent/CN111464422B/zh
Publication of CN111464422A publication Critical patent/CN111464422A/zh
Application granted granted Critical
Publication of CN111464422B publication Critical patent/CN111464422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及一种交互方法、装置、电子设备及存储介质,所述方法包括:接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;利用预设ROS接口协议对所述交互数据进行封装,得到有效数据;利用预设传输层协议对所述有效数据进行封装,得到传输数据包;向SDK服务端发送所述传输数据包;接收所述SDK服务端返回的交互结果。本发明实施例能够实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。

Description

交互方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种交互方法、装置、电子设备及存储介质。
背景技术
当前机器人操作系统(ROS系统)依赖的环境非常多,并且对系统环境依赖性很强,当前只支持linux系统和Android系统的开发,不能满足其他各种应用场景需求,不适合通用客户直接调用。
当前ROS系统运行环境受限(仅限于linux和Android系统),对于Windows或者IOS等系统不能直接运行,并且搭建ROS系统和进行机器人系统应用开发,学习成本很高,不适用于普通用户开发群体。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种交互方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种交互方法,应用于软件开发工具包SDK客户端,所述方法包括:
接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;
利用预设ROS接口协议对所述交互数据进行封装,得到有效数据;
利用预设传输层协议对所述有效数据进行封装,得到传输数据包;
向SDK服务端发送所述传输数据包;
接收所述SDK服务端返回的交互结果。
可选地,所述方法还包括:
确定所述交互结果中是否包含用于表示所述SDK服务端需要接收反馈的需要接收反馈标识;
若所述交互结果包含所述需要接收反馈标识,则向所述SDK服务端发送接收反馈信息;
若接收到重发接收反馈通知,重新向所述SDK服务端发送所述接收反馈信息。
可选地,所述有效数据包括:多个TLV数据元,每个所述TLV数据元包括:Tag字段、Length字段和Value字段;
其中,所述Tag字段表示报文类型,报文类型包括:序列号、命令类型、消息体、身份认证数据、接收反馈标识、执行结果或者执行结果描述;
所述Length字段表示报文长度,所述Length字段最高位的数值用于表示后续连续数值是否为长度内容;
所述Value字段用于存放长度为报文长度的报文内容。
第二方面,本申请提供了一种交互方法,应用于SDK服务端,所述方法包括:
接收SDK客户端发送的传输数据包;
利用预设传输层协议解封装所述传输数据包,得到有效数据;
利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据;
按照所述交互数据执行相应的处理操作,得到交互结果;
向所述SDK客户端返回所述交互结果。
可选地,若所述交互结果中包含需要接收反馈标识,所述方法还包括:
检测所述SDK客户端是否未在预设反馈时间段内返回接收反馈信息;
若所述SDK客户端未在预设反馈时间段内返回接收反馈信息,向所述SDK客户端发送重发接收反馈通知;
若仍未接收到所述接收反馈信息,重新向所述SDK客户端发送所述重发接收反馈通知;
若接收到所述接收反馈信息,停止发送所述重发接收反馈通知。
可选地,若所述交互数据中包括待调用ROS接口的接口标识,所述按照所述交互数据执行相应的处理操作,得到交互结果的步骤包括:
调用与所述接口标识对应的ROS接口;
若接收到ROS接口返回的调用结果,将所述调用结果确定为交互结果。
第三方面,本申请提供了一种交互装置,应用于软件开发工具包SDK客户端,所述装置包括:
第一接收模块,用于接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;
第一封装模块,用于利用预设ROS接口协议对所述交互数据进行封装,得到有效数据;
第二封装模块,用于利用预设传输层协议对所述有效数据进行封装,得到传输数据包;
发送模块,用于向SDK服务端发送所述传输数据包;
第二接收模块,用于接收所述SDK服务端返回的交互结果。
第四方面,本申请提供了一种交互装置,应用于SDK服务端,所述装置包括:
第三接收模块,用于接收SDK客户端发送的传输数据包;
第一解封装模块,用于利用预设传输层协议解封装所述传输数据包,得到有效数据;
第二解封装模块,用于利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据;
执行模块,用于按照所述交互数据执行相应的处理操作,得到交互结果;
返回模块,用于向所述SDK客户端返回所述交互结果。
第五方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面或第二方面任一所述的交互方法。
第六方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有交互方法的程序,所述交互方法的程序被处理器执行时实现第一方面或第二方面任一所述的交互方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本发明实施例在接收到请求与机器人操作系统ROS交互的交互请求时,利用预设ROS接口协议对交互请求中携带的交互数据进行封装,得到有效数据,然后再利用预设传输层协议对所述有效数据进行封装,得到传输数据包,向SDK服务端发送所述传输数据包,最后可以接收所述SDK服务端返回的交互结果。
本发明实施例通过预设ROS接口协议对交互数据封装成有效数据,可以便于ROS系统解析后直接使用,通过预设传输层协议可以将有效数据以传输数据包的形式传送给SDK服务端,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。
而且,本发明实施例在接收到SDK客户端发送的传输数据包时,可以首先利用预设传输层协议解封装所述传输数据包,得到有效数据,然后利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据,再按照所述交互数据执行相应的处理操作,得到交互结果,最后可以向所述SDK客户端返回所述交互结果。
本发明实施例能够对SDK客户端发送的传输数据包依次利用预设传输层协议和预设ROS接口协议进行解封装,并按照解封装得到的交互数据执行相应的处理操作,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种实际应用中系统架构的架构图;
图2为本申请实施例提供的一种交互方法的一种流程图;
图3为本申请实施例提供的一种交互方法的另一种流程图;
图4为本申请实施例提供的另一种交互方法的一种流程图;
图5为本申请实施例提供的一种交互装置的结构图;
图6为本申请实施例提供的另一种交互装置的结构图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于当前ROS系统运行环境受限(仅限于linux和Android系统),对于Windows或者IOS等系统不能直接运行,并且搭建ROS系统和进行机器人系统应用开发,学习成本很高,不适用于普通用户开发群体。为此,本发明实施例提供了一种交互方法、装置、电子设备及存储介质,所述交互方法可以应用于软件开发工具包SDK客户端,在实际应用中,SDK客户端可以设置于不能直接运行ROS系统的Windows或者IOS等系统中,SDK客户端可以通过SDK接口与Windows或者IOS等系统进行数据传输(例如:接收交互请求)等,SDK接口和SDK客户端可以支持C++、Java、Pythond等编程语言,以便适应于各个开发平台,如图1所示,所述SDK客户端可以与设置于ROS系统中的SDK服务端通信连接,SDK服务端基于ROS系统环境,运行在现有的ROS系统中,作为SDK客户端与ROS系统进行交互的桥梁。
如图2所示,所述交互方法可以包括以下步骤:
步骤S101,接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;
在本发明实施例中,交互请求可以指请求调用ROS系统中ROS接口的接口调用请求(可以把ROS系统中各种ROS接口转换为Windows或者IOS等系统自定义的通用调用接口)、请求在SDK服务端进行注册的注册请求或者请求SDK服务端进行注销的注销请求等等。
相应的,在接收到接口调用请求时,交互数据可以包括待调用接口的接口标识等;在接收到注册请求时,交互数据可以包括身份认证数据等;在接收到注销请求时,交互数据可以包括客户端断开连接标识等等。
在该步骤中,可以接收不能直接运行ROS系统的Windows或者IOS等系统发送的交互请求,解析交互请求,得到交互数据。
步骤S102,利用预设ROS接口协议对所述交互数据进行封装,得到有效数据;
在本发明实施例中,预设ROS接口协议可以将交互数据中的各个数据内容分别封装成多个TLV数据元,最终得到有效数据,也就是说,多个TLV数据元拼接得到有效数据。
预设ROS接口协议规定:每个所述TLV数据元包括:Tag字段、Length字段和Value字段;
其中,所述Tag字段表示报文类型,Tag字段的值为某一预先设置的TAG名称,示例性的,可以为1Byte长度,示例性的,报文类型包括:序列号、命令类型、消息体、身份认证数据、接收反馈标识、执行结果或者执行结果描述;各报文类型的描述/作用可以如下表1所示:
表1
序号 TAG名称 描述/作用
01 序列号 用以区分每次交互的唯一性
02 命令类型 自定义命令类型
03 消息体(请求/反馈结果的数据) 消息体数据
04 身份认证数据 用以进行身份认证
05 接收反馈标识 接收方基于此标识做反馈
06 执行结果 反馈执行结果
07 执行结果描述 错误详情描述
其中,命令类型可以包括如下表2的多个类型:
表2
Figure BDA0002429279150000071
Figure BDA0002429279150000081
所述Length字段表示报文长度,所述Length字段最高位的数值用于表示后续连续数值是否为长度内容,在本发明实施例中,为了节省资源,Length字段的长度是可以发生变化的,示例性的,可以使用Byte的低7Bit表示报文长度,Byte的最高位Bit表示后续连续数值是否为长度内容(最高位1-后续连续数值为长度内容,最高位0-长度位结束),多字节采用小端模式(低字节在前);
示例性的,若某个Length字段Length=82B403,由于82二进制1000 0010最高位是1,有效长度2,所以第一个字节的长度为2*128;由于B4二进制1011 0100有效数据011 0100十进制52,所以第二个字节需要加上第一个字节2*128再乘以128;03最高位为0,那么长度就这三个字节,所以第三个字节的长度+03,最后得到总长度=((2)*128+52)*128+03。
所述Value字段用于存放长度为报文长度的报文内容。
在该步骤中,可以利用预设ROS接口协议对所述交互数据进行封装后得到某一有效数据,该有效数据中包括多个TLV数据元。
步骤S103,利用预设传输层协议对所述有效数据进行封装,得到传输数据包;
在本发明实施例中,示例性的,由于ROS系统、Windows和IOS等系统均支持Socket协议,所以可以使用通用的Socket协议对有效数据进行封装,得到传输数据包,在实际应用中,也可以使用其它ROS系统、Windows和IOS等系统均支持的传输层协议对有效数据进行封装,此处仅为举例说明,不对本申请做出限定。
socket传输协议的格式:
Figure BDA0002429279150000091
步骤S104,向SDK服务端发送所述传输数据包;
步骤S105,接收所述SDK服务端返回的交互结果。
本发明实施例在接收到请求与机器人操作系统ROS交互的交互请求时,利用预设ROS接口协议对交互请求中携带的交互数据进行封装,得到有效数据,然后再利用预设传输层协议对所述有效数据进行封装,得到传输数据包,向SDK服务端发送所述传输数据包,最后可以接收所述SDK服务端返回的交互结果。
本发明实施例通过预设ROS接口协议对交互数据封装成有效数据,可以便于ROS系统解析后直接使用,通过预设传输层协议可以将有效数据以传输数据包的形式传送给SDK服务端,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。
在本发明的又一实施例中,如图3所示,所述方法还包括:
步骤S201,确定所述交互结果中是否包含用于表示所述SDK服务端需要接收反馈的需要接收反馈标识;
在该步骤中,SDK客户端可以利用预设传输层协议对交互结果进行解封装,得到有效数据,在利用预设ROS接口协议对有效数据进行解封装,得到接收反馈标识,接收反馈标识可以指表1中序号05对应的内容。
步骤S202,若所述交互结果包含所述需要接收反馈标识,则向所述SDK服务端发送接收反馈信息;
步骤S203,若接收到重发接收反馈通知,重新向所述SDK服务端发送所述接收反馈信息。
本发明实施例能够在接收到SDK服务端返回的接收反馈标识时,自动向服务端发送接收反馈信息,并且在接收到SDK服务端发送的重发接收反馈通知,重新向所述SDK服务端发送所述接收反馈信息,可以在SDK服务端要求SDK客户端接收到交互结果后给予反馈时,自动向SDK发送反馈,若未接收到调用结果,将不会向SDK服务端发送接受反馈信息,保证交互过程的准确性,避免SDK服务器误认为SDK客户端已接收到交互结果的情况出现。
在本发明的又一实施例中,还提供一种交互方法,应用于SDK服务端,如图4所示,所述方法包括:
步骤S301,接收SDK客户端发送的传输数据包;
步骤S302,利用预设传输层协议解封装所述传输数据包,得到有效数据;
在该步骤中,在接收到SDK客户端发送的传输数据包后,可以利用预设传输层协议对传输数据包进行解封装,基于前述实施例,示例性的,预设传输层协议可以指socket协议等等。
示例性的,某一有效数据为:
“0102A113020200030335010E2F736D6F6B655F302F736D6F6B6503116465766963655F6D7367732F536D6F6B6504104e4e0a2f099984ac3f235a473c193a460416120000000000000037C3575D452D5B3B000000000A00050A0102ED5B02041305693E”。
步骤S303,利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据;
示例性的,对有效数据按照表1进行解析,得到:
“01 02 A113
02 02 0003
03 35 010E2F736D6F6B655F302F736D6F6B6503116465766963655F6D7367732F536D6F6B6504104e4e0a2f099984ac3f235a473c193a46
04 16 120000000000000037C3575D452D5B3B000000000A00
05 0A 0102ED5B02041305693E”
其中,“01 02 A113”为一个TLV数据元,“01”为Tag字段的值,对应表1中的序号01序列号,“02”为Length字段的值,“A113”为Value字段的值,所以,“01 02 A113”表示本次交互的序列号为A113;
其中,“02 02 0003”为一个TLV数据元,第一个“02”为Tag字段的值,对应表1中的序号02命令类型,第二个“02”为Length字段的值,“0003”为Value字段的值,所以,“02 020003”表示本次交互的命令类型为0003;命令类型0003在表2中对应“client_release”,表示客户端断开连接。
由于Tag字段的值为“03”,在表1中对应消息体,消息体为请求/反馈结果的数据,所以需要对消息体按照表1进行进一步的解析,也就是说,需要对TLV数据元“03 35 010E2F736D6F6B655F302F736D6F6B6503116465766963655F6D7367732F536D6F6B6504104e4e0a2f099984ac3f235a473c193a46”中的Value字段“010E2F736D6F6B655F302F736D6F6B6503116465766963655F6D7367732F536D6F6B6504104e4e0a2f099984ac3f235a473c193a46”根据表1进行数据解析,得到:
“01 0E 2F736D6F6B655F302F736D6F6B65
03 116465766963655F6D7367732F536D6F6B65
04 10 4e4e0a2f099984ac3f235a473c193a46”
其中,“01 0E 2F736D6F6B655F302F736D6F6B65”中,Tag字段为“01”,Length字段“0E”,Value字段“2F736D6F6B655F302F736D6F6B65”。
后续TLV数据元均可依次方式进行解析,此处不再赘述。
步骤S304,按照所述交互数据执行相应的处理操作,得到交互结果;
在该步骤中,SDK服务端可以按照交互数据执行与交互数据相对应的处理操作,得到交互结果。
基于前述实施例,由于交互数据可以包括待调用接口的接口标识等;所以,在本发明实施例中,在交互数据包括待调用接口的接口标识时,SDK服务端可以调用与所述接口标识对应的ROS接口,若接收到ROS接口返回的调用结果,将所述调用结果确定为交互结果;
基于前述实施例,在交互数据包括身份认证数据时,SDK服务端可以对身份认证数据进行验证,以确定SDK客户端的身份认证数据是否合法,得到验证结果即为交互结果;
基于前述实施例,在交互数据包括客户端断开连接标识时,可以注销与客户端断开连接标识对应的SDK客户端等等。
步骤S305,向所述SDK客户端返回所述交互结果。
本发明实施例在接收到SDK客户端发送的传输数据包时,可以首先利用预设传输层协议解封装所述传输数据包,得到有效数据,然后利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据,再按照所述交互数据执行相应的处理操作,得到交互结果,最后可以向所述SDK客户端返回所述交互结果。
本发明实施例能够对SDK客户端发送的传输数据包依次利用预设传输层协议和预设ROS接口协议进行解封装,并按照解封装得到的交互数据执行相应的处理操作,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。
在本发明的又一实施例中,在SDK服务端需要SDK客户端接收到交互结果后给予反馈时,可以在交互结果中添加需要接收反馈标识,所以在所述交互结果中包含需要接收反馈标识时,所述方法还包括:
检测所述SDK客户端是否未在预设反馈时间段内返回接收反馈信息;
在该步骤中,可以记录向SDK客户端返回交互结果的返回时刻,若在当前时刻仍未接收到接受反馈信息,则可以获取当前时刻,计算当前时刻与返回时刻之间的时间差,将时间差与预设反馈时间段比较,若时间差大于预设反馈时间段,则可以确定SDK客户端未在预设反馈时间段内返回接收反馈信息。
若所述SDK客户端未在预设反馈时间段内返回接收反馈信息,向所述SDK客户端发送重发接收反馈通知;
若仍未接收到所述接收反馈信息,重新向所述SDK客户端发送所述重发接收反馈通知;
在实际应用中,可以设置重新向SDK客户端发送重发接收反馈通知的最大重发次数,在达到最大重发次数时,则可以报错,以提示维护人员进行维护。
若接收到所述接收反馈信息,停止发送所述重发接收反馈通知。
在本发明实施例中,在接收到SDK客户端发送的接收反馈信息时,则可以确定SDK客户端接收到交互结果,无需再向SDK客户端发送重发接收反馈通知。
本发明实施例能够再SDK客户端未在预设反馈时间段内返回接收反馈信息时,自动向SDK客户端发送重发接收反馈通知,若仍未接收到所述接收反馈信息,重新向所述SDK客户端发送所述重发接收反馈通知,若接收到所述接收反馈信息,停止发送所述重发接收反馈通知,保证交互过程的准确性,避免SDK服务器误认为SDK客户端已接收到交互结果的情况出现。
基于前述实施例,为了便于理解,本发明实施例还提供了一种SDK客户端与SDK服务器交互的实施例,在本发明实施例中,SDK客户端与SDK服务器交互的过程如下:
SDK客户端接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;
SDK客户端利用预设ROS接口协议对所述交互数据进行封装,得到有效数据;
SDK客户端利用预设传输层协议对所述有效数据进行封装,得到传输数据包;
SDK客户端向SDK服务端发送所述传输数据包;
SDK服务端接收SDK客户端发送的传输数据包;
SDK服务端利用预设传输层协议解封装所述传输数据包,得到有效数据;
SDK服务端利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据;
SDK服务端按照所述交互数据执行相应的处理操作,得到交互结果;
SDK服务端向所述SDK客户端返回所述交互结果;
SDK客户端接收所述SDK服务端返回的交互结果。
本发明实施例的SDK客户端通过预设ROS接口协议对交互数据封装成有效数据,可以便于ROS系统解析后直接使用,通过预设传输层协议可以将有效数据以传输数据包的形式传送给SDK服务端,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互;而且,本发明实施例的SDK服务端能够对SDK客户端发送的传输数据包依次利用预设传输层协议和预设ROS接口协议进行解封装,并按照解封装得到的交互数据执行相应的处理操作,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。
在本发明的又一实施例中,还提供一种交互装置,应用于软件开发工具包SDK客户端,如图5所示,所述装置包括:
第一接收模块11,用于接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;
第一封装模块12,用于利用预设ROS接口协议对所述交互数据进行封装,得到有效数据;
第二封装模块13,用于利用预设传输层协议对所述有效数据进行封装,得到传输数据包;
发送模块14,用于向SDK服务端发送所述传输数据包;
第二接收模块15,用于接收所述SDK服务端返回的交互结果。
在本发明的又一实施例中,还提供一种交互装置,应用于SDK服务端,如图6所示,所述装置包括:
第三接收模块21,用于接收SDK客户端发送的传输数据包;
第一解封装模块22,用于利用预设传输层协议解封装所述传输数据包,得到有效数据;
第二解封装模块23,用于利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据;
执行模块24,用于按照所述交互数据执行相应的处理操作,得到交互结果;
返回模块25,用于向所述SDK客户端返回所述交互结果。
在本发明的又一实施例中,还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现前述应用于SDK客户端的交互方法或者应用于SDK服务端的交互方法。
本发明实施例提供的电子设备,处理器通过执行存储器上所存放的程序实现了在接收到请求与机器人操作系统ROS交互的交互请求时,利用预设ROS接口协议对交互请求中携带的交互数据进行封装,得到有效数据,然后再利用预设传输层协议对所述有效数据进行封装,得到传输数据包,向SDK服务端发送所述传输数据包,最后可以接收所述SDK服务端返回的交互结果,保证通过预设ROS接口协议对交互数据封装成有效数据,可以便于ROS系统解析后直接使用,通过预设传输层协议可以将有效数据以传输数据包的形式传送给SDK服务端,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。
或者,本发明实施例提供的电子设备,处理器通过执行存储器上所存放的程序实现了在接收到SDK客户端发送的传输数据包时,可以首先利用预设传输层协议解封装所述传输数据包,得到有效数据,然后利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据,再按照所述交互数据执行相应的处理操作,得到交互结果,最后可以向所述SDK客户端返回所述交互结果,保证能够对SDK客户端发送的传输数据包依次利用预设传输层协议和预设ROS接口协议进行解封装,并按照解封装得到的交互数据执行相应的处理操作,实现SDK客户端与SDK服务端的交互,进而实现SDK客户端所在的Windows或者IOS等系统与SDK服务端所在的ROS系统的交互。
上述电子设备提到的通信总线1140可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(RandomAccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器1110可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明的又一实施例中,还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有交互方法的程序,所述交互方法的程序被处理器执行时实现应用于SDK客户端的交互方法或者应用于SDK服务端的交互方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种交互方法,其特征在于,应用于软件开发工具包SDK客户端,所述方法包括:
接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;
利用预设ROS接口协议对所述交互数据进行封装,得到有效数据,所述预设ROS接口协议用于将交互数据中的各个数据内容分别封装成多个TLV数据元,得到有效数据;
利用预设传输层协议对所述有效数据进行封装,得到传输数据包;
向SDK服务端发送所述传输数据包;
接收所述SDK服务端返回的交互结果。
2.根据权利要求1所述的交互方法,其特征在于,所述方法还包括:
确定所述交互结果中是否包含用于表示所述SDK服务端需要接收反馈的需要接收反馈标识;
若所述交互结果包含所述需要接收反馈标识,则向所述SDK服务端发送接收反馈信息;
若接收到重发接收反馈通知,重新向所述SDK服务端发送所述接收反馈信息。
3.根据权利要求1所述的交互方法,其特征在于,所述有效数据包括:多个TLV数据元,每个所述TLV数据元包括:Tag字段、Length字段和Value字段;
其中,所述Tag字段表示报文类型,报文类型包括:序列号、命令类型、消息体、身份认证数据、接收反馈标识、执行结果或者执行结果描述,所述执行结果描述为错误详情描述;
所述Length字段表示报文长度,所述Length字段最高位的数值用于表示后续连续数值是否为长度内容;
所述Value字段用于存放长度为报文长度的报文内容。
4.一种交互方法,其特征在于,应用于SDK服务端,所述方法包括:
接收SDK客户端发送的传输数据包;
利用预设传输层协议解封装所述传输数据包,得到有效数据;
利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据,所述预设ROS接口协议用于将交互数据中的各个数据内容分别封装成多个TLV数据元,得到有效数据;
按照所述交互数据执行相应的处理操作,得到交互结果;
向所述SDK客户端返回所述交互结果。
5.根据权利要求4所述的交互方法,其特征在于,若所述交互结果中包含需要接收反馈标识,所述方法还包括:
检测所述SDK客户端是否未在预设反馈时间段内返回接收反馈信息;
若所述SDK客户端未在预设反馈时间段内返回接收反馈信息,向所述SDK客户端发送重发接收反馈通知;
若仍未接收到所述接收反馈信息,重新向所述SDK客户端发送所述重发接收反馈通知;
若接收到所述接收反馈信息,停止发送所述重发接收反馈通知。
6.根据权利要求4所述的交互方法,其特征在于,若所述交互数据中包括待调用ROS接口的接口标识,所述按照所述交互数据执行相应的处理操作,得到交互结果的步骤包括:
调用与所述接口标识对应的ROS接口;
若接收到ROS接口返回的调用结果,将所述调用结果确定为交互结果。
7.一种交互装置,其特征在于,应用于软件开发工具包SDK客户端,所述装置包括:
第一接收模块,用于接收请求与机器人操作系统ROS交互的交互请求,所述交互请求包括:交互数据;
第一封装模块,用于利用预设ROS接口协议对所述交互数据进行封装,得到有效数据,所述预设ROS接口协议用于将交互数据中的各个数据内容分别封装成多个TLV数据元,得到有效数据;
第二封装模块,用于利用预设传输层协议对所述有效数据进行封装,得到传输数据包;
发送模块,用于向SDK服务端发送所述传输数据包;
第二接收模块,用于接收所述SDK服务端返回的交互结果。
8.一种交互装置,其特征在于,应用于SDK服务端,所述装置包括:
第三接收模块,用于接收SDK客户端发送的传输数据包;
第一解封装模块,用于利用预设传输层协议解封装所述传输数据包,得到有效数据;
第二解封装模块,用于利用预设ROS接口协议对所述有效数据进行解封装,得到交互数据,所述预设ROS接口协议用于将交互数据中的各个数据内容分别封装成多个TLV数据元,得到有效数据;
执行模块,用于按照所述交互数据执行相应的处理操作,得到交互结果;
返回模块,用于向所述SDK客户端返回所述交互结果。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1~3任一所述的交互方法或者4~6任一所述的交互方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有交互方法的程序,所述交互方法的程序被处理器执行时实现权利要求1~3任一所述的交互方法或者4~6任一所述的交互方法的步骤。
CN202010231044.0A 2020-03-27 2020-03-27 交互方法、装置、电子设备及存储介质 Active CN111464422B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010231044.0A CN111464422B (zh) 2020-03-27 2020-03-27 交互方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010231044.0A CN111464422B (zh) 2020-03-27 2020-03-27 交互方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111464422A CN111464422A (zh) 2020-07-28
CN111464422B true CN111464422B (zh) 2022-01-07

Family

ID=71685006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010231044.0A Active CN111464422B (zh) 2020-03-27 2020-03-27 交互方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111464422B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866304B (zh) * 2021-04-26 2021-08-17 知行汽车科技(苏州)有限公司 一种can报文与ros消息的互转设备及其互转方法
CN114827164A (zh) * 2022-04-13 2022-07-29 广州虎牙科技有限公司 端对端的通信方法、装置、设备、存储介质及程序产品
CN114710566A (zh) * 2022-06-06 2022-07-05 辰星(天津)自动化设备有限公司 机器人控制系统的通讯交互方法、及机器人系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017088718A1 (zh) * 2015-11-25 2017-06-01 华为技术有限公司 传输控制报文的方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332526B2 (en) * 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US9195233B2 (en) * 2006-02-27 2015-11-24 Perrone Robotics, Inc. General purpose robotics operating system
US20180262388A1 (en) * 2006-09-25 2018-09-13 Weaved, Inc. Remote device deployment
CN105704166B (zh) * 2016-04-27 2019-12-31 网易(杭州)网络有限公司 机器人系统及其实现方法、客户端、服务器以及游戏系统
CN106020208A (zh) * 2016-07-27 2016-10-12 湖南晖龙股份有限公司 一种基于ros操作系统的机器人远程控制方法和远程控制系统
CN106506465A (zh) * 2016-10-21 2017-03-15 北京光年无限科技有限公司 一种用于机器人的数据传输处理方法
CN206242041U (zh) * 2016-11-23 2017-06-13 天津智汇时代科技有限公司 基于android与ros双系统的机器人系统
CN106777960A (zh) * 2016-12-12 2017-05-31 浙江侍维波机器人科技有限公司 一种Ros分布式系统架构在医疗护理领域的应用
CN107632859A (zh) * 2017-09-30 2018-01-26 江西洪都航空工业集团有限责任公司 一种机器人图形化开发插件式框架
CN107678746A (zh) * 2017-09-30 2018-02-09 江西洪都航空工业集团有限责任公司 一种基于ros的图形化开发平台
CN108594670A (zh) * 2018-01-10 2018-09-28 河海大学常州校区 一种机器人跨平台通信协议和控制方法
CN108818564A (zh) * 2018-07-18 2018-11-16 福州大学 一种家居机器人控制系统及其控制方法
CN109101018A (zh) * 2018-07-30 2018-12-28 浙江工业大学 面向Windows环境的服务机器人运行控制系统
CN109159125B (zh) * 2018-09-28 2021-02-12 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于ros系统机器人的云服务系统
CN109408500B (zh) * 2018-11-06 2020-11-17 北京深度奇点科技有限公司 人工智能运行平台
CN110842924A (zh) * 2019-11-24 2020-02-28 深圳华数机器人有限公司 一种用于协作化机器人的单芯异构控制系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017088718A1 (zh) * 2015-11-25 2017-06-01 华为技术有限公司 传输控制报文的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Research on Manufacturing Grid Resource Encapsulation and Interface Construction;Yu"an He;《2006 6th World Congress on Intelligent Control and Automation》;20061023;全文 *
基于ROS平台的机器人目标识别系统的设计;贾浩东;《电子测试》;20180115(第02期);全文 *

Also Published As

Publication number Publication date
CN111464422A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN111464422B (zh) 交互方法、装置、电子设备及存储介质
CN108965484B (zh) 一种物联网数据的传输方法、系统及终端
CA2669193C (en) Discovery and rediscovery protocol method and system
US20200351354A1 (en) System and method for supporting data communication in a heterogeneous environment
US10635436B2 (en) Compatibility method based on hybrid, adapter, operation device, system and computer-readable storage medium
CN108848025B (zh) 数据处理方法、智能网关、物联网系统
CN111327687B (zh) 一种数据传输方法、装置、电子设备及存储介质
CN105897652A (zh) 一种基于标准协议的异构终端动态接入方法
WO2020259551A1 (zh) 一种网络连接故障处理方法及装置
KR100772175B1 (ko) 네트워크 로봇 시스템 및 네트워크 로봇 시스템에서의 통신방법
CN110855686A (zh) 一种spi协议通信方法、系统、设备及计算机存储介质
CN104579973A (zh) 一种虚拟集群中的报文转发方法和装置
CN114153153A (zh) 设备控制方法、系统、装置、电子设备和存储介质
CN110247926B (zh) 一种交互方法和系统
EP3032801B1 (en) Method and device for generating forwarding information
CN104426816A (zh) 一种虚拟机通信方法及装置
CN115022424B (zh) 水电lcu控制器网卡虚拟控制方法、系统、设备及其介质
US10951732B2 (en) Service processing method and device
US20180191562A1 (en) Parameter setting method for system bus and device thereof
CN109582481B (zh) 调用结果的传输方法、装置、设备及存储介质
US9992034B2 (en) Component multicast protocol
CN114245405B (zh) 一种设备配网方法、电子设备及存储介质
CN111506846A (zh) Web页面生成方法、装置、电子设备及存储介质
AU2018373682A1 (en) Method for remote management of a device connected to a residential gateway
TWI479863B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Information Technology Co.,Ltd.

Address before: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Shuke Haiyi Information Technology Co.,Ltd.

Address after: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Shuke Haiyi Information Technology Co.,Ltd.

Address before: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Beijing 100176

Applicant before: BEIJING HAIYI TONGZHAN INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant