基于IOCP网络模型服务器的仿真实现方法及服务器与流程
未命名
08-07
阅读:80
评论:0

基于iocp网络模型服务器的仿真实现方法及服务器
技术领域
1.本发明涉及网络通信开发领域,更具体地,涉及一种基于iocp网络模型服务器的仿真实现方法及服务器。
背景技术:
2.随着自动驾驶领域硬件、算法等方面的快速发展,虚拟仿真技术在自动驾驶研发和测试领域的应用日渐广泛;仿真工具模型能在汽车量产应用中扮演越来越重要的角色。在传统的仿真联调方案里,需要测试已有模型,需要对该模型进行一系列的编码或适配操作;中间件通过自身跨平台、易用性特性,让unreal引擎的仿真和算法模块本身只需要关注于数据的输入和输出本身,而不需要进行其他工作。
技术实现要素:
3.本发明针对现有技术中存在的技术问题,提供一种基于iocp网络模型服务器的仿真实现方法及服务器。
4.根据本发明的第一方面,提供了一种基于iocp网络模型服务器的仿真实现方法,所述iocp网络模型服务器包括中间组件,所述中间组件包括中间件通信模块和中间件挂载算法模型模块,所述方法包括:
5.unreal引擎获取仿真数据进行封装,将封装后的仿真数据通过网络通信模块发送给所述iocp网络模型服务器的中间件通信模块;
6.所述中间件通信模块根据视觉感知算法模型的需求,对封装后的仿真数据进行封包和解包,并发送给所述中间件挂载算法模型模块;
7.所述中间件挂载算法模型模块调用相应的视觉感知算法模型对仿真数据进行处理,并将所述视觉感知算法模型输出的反馈数据通过所述中间件通信模块返回给所述unreal引擎的中间件通信模块。
8.在上述技术方案的基础上,本发明还可以作出如下改进。
9.可选的,所述中间件通信模块包括第一线程、第二线程和第三线程,所述第一线程为专门处理连接投递的线程,所述第二线程为专门处理接收数据的线程,所述第三线程为专门处理发送数据的线程。
10.可选的,所述第一线程对所述unreal引擎发送的请求socket进行判断,判断其是否为合法连接,若为合法连接,对其进行标记;若不合法,则直接断开连接;且在合法连接时,将封装的仿真数据投递到所述第二线程;
11.所述第二线程根据事先约定好的封包协议对封装的仿真数据进行解包,解包出指令编号和具体仿真数据,并将其投递给所述中间件挂载算法模型模块;
12.所述第三线程对所述中间件挂载算法模型模块输出的反馈数据按照事先约定好的封包协议进行封包,并将封包后的反馈数据返回给unreal引擎。
13.可选的,通过如下方式实现unreal引擎和iocp网络模型服务器之间的连接:
14.在iocp网络模型服务器创建并加载视觉感知算法模型,通过app管理器创建服务端对象,并对视觉感知算法模型进行对象创建,注册约定好的指令集;
15.unreal引擎通过配置文件设置服务器端的ip、端口号、密码进行与iocp网络模型服务器的连接。
16.可选的,所述中间件挂载算法模型模块包括app管理器,所述app管理器用于管理多个视觉感知算法模型,并为每一个视觉感知算法模型封装输入输出接口。
17.可选的,所述iocp网络模型服务器包括多个中间组件,当接收到多个unreal引擎同时发送的仿真数据时,为每一个unreal引擎分配对应的中间组件,基于分配的所述中间组件,对unreal引擎发送的仿真数据进行处理。
18.可选的,所述iocp网络模型服务器包括多个中间组件,当接收到unreal引擎发送的大规模仿真数据时,将大规模的仿真数据划分为多个仿真数据块,为每一个仿真数据块分配对应的中间组件,基于分配的中间组件,对仿真数据块进行处理。
19.根据本发明的第二方面,提供一种iocp服务器,所述iocp网络模型服务器包括中间组件,所述中间组件包括中间件通信模块和中间件挂载算法模型模块;
20.所述中间件通信模块,用于根据视觉感知算法模型的需求,对封装后的仿真数据进行封包和解包,并发送给所述中间件挂载算法模型模块,其中,所述封装后的仿真数据为unreal引擎对获取的仿真数据进行封装而来,且将封装后的仿真数据通过网络通信模块发送给所述中间件通信模块;
21.所述中间件挂载算法模型模块,用于调用相应的视觉感知算法模型对仿真数据进行处理,并将所述视觉感知算法模型输出的反馈数据通过所述中间件通信模块返回给所述unreal引擎的中间件通信模块。
22.可选的,所述中间件通信模块包括第一线程、第二线程和第三线程,所述第一线程为专门处理连接投递的线程,所述第二线程为专门处理接收数据的线程,所述第三线程为专门处理发送数据的线程。
23.可选的,所述第一线程,用于对所述unreal引擎发送的请求socket进行判断,判断其是否为合法连接,若为合法连接,对其进行标记;若不合法,则直接断开连接;且在合法连接时,将封装的仿真数据投递到所述第二线程;
24.所述第二线程,用于根据事先约定好的封包协议对封装的仿真数据进行解包,解包出指令编号和具体仿真数据,并将其投递给所述中间件挂载算法模型模块;
25.所述第三线程,用于对所述中间件挂载算法模型模块输出的反馈数据按照事先约定好的封包协议进行封包,并将封包后的反馈数据返回给unreal引擎。
26.本发明提供的一种基于iocp网络模型服务器的仿真实现方法及服务器,使用iocp网络模型服务器中间件框架加载已有仿真算法。使用unreal引擎需要获得的仿真数据进行封装,通过unreal引擎的网络通信模块和iocp网络模型服务器中间件进行数据通信,并且把unreal引擎的封装的仿真数据提供给算法模型,并给出反馈,解决视觉感知算法模型和unreal引擎仿真环境之间的数据交互问题,将视觉感知算法模型需求的仿真数据的传输和ue本身的底层环境充分解耦,提高易用性和适用性。
附图说明
27.图1为本发明提供的一种基于iocp网络模型服务器的仿真实现方法流程图;
28.图2为unreal引擎与iocp网络模型服务器的数据交互示意图;
29.图3为本发明提供的一种iocp网络模型服务器的结构示意图。
具体实施方式
30.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
31.本发明涉及智能驾驶apa算法的感知模块开发的技术领域,主要应用于视觉感知算法开发的仿真测试输入数据处理。具体涉及一种基于unreal引擎利用iocp网络模型中间件加载仿真数据和算法模型,实现解耦集成的方法。
32.图1提出了本发明的一种基于iocp网络模型服务器的仿真实现方法,其中所述iocp网络模型服务器包括中间组件,所述中间组件包括中间件通信模块和中间件挂载算法模型模块。仿真实现方法包括:
33.unreal引擎获取仿真数据进行封装,将封装后的仿真数据通过网络通信模块发送给所述iocp网络模型服务器的中间件通信模块;所述中间件通信模块根据视觉感知算法模型的需求,对封装后的仿真数据进行封包和解包,并发送给所述中间件挂载算法模型模块;所述中间件挂载算法模型模块调用相应的视觉感知算法模型对仿真数据进行处理,并将所述视觉感知算法模型输出的反馈数据通过所述中间件通信模块返回给所述unreal引擎的中间件通信模块。
34.可理解的是,本发明实施例主要用于解决仿真环境和被测算法单元的通讯解耦,便于开发者和测试者之间的工作独立性和高效性,主要涉及到两个模块,分别对应于被测算法单元和仿真环境平台,通常引擎提供仿真环境平台,被测算法模型通过被挂载在服务器上,本发明实施例实现unreal引擎和被测算法模型之间的通信和数据交互。
35.基于此,本发明实施例在iocp网络模型服务器中开发中间组件,中间组件主要包括中间件通信模块和中间件挂载算法模型模块,中间件通信模块主要负责与unreal引擎之间的通信,中间件挂载算法模型模块主要负责挂载各个视觉感知算法模型。unreal引擎将仿真数据发送给iocp网络模型服务器的中间件通信模块,中间件通信模块将仿真数据发送给中间件挂载算法模型模块,中间件挂载算法模型模块调用相应的视觉感知算法模型对仿真数据进行处理,并将处理后的返回数据通过中间件通信模块返回给unreal引擎。
36.其中,所述中间件挂载算法模型模块包括app管理器,所述app管理器用于管理多个视觉感知算法模型,并为每一个视觉感知算法模型封装输入输出接口。
37.具体的,中间件挂载算法模型模块将已有的算法模型进行封装,只需要暴露输入
输出接口,以此作为中间件的app模块。在中间件挂载算法模型模块创建一个app管理器对app模块进行管理,通过指令编号进行区分,可参见图2,分别调用对应的算法模型并且返回数据,数据可通过中间件通信模块返回unreal引擎,或者直接调用其他app模块进行操作。
38.作为实施例,所述中间件通信模块包括第一线程、第二线程和第三线程,所述第一线程为专门处理连接投递的线程,所述第二线程为专门处理接收数据的线程,所述第三线程为专门处理发送数据的线程。
39.可理解的是,中间件通信模块中包括多个线程,用于处理不同的任务,本发明实施例中,中间件通信模块主要包括专门处理连接投递的线程、专门处理接收数据的线程和专门处理发送数据的线程,称为第一线程、第二线程和第三线程。其中,所述第一线程对所述unreal引擎发送的请求socket进行判断,判断其是否为合法连接,若为合法连接,对其进行标记;若不合法,则直接断开连接;且在合法连接时,将封装的仿真数据投递到所述第二线程;所述第二线程根据事先约定好的封包协议对封装的仿真数据进行解包,解包出指令编号和具体仿真数据,并将其投递给所述中间件挂载算法模型模块;所述第三线程对所述中间件挂载算法模型模块输出的反馈数据按照事先约定好的封包协议进行封包,并将封包后的反馈数据返回给unreal引擎。
40.其中,通过如下方式实现unreal引擎和iocp网络模型服务器之间的连接:在iocp网络模型服务器创建并加载视觉感知算法模型,通过app管理器创建服务端对象,并对视觉感知算法模型进行对象创建,注册约定好的指令集;unreal引擎通过配置文件设置服务器端的ip、端口号、密码进行与iocp网络模型服务器的连接。在unreal引擎与iocp网络模型服务器连接成功时,unreal引擎与iocp网络模型服务器实现数据的交互。
41.以上的技术方案理论上不仅能够解决视觉感知算法模型的仿真测试解耦,其他同类型的仿真测试都可以直接借鉴此模块,仅仅需要进行相应的关键通讯内容更新。
42.同时,此方案还可以支持并行运行,便于同步进行多个开发任务,提高开发效率。作为实施例,所述iocp网络模型服务器包括多个中间组件,当接收到多个unreal引擎同时发送的仿真数据时,为每一个unreal引擎分配对应的中间组件,基于分配的所述中间组件,对unreal引擎发送的仿真数据进行处理。
43.可理解的是,在iocp网络模型服务器中开发多个中间件,如果有多个unreal引擎同时向iocp网络模型服务器发送仿真数据,则为每一个unreal引擎分配一个或多个中间件,基于分配的中间件对仿真数据进行处理。
44.作为另一实施例,所述iocp网络模型服务器包括多个中间组件,当接收到unreal引擎发送的大规模仿真数据时,将大规模的仿真数据划分为多个仿真数据块,为每一个仿真数据块分配对应的中间组件,基于分配的中间组件,对仿真数据块进行处理。
45.可理解的是,当unreal引擎发送的仿真数据为大规模仿真数据时,可以将大规模的仿真数据划分为多个仿真数据块,为一个仿真数据块分配对应的中间件,基于分配的中间件,对相应的仿真数据块进行处理。
46.参见图3,提供了一种iocp网络模型服务器,所述iocp网络模型服务器包括中间组件10,所述中间组件包括中间件通信模块101和中间件挂载算法模型模块102。
47.所述中间件通信模块101,用于根据视觉感知算法模型的需求,对封装后的仿真数据进行封包和解包,并发送给所述中间件挂载算法模型模块102,其中,所述封装后的仿真
数据为unreal引擎20对获取的仿真数据进行封装而来,且将封装后的仿真数据通过网络通信模块201发送给所述中间件通信模块101;所述中间件挂载算法模型模块102,用于调用相应的视觉感知算法模型对仿真数据进行处理,并将所述视觉感知算法模型输出的反馈数据通过所述中间件通信模块101返回给所述unreal引擎20的网络通信模块201。
48.其中,所述中间件通信模块101包括第一线程、第二线程和第三线程,所述第一线程为专门处理连接投递的线程,所述第二线程为专门处理接收数据的线程,所述第三线程为专门处理发送数据的线程。
49.所述第一线程,用于对所述unreal引擎发送的请求socket进行判断,判断其是否为合法连接,若为合法连接,对其进行标记;若不合法,则直接断开连接;且在合法连接时,将封装的仿真数据投递到所述第二线程;所述第二线程,用于根据事先约定好的封包协议对封装的仿真数据进行解包,解包出指令编号和具体仿真数据,并将其投递给所述中间件挂载算法模型模块;所述第三线程,用于对所述中间件挂载算法模型模块输出的反馈数据按照事先约定好的封包协议进行封包,并将封包后的反馈数据返回给unreal引擎。
50.可以理解的是,本发明提供的一种iocp网络模型服务器与前述各实施例提供的基于iocp网络模型服务器的仿真实现方法相对应,iocp网络模型服务器的相关技术特征可参考基于iocp网络模型服务器的仿真实现方法的相关技术特征,在此不再赘述。
51.本发明实施例提供的一种基于iocp网络模型服务器的仿真实现方法及服务器,在iocp网络模型服务器中开发中间件,可以用中间件的形式,使unreal引擎这个数据生产者,和算法模型这个数据消费者之间解耦,使各自只需要关注自身所需要做的事。不用考虑两者之间的数据通信、跨平台、适配性等问题;且支持多线程和分布式,提高便利性的同时,显著提高开发效率。
52.需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
53.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
54.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
55.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
56.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
57.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
58.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
技术特征:
1.一种基于iocp网络模型服务器的仿真实现方法,其特征在于,所述iocp网络模型服务器包括中间组件,所述中间组件包括中间件通信模块和中间件挂载算法模型模块,所述方法包括:unreal引擎获取仿真数据进行封装,将封装后的仿真数据通过网络通信模块发送给所述iocp网络模型服务器的中间件通信模块;所述中间件通信模块根据视觉感知算法模型的需求,对封装后的仿真数据进行封包和解包,并发送给所述中间件挂载算法模型模块;所述中间件挂载算法模型模块调用相应的视觉感知算法模型对仿真数据进行处理,并将所述视觉感知算法模型输出的反馈数据通过所述中间件通信模块返回给所述unreal引擎的中间件通信模块。2.根据权利要求1所述的仿真实现方法,其特征在于,所述中间件通信模块包括第一线程、第二线程和第三线程,所述第一线程为专门处理连接投递的线程,所述第二线程为专门处理接收数据的线程,所述第三线程为专门处理发送数据的线程。3.根据权利要求2所述的仿真实现方法,其特征在于,所述第一线程对所述unreal引擎发送的请求socket进行判断,判断其是否为合法连接,若为合法连接,对其进行标记;若不合法,则直接断开连接;且在合法连接时,将封装的仿真数据投递到所述第二线程;所述第二线程根据事先约定好的封包协议对封装的仿真数据进行解包,解包出指令编号和具体仿真数据,并将其投递给所述中间件挂载算法模型模块;所述第三线程对所述中间件挂载算法模型模块输出的反馈数据按照事先约定好的封包协议进行封包,并将封包后的反馈数据返回给unreal引擎。4.根据权利要求3所述的仿真实现方法,其特征在于,通过如下方式实现unreal引擎和iocp网络模型服务器之间的连接:在iocp网络模型服务器创建并加载视觉感知算法模型,通过app管理器创建服务端对象,并对视觉感知算法模型进行对象创建,注册约定好的指令集;unreal引擎通过配置文件设置服务器端的ip、端口号、密码进行与iocp网络模型服务器的连接。5.根据权利要求4所述的仿真实现方法,其特征在于,所述中间件挂载算法模型模块包括app管理器,所述app管理器用于管理多个视觉感知算法模型,并为每一个视觉感知算法模型封装输入输出接口。6.根据权利要求1所述的仿真实现方法,其特征在于,所述iocp网络模型服务器包括多个中间组件,当接收到多个unreal引擎同时发送的仿真数据时,为每一个unreal引擎分配对应的中间组件,基于分配的所述中间组件,对unreal引擎发送的仿真数据进行处理。7.根据权利要求1所述的仿真实现方法,其特征在于,所述iocp网络模型服务器包括多个中间组件,当接收到unreal引擎发送的大规模仿真数据时,将大规模的仿真数据划分为多个仿真数据块,为每一个仿真数据块分配对应的中间组件,基于分配的中间组件,对仿真数据块进行处理。8.一种iocp网络模型服务器,其特征在于,所述iocp网络模型服务器包括中间组件,所述中间组件包括中间件通信模块和中间件挂载算法模型模块;
所述中间件通信模块,用于根据视觉感知算法模型的需求,对封装后的仿真数据进行封包和解包,并发送给所述中间件挂载算法模型模块,其中,所述封装后的仿真数据为unreal引擎对获取的仿真数据进行封装而来,且将封装后的仿真数据通过网络通信模块发送给所述中间件通信模块;所述中间件挂载算法模型模块,用于调用相应的视觉感知算法模型对仿真数据进行处理,并将所述视觉感知算法模型输出的反馈数据通过所述中间件通信模块返回给所述unreal引擎的中间件通信模块。9.根据权利要求8所述的iocp网络模型服务器,其特征在于,所述中间件通信模块包括第一线程、第二线程和第三线程,所述第一线程为专门处理连接投递的线程,所述第二线程为专门处理接收数据的线程,所述第三线程为专门处理发送数据的线程。10.根据权利要求9所述的iocp网络模型服务器,其特征在于,所述第一线程,用于对所述unreal引擎发送的请求socket进行判断,判断其是否为合法连接,若为合法连接,对其进行标记;若不合法,则直接断开连接;且在合法连接时,将封装的仿真数据投递到所述第二线程;所述第二线程,用于根据事先约定好的封包协议对封装的仿真数据进行解包,解包出指令编号和具体仿真数据,并将其投递给所述中间件挂载算法模型模块;所述第三线程,用于对所述中间件挂载算法模型模块输出的反馈数据按照事先约定好的封包协议进行封包,并将封包后的反馈数据返回给unreal引擎。
技术总结
本发明提供一种基于IOCP网络模型服务器的仿真实现方法及服务器,IOCP网络模型服务器包括中间组件,中间组件包括中间件通信模块和中间件挂载算法模型模块。通过本发明的IOCP网络模型服务器的中间组件,实现Unreal引擎与其它模块之间通信,解决视觉感知算法模型和Unreal引擎仿真环境之间的数据交互问题,将视觉感知算法模型需求的仿真数据的传输和UE本身的底层环境充分解耦,提高易用性和适用性。提高易用性和适用性。提高易用性和适用性。
技术研发人员:李森林 戚李超
受保护的技术使用者:武汉光庭信息技术股份有限公司
技术研发日:2023.03.22
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/