一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种跨异构平台的通信技术方法、系统及介质与流程

2021-10-29 22:31:00 来源:中国专利 TAG:介质 通信技术 网络通信 异构 方法


1.本发明属于网络通信的技术领域,具体涉及一种跨异构平台的通信技术方法、系统及介质。


背景技术:

2.随着人工智能技术的兴起,以及5g技术的发展,无人系统、人工智能、物联网也成为各国的研究热点。其次,计算机模拟技术水平也得到了显著提高,如何建立准确有效的仿真模型成为了众多仿真领域的研究热点。对于许多组织机构来说,其自身的成长壮大和新技术的迅速发展催生出极其复杂、分布且不断发展变化的应用平台,这些平台跨越了不同硬件,不同操作系统的多种异构平台,具有各自单独运行的系统,无法实现互联互通。不同平台之间的集成成了亟待解决的问题。对于大型算例,单台计算节点的资源严重不足,独立的计算系统算力不足,对于当前各个异构平台的发展已经造成严重阻碍,严重影响人工智能、物联网和仿真产业的发展。在这样的背景下,研究如何跨越多个异构平台之间的差异,将不同平台进行提炼、整合,并充分利用已有的技术及平台资源,实现各种异构平台协同工作与通信便有了重大意义。
3.rosbridge(rosbridge_suite)是ros官方为开发者提供的一个用于非ros系统和ros系统进行交互通信的功能包。rosbridge主要包含两个部分,rosbridge protocol和rosbridge implementation。其中protocol部分提供了非ros系统和ros系统通信的具体格式,包括话题的订阅,消息的发布,服务的调用,参数的设置和获取,图片信息的传递等等,都是json格式的字符串。implementation部分是rosbridge的具体实现,包含rosapi、rosbridge_library、rosbridge_server等包。rosapi通过服务调用使某些ros action可访问,包括获取和设置参数,获取主题列表等。rosbridge_library是核心rosbridge包。rosbridge_library负责获取json字符串并将命令发送到ros,反之亦然。rosbridge_server负责通信的传输层,包括websocket,tcp,udp等几种格式。
4.上述技术手段主要有以下缺点:
5.过分依赖ros系统环境,无法解藕到多个平台环境下使用。通信过程是采用无中心化架构,采用多对多的连接方式,假设需要多个仿真环境和多个无人系统通信时,必然产生通信连接爆发的情况。通信采用json格式进行序列化过程,假设发送数据过大的情况(在本项目初期也能rosbridge作为交互通信工具,其中一个实例是发送视频时,发送4k图片,每张图片约4mb大小),就会出序列化和反序列化消耗时间过大的情况。


技术实现要素:

6.本发明的主要目的在于克服现有技术的缺点与不足,针对各种支撑人工智能、物联网和仿真产业下的异构平台之间差异的研究,提供一种跨异构平台的通信技术方法、系统及介质,适应window和linux操作系统下不同计算环境的要求,深入研究异构平台之间的通信开销、通信规律、特征,设计合理的通信模式,研究简化计算节点间相互同步所需的信
息,消除通信瓶颈,提高异构平台之间的可扩展性。实现异构平台之间的融合。
7.为了达到上述目的,本发明采用以下技术方案:
8.本发明提供了一种跨异构平台的通信技术方法,包括以下步骤:
9.构建通信集群:在同一电脑或服务器上部署一个或多个子通信集群,每个子通信集群以master服务作为总控制管理节点;每个master服务与多个router服务交互通信,router服务作为与客户端交互的节点;每个router服务中均包含一个订阅器sub、多个发布器pub和一个推送器push,每个客户端均包括一个拉取服务pull、一个或多个订阅器sub和发布器pub;
10.跨异构平台通信:
11.用户通过命令行的方式操作master服务,以控制和监控整个通信集群;
12.有发布数据需求的客户端发布器pub通过指定的网络地址和网络端口连接并发布指定通信数据包到router服务的订阅器sub;
13.router服务的订阅器sub绑定其指定的网络端口,监听接收的指定通信数据包并保存到内存队列中;
14.router服务内的推送服务push绑定其指定的网络端口,监听内存队列中存在的通信数据包并把单个通信数据包发送到其连接上的客户端client拉取服务pull;一个推送服务push只能与一个拉取服务pull进行通信;
15.router服务内的多个发布器pub分别绑定其指定的网络端口,监听内存队列中存在的通信数据包并发送到所有连接上的客户端的订阅器sub;
16.有接收数据需求的客户端client订阅器sub通过指定的网络地址和网络端口连接到router服务特定的发布器pub并接收指定通信数据包。
17.作为优选的技术方案,所述客户端client包括仿真系统unreal engine或unity、异构无人系统ros、多物理场计算系统、深度强化学习器。
18.作为优选的技术方案,所述用户通过命令行的方式操作master服务,以控制和监控整个通信集群具体为:
19.通过发送消息指令控制master服务的行为,包括动态地新建、关闭、暂停router服务节点;查看其它通信集群的状态信息;查看当前集群下的router服务状态信息;收集通信集群下的信息,生成日志并保存。
20.作为优选的技术方案,所述客户端、router服务内的订阅器sub和发布器pub以话题的方式发布或接收通信数据包。
21.作为优选的技术方案,所述发布器pub和订阅器sub间通过消息代理或消息队列进行通信。
22.作为优选的技术方案,所述通过消息代理或消息队列进行通信时,令两条数据间隔大于10秒,以避免在数据通信发送数据量过大或间隔过短时导致发送的队列阻塞。
23.作为优选的技术方案,所述通信集群采用zeromq作为底层网络通信组件。
24.作为优选的技术方案,所述发布器pub和订阅器sub支持多进程分布式动态负载均衡方案。
25.本发明的另一个方面,还提供了一种跨异构平台的通信技术系统,应用于上述的一种跨异构平台的通信技术方法,包括通信集群构建模块、控制管理模块、跨异构平台通信
模块;
26.所述通信集群构建模块用于在同一电脑或服务器上部署一个或多个子通信集群,每个子通信集群以master服务作为总控制管理节点;每个master服务与多个router服务交互通信,router服务作为与客户端交互的节点;每个router服务中均包含一个订阅器sub、多个发布器pub和一个推送器push,每个客户端均包括一个拉取服务pull、一个或多个订阅器sub和发布器pub;
27.所述控制管理模块用于通过命令行的方式操作master服务,控制和监控整个通信集群;
28.所述跨异构平台通信模块用于进行跨异构平台的通信,具体为:
29.有发布数据需求的客户端发布器pub通过指定的网络地址和网络端口连接并发布指定通信数据包到router服务的订阅器sub;
30.router服务的订阅器sub绑定其指定的网络端口,监听接收的指定通信数据包并保存到内存队列中;
31.router服务内的推送服务push绑定其指定的网络端口,监听内存队列中存在的通信数据包并把单个通信数据包发送到其连接上的客户端client拉取服务pull;一个推送服务push只能与一个拉取服务pull进行通信;
32.router服务内的多个发布器pub分别绑定其指定的网络端口,监听内存队列中存在的通信数据包并发送到所有连接上的客户端的订阅器sub;
33.有接收数据需求的客户端client订阅器sub通过指定的网络地址和网络端口连接到router服务特定的发布器pub并接收指定通信数据包。
34.本发明的另一个方面,还提供了一种存储介质,存储有程序,所述程序被处理器执行时,实现上述的一种跨异构平台的通信技术方法。
35.本发明与现有技术相比,具有如下优点和有益效果:
36.(1)本发明采用发布者/订阅者模式作为分布式跨不同操作系统的通信方案,低成本、高效率、简单易行地跨越多个异构平台之间的差异,将不同平台进行提炼、整合,并充分利用已有的技术及平台资源,实现各种异构平台协同工作与通信,克服了在人工智能、物联网和仿真产业中的各种平台设计在windows或linux操作系统下不同的计算环境下,具有各自单独运行的系统,无法实现互联互通,对于大型算例,单台计算节点的资源严重不足,独立的计算系统算力不足,对于当前各个异构平台的发展造成严重阻碍,严重影响人工智能、物联网和仿真产业的发展的问题。
37.(2)本发明的通信技术方法可将单个算例、单个仿真计算均衡分布到各个计算节点和多个计算系统,有效增强算力和减轻计算节点成本。
38.(3)本发明的方法应用到集群无人系统时,可在在虚拟仿真的环境下验证动态决策规划、协同和控制的执行能力后,然后把执行能力直接安装到真实环境中使用,节省极多的人力财力,且可降低测试场地要求。
附图说明
39.图1是本发明实施例的子通信集群的结构示意图;
40.图2是本发明实施例的多个子通信集群的结构示意图;
41.图3是本发明实施例的多个子通信集群间通信的示意图
42.图4是本发明实施例的跨异构平台的通信技术方法应用到虚幻引擎、多物理场计算系统和机器人系统的示意图;
43.图5是本发明实施例在在机器人系统下发送键盘命令的示意图;
44.图6、图7、图8是本发明实施例的仿真系统接收到信息并进行相应移动的示意图;
45.图9是本发明实施例的虚拟引擎上产生红外线和摄像头数据的示意图;
46.图10是本发明实施例在机器人系统产生的摄像头图像和红外线点云图;
47.图11是本发明实施例在机器人系统产生的摄像头数据图像;
48.图12是本发明实施例在机器人系统产生的红外线点云图;
49.图13是本发明实施例在多物理场计算系统计算球形物体的力学并反应在仿真系统的示意图。
具体实施方式
50.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
51.实施例一
52.如图1所示,本实施例提供了一种跨异构平台的通信技术方法,包括以下步骤:
53.(1)构建通信集群
54.如图1所示,采用master服务作为管理一个子通信集群的管理节点,每个master服务与多个router服务交互通信,router服务作为与客户端(client)交互的节点;
55.进一步的,客户端包括仿真系统(unreal engine或unity)、异构无人系统(ros)、多物理场计算系统、深度强化学习器等。
56.如图2所示,在同一电脑或服务器上能够部署一个或多个子通信集群,每个子通信集群以master服务作为总控制管理节点;
57.进一步的,用户可以通过发送消息指令控制master服务的行为,如:动态地新建、关闭、暂停router服务节点,查看其它通信集群的状态信息,查看当前集群下的router服务状态信息。同时,master服务收集集群下的信息,生成日志并保存起来。
58.如图3所示,router服务承载着与client交互的作用,以router服务作为发布服务器和订阅服务器,在服务器集群中驻留多个不同的应用程序,它们中的每一个都通过消息代理或消息队列进行通信。在windows或linux下运行提供与实体空间一致的虚拟实时数据,各client之间的通信则以话题(/topic)的形式,按照设计的协议(protocol)下运行的数据通信、处理和管理节点来实现,实则router服务现实了数据转发的机制。
59.进一步的,在本实施例中,当数据通信发送数据量过大或间隔过短时,令两条数据间隔大于10秒,以避免发送的队列阻塞。
60.每个router服务都有多个发布器(pub)以话题的形式发布指定数据通信,其它使用者利用订阅器(sub)以话题的形式接收指定的数据通信。每个router服务都有多个订阅器(sub),以话题的形式接收指定的数据通信,并发到router服务内的其它发布器(pub)和
推服务(push)以话题的形式发布指定数据通信。客户端(client)可以创建一个或多个发布器(pub)以话题的形式发布指定数据通信,客户端(client)可以创建一个或多个订阅器(sub)以话题的形式接收指定的数据通信;每个router服务均包括一个推送器push,每个客户端均包括一个拉取服务pull,其中一个推送服务push只能与一个拉取服务pull进行通信,实现单对单通信和队列发送;
61.进一步的,本实施例的发布器pub和订阅器sub支持多进程分布式动态负载均衡方案。
62.实际上本实施例的数据连通是以tcp的ip地址和端口作用多端产生数据交互的桥梁,如图4所示,目前已经在三个系统环境(unreal engine(虚幻引擎)、openfoam(多物理场计算系统)和ros(机器人系统))下使用,都是tcp的ip地址和端口连通。
63.更进一步的,本实施例的通信集群采用zeromq(又名mq,或zmq)作为底层网络通信组件;所述zeromq的作用是一个并发框架,类似于标准berkeley套接字,其提供了各种传输工具,如进程内、进程间、tcp和组播中进行原子消息传送的套接字,可以使用各种模式实现n对n的套接字连接,这些模式包括:扇出、发布

订阅、任务分配、请求

应答,速度足够快,因此可充当集群产品的结构,异步i/o模型提供了可扩展的多核应用程序,用异步消息来处理任务,核心由c语言编写,支持c、c 、java等多种编程语言的api,并可运行在大多数操作系统上。
64.(2)跨异构平台通信
65.用户通过命令行的方式操作master服务,以控制和监控整个通信集群,具体为:通过发送消息指令控制master服务的行为,包括动态地新建、关闭、暂停router服务节点;查看其它通信集群的状态信息;查看当前集群下的router服务状态信息;收集通信集群下的信息,生成日志并保存。
66.s1、有发布数据需求的客户端发布器pub通过指定的网络地址和网络端口连接并发布指定通信数据包到router服务的订阅器sub;
67.s2、router服务的订阅器sub绑定其指定的网络端口,监听接收的指定通信数据包并保存到内存队列中;
68.s3、router服务内的推送服务push绑定其指定的网络端口,监听内存队列中存在的通信数据包并把单个通信数据包发送到其连接上的客户端client拉取服务pull;一个推送服务push只能与一个拉取服务pull进行通信;
69.s4、router服务内的多个发布器pub分别绑定其指定的网络端口,监听内存队列中存在的通信数据包并发送到所有连接上的客户端的订阅器sub;
70.s5、有接收数据需求的客户端client订阅器sub通过指定的网络地址和网络端口连接到router服务特定的发布器pub并接收指定通信数据包。
71.实施例二
72.在机器人系统(ros)下,如图5所示,机器人系统的实例程序键盘命令(实际上是在实体无人车上安装键盘,使得无人车移动)通过发布器pub以话题(/topic)发送到指定的router服务,仿真系统(本实例是unreal engine)以话题(/topic)方式监听到router服务接收到的无人车键盘方向命令消息,如图6、图7、图8所示,本实例中的仿真系统的进行相应移动。
73.本发明作为通信的重要一环,在ubuntu下运行的人机协同智能操作系统支持无人车/机在复杂作业环境下的自适应感知、判断、作业规划和控制。在unreal渲染引擎支持复杂环境下人机物的渲染,并为智能体提供与实体空间一致的虚拟实时数据。
74.实施例三
75.仿真系统(本实例是unreal engine)上产生红外线和摄像头数据(图9),通过发布器pub以话题(/topic)发送到指定的router服务,机器人系统(ros)以话题(/topic)方式监听到router服务接收到集成传输消息,在机器人系统(ros)产生摄像头图像和红外线点云图(图10),从图11可以看到仿真系统(本实例是unreal engine)产生的摄像头数据,从图12可以看到仿真系统(本实例是unreal engine)产生的红外线数据。
76.利用unreal框架构建无人集群和场地模拟运行环境,并生成无人系统挂载传感器(包括camera、gps、imu、激光雷达等数字模型的)仿真数据;设计自组网通信模型,模拟无人系统自身计算资源的信息交互关系和信息传输过程;在仿真通信模型传输过程中设计地理环境、气象环境、电磁环境等仿真模型,设定无人集群在典型任务场景中的环境约束条件;通过分布式服务收集传感器信息、状态信息,生成结构化和非结构化信息(图片、文件或视频);基于机器人操作系统ros各种应用软件包的需要,构建包括carmer、gps、imu、激光雷达等设备调用模型和接口。
77.实施例四
78.如图13所示,在多物理场计算系统中计算球形物体的力学,通过发布者/订阅者模式的通信方案,将数据反应在仿真系统中(本实例是unreal engine)。
79.实施例五
80.在本实施例中,提供了一种跨异构平台的通信技术系统,该系统包括通信集群构建模块、控制管理模块、跨异构平台通信模块;
81.所述通信集群构建模块用于在同一电脑或服务器上部署一个或多个子通信集群,每个子通信集群以master服务作为总控制管理节点;每个master服务与多个router服务交互通信,router服务作为与客户端交互的节点;每个router服务中均包含一个订阅器sub、多个发布器pub和一个推送器push,每个客户端均包括一个拉取服务pull、一个或多个订阅器sub和发布器pub;
82.所述控制管理模块用于通过命令行的方式操作master服务,控制和监控整个通信集群;
83.所述跨异构平台通信模块用于进行跨异构平台的通信,具体为:
84.有发布数据需求的客户端发布器pub通过指定的网络地址和网络端口连接并发布指定通信数据包到router服务的订阅器sub;
85.router服务的订阅器sub绑定其指定的网络端口,监听接收的指定通信数据包并保存到内存队列中;
86.router服务内的推送服务push绑定其指定的网络端口,监听内存队列中存在的通信数据包并把单个通信数据包发送到其连接上的客户端client拉取服务pull;一个推送服务push只能与一个拉取服务pull进行通信;
87.router服务内的多个发布器pub分别绑定其指定的网络端口,监听内存队列中存在的通信数据包并发送到所有连接上的客户端的订阅器sub;
88.有接收数据需求的客户端client订阅器sub通过指定的网络地址和网络端口连接到router服务特定的发布器pub并接收指定通信数据包。
89.在此需要说明的是,上述实施例提供的系统仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,该系统是应用于实施例一所述的一种跨异构平台的通信技术方法。
90.实施例六
91.在本实施例中,提供了一种存储介质,存储有程序,所述程序被处理器执行时,实现实施例一所述的一种跨异构平台的通信技术方法,具体为:
92.构建通信集群:在同一电脑或服务器上部署一个或多个子通信集群,每个子通信集群以master服务作为总控制管理节点;每个master服务与多个router服务交互通信,router服务作为与客户端交互的节点;每个router服务中均包含一个订阅器sub、多个发布器pub和一个推送器push,每个客户端均包括一个拉取服务pull、一个或多个订阅器sub和发布器pub;
93.跨异构平台通信:
94.用户通过命令行的方式操作master服务,以控制和监控整个通信集群;
95.有发布数据需求的客户端发布器pub通过指定的网络地址和网络端口连接并发布指定通信数据包到router服务的订阅器sub;
96.router服务的订阅器sub绑定其指定的网络端口,监听接收的指定通信数据包并保存到内存队列中;
97.router服务内的推送服务push绑定其指定的网络端口,监听内存队列中存在的通信数据包并把单个通信数据包发送到其连接上的客户端client拉取服务pull;一个推送服务push只能与一个拉取服务pull进行通信;
98.router服务内的多个发布器pub分别绑定其指定的网络端口,监听内存队列中存在的通信数据包并发送到所有连接上的客户端的订阅器sub;
99.有接收数据需求的客户端client订阅器sub通过指定的网络地址和网络端口连接到router服务特定的发布器pub并接收指定通信数据包。
100.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
101.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜