一种虚实集成的多智能体集群系统仿真方法
文献发布时间:2023-06-19 19:23:34
技术领域
本发明涉及多智能体的数字孪生技术和虚实结合实验平台的技术领域,尤其是指一种虚实集成的多智能体集群系统仿真方法。
背景技术
大量的多智能体通过协作或者对抗可以产生复杂的集群行为,完成单智能体难以完成的复杂任务,通过仿真由大量智能体组成的集群系统的集群行为是研究集群系统的必要手段,现有的集群系统仿真主要有软件仿真和实物仿真。集群系统的软件仿真是在计算机软件环境中建立集群系统,完成集群系统的各种仿真实验,只要计算机系统的算力和存储空间足够,软件仿真可以实现大规模集群系统的仿真,但是软件仿真模型是实际智能体的一个不完整近似,其仿真结果的可信度有待加强。集群系统的实物仿真能够比较真实的反映实际中出现的情况,实验结果比较可信;但是实物仿真的制造和维护的成本高,而且实验过程需要很大的场地,实验周期长、劳动强度大。
发明内容
本发明的目的在于为解决现有技术中的不足,提供了一种虚实集成的多智能体集群系统仿真方法,采用虚拟和实物相结合的方法,发挥纯软件仿真的灵活性和物理系统的真实性的两者优点,实现较低成本的大规模集群系统的实验仿真方法和具体实现技术。
本发明的目的通过下述技术方案实现:一种虚实集成的多智能体集群系统仿真方法,该方法是通过双向数字孪生机制在虚拟世界中建立虚智能体和孪生实智能体,同时亦在物理世界中建立实智能体和孪生虚智能体,再通过建立物理世界和虚拟世界的通信机制以及建立智能体内部运行方式来实现多智能体集群系统的大规模仿真;其中,所述实智能体为物理世界的真实智能体,所述孪生实智能体为实智能体在虚拟世界的数字镜像,所述虚智能体为虚拟世界的数字智能体,所述孪生虚智能体为虚智能体在物理世界的数字镜像,所述实智能体通过ROS2的DDS与虚拟世界中的虚智能体通信,从而感知物理世界中的孪生虚智能体。
进一步,所述实智能体包括主控模块、虚实通信模块、视觉检测模块、运动和障碍物检测模块、实体间通信和定位模块以及运动控制模块;所述主控模块采用具有Cortex-M7核和Cortex-M4核的双核STM32H745作为微控制器,所述主控模块分别与虚实通信模块、视觉检测模块、运动和障碍物检测模块、实体间通信和定位模块以及运动控制模块通信连接。
进一步,所述Cortex-M4核通过UART通信接口与虚实通信模块通信连接, Cortex-M4核通过USB接口与视觉检测模块通信连接, Cortex-M4核通过CAN FD总线与运动和障碍物检测模块、实体间通信和定位模块以及运动控制模块通信连接;所述Cortex-M4核包括Cortex-M4主程序和缓冲区模块,Cortex-M4主程序和缓冲区模块调用UART通信程序完成与虚拟世界的Micro-ROS Agent的通信,并把数据保存在缓冲区模块中;Cortex-M4主程序和缓冲区模块调用CAN FD通信程序完成运动姿态和环境检测和运动控制,同时Cortex-M4核的主程序和缓冲区模块调用USB通信程序完成与视觉检测模块通信;所述Cortex-M4核配置有一个双核通信程序。
进一步,所述Cortex-M7核包括Cortex-M7主程序、本智能体控制决策模块、实智能体时序数据和孪生虚智能体时序数据模块、配置数据和工作命令模块、智能体API函数库和基本集群算法模块以及用户集群算法,同时所述Cortex-M7核配置有另一个双核通信程序,由该双核通信程序以及Cortex-M4核的双核通信程序实现Cortex-M7核和Cortex-M4核之间的通信。
进一步,所述Cortex-M7核执行以下操作:
Cortex-M7核通过双核通信程序从Cortex-M4核中获得集群系统的数据和命令,该数据和命令按照分类分别保存在配置数据和工作命令模块的缓冲区以及实智能体时序数据和孪生虚智能体时序数据模块的缓冲区中:Cortex-M7主程序根据配置数据和工作命令模块中的配置数据完成本实智能体的配置,同时实智能体时序数据和孪生虚智能体时序数据模块采用时序数据结构来保存实智能体周围的其它智能体的动态信息,并按照所分配空间的大小保存一段预设时间的周围智能体的数据,当超出所分配空间的大小时,把首次获得的智能体数据删除;
智能体API函数库和基本集群算法模块配置有多种基本集群算法,供Cortex-M7主程序调用,同时智能体API函数库和基本集群算法模块从实智能体时序数据及孪生虚智能体时序数据模块中获得数据完成其相应的功能运算,集群算法的控制决策数据通过本智能体控制决策模块发送给Cortex-M7核的双核通信程序,由该Cortex-M7核的双核通信程序发给Cortex-M4核来执行控制;
同时亦能够采用用户自开发的用户集群算法,其通过编号索引保存在Cortex-M7核的Flash中,用户集群算法通过调用智能体API函数库和基本集群算法模块中的智能体API函数库中的API函数获得系统实时动态数据和完成控制命令下达,Cortex-M7主程序根据配置数据完成本实智能体的配置,用户集群算法的控制决策数据通过本智能体控制决策模块发送给Cortex-M7核的双核通信程序,由该Cortex-M7核的双核通信程序发给Cortex-M4核来执行控制。
进一步,所述虚实通信模块采用ESP32微控制器模块实现硬件电路,实时操作系统采用FreeRTOS,机器人操作系统为Micro-ROS;所述虚实通信模块作为机器人操作系统Micro-ROS节点与虚拟世界的Micro-ROS Agent节点完成DDS、UDP以及WiFi的通信。
进一步,所述建立物理世界和虚拟世界的通信机制包括以下步骤:
实智能体通过其虚实通信模块与虚拟世界进行WiFi通信,通过Micro-ROS实现实智能体的Micro-ROS节点与虚拟世界的Micro-ROS Agent节点之间的通信,并采用ROS2建立各个智能体之间的通信机制;虚拟世界中的虚智能体、孪生实智能体、Micro-ROS Agent和集群数据存储和访问模块均通过DDS实现数据交换,由DDS Databus实现数据交换,DDS作为软件数据总线,DDS Databus采用Publisher/Subscriber机制实现数据分发服务,数据分发服务的Topic包括智能体坐标,环境感知数据,智能体速度、加速度以及方向。
进一步,所述虚拟世界的软件结构包括集群智能体时序数据库、实验方案和智能体配置模块、实验实时监控模块、实验回放系统、集群数据存储和访问模块以及关系数据库;
所述集群智能体时序数据库通过集群数据存储和访问模块获得时序数据并保存,时序数据供实验回放系统进行实验回放、集群实验和算法的分析和评价,并能够对实智能体的运行数据进行分析,使虚智能体利用该分析结果向实智能体学习,并通过极大似然法进行虚智能体模型参数更新;
虚拟世界的实验方案和智能体配置模块、实验实时监控模块和实验回放系统实现用户对整个实验过程的配置和管理、实时检测、实验之后的分析和评价,实验方案和智能体配置模块完成实智能体和虚智能体个数、集群算法类型和编号等参数的配置,并保存在关系数据库中;实验实时监控模块通过集群数据存储和访问模块获得集群系统的实时数据,按照关系数据库中存储的配置进行实时显示。
本发明与现有技术相比,具有如下优点与有益效果:
1、提出了双向数字孪生机制,组成整个集群系统的智能体有实智能体、孪生实智能体、虚智能体和孪生虚智能体共四种智能体,克服了现有的数字孪生技术只有实智能体和孪生实智能体两种类型的智能体而很难组成大规模集群系统实验平台的问题,从而极大地增加了参与实验的智能体数量,更接近真实世界中的集群系统;
2、提出了在实智能体中实现孪生虚智能体的方法和实现机制,通过与虚拟世界中的虚智能体通信实现感知孪生虚智能体,通信机制采用ROS2(Robot Operating System 2)的DDS(Data Distribution Service),实智能体通过虚实通信更新孪生虚智能体的实时参数;
3、建立了基于多微控制器的网络化的实智能体结构,多微控制器提高了实智能体的整体算力,降低了软件复杂度;同时网络化结构简化了系统组成,提高了系统的可靠性和维修性;采用Cortex-M7和Cortex-M4双核的STM32H745作为主微处理器,Cortex-M4核完成全部的数据获取和控制输出任务,而Cortex-M7核完成集群算法实现,这样的分工提高了系统的安全性,用户可只需对Cortex-M7核进行开发,较好地支持二次开发;
4、在实智能体中建立了基本集群算法和API函数库,既可以自行编写集群算法,也可以通过内部固化的常用算法进行实验,方便集群系统用于教学和科研工作;
5、采用时序数据库保存了整个实验过程数据,除了可以实现回放、分析和评价外,虚智能体的模型可以从智能体的运行数据中不断学习,克服了虚拟仿真的建模误差大的问题,提高了集群实验的可信度。
附图说明
图1为基于虚实集成的集群系统结构框图。
图2为实智能体内部结构框图。
图3为实智能体主控模块的软件结构框图。
图4为虚拟世界的软件结构和智能体通信机制框图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
参见图1所示,为本实施例所提供的虚实集成的多智能体集群系统仿真方法,该方法是通过双向数字孪生机制在虚拟世界中建立虚智能体和孪生实智能体,同时亦在物理世界中建立实智能体和孪生虚智能体,再通过建立物理世界和虚拟世界的通信机制以及建立智能体内部运行方式来实现多智能体集群系统的大规模仿真;其中,所述实智能体为物理世界的真实智能体,所述孪生实智能体为实智能体在虚拟世界的数字镜像,所述虚智能体为虚拟世界的数字智能体,所述孪生虚智能体为虚智能体在物理世界的数字镜像,实现从物理世界到虚拟世界的数字孪生以及从虚拟世界到物理世界的数字孪生,实现双向数字孪生;为了说明双向数字孪生机制,图1中只配置了少量智能体,实际应用时,可以根据需要配置更多的智能体,组成大规模集群系统;图1中,在物理世界中配置了3个实智能体:实智能体1至实智能体3,以及4个孪生虚智能体:孪生虚智能体1至孪生虚智能体4;与物理世界对应,在虚拟世界也具有7个智能体:孪生实智能体1至孪生实智能体3以及虚智能体1至虚智能体4,组成同等规模的集群系统。
在进行集群系统实验中,物理世界的智能体,即实智能体和孪生虚智能体和虚拟世界的智能体同时运行。物理世界的实智能体通过其自身的传感器感知其周围的环境和其它实智能体的存在,通过与其它实智能体进行通信实现相互定位和交换信息;同时,实智能体通过与虚拟世界进行通信,获得孪生虚智能体的位置、状态等数据,并在实智能体内部建立其感知范围的孪生虚智能体的数据结构,该数据结构与其它实智能体在本智能体中的数据结构一样,孪生虚智能体和其它智能体在数字特征方面没有区别,从本实智能体的角度来看,在其视野中就真实存在包括实智能体和孪生虚智能体组成的集群系统。虚拟世界中的智能体也采用上述机制实现与物理世界对偶的集群系统;物理世界与虚拟世界采用WiFi通信,物理世界中的实智能体之间采用UWB进行通信。
参见图2所示,为实智能体的内部结构,包括主控模块M20、虚实通信模块M21、视觉检测模块M22、运动和障碍物检测模块M23、实体间通信和定位模块M24以及运动控制模块M25;
主控模块M20负责整个实智能体的管理和决策,主控模块M20通过UART通信接口与虚实通信模块M21进行通信,获得集群系统的命令和配置信息、孪生虚智能体的动态信息;同时把实智能体中的自身状态及其检测到的周围其它实智能体数据和环境数据发给虚拟世界;
虚实通信模块M21采用ESP32微控制器模块实现硬件电路,实时操作系统采用FreeRTOS,机器人操作系统为Micro-ROS;虚实通信模块M21作为Micro-ROS节点与虚拟世界的Micro-ROS Agent节点完成DDS/UDP/WiFi的通信。
主控模块M20通过USB接口由视觉检测模块M22获得其周围环境和其它实智能体信息,视觉检测模块M22的视觉检测采用图像传感器和GPU处理器Jetson Nano实现;
主控模块M20通过CAN FD总线与运动和障碍物检测模块M23、实体间通信和定位模块M24和运动控制模块M25组成进行通信,这些功能模块都采用STM32G431微控制器为模块控制器;运动和障碍物检测模块M23采用惯性导航器件IMC20948 、红外Lidar芯片VL5311X和超声波测距模块组成;实体间通信和定位模块M24实现实智能体之间的UWB测距、定位和数据通信;运动控制模块M25实现实智能体的运动控制,由电池、直流电机和及其驱动芯片等组成,通过差速控制实现转向功能。
参见图3所示,为实智能体主控模块的软件结构。所述主控模块M20采用具有Cortex-M7核和Cortex-M4核的双核STM32H745作为微控制器;
Cortex-M4核负责与其它外围模块进行通信,所述Cortex-M4核通过UART通信接口与虚实通信模块M21通信连接, Cortex-M4核通过USB接口与视觉检测模块M22通信连接,Cortex-M4核通过CAN FD总线与运动和障碍物检测模块M23、实体间通信和定位模块M24以及运动控制模块M25通信连接;所述Cortex-M4核包括Cortex-M4主程序和缓冲区模块M40,Cortex-M4主程序和缓冲区模块M40调用UART通信程序M43完成与虚拟世界的Micro-ROSAgent的通信,并把数据保存在Cortex-M4主程序和缓冲区模块M40的缓冲区中;Cortex-M4主程序和缓冲区M40模块调用CAN FD通信程序完成运动姿态和环境检测和运动控制,同时Cortex-M4核的主程序和缓冲区M40模块调用USB通信程序完成与视觉检测模块M22通信;所述Cortex-M4核配置有一个双核通信程序M44;
所述Cortex-M7核包括Cortex-M7主程序M74、本智能体控制决策模块M73、实智能体时序数据和孪生虚智能体时序数据模块M72、配置数据和工作命令模块M71、智能体API函数库和基本集群算法模块M75以及用户集群算法M76,同时所述Cortex-M7核配置有另一个双核通信程序M70,由该双核通信程序M70以及Cortex-M4核的双核通信程序M44实现Cortex-M7核和Cortex-M4核之间的通信;Cortex-M7核的软件模块通过双核通信程序M70从Cortex-M4的软件中获得集群系统的各种数据和命令,这些数据和命令按照分类分别保存在配置文件和工作命令缓冲区M71和实智能体时序数据和孪生虚智能体时序数据缓冲区M72中;由于实际运行中实智能体所能观测到的其它智能体的个数是动态变化的,即实智能体周围其它智能体的编号ID在不断变化,采用时序数据结构来保存智能体周围其它智能体的动态信息能够适合集群系统移动和分布式的特点,具有较好的自适应性能;由于微控制器的内存空间有限,实智能体只能按照所分配空间的大小保存一段时间的周围智能体的数据,当超出所分配空间大小时,把首次获得的智能体数据丢弃;Cortex-M7主程序M74根据配置数据完成本实智能体的配置,如UWB工作频率、通信周期等,根据用户下达的命令完成集群算法选择、实验开始、实验结束等等。集群算法的控制决策数据(如运行速度、方向等)通过本智能体控制决策模块M73发送给双核通信程序M70,由双核通信程序M70发给Cortex-M4核来执行控制。Cortex-M7核的智能体API函数库和基本集群算法模块M75从实智能体时序数据和孪生虚智能体时序数据模块M72中获得数据完成其相应的功能运算;
本发明配置基本的集群算法,目前有三种围捕和三种编队算法供主程序调用,通过配置数据选择何种基本集群算法;此外用户还可以开发新型的集群算法,称为用户集群算法,用户集群算法M76通过编号索引保存在Cortex-M7核的Flash中,实际调用何种用户集群算法也是通过配置数据实现;用户集群算法通过调用M75中的智能体API函数库中的API函数获得系统实时动态数据和完成控制命令下达,算法运算的控制决策通过本智能体控制决策模块M73和双核通信程序M70输出给Cortex-M4核的运动控制模块M25实现控制;同时在实智能体中建立了基本集群算法和API函数库,既可以自行编写集群算法,也可以通过内部固化的常用算法进行实验,方便集群系统的教学和科研工作;
参见图4所示,为虚拟世界的软件结构和智能体通信结构;采用ROS2建立智能体之间的通信机制,ROS2是基于DDS数据分发服务的,虚拟世界中的虚智能体M81、孪生实智能体M82、Micro-ROS Agent节点M83和集群数据存储和访问模块M88通过DDS实现数据交换,由DDS Databus(M80)实现数据交换,DDS相当于软件数据总线,DDS Databus (M80)采用Publisher/Subscriber机制实现数据分发服务,数据分发服务的Topic包括智能体坐标,环境感知数据,智能体速度、加速度、方向等参数;虚拟世界中的智能体(包括所有虚智能体和孪生实智能体)在虚拟世界中通过虚拟传感器在同一虚拟环境中感知其自身周围环境和智能体的感知数据;
集群智能体时序数据库M84通过集群数据存储和访问模块M88获得数据并保存在时序数据库中,采用TDengine时序数据库系统保存时序数据,时序数据供实验回放系统M87进行实验回放、集群实验和算法的分析和评价;
采用时序数据库保存了整个实验过程数据,还可以对实智能体的运行数据进行分析,其结果可实现虚智能体模型的更新,采用极大似然法进行模型参数更新,虚智能体中运动模型与实智能体的接近程度(包括随机不确定性等因素)是实验结果可信度的基础,这种虚智能体向实智能体的学习机制提高了集群系统仿真的可信度;
虚拟世界的软件系统的人机界面的实验方案和智能体配置模块M85、实验实时监控模块M86和实验回放系统M87实现用户对整个实验过程的配置和管理、实时检测、实验之后的分析和评价,实验方案和智能体配置模块M85完成实智能体和虚智能体个数、集群算法类型和编号等参数的配置,并保存在关系数据库M89中,关系数据采用MySQL数据库系统;实验实时监控模块M86直接通过集群数据存储和访问模块M88获得集群系统的实时数据,按照关系数据库中存储的配置进行实时显示,采用Qt框架和Qt Quick 3D库实现。
以上所述之实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
- 虚实混合一体化仿真的智能船多通道交互模拟系统和方法
- 一种无人机集群多模态虚实交互仿真系统及方法