掌桥专利:专业的专利平台
掌桥专利
首页

一种可视化人工智能系统仿真平台的容器集群部署方法

文献发布时间:2023-06-19 11:39:06


一种可视化人工智能系统仿真平台的容器集群部署方法

技术领域

本发明涉及仿真平台的部署,具体涉及一种可视化人工智能系统仿真平台的容器集群部署方法。

背景技术

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上。同时Docker是一种轻量级的虚拟化方案,Docker也具有诸多优势,如相比于虚拟机(VM)技术而言,Docker可共享宿主机(Host),减少了客户机(Guest)对内存和CPU等资源的开销,因此Docker效率更高,更加轻量级化。

可视化人工智能系统仿真平台是采用虚拟仿真环境替代真实物理环境对智能无人系统进行测试,能够为实际测试场景提供充分的数据支撑,同时通过在虚拟仿真环境中及时发现问题并改进减少实际测试中的时间和人力成本。可视化人工智能系统仿真平台的功能需求包括:1)虚拟仿真环境与被测无人系统的数据交互;2)环境仿真,将被测无人系统硬件层面以及其与物理世界的交互投射到虚拟仿真环境中,使得被测无人系统在虚拟仿真环境中能够正确驱动虚拟无人系统,并与虚拟环境进行交互;3)环境配置,满足用户对于不同测试场景的自由灵活选择设置。

可视化人工智能系统仿真平台的功能模块包括但不限于以下几个方面:

从数据交互方面,功能模块含有测试对象平台接入,实时视频数据推送到终端,测试过程直播,用户可视化页面交互;其中,用户可视化页面交互包括但不限于用户管理、测试任务管理、测试任务设置、测试用例选择、测试报告生成、测试数据可视化等功能的展示等。

从环境仿真方面,功能模块含有物理环境的虚拟仿真,传感器虚拟仿真,高精地图生成及解析,用户控制信号的接入,被测无人系统的接入、管理、运动控制,仿真环境中动态因素、静态因素、干扰因素等的添加等。

从环境配置方面,功能模块含有用户管理、测试任务管理、测试数据管理、实时数据库管理、仿真场景管理、场景数据获取、场景数据分析、测试数据分析、视频推流的实现、数据通信服务器的实现等。

由于可视化人工智能系统仿真平台拥有许多子模块,各个模块都有着众多的依赖环境,这就导致无论是搭建开发环境还是生产环境都十分的复杂,有时由于依赖环境版本的差异甚至是网络问题,都会导致环境搭建出现问题。

发明内容

为了解决现有技术中所存在的搭建人工智能系统仿真平台对环境的依赖性,而环境版本的差异和网络问题,都会导致环境搭建出现问题,本发明提供一种可视化人工智能系统仿真平台的容器集群部署方法,包括:

将仿真平台各功能模块拆解为多个镜像,并基于Docker容器技术分别生成对应的镜像文件;

为各镜像文件间使用相同或不同的通讯方式构建连接关系;

基于所述多个镜像文件的依赖关系顺序对所述多个镜像文件进行启动,完成所述仿真平台的部署。

优选的,所述镜像,包括:终端镜像、服务器镜像、视频流服务器镜像、仿真引擎镜像和数据库服务器镜像;其中,所述服务器镜像分别与所述视频流服务器镜像、仿真引擎镜像、数据库服务器镜像和终端镜像连接;

所述服务器镜像,基于所述视频流服务器镜像、仿真引擎镜像、数据库服务器镜像为所述终端镜像提供数据和服务交互;

所述视频流服务器镜像为终端镜像提供仿真视频服务。

优选的,

所述终端镜像对应的模块至少包括下述模块中的一种或多种:测试对象平台接入、高精地图生成及解析和用户可视化页面交互;

服务器镜像对应的模块至少包括下述模块中的一种或多种:仿真场景管理、场景数据获取、场景数据分析、测试数据分析、视频推流的实现和数据通信服务器的实现;

视频流服务器镜像对应的模块至少包括下述模块中的一种或多种:场景管理中的实时视频数据推送到终端和测试过程直播;

仿真引擎镜像对应的模块至少包括下述模块中的一种或多种:物理环境的虚拟仿真、传感器虚拟仿真、用户控制信号的接入、被测无人系统运行、仿真环境中相关影响因素的添加;

数据库服务器镜像对应的模块至少包括下述模块中的一种或多种:用户管理、测试任务管理、测试数据管理和实时数据库管理。

优选的,所述为各镜像文件间使用相同或不同的通讯方式构建连接关系,包括:

服务器镜像文件与数据库镜像文件之间使用应用层网络传输协议进行数据请求和交互;

服务器镜像文件与仿真引擎镜像文件之间使用传输层协议或远程调用协议,以实现仿真环境和虚拟无人系统的建立、管理、测试执行;

服务器镜像文件与终端镜像文件之间,针对不同的接入对象可使用通讯层协议、传输层协议、消息通信协议,用于终端展示和用户交互;

服务器镜像文件与视频流服务器镜像文件之间使用实时信息传输协议进行视频流的数据交互;

视频流服务器镜像文件与终端镜像文件之间使用实时信息传输协议进行视频流的实时传输。

优选的,基于Docker容器技术生成终端镜像文件,包括:

基于终端镜像,开放端口映射、设置网络模式、分配显卡并指定显卡驱动程序进而构建终端镜像文件;

所述端口映射包括:与服务器镜像、视频流服务器镜像连接的端口进行映射。

优选的,基于Docker容器技术生成服务器镜像文件,包括:

基于服务器镜像进行端口映射、设置网络模式、设置环境变量和分配显卡并指定显卡驱动程序进而构建服务器镜像文件;

其中,所述端口映射包括:开放与终端镜像、视频流服务器镜像、仿真引擎镜像、数据库镜像连接的端口。

优选的,基于Docker容器技术生成数据库服务器镜像文件包括:基于服务器镜像设置网络模式进而生成服务器镜像文件。

优选的,基于Docker容器技术生成仿真引擎镜像文件,包括:基于仿真引擎镜像进行端口映射、设置环境变量和分配显卡及指定显卡驱动程序,进而生成仿真引擎镜像文件。

优选的,基于Docker容器技术生成视频流服务器镜像文件,包括:基于视频流服务器镜像,进行端口映射并设置网络模式进而生成视频流服务器镜像文件。

优选的,所述基于所述多个镜像文件的依赖关系顺序对所述多个镜像文件进行启动,包括:

基于数据库服务器镜像文件、视频流服务器镜像文件和仿真引擎镜像文件按照任意顺序分别启动数据库服务器、视频流服务器和仿真引擎;

然后,基于服务器镜像文件启动服务器;

最后,基于终端服务器镜像文件启动终端服务器。

本发明的有益效果为:

1、本发明提供一种可视化人工智能系统仿真平台的容器集群部署方法,包括:将仿真平台各功能模块拆解为多个镜像,并基于Docker容器技术分别生成对应的镜像文件;为各镜像文件间使用相同或不同的通讯方式构建连接关系;基于所述多个镜像文件的依赖关系顺序对所述多个镜像文件进行启动,完成所述仿真平台的部署,因此,可以在可视化人工智能系统仿真平台利用容器集群实现快速一站式部署,摆脱仿真平台安装使用过程中的环境依赖;解决了可视化人工智能系统仿真平台在使用中经常出现环境不兼容、环境版本冲突等问题;

2、本发明提供的技术手段中仿真平台基于本发明所述的容器集群部署方案,可将仿真部分和平台展示部分独立开,保证了平台服务器以人工智能的仿真测试为优先的原则;

3、本发明提供的技术手段中平台的开发环境和使用环境的docker镜像基于两个不同的配置文件生成,当Docker对于生产环境的部署,可通过进程管理应用保证服务的稳定性;当Docker用于开发/测试环境的搭建,可以更方便重启服务,方便调试。

附图说明

图1为本发明的可视化人工智能系统仿真平台的容器集群部署方法流程图;

图2为仿真平台的容器集群部署及连接关系;

图3为仿真平台镜像文件的逻辑启动顺序。

具体实施方式

为了解决上述技术问题,本申请实施例提供了一种可视化人工智能系统仿真平台的容器集群部署方法,针对可视化人工智能系统仿真平台的模块众多,单独安装环境依赖多、难度大,需要利用Docker技术进行模块集群的一站式部署,摆脱软件安装使用过程中的环境依赖。如图1所示该方法包括:

S1将仿真平台各功能模块拆解为多个镜像,并基于Docker容器技术分别生成对应的镜像文件;

S2为各镜像文件间使用相同或不同的通讯方式构建连接关系;

S3基于所述多个镜像文件的依赖关系顺序对所述多个镜像文件进行启动,完成所述仿真平台的部署。

对于可视化人工智能系统仿真平台的功能模块进行模块化拆解,将构建五个镜像文件,包括终端镜像、服务器镜像、视频流服务器镜像、仿真引擎镜像、数据库服务器镜像;

S1将仿真平台各功能模块拆解为多个镜像,包括:

如图2所示,可视化人工智能系统仿真平台的容器集群各部分镜像文件功能如下:

1、终端镜像,主要用于便于用户与仿真平台交互,包括客户端、浏览器,具体包括的功能模块有:测试对象平台接入,高精地图生成及解析,用户可视化页面交互,交互包含用户管理、测试任务管理、测试任务设置、测试用例选择、测试报告生成、测试数据可视化等功能的展示。

2、服务器镜像,包括HTTP服务器、仿真场景管理服务器,具体包括的功能模块有:仿真场景管理、场景数据获取、场景数据分析、测试数据分析、视频推流的实现、数据通信服务器的实现。

3、数据库服务器镜像具体包括的功能模块有:用户管理、测试任务管理、测试数据管理、实时数据库管理。

4、仿真引擎镜像具体包括的功能模块有:物理环境的虚拟仿真,传感器虚拟仿真,用户控制信号的接入,被测无人系统的接入、管理、运动控制,仿真环境中相关影响因素的添加。被测无人系统运行包括:接入、管理、运动控制;仿真环境中相关影响因素的添加包括:动态因素、静态因素、干扰因素等的添加等。

5、视频流服务器镜像具体包括的功能模块有:负责将场景管理中的实时视频数据推送到终端、测试过程直播等。

S2为各镜像文件间使用相同或不同的通讯方式构建连接关系,包括:

可视化人工智能系统仿真平台镜像文件的连接关系如图2所示,根据仿真平台的功能分配,用户容易建立起仿真平台的总体结构。上述结构中以服务器为核心,连接了视频流服务器、仿真引擎、数据库,为终端提供数据和服务交互;与此同时,视频流服务器为终端提供仿真视频服务。该结构的优势在于实现了仿真平台服务器功能上的解耦,各镜像子系统能够独立运行,通过通信进行子系统间消息传递,增加系统整体上的稳定性,易于运行维护。

基于仿真平台的连接关系,其数据通信方式如下:

服务器与数据库之间使用应用层网络传输协议进行数据请求和交互,例如HTTP协议;服务器与仿真引擎之间使用传输层协议或远程调用协议,以实现仿真环境和虚拟无人系统的建立、管理、测试执行等,例如TCP或RPC协议;服务器与终端之间,针对不同的接入对象可使用通讯层协议、传输层协议、消息通信协议等多项协议,用于终端展示和用户交互,例如TCP、ROS、HTTP、kafka协议等;服务器与视频流服务器之间使用实时信息传输协议进行视频流的数据交互,例如RTMP协议;视频流服务器与终端之间使用实时信息传输协议进行视频流的实时传输,例如RTMP协议。

基于Docker容器技术分别生成对应的镜像文件,包括:

1、终端镜像的Docker设计:1)端口映射;2)设置网络模式;3)分配显卡,指定显卡驱动程序。

在一实施例中,使用镜像进行终端构建,开放与服务器镜像、视频流服务器镜像连接的端口;设置网络模式为host;终端镜像需要使用GPU资源,因此基于NVIDIA-Docker搭建需要使用第一块显卡,指定显卡驱动程序,如NVIDIA;终端在服务器镜像构建完成之后构建。

2、服务器镜像的Docker设计:1)端口映射;2)设置网络模式;3)分配显卡,指定显卡驱动程序;4)设置环境变量。

在一实施例中,使用镜像进行服务器构建,可用Python、C++、Java等部署,开放与终端镜像、视频流服务器镜像、仿真引擎镜像、数据库镜像连接的端口;服务器镜像需要使用GPU资源,因此基于NVIDIA-Docker搭建需要使用第二块显卡,指定显卡驱动程序,如NVIDIA;设置环境变量,如CUDA可用的GPU编号等;在数据库、视频流服务器、仿真引擎镜像构建完成之后构建。

3、数据库服务器镜像的Docker设计:1)设置网络模式。

在一实施例中,使用镜像进行数据库构建,设置网络模式为host。

4、仿真引擎镜像的Docker设计:1)分配显卡,指定显卡驱动程序;2)设置环境变量;3)端口映射;

在一实施例中,使用镜像进行仿真引擎构建,仿真引擎镜像需要使用GPU资源,因此基于NVIDIA-Docker搭建需要使用第三块显卡,指定显卡驱动程序,如NVIDIA;设置环境变量,如CUDA可用的GPU编号等;开放与服务器镜像连接的端口。

5、视频流服务器镜像的Docker设计:1)端口映射;2)设置网络模式。

在一实施例中,使用镜像进行视频流服务器构建,开放与服务器镜像连接的端口;设置网络模式为host。

值得注意的是,这里描述的是每个Docker设计的几个方面,而非步骤,每个Docker设计的具体顺序不分前后。

基于所述多个镜像文件的依赖关系顺序对所述多个镜像文件进行启动,包括:

仿真平台镜像文件的逻辑启动顺序为,如图3所示:

首先,数据库服务器、视频流服务器、仿真引擎作为三个独立的镜像文件分别启动;数据库服务器、视频流服务器、仿真引擎三者之间没有先后顺序和依赖关系,可以同步或不同步启动;

其次,服务器的启动依赖于数据库服务器、视频流服务器、仿真引擎,因此需要在数据库服务器、视频流服务器、仿真引擎启动完成之后,服务器的镜像文件启动;

最后,终端服务器的启动依赖于服务器,因此终端服务器的镜像文件需要在服务器启动完成之后启动。

本发明的Docker镜像文件在开发/测试环境和生产环境下都使用功能相同的Dockerfile文件部署,只是dockerfile的配置不太相同,具体体现在以下几个方面:

1、进程管理不同:

1)前端镜像:生产环境采用pm2进程管理程序守护,可以自动检测进程状态并重启;开发环境/测试环境采用传统启动进程,开发人员自维护进程;

2)后端镜像:生产环境采用supervisord进程管理守护进程,可以自动检测进程状态并重启;开发环境/测试环境采用传统启动进程,开发人员自维护进程,保证生产环境的稳定性。

2、日志不同:

后端镜像生产环境日志备份到宿主机,开发环境/测试环境没有日志备份。

实施例2

本发明实施例以可视化无人车系统仿真平台为例,主要的功能模块有:用户管理、测试任务管理、测试任务设置、测试用例选择、天气配置、NPC配置、主车配置、地图切换、物理环境仿真、传感器虚拟仿真、物体管理、数据采集、数据分析、视频推流、测试过程直播、测试对象接入、地图解析、数据通信、底盘控制、运动控制、测试报告生成、测试数据可视化、实时数据库管理等。

根据功能模块进行模块化拆解,将构建五个镜像文件,包括终端镜像、服务器镜像、视频流服务器镜像、仿真引擎镜像、数据库服务器镜像;具体的,视频流服务器可以使用Nginx服务器;仿真引擎可以使用采用UE,能够以其引擎为核心编程实现平台的渲染和测试逻辑,通过光栅化仿真渲染与物理引擎的碰撞检车和动力模拟完成仿真环境的配置;数据库服务器可以使用MongoDB。

其中,终端镜像包括测试数据可视化、测试过程直播的展示、用户数据交互;

服务器镜像包括用户管理、测试任务管理、测试任务设置、测试用例选择、测试报告生成、数据分析、地图解析、数据采集、数据通信、物体管理等;

Nginx镜像包括测试过程直播、视频推流等;

UE镜像包括物理环境仿真、传感器虚拟仿真、天气配置、NPC配置、主车配置、地图切换、测试对象接入、底盘控制、运动控制等;

MongoDB镜像包括实时数据库管理等;

可视化人工智能系统仿真平台镜像文件的连接关系如图2所示,根据仿真平台的功能分配,用户容易建立起仿真平台的总体结构。上述结构中以服务器为核心,连接了Nginx服务器、UE、MongoDB,为终端提供数据和服务交互;与此同时,Nginx服务器为终端提供仿真视频服务。该结构的优势在于实现了仿真平台服务器功能上的解耦,各镜像子系统能够独立运行,通过通信进行子系统间消息传递,增加系统整体上的稳定性,易于运行维护。

基于仿真平台的连接关系,其数据通信方式如下:

服务器与MongoDB之间使用HTTP协议进行数据请求和交互;服务器与UE之间使用TCP或RPC协议,以实现仿真环境和虚拟无人系统的建立、管理、测试执行等;服务器与终端之间,针对不同的接入对象可使用TCP、ROS、HTTP、kafka协议等多项协议,用于终端展示和用户交互;服务器与Nginx服务器之间使用RTMP协议进行视频流的数据交互;Nginx服务器与终端之间使用RTMP协议进行视频流的实时传输。

对于每个Docker镜像文件的设计如下:

1、终端镜像的Docker设计

使用镜像进行终端构建,开放与服务器镜像、Nginx镜像连接的端口;设置网络模式为host;终端在服务器镜像构建完成之后构建。

2、服务器镜像的Docker设计

使用镜像进行服务器构建,可用Python、C++、Java等部署;开放与终端镜像、Nginx镜像、UE镜像、MongoDB镜像连接的端口;指定显卡驱动程序,如NVIDIA;设置环境变量,如CUDA可用的GPU编号等;在MongoDB、Nginx、UE镜像构建完成之后构建。服务器镜像需要使用GPU资源,因此基于NVIDIA-Docker搭建需要使用显卡。

3、MongoDB服务器镜像的Docker设计

使用镜像进行MongoDB构建,从Docker Hub拉取Mongo公共镜像;把宿主机的数据库服务器镜像目录映射到Mongo Docker容器里的数据库服务器镜像目录,以使Mongo读写的数据在宿主机可见,且Mongo数据不以容器的变更而丢失;设置网络模式为host。

4、UE镜像的Docker设计

使用镜像进行UE构建,指定显卡驱动程序,如NVIDIA;设置环境变量,如CUDA可用的GPU编号等;开放与服务器镜像连接的端口;设置Docker启动时默认运行的命令,覆盖Docker文件中指定的命令。UE镜像需要使用GPU资源,因此基于NVIDIA-Docker搭建需要使用另一块显卡。

5、Nginx服务器镜像的Docker设计

使用镜像进行Nginx服务器构建,从Docker Hub拉取Nginx-rtmp公共镜像;开放与服务器镜像连接的端口;设置网络模式为host。

仿真平台镜像文件的逻辑启动顺序如下:

首先,MongoDB服务器、Nginx服务器、UE作为三个独立的镜像文件分别启动;MongoDB服务器、Nginx服务器、UE三者之间没有先后顺序和依赖关系,可以同步或不同步启动;

其次,服务器的启动依赖于MongoDB服务器、Nginx服务器、UE,因此需要在MongoDB服务器、Nginx服务器、UE启动完成之后,服务器的镜像文件启动;

最后,终端服务器的启动依赖于服务器,因此终端服务器的镜像文件需要在服务器启动完成之后启动。

本发明使用容器集群技术将可视化人工智能系统仿真平台的众多模块按功能分为终端镜像、服务器镜像、视频流服务器镜像、仿真引擎镜像、数据库服务器镜像等五个镜像,并设计了每个Docker文件的配置内容,规定了仿真平台镜像文件的启动逻辑顺序。本发明实现了可视化人工智能系统仿真平台的模块集群式快速一站式部署,摆脱可视化人工智能系统仿真平台安装使用过程中的环境依赖。

显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。

相关技术
  • 一种可视化人工智能系统仿真平台的容器集群部署方法
  • 基于云平台与人工智能实现的冷链控制可视化平台与方法
技术分类

06120113008425