一种iros话题桥接方法、设备及介质
技术领域
1.本技术涉及机器人通信领域,尤其涉及一种iros话题桥接方法、设备及介质。
背景技术:
2.机器人操作系统ros(robot operating system,ros)是一个适用于机器人的开源元操作系统。ros提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。ros的主要目标是为机器人研究和开发提供代码复用的支持。ros是一个分布式的进程框架,这些进程被封装在易于被分享和发布的程序包和功能包中。
3.智能机器人操作系统(intelligent robot operating system,iros)具备ros类似的功能,替代了开源ros的内核,提供了兼容ros的接口,解决了ros可靠性、性能、安全等相关的问题,并增加了新的功能,支持云化机器人开发、支持云边端通信、支持多机器人协作等。
4.iros中的话题可提供匿名消息发布订阅服务,是机器人开发用到的重要的通信手段。话题通信中,发布节点或订阅节点需要连接话题服务器才能正常通信,但在一些分布式环境中,发布节点或订阅节点不能直接连通话题服务器。因此,如何在底层网络不直通或单向通信的情况下,对话题进行发布或订阅服务,成为目前亟待解决的问题。
技术实现要素:
5.为了解决上述问题,本技术提出了一种iros话题桥接方法,应用在iros系统中,所述iros系统包括多个通信设备,所述方法包括:确定第一通信设备用于与其他设备桥接的第一应用节点,确定所述第一应用节点通信时使用的第一桥接密钥;根据所述第一应用节点确定与所述第一通信设备未进行桥接的第二通信设备;确定所述第二通信设备用于与其他设备桥接的第二应用节点,确定所述第二应用节点通信时使用的第二桥接密钥;根据所述第一桥接密钥和所述第二桥接密钥确定桥接节点,以通过所述桥接节点与所述第一应用节点和所述第二应用节点中的至少一个应用节点连接,从而实现所述第一应用节点和所述第二应用节点之间的数据通信;通过所述桥接节点订阅所述第一通信设备和/或所述第二通信设备,以获取所述第一通信设备和/或所述第二通信设备的话题消息;通过所述桥接节点将所述话题消息在所述多个通信设备之间进行传递,以实现桥接。
6.在一个示例中,通过所述桥接节点与所述第一应用节点和所述第二应用节点中的至少一个节点连接,从而实现所述第一应用节点和所述第二应用节点之间的数据通信,具体包括:根据所述第一应用节点和所述第二应用节点确定所述第一通信设备与所述第二通信设备之间未进行桥接的通信方向;若所述通信方向为从所述第一通信设备对所述第二通信设备进行话题访问,从所述第二通信设备对所述第一通信设备未进行话题访问,则将所述桥接节点建立在所述第一通信设备内部,并通过所述桥接节点与所述第二应用节点连接;通过所述第一应用节点订阅所述第二通信设备,以获取所述第二通信设备的第二话题
消息,并将所述第二话题消息保存至所述第一通信设备中;或,通过所述桥接节点订阅所述第一通信设备,以获取所述第一通信设备的第一话题消息,并将所述第一话题消息发送至所述第二通信设备。
7.在一个示例中,通过所述桥接节点将所述话题消息在所述多个通信设备之间进行传递,具体包括:确定与所述第一通信设备进行桥接,以及与所述第二通信设备未进行桥接的第三通信设备,确定所述第三通信设备用于与其他设备桥接的第三应用节点;将所述桥接节点建立在所述第三通信设备内部,并通过所述桥接节点与所述第二应用节点连接;通过所述第三应用节点订阅所述第一通信设备,以获取所述第一通信设备的第一话题消息,将所述第一话题消息保存至所述第三通信设备中,并通过所述桥接节点将所述第一话题消息发送至所述第二通信设备;或,通过所述桥接节点订阅所述第二通信设备,以获取所述第二通信设备的第二话题消息,并将所述第二话题消息保存至所述第三通信设备中,并通过所述第三应用节点将所述第二话题消息发送至所述第一通信设备。
8.在一个示例中,通过所述桥接节点将所述话题消息在所述多个通信设备之间进行传递,具体还包括:确定同时与所述第一通信设备和所述第二通信设备进行桥接的间接通信设备组,并确定所述间接通信设备组的间接通信结构,其中,所述间接通信设备组包括多个间接通信设备;若所述间接通信结构为串行通信,则在所述多个间接通信设备内部建立对应的多个所述桥接节点,通过所述多个桥接节点订阅相邻的间接通信设备,以获取所述相邻的间接通信设备的所述话题消息,并通过所述多个桥接节点将所述话题消息在所述多个间接通信设备之间进行串行传递;若所述间接通信结构为并行通信,则在所述多个间接通信设备内部建立对应的多个所述桥接节点,并确定每个所述间接通信设备与所述第一通信设备和所述第二通信设备进行桥接的桥接时间,在所述多个间接通信设备的多个所述桥接时间中确定最短桥接时间,根据所述最短桥接时间确定对应的所述最短间接通信设备,将所述桥接节点建立在所述最短间接通信设备内部,以通过所述最短间接通信设备的所述桥接节点实现所述第一应用节点和所述第二应用节点之间的数据通信。
9.在一个示例中,将所述桥接节点建立在所述最短间接通信设备内部,以通过所述最短间接通信设备的所述桥接节点实现所述第一应用节点和所述第二应用节点之间的数据通信,具体包括:通过所述桥接节点订阅所述第一通信设备,以获取所述第一通信设备的第一话题消息,并通过所述桥接节点将所述第一话题消息发送至所述第二通信设备;或,通过所述桥接节点订阅所述第二通信设备,以获取所述第二通信设备的第二话题消息,并通过所述桥接节点将所述第二话题消息发送至所述第一通信设备。
10.在一个示例中,根据所述第一桥接密钥和所述第二桥接密钥确定桥接节点之前,所述方法还包括:将所述第一桥接密钥与所述第二桥接密钥进行比对;
11.若比对成功,则将所述第一应用节点与所述第二应用节点进行重新连接,以使所述第一通信设备与所述第二通信设备进行桥接;若比对失败,则根据所述第一桥接密钥和所述第二桥接密钥确定所述桥接节点,以使所述第一通信设备与所述第二通信设备之间通过所述桥接节点进行桥接。
12.在一个示例中,所述方法还包括:根据所述第一桥接密钥确定所述第一通信设备的所述话题消息是否为加密话题消息;若确定所述话题消息为加密话题消息,则通过所述桥接节点以生产消费方式对所述通信设备进行订阅和传递。
13.在一个示例中,确定所述话题消息为加密话题消息之后,所述方法还包括:根据所述第二桥接密钥,通过所述第一应用节点对所述第一通信设备的所述话题消息进行加密,并通过所述第一桥接密钥对加密后的所述话题消息进行签名,得到加密话题消息;将所述加密话题消息发送至所述第二通信设备,通过所述第二应用节点对所述加密话题消息进行签名验证;若签名验证成功,根据所述第二桥接密钥对所述加密话题消息进行解密,完成话题通信。
14.另一方面,本技术还提出了一种iros话题桥接设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述一种iros话题桥接设备能够执行:如上述任意一个示例所述的方法。
15.另一方面,本技术还提出了一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:如上述任意一个示例所述的方法。
16.本技术在iros不同应用节点的各种复杂话题通信环境中,通过话题桥接的方式,实现iros不同应用节点间的话题通信,通信效率高,实时性好。解决了底层网络不直通或单向通信的情况下,对话题的发布和订阅服务
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
18.图1为本技术实施例中一种iros话题桥接方法的流程示意图;
19.图2为本技术实施例中单向通信的示意图;
20.图3为本技术实施例中云边端通信的示意图;
21.图4为本技术实施例中不能直接通信的示意图;
22.图5为本技术实施例中复杂场景通信的示意图;
23.图6为本技术实施例中一种iros话题桥接设备的示意图。
具体实施方式
24.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.以下结合附图,详细说明本技术各实施例提供的技术方案。
26.如图1所示,本技术实施例提供的iros话题桥接方法,应用在iros系统中,该iros系统包括多个通信设备,方法包括:
27.s101:确定第一通信设备用于与其他设备桥接的第一应用节点,确定所述第一应用节点通信时使用的第一桥接密钥。
28.iros系统包括多个通信设备,且每个通信设备都包括有在其上运行的多个iros应用节点。在iros系统进行通信时,实际上不同设备上的就是通过iros应用节点进行通信。选定其中某个通信设备(在此称为第一通信设备),并确定该第一通信设备上用于与其他设备
桥接的应用节点(在此称为第一应用节点),该第一应用节点在与其他设备的应用节点进行通信时,会绑定有桥接密钥(在此称为第一桥接密钥),该第一桥接密钥用于对于第一通信设备进行桥接的其他通信设备进行身份确认,以及对第一通信设备的话题消息进行加密。
29.s102:根据所述第一应用节点确定与所述第一通信设备未进行桥接的第二通信设备。
30.iros中的话题可提供匿名消息发布订阅服务,是机器人开发用到的重要的通信手段。话题通信中,发布或订阅需要通过节点与话题服务器连接才能正常通信,但在一些分布式环境中,发布或订阅的节点不能直接联通话题服务器,例如:云端中节点不能联通内网中的节点;两个独立的内网机器人中的节点不能直接相通。iros中的话题标准服务不能满足话题桥接的需求,但多个设备彼此之间又需要消息发布订阅服务。此时,在第一应用节点中找到与第一通信设备桥接过的设备名单,对于出现在该名单之外的通信设备即为与第一通信设备未进行桥接的未桥接通信设备,并在这些未桥接通信设备中确认需要与第一通信设备进行桥接的通信设备(在此称为第二通信设备),并对该第二通信设备进行后续的处理,以将第一通信设备与第二通信设备进行桥接。
31.s103:确定所述第二通信设备用于与其他设备桥接的第二应用节点,确定所述第二应用节点通信时使用的第二桥接密钥。
32.与第一通信设备相同,确定第二通信设备的应用节点(在此称为第二应用节点)和桥接密钥(在此称为第二桥接密钥)。
33.s104:根据所述第一桥接密钥和所述第二桥接密钥确定桥接节点,以通过所述桥接节点与所述第一应用节点和所述第二应用节点中的至少一个应用节点连接,从而实现所述第一应用节点和所述第二应用节点之间的数据通信。
34.根据第一桥接密钥确定与第一通信设备的桥接方式,根据第二桥接密钥确定与第二通信设备的桥接方式,根据上述两种桥接方式建立新的桥接密钥,再根据新桥接密钥建立桥接节点。根据实际情况,通过该桥接节点实现第一应用节点和第二应用节点之间的数据通信,从而实现第一通信设备和第二通信设备的话题桥接。该实际情况包括:
35.s105:通过所述桥接节点订阅所述第一通信设备和/或所述第二通信设备,以获取所述第一通信设备和/或所述第二通信设备的话题消息。
36.s106:通过所述桥接节点将所述话题消息在所述多个通信设备之间进行传递,以实现桥接。
37.通过桥接节点打通不能直接通信的两方或多方应用节点,以完成多方设备之间的话题通信。桥接节点订阅不能直接访问的第二通信设备的第二应用节点,并将订阅的话题消息存入第一通信设备中,第一通信设备的第一应用节点再访问该话题消息,反之亦然,这样两个通信设备之间就能订阅到彼此的话题消息。
38.在一个实施例中,如图2所示,iros中具有云端与内网机器人,且云端与内网机器人之间只能单向通信场景。将内网机器人看作第一通信设备,将云端看作第二通信设备。首先根据第一应用节点和第二应用节点确定第一通信设备与第二通信设备之间未进行桥接的通信方向。若该通信方向为从第一通信设备对第二通信设备进行话题访问,从第二通信设备对第一通信设备不能进行话题访问,则将桥接节点建立在第一通信设备内部,并将桥接节点与第二应用节点连接。例如:内网机器人可直接访问云端,但云端却不能直接访问内
网机器人。此时内网机器人中可建立一个iros话题的桥接节点,由该桥接节点进行话题通信。
39.当第一通信设备对第二通信设备进行话题访问时,通过第一应用节点订阅第二通信设备,以获取第二通信设备的第二话题消息,并将第二话题消息保存至第一通信设备中。例如:对于内网机器人欲要访问云端话题进行消息订阅的情形,内网机器人的应用节点通过生产消费方式订阅云端中的话题消息,并将该话题消息保存到内网机器人中,内网机器人中的其它应用节点就可在内网机器人中订阅到云端中应用节点发布的消息;即完成云端对内网机器人的消息发布。当第二通信设备对第一通信设备进行话题访问时,通过桥接节点订阅第一通信设备,以获取第一通信设备的第一话题消息,并将第一话题消息发送至第二通信设备。例如:对于云端欲要访问内网机器人话题进行消息订阅的情形,桥接节点通过生产消费方式订阅内网机器人中话题消息,并将该话题消息发送到云端中,云端中的其它应用节点就可在云端中订阅到内网机器人应用节点发布的消息。
40.在一个实施例中,如图3所示,iros中具有云端、边端和内网机器人,且云端、边端和内网机器人之间具有云边端通信场景,在该场景下,将云端看作第一通信设备,将内网机器人看作第二通信设备,将边端看作第三通信设备。第一通信设备不能与第二通信设备进行话题桥接,但是第三通信设备能够与第一通信设备进行话题桥接。例如:内网机器人不能直接访问云端,云端更不能直接访问内网机器人。但边端与云端之间能够互相进行话题访问,内网机器人与边端不能进行话题访问。
41.将桥接节点建立在第三通信设备内部,并通过桥接节点与第二应用节点连接;此时可在边端上建立一个iros话题的桥接节点,由桥接节点与内网机器人进行桥接。当第二通信设备对第一通信设备进行话题访问时,通过第三应用节点订阅第一通信设备,以获取第一通信设备的第一话题消息,将第一话题消息保存至第三通信设备中,并通过桥接节点将第一话题消息发送至第二通信设备。例如:桥接节点通过生产消费方式订阅云中话题并发布到内网机器人话题。同理,当第一通信设备对第二通信设备进行话题访问时,通过桥接节点订阅第二通信设备,以获取第二通信设备的第二话题消息,并将第二话题消息保存至第三通信设备中,并通过第三应用节点将第二话题消息发送至第一通信设备。
42.此外,如图4所示,iros中具有多个内网机器人,对于多个相对独立内网的机器人存在不能直接通信的场景,在该场景下,两个不能直接通信的内网机器人分别看作第一通信设备和第二通信设备。在该场景下,若存在一个代理服务器能够与两个内网机器人中的至少一个进行话题通信,则将该代理服务器看作第三通信设备,在该代理服务器上建立一个iros话题的桥接节点。桥接节点通过生产消费方式订阅一个内网机器人话题消息并发布到另一个内网机器人,也可通过生产消费方式订阅另一内网机器人话题消息并发布到一个内网机器人,从而以桥接方式使不能直接通信的两内网机器人互相通信。
43.在一个实施例中,如图5所示,对于更加复杂场景的情况下,两个内网机器人之间没有可直接桥接的节点,但可通过多个中间服务器节点进行桥接。将两个内网机器人分别看作第一通信设备和第二通信设备,将多个中间服务器看作间接通信设备组。
44.若间接通信结构为串行通信,如图5所示,则在多个间接通信设备内部建立对应的多个桥接节点,通过多个桥接节点订阅相邻的间接通信设备,以获取相邻的间接通信设备的话题消息,并通过多个桥接节点将话题消息在多个间接通信设备之间进行串行传递。例
如:在每个中间服务器建立iros话题的桥接节点,服务器中含有服务节点,桥接节点与服务节点逐点进行话题桥接,从而实现两个网内机器人之间进行话题通信的目的。
45.若间接通信结构为并行通信,则在多个间接通信设备内部建立对应的多个桥接节点,并确定每个间接通信设备分别与第一通信设备和第二通信设备进行桥接的第一桥接时间和第二桥接时间,将第一桥接时间与第二桥接时间相加得到桥接时间。在多个间接通信设备的多个桥接时间中确定最短桥接时间,根据最短桥接时间确定对应的最短间接通信设备,将桥接节点建立在最短间接通信设备内部,以通过最短间接通信设备的桥接节点实现第一应用节点和第二应用节点之间的数据通信。
46.在一个实施例中,若间接通信结构为并行通信,将桥接节点建立在最短间接通信设备内部,以通过最短间接通信设备的桥接节点实现第一应用节点和第二应用节点之间的数据通信。通过桥接节点订阅第一通信设备,以获取第一通信设备的第一话题消息,并通过桥接节点将第一话题消息发送至第二通信设备;或,通过桥接节点订阅第二通信设备,以获取第二通信设备的第二话题消息,并通过桥接节点将第二话题消息发送至第一通信设备。
47.在一个实施例中,根据第一桥接密钥和第二桥接密钥确定桥接节点之前,将第一桥接密钥与第二桥接密钥进行比对,以确认第一通信设备与第二通信设备是否由于密钥比对失误,造成两设备无法桥接。若比对成功,则将第一应用节点与第二应用节点进行重新连接,以使第一通信设备与第二通信设备进行桥接;若比对失败,则根据第一桥接密钥和第二桥接密钥确定桥接节点,以使第一通信设备与第二通信设备之间通过桥接节点进行桥接。
48.在一个实施例中,根据第一桥接密钥确定第一通信设备的话题消息是否为加密话题消息。若确定话题消息为加密话题消息,则通过桥接节点以生产消费方式对通信设备进行订阅和传递。在订阅到该通信设备的话题信息并传递出来后,该设备中的话题信息不再留存。
49.在一个实施例中,若确定所述话题消息需要进行加密。根据第二桥接密钥,通过第一应用节点对第一通信设备的话题消息进行加密,并通过第一桥接密钥对加密后的话题消息进行签名,得到加密话题消息。将加密话题消息发送至第二通信设备,通过第二应用节点对加密话题消息进行签名验证。若签名验证成功,根据第二桥接密钥对加密话题消息进行解密,完成话题通信。
50.在一个实施例中,以上iros话题桥接方法,也可用于ros中,在ros中,用ros的发布订阅方式代替iros支持的生产消费发布订阅方式。
51.如图6所示,本技术实施例还提供了一种iros话题桥接设备,包括:
52.至少一个处理器;以及,
53.与所述至少一个处理器通信连接的存储器;其中,
54.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述一种iros话题桥接设备能够执行如上述任意一个实施例所述的方法。
55.本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:如上述任意一个实施例所述的方法。
56.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介
质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
57.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
58.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
59.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
60.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
61.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
62.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
63.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
64.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
65.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
66.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种iros话题桥接方法,其特征在于,应用在iros系统中,所述iros系统包括多个通信设备,所述方法包括:确定第一通信设备用于与其他设备桥接的第一应用节点,确定所述第一应用节点通信时使用的第一桥接密钥;根据所述第一应用节点确定与所述第一通信设备未进行桥接的第二通信设备;确定所述第二通信设备用于与其他设备桥接的第二应用节点,确定所述第二应用节点通信时使用的第二桥接密钥;根据所述第一桥接密钥和所述第二桥接密钥确定桥接节点,以通过所述桥接节点与所述第一应用节点和所述第二应用节点中的至少一个应用节点连接,从而实现所述第一应用节点和所述第二应用节点之间的数据通信;通过所述桥接节点订阅所述第一通信设备和/或所述第二通信设备,以获取所述第一通信设备和/或所述第二通信设备的话题消息;通过所述桥接节点将所述话题消息在所述多个通信设备之间进行传递,以实现桥接。2.根据权利要求1所述的方法,其特征在于,通过所述桥接节点与所述第一应用节点和所述第二应用节点中的至少一个节点连接,从而实现所述第一应用节点和所述第二应用节点之间的数据通信,具体包括:根据所述第一应用节点和所述第二应用节点确定所述第一通信设备与所述第二通信设备之间未进行桥接的通信方向;若所述通信方向为从所述第一通信设备对所述第二通信设备进行话题访问,从所述第二通信设备对所述第一通信设备未进行话题访问,则将所述桥接节点建立在所述第一通信设备内部,并将所述桥接节点与所述第二应用节点连接;通过所述第一应用节点订阅所述第二通信设备,以获取所述第二通信设备的第二话题消息,并将所述第二话题消息保存至所述第一通信设备中;或,通过所述桥接节点订阅所述第一通信设备,以获取所述第一通信设备的第一话题消息,并将所述第一话题消息发送至所述第二通信设备。3.根据权利要求1所述的方法,其特征在于,通过所述桥接节点将所述话题消息在所述多个通信设备之间进行传递,具体包括:确定与所述第一通信设备进行桥接,以及与所述第二通信设备未进行桥接的第三通信设备,确定所述第三通信设备用于与其他设备桥接的第三应用节点;将所述桥接节点建立在所述第三通信设备内部,并通过所述桥接节点与所述第二应用节点连接;通过所述第三应用节点订阅所述第一通信设备,以获取所述第一通信设备的第一话题消息,将所述第一话题消息保存至所述第三通信设备中,并通过所述桥接节点将所述第一话题消息发送至所述第二通信设备;或,通过所述桥接节点订阅所述第二通信设备,以获取所述第二通信设备的第二话题消息,并将所述第二话题消息保存至所述第三通信设备中,并通过所述第三应用节点将所述第二话题消息发送至所述第一通信设备。4.根据权利要求1所述的方法,其特征在于,通过所述桥接节点将所述话题消息在所述多个通信设备之间进行传递,具体还包括:
确定同时与所述第一通信设备和所述第二通信设备进行桥接的间接通信设备组,并确定所述间接通信设备组的间接通信结构,其中,所述间接通信设备组包括多个间接通信设备;若所述间接通信结构为串行通信,则在所述多个间接通信设备内部建立对应的多个所述桥接节点,通过所述多个桥接节点订阅相邻的间接通信设备,以获取所述相邻的间接通信设备的所述话题消息,并通过所述多个桥接节点将所述话题消息在所述多个间接通信设备之间进行串行传递;若所述间接通信结构为并行通信,则在所述多个间接通信设备内部建立对应的多个所述桥接节点,并确定每个所述间接通信设备与所述第一通信设备和所述第二通信设备进行桥接的桥接时间,在所述多个间接通信设备的多个所述桥接时间中确定最短桥接时间,根据所述最短桥接时间确定对应的所述最短间接通信设备,将所述桥接节点建立在所述最短间接通信设备内部,以通过所述最短间接通信设备的所述桥接节点实现所述第一应用节点和所述第二应用节点之间的数据通信。5.根据权利要求4所述的方法,其特征在于,将所述桥接节点建立在所述最短间接通信设备内部,以通过所述最短间接通信设备的所述桥接节点实现所述第一应用节点和所述第二应用节点之间的数据通信,具体包括:通过所述桥接节点订阅所述第一通信设备,以获取所述第一通信设备的第一话题消息,并通过所述桥接节点将所述第一话题消息发送至所述第二通信设备;或,通过所述桥接节点订阅所述第二通信设备,以获取所述第二通信设备的第二话题消息,并通过所述桥接节点将所述第二话题消息发送至所述第一通信设备。6.根据权利要求1所述的方法,其特征在于,根据所述第一桥接密钥和所述第二桥接密钥确定桥接节点之前,所述方法还包括:将所述第一桥接密钥与所述第二桥接密钥进行比对;若比对成功,则将所述第一应用节点与所述第二应用节点进行重新连接,以使所述第一通信设备与所述第二通信设备进行桥接;若比对失败,则根据所述第一桥接密钥和所述第二桥接密钥确定所述桥接节点,以使所述第一通信设备与所述第二通信设备之间通过所述桥接节点进行桥接。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述第一桥接密钥确定所述第一通信设备的所述话题消息是否为加密话题消息;若确定所述话题消息为加密话题消息,则通过所述桥接节点以生产消费方式对所述通信设备进行订阅和传递。8.根据权利要求7所述的方法,其特征在于,确定所述话题消息为加密话题消息之后,所述方法还包括:根据所述第二桥接密钥,通过所述第一应用节点对所述第一通信设备的所述话题消息进行加密,并通过所述第一桥接密钥对加密后的所述话题消息进行签名,得到加密话题消息;将所述加密话题消息发送至所述第二通信设备,通过所述第二应用节点对所述加密话题消息进行签名验证;若签名验证成功,根据所述第二桥接密钥对所述加密话题消息进行解密,完成话题通
信。9.一种iros话题桥接设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述一种iros话题桥接设备能够执行:如权利要求1-8中任意一项权利要求所述的方法。10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:如权利要求1-8中任意一项权利要求所述的方法。
技术总结
本申请公开了一种IROS话题桥接方法、设备及介质,方法包括:确定第一通信设备用于与其他设备桥接的第一应用节点,确定第一应用节点通信时使用的第一桥接密钥;根据第一应用节点确定与第一通信设备未进行桥接的第二通信设备;确定第二通信设备用于与其他设备桥接的第二应用节点,确定第二应用节点通信时使用的第二桥接密钥;根据第一桥接密钥和第二桥接密钥确定桥接节点,以通过桥接节点与第一应用节点和第二应用节点中的至少一个应用节点连接;通过桥接节点订阅第一通信设备和/或第二通信设备,以获取第一通信设备和/或第二通信设备的话题消息;通过桥接节点将话题消息在多个通信设备之间进行传递,以实现桥接。以实现桥接。以实现桥接。
技术研发人员:李朝铭 王建华 马辰 尹青山 刘鹏 王召东
受保护的技术使用者:山东新一代信息产业技术研究院有限公司
技术研发日:2021.11.26
技术公布日:2022/3/8