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

用于流体仿真的具有多模态信息机器人实验平台

文献发布时间:2024-04-18 19:52:40


用于流体仿真的具有多模态信息机器人实验平台

技术领域

本发明涉及机器人仿真技术领域,尤其涉及一种用于流体仿真的具有多模态信息机器人实验平台。

背景技术

随着科技的快速发展,越来越多的自动化、智能化产品和设备进入了人类社会的各个领域。其中,服务机器人已经进入人们的日常生活,比如扫地机器人、快递配送机器人、医疗手术辅助机器人等,并且可以预见的是,越来越多不同种类、功能的机器人也会被研发出来提高人们的生活效率和生活质量。

很多与机器人相关的研究的准备工作和实验都非常繁琐和复杂,甚至实验过程会对机器人造成损坏,比如机器人强化学习就是其中的一个典型代表。所以很多与机器人相关的研发工作已经从实体机器人转移到虚拟的机器人仿真软件。但是,目前通用的一些机器人仿真平台还无法提供流体仿真、声音生成等功能,比如mujoco(Multi-Joint dynamicswith Contact,带接触的多关节动力学)、Gazebo(3D仿真器),这就使得这些仿真软件与真实生活场景还有一些差距。

因此有必要设计开发一个可以进行流体仿真、声音生成的多模态机器人仿真平台,为下游的机器人研发工作提供基础条件。

发明内容

本发明的目的之一是为了克服现有技术中的不足,针对现有技术中存在的机器人仿真平台无法进行流体仿真、声音生成的问题,提供一种用于流体仿真的具有多模态信息机器人实验平台。

为实现以上目的,本发明通过以下技术方案实现:

第一方面,本发明提供了一种用于流体仿真的具有多模态信息机器人实验平台,所述平台包括场景搭建模块、模型处理模块、流体仿真模块、声音生成模块和网络通信模块;

所述场景搭建模块用于根据输入或预先设置的场景素材搭建仿真场景;

所述模型处理模块用于在所述仿真场景中导入实验机器人模型并控制所述实验机器人模型进行实验;

所述流体仿真模块用于对所述实验机器人模型进行流体仿真,使所述实验机器人的粒子物理特性符合真实样本的条件;

所述声音生成模块用于对所述实验机器人进行仿真声音生成,使所述实验机器人的梅尔频谱特征符合真实样本的条件;

网络通信模块用于供平台使用者与所述仿真场景进行交互,以通过发送控制指令控制所述仿真场景的实验环境和所述实验机器人的仿真实验。

在本申请的一个优选实施例中,所述场景搭建模块在搭建仿真场景时,通过绘制符合现实生活场景的物品布局图,建立与整个仿真场景对应的根节点物体,利用所述物品布局图在所述根节点物体中规划并放置好各个物件的空物体并对空物体进行命名,在各个空物体下挂载预先设置的三维模型形成物体,为物体进行表面贴图,并赋予碰撞体,为仿真场景建立光源并对各个物体进行渲染。

在本申请的一个优选实施例中,所述模型处理模块在导入实验机器人模型时,先导入实验机器人模型的各个部分,再在各个部分之间建立父子关系,使所述实验机器人模型形成整体。

在本申请的一个优选实施例中,所述流体仿真模块包括流体粒子解析器和流体粒子发生器;

所述流体粒子解析器对所述仿真环境中的粘滞阻力、静止阈值、粒子的各向异性、粒子碰撞约束和粒子密度约束进行设置;

所述流体粒子发生器对所述仿真环境中的粒子进行设置,包括设置粒子池的大小、粒子分辨率和密度、粒子的表面张力、粒子的扩散速度。

在本申请的一个优选实施例中,所述声音生成模块包括前端的自回归生成模型和后端的声音转换器,所述自回归生成模型包括频谱生成器、周期性判别器和频谱判别器。

在本申请的一个优选实施例中,所述频谱生成器包括多个时序卷积块,每个时序卷积块在特征输出上相互串联,在生成结果上相互并联,并根据生成结果得到梅尔频谱特征。

在本申请的一个优选实施例中,所述周期性判别器通过时序卷积网络构建,所述时序卷积网络包括多个一维卷积层,每个卷积层的后方接有激活函数层,所述周期性判别器通过设置滑动窗口,在梅尔频谱特征的时间维度上滑动,判断当前的滑动窗口内的梅尔频谱特征在时间上是否符合真实样本的条件。

在本申请的一个优选实施例中,所述频谱判别器通过卷积神经网络搭建,所述卷积神经网络包括多个卷积层和多个全连接层,所述频谱判别器根据输入的梅尔频谱图,通过多个卷积层和多个全连接层的计算输出标量,根据标量的大小判断当前的梅尔频谱图在频率上是否符合真实样本的条件。

在本申请的一个优选实施例中,在所述网络通信模块中,平台使用者发送的控制指令包括场景控制指令、机器人控制指令、仿真控制指令和重置指令;

所述场景控制指令包括摄像头设置指令、仿真环境选择指令;

所述机器人控制指令包括实验机器人模型的关节角角度控制指令;

所述仿真控制指令包括流体粒子发生器设置指令、截图录像指令;

所述重置指令包括重置实验机器人模型关节角指令和重置流体发生指令。

本发明所公开的用于流体仿真的具有多模态信息机器人实验平台,能够进行流体仿真,并提供图像、声音、位置等多模态信息,使用者能自由搭建各种场景进行机器人仿真实验,免去了搭建真实机器人实验场景的繁琐工作,具有可扩展性强、真实度高等特点。

附图说明

本发明借助于以下附图进行描述:

图1是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台的模块示意图;

图2是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台的仿真环境运行流程图;

图3是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台中,实验机器人模型各个部件的父子关系图;

图4是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台中,声音生成模块的声音生成流程图;

图5是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台中,自回归生成模型生成音频特征的过程示意图;

图6是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台中,频谱生成器的模型结构图;

图7是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台中,周期性判别器的工作示意图;

图8是本发明中实施例的用于流体仿真的具有多模态信息机器人实验平台中,频谱判别器的工作示意图。

具体实施方式

为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。

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

本发明实施例公开了一种用于流体仿真的具有多模态信息机器人实验平台,参见图1,本实施例的实验平台包括场景搭建模块10、模型处理模块20、流体仿真模块30、声音生成模块40和网络通信模块50,其中,网络通信模块50分别与场景搭建模块10、模型处理模块20、流体仿真模块30、声音生成模块40一一连接,场景搭建模块10、模型处理模块20、流体仿真模块30、声音生成模块40之间则顺序连接。

具体来说,场景搭建模块10用于根据输入或预先设置的场景素材搭建仿真场景;模型处理模块20用于在仿真场景中导入实验机器人模型并控制实验机器人模型进行实验;流体仿真模块30用于对实验机器人模型进行流体仿真,使实验机器人的粒子物理特性符合真实样本的条件;声音生成模块40用于对实验机器人进行仿真声音生成,使实验机器人的梅尔频谱特征符合真实样本的条件;网络通信模块50用于供平台使用者与仿真场景进行交互,以通过发送控制指令控制仿真场景的实验环境和实验机器人的仿真实验。

参见图2,本实施例的实验平台的运行流程具体为:

S101:设置仿真环境场景;

S102:机器人模型导入;

S103:流体仿真初始化;

S104:执行指令(机器人移动);

S105:流体状态计算;

S106:声音生成;

S107:确认连接状态;

S108:检查单步仿真是否完成;若完成,则继续执行S109;若未完成,则返回S104;

S109:unity渲染;

S110:发送仿真状态到客户端;

S111:客户端发出新指令;

S112:接受指令;

S113:替换指令;

S114:判断是否为重置指令;若是,则执行S115;若否,则返回S104;

S115;重置环境。

在该运行流程中,S101通过场景搭建模块10实现,S102、S108至S110通过模型处理模块20实现,S103至S105通过流体仿真模块30实现,S106和S107通过声音生成模块40实现,S111在用户的客户端上实现,S112至S115通过网络通信模块50实现。

本实施例的实验平台通过上述五个模块,能够实现对具有多模态信息的机器人进行流体仿真和声音生成,填补了传统的机器人仿真平台无法进行流体仿真和声音生成的缺陷,减少了实验平台的搭建成本,提高了机器人应用研究开发的效率。

具体来说,用户可以通过实验平台的网络通信模块50与实验平台交互,将场景素材输入实验平台,或者在实验平台中将场景素材预先设置,然后场景搭建模块10在unity中使用输入的或预先设置的场景素材搭建一个室内场景。其中,场景搭建模块10有两种搭建场景的方式,一种是用户直接从互联网下载场景素材输入实验平台,使用unity的3d软件直接将下载好的场景素材导入,并做一定的尺寸放缩即可使用,这种方式适合对场景没有特定要求的用户;另一种是用户准备好3D模型、图片等场景素材,在unity3d中搭建满足实验需求的场景。场景搭建模块10在搭建仿真场景时,通过绘制符合现实生活场景的物品布局图,建立与整个仿真场景对应的根节点物体,利用物品布局图在根节点物体中规划并放置好各个物件的空物体并对空物体进行命名,在各个空物体下挂载预先设置的三维模型形成物体,为物体进行表面贴图,并赋予碰撞体,为仿真场景建立光源并对各个物体进行渲染。

模型处理模块20在导入实验机器人模型时,先导入实验机器人模型的各个部分,再在各个部分之间建立父子关系,使实验机器人模型形成整体。模型处理模块20涉及机器人模型的导入和对导入的实验机器人模型进行控制的功能。本实施例的实验平台需要导入一个用于进行机器人实验的实验机器人模型,例如通过使用mujoco提供的模型导入插件Mjimport将格式为stl的ur5机器人模型进行导入unity场景的操作。刚导入的实验机器人模型的各个部分还没有相互联系,不是一个完整可用的机器人,通过在各个部分建立合理的父子关系可以让机器人作为一个整体被控制。在实验机器人模型的各个部分建立的父子关系如图3所示,其中link0为机器人的底座,具有不动的属性可以作为机器人的世界坐标系,link1_connector~link6_connector为连接机器人各个部分的机器人关节,通过控制各个关节的旋转角即可控制机器人的运动。对于复杂的机器人模型的导入,一般需要借助其他的3D模型软件(如3D Max)和3D建模人员进行模型的构建,并导出为特定格式的模型文件,如fbx、obj等格式的文件,使unity的3D软件能够很好的兼容多种模型文件格式。在通过场景搭建模块10将场景搭建好、并通过模型处理模块20导入机器人模型文件后,就完成了实验平台静态实验的设置。

流体仿真模块30包括流体粒子解析器和流体粒子发生器,流体粒子解析器和流体粒子渲染器的建立在流体仿真初始化阶段。在进行仿真实验过程中,用户可仅使用一个流体粒子解析器和一个流体粒子发生器,也可根据实际需要在仿真环境中添加多个流体粒子解析器和流体粒子发生器来实现多个水源的效果。

通过流体粒子解析器,用户可对仿真环境中的粘滞阻力、静止阈值、粒子的各向异性、粒子碰撞约束和粒子密度约束进行设置。其中,流体粒子解析器流体粒子的仿真核心,用户可以自由决定流体粒子解析器使用哪种物理引擎作为流体粒子的仿真后端,不同的仿真后端在不同的平台可能会有不同的兼容性和性能。每一个流体粒子解析器都唯一确定了一个流体粒子的仿真空间,并决定了在此仿真空间中的流体粒子的仿真过程和属性。具体地,一个流体粒子解析器决定了流体仿真空间是一个2D空间还是3D空间;一个流体粒子解析器决定了仿真空间内的重力方向和重力大小,通过改变重力的大小和方向可以实现液体和气体的效果;一个流体粒子解析器决定了流体仿真空间中的粘滞阻力和静止阈值,粘滞阻力决定流体粒子的速度随时间的减小的程度,静止阈值决定了当粒子的速度低于某个值的时候会静止在原地,静止阈值可以减小仿真抖动;一个流体粒子解析器决定了流体粒子的各向异性,各向异性决定了流体粒子在发生碰撞时的形变大小;一个流体粒子解析器还决定了流体粒子之间的约束情况,包括距离约束,弯折约束,碰撞约束,密度约束,形状匹配约束。其中,距离约束尝试将粒子之间的距离固定在一个范围;碰撞约束使粒子无法进入碰撞体,也使粒子之间无法重合;弯折约束尝试使3个粒子维持一个刚体;密度约束使一个粒子周围的粒子总质量维持不变,这使得粒子之间不能太远也不能太近;形状匹配约束让一组空间上相近的粒子维持相对位置不变。在本实施例的实验平台中,流体粒子解析器使用burst作为后端的物理引擎框架,且流体粒子解析器运行在3维空间,流体粒子解析器的所定义的物理空间与世界坐标相同,即重力方向垂直向下,重力大小为-9;流体粒子解析器流体仿真空间中的粘滞阻力和静止阈值分别为0.1和0.5,粒子的各向异性为3,同时设置粒子之间具有粒子碰撞约束、密度约束。

通过流体粒子发生器,用户可对仿真环境中的粒子进行设置,包括设置粒子池的大小、粒子分辨率和密度、粒子的表面张力、粒子的扩散速度。其中,流体粒子发生器决定流体粒子本身的诸多属性和流体发射器的属性。具体地,一个流体粒子发生器可以决定流体粒子的渲染方式,流体粒子通过流体粒子发生器的渲染功能可以被渲染成单个粒子,也可以被渲染成表面平滑的流体液体;一个流体粒子发生器决定了流体粒子池的容量、单位体积内的流体粒子数量、流体粒子在静止状态下的密度、表面张力、扩散速度;一个流体粒子发生器还需要确定流体粒子发生器中生成的粒子的相位、产生方式、粒子生成时的初速度、生命周期、是否使用随机初速度;一个流体粒子发生器决定了流体粒子发射器的形状,如:管状发射器、边缘发射器、球型发射器,可以通过参数改变发射器的大小和颜色。在本实施例的实验平台中,流体粒子发生器的粒子池设置大小为500,粒子分辨率和密度为1,表面张力为1,粒子的扩散速度为0;流体粒子发生器开启流体渲染模式,粒子的RGBD值为[237,254,255,125];本实施例中的流体粒子发生器使用管状发射器作为流体粒子发射器的形状,管状发射器的发射半径为0.2,这可以实现水龙头的效果;流体粒子发生器产生的粒子的相位为1,初速度为2.5,声明周期为1000秒。

声音生成模块40包括前端的自回归生成模型和后端的声音转换器,该自回归生成模型是一个生成对抗训练算法训练得到一个前后端分离的自回归的声音生成器,前端的自回归生成模型是自回归梅尔频谱生成器,后端的声音转换器是一个预训练好的后端声音转化器,在部署时将训练好的自回归生成器作为前端,其负责生成水流声音的梅尔频谱,后端声音转化器将生成的梅尔频谱转化为原始的声音信号。其中,声音生成模块40为仿真场景提供声音仿真。自回归生成模型能够自回归地生成声音的特征向量,声音转换器能够把生成的声音特征向量转化成原始的声音波形。自回归生成模型基于gan算法框架训练得到,声音转换器可以使用基于传统算法的Griffin-Lim算法,也可以使用预训练好的神经声码器(neural vocoder)。该声音生成模块40使用梅尔频谱作为声音在频域的特征谱,整体结构如图4所示。现有技术中自回归的频域特征生成器需要使用基于gan的算法训练得到,而本实施例中的自回归生成模型所使用的gan算法与传统的gan算法不同,包括了自回归的频谱生成器和两个判别器:周期性判别器和频谱判别器。本实施例的自回归生成模型的生成过程如图5所示,输入一段初始长度为12帧的梅尔频谱,输出1帧梅尔频谱,将输出的1帧梅尔频谱与输入的第2~12帧梅尔频谱进行拼接可以得到一个新的长度为12的输入,重复以上过程可以持续自回归地生成音频特征。

传统的自回归生成模型基于gan算法框架训练得到,gan算法的思想是通过符合真实分布p(x)的训练数据,学习一个生成分布p^(x),并且希望得到的p^(x)与p(x)越相似越好,则每一次从p^(x)采样时就相当于一次生成。传统的gan算法由一个生成器x=G(z)和一个判别器y=D(x')构成,生成器输入一个从随机分布中采样得到的随机向量,输出目标分布中的一个样本点,生成器每一次生成过程相当于在p^(x)中进行一次采样;判别器输入一个从真实分布p(x)或从生成分布p^(x)得到的样本点,输出一个标量,标量的大小用于判别此样本点是来自于真实分布还是生成分布。判别器的损失函数如公式(1),生成器的损失函数如公式(2),将生成器和判别器分别通过损失函数进行交替训练,训练结束后就可以对得到的生成器进行采样来生成原始数据集中不存在的样本。

而在本实施例的实验平台的自回归生成模型中,使用生成对抗算法进行训练,在训练过程中使用一个多尺度的频率判别器和一个周期性判别器通过判别梅尔时序对自回归生成器进行监督。在传统的gan算法的基础上,针对声音长时间序列的特点,通过一个自回归的频谱生成器,以及两个不同作用的判别器:周期性判别器Dp(x)和频谱判别器Df(x)。具体地,自回归生成器在频域上输入n帧的频域特征向量,输入第n+1帧的频域特征向量,将输入的后n-1帧与生成的1帧在时间维度上拼接,得到n帧的新输入,重复以上步骤即实现了自回归生成。周期性判别器Dp(x)配有一个尺度大小为m的滑动窗口,滑动窗口沿着时间维度在频谱图上滑动,周期性判别器输入滑动窗口内m帧频域特征,判断当前滑动窗口内的频域特征与真实样本的频域特征是否相似。频率判别器则是将频域特征看作一张二维的频谱图,频谱图上每一个特征值看作一个像素点,频率判别器使用k*k的二维卷积核对频谱图内的特征值进行特征提取,经过多层卷积网络后,将提取到的高层特征输入一个全连接网络得到一个标量,标量的大小反应了当前的频谱图是否与真实的频谱图相似。此时判别器和生成器的损失函数分别为(3)和(4)。将训练得到的自回归生成器作为前端,自回归地生成频域特征;预置的声音转换器作为后端,将生成频域特征转化为原始的声音波形即可实现端到端的自回归生成。

本实施例的频谱生成器的具体结构如图6所示,该频谱生成器包括多个时序卷积块,每个时序卷积块在特征输出(res_out)上相互串联,在生成结果(skip_out)上相互并联,通过使用6个时序卷积块构成频谱生成器,根据生成结果得到梅尔频谱特征,将时序卷积块的输出并联后输入后处理层post_conv可以得到最终的梅尔频谱特征。

参见图7,周期性判别器通过时序卷积网络构建,时序卷积网络包括多个一维卷积层,每个卷积层的后方接有激活函数层,周期性判别器通过设置滑动窗口,在梅尔频谱特征的时间维度上滑动,判断当前的滑动窗口内的梅尔频谱特征在时间上是否符合真实样本的条件。在本实施例的实验平台中,构建周期性判别器的时序卷积网络由7个一维卷积层构成,每一个卷积层之后都跟有一个坡度系数为0.1的leaky-relu激活函数层,周期性判别器对应的滑动窗口大小为15,周期性判别器的滑动窗口在输入的梅尔频谱特征图的时间维度上滑动,判断当前窗口内的梅尔特征在时间上是否与真实样本相似。

参见图8,本实施例的频谱判别器通过卷积神经网络搭建,卷积神经网络包括多个卷积层和多个全连接层,频谱判别器根据输入的梅尔频谱图,通过多个卷积层和多个全连接层的计算输出标量,根据标量的大小判断当前的梅尔频谱图在频率上是否符合真实样本的条件。在本实施例中,频谱判别器输入一个80*80大小的梅尔频谱图,进过3个卷积层和2个全连接层,输出一个标量,标量的大小代表当前频谱图是在频率上是否与真实样本相似。

网络通信模块50用于平台使用者与实验平台进行交互,网络通信模块50提供统一的通信协议让用户能通过不同的编程语言访问仿真环境,通过使用自定义、可扩展的通信协议,可以使用任意编程语言与网络通信模块50进行通信,从而与机器人仿真实验平台进行交互。具体地,在网络通信模块50中,用户通过发送指令与仿真环境进行交互,平台使用者发送的控制指令包括场景控制指令、机器人控制指令、仿真控制指令和重置指令;场景控制指令包括摄像头设置指令、仿真环境选择指令,可以进行仿真环境的场景切换、改变场景内物体的状态和属性;机器人控制指令包括实验机器人模型的关节角的角度控制指令,主要用于控制仿真环境内机器人的运动;仿真控制指令包括流体粒子发生器设置指令、截图录像指令,用于设置仿真环境的运行模式;重置指令包括重置实验机器人模型关节角指令和重置流体发生指令,用于将仿真环境重置为默认值。在本实施例的实验平台的网络通信模块50中,用户可以使用python语言与仿真环境进行交互,通过发送场景控制指令、机器人控制指令、仿真控制指令和重置指令等多种指令实现对仿真环境的控制。其中,机器人控制指令主要包括对机器人6个关节角的角度控制,发送1~12号指令可以实现机器人六个关节角的正转和反转。

本实施例的实验平台基于unity3D平台,能够搭建出与现实场景一样的机器人实验环境;并且利用流体粒子解析器以及流体粒子发生器可以对流体进行仿真模拟。该实验平台还包含一个使用对抗训练算法训练得到一个前后端分离的自回归声音生成器,该声音生成器可以根据当前场景生成真实度极高的仿真声音;并且该实验平台规范了统一的网络通讯协议,使用者可以用任意编程语言与本实验平台进行交互。

本发明所公开的用于流体仿真的具有多模态信息机器人实验平台,能够进行流体仿真,并提供图像、声音、位置等多模态信息,使用者能自由搭建各种场景进行机器人仿真实验,免去了搭建真实机器人实验场景的繁琐工作,具有可扩展性强、真实度高等特点。

需要理解的是,以上对本发明的具体实施例进行的描述只是为了说明本发明的技术路线和特点,其目的在于让本领域内的技术人员能够了解本发明的内容并据以实施,但本发明并不限于上述特定实施方式。凡是在本发明权利要求的范围内做出的各种变化或修饰,都应涵盖在本发明的保护范围内。

相关技术
  • 一种具有多模态信息处理功能的虚拟实验平台
  • 一种具有多模态信息处理功能的虚拟实验平台
技术分类

06120116335814