一种基于SAC算法和FSM的智能虚拟人辅助维修方法和系统技术方案

技术编号:36463543 阅读:17 留言:0更新日期:2023-01-25 23:03
本发明专利技术公开了一种基于SAC算法和FSM的智能虚拟人辅助维修方法和系统,属于虚拟人仿真领域。本发明专利技术通过结合深度强化学习和有限状态机,来设计虚拟人自主维修行为,虚拟人的走、跑、站和转身简单动作使用状态机控制,维修等复杂动作使用深度强化学习来训练,对比传统虚拟人辅助维修设计,避免过多的人为干预,减少系统运行内存消耗,有效提高维修效率,使虚拟人具备逼真性,且有效避免了状态机和行为树方法的不足。使用基于多Cube触发器的虚拟人视觉感知模型,避免了射线检测带来的场景无法深度优化和漏检物体的问题。本发明专利技术让虚拟人更加智能化,有助于增强虚拟人的真实感和可信度,提高虚拟维修操作的构想性、沉浸感和实时交互性。性。性。

【技术实现步骤摘要】
一种基于SAC算法和FSM的智能虚拟人辅助维修方法和系统


[0001]本专利技术属于虚拟人仿真领域,更具体地,涉及一种基于SAC(Soft Actor Critic,软性行动家

评论家)算法和FSM(Finite

State Machine,有限状态机)的智能虚拟人辅助维修方法和系统。

技术介绍

[0002]虚拟人是人在计算机生成空间中的几何特性与行为特性的表示,可以广泛应用于人机交互、人机功效、游戏娱乐等领域。随着虚拟现实技术的快速发展,数字样机开始逐渐取代研制过程中用于工程分析的实物模型和全尺寸样机,虚拟人也逐渐被引入进来以便在设计阶段就充分考虑样机的维修性与人机功效等方面的因素。基于虚拟人的维修仿真方法,用虚拟样机取代物理样机,用虚拟人取代实际维修人员,赋予虚拟人以一定的自主能力,能够感知环境,进而规划处一条合理的优化路径并按照路径行走,到达目的地后决策并执行维修行为,从而实现人对装备进行维修的可视化模拟。
[0003]虚拟人的行为控制及决策技术,目前都是基于行为树、动作捕捉、有限状态机或深度强化学习(CN108803615B)中的一种算法。然而,行为树方法每一帧都从root开始,有可能会访问到所有的节点,会消耗更多的CPU;且任何一个简单的操作都必须要使用节点操作极为复杂。动作捕捉方法有着较好的精度,但系统成本高,制作流程繁琐,后处理工作量较大。有限状态机方法不易于拓展,新的逻辑需要新的状态。在虚拟人辅助维修领域,强化学习算法解决任务时会存在与环境交互量大且样本复杂度高的问题,会导致智能体的训练时间长,算法的收敛难度会增加。
[0004]虚拟维修仿真中可达性和操作空间分析,主要依靠人体与产品、工具与产品之间的碰撞检测,来限制虚拟人的运动,检查受到限制后的虚拟人是否完成维修工作。现阶段,在虚拟维修仿真领域中Unity的范围检测、碰撞检测大多采用射线检测技术,该检测方法会大量消耗计算资源,并且会有漏检的可能。

技术实现思路

[0005]针对现有技术的缺陷,本专利技术的目的在于提供一种基于SAC算法和FSM的智能虚拟人辅助维修方法和系统,旨在解决传统虚拟维修效率低、消耗计算资源大的问题。
[0006]为实现上述目的,第一方面,本专利技术提供了一种基于SAC算法和FSM的智能虚拟人辅助维修方法,该方法包括:
[0007]S1.获取虚拟人的三维模型、待维修对象的三维模型、维修工具的三维模型和维修场景的三维模型,各三维模型导入图型化开发环境,使得虚拟人、待维修对象和维修工具处于维修场景中;
[0008]S2.将虚拟人位于维修场景中的位置设为起点,将维修操作区域设为终点,进行路径规划,基于FSM实现虚拟人的站、走、跑、转身动作,所述维修操作区域为待维修对象及其周围指定空间;
[0009]S3.按照规划路径,通过走动作和跑动作,将虚拟人移动到维修操作区域,移动的同时基于视觉感知模型进行碰撞检测,若检测到的对象为障碍物,则通过转身动作使得虚拟人避开障碍物;虚拟人移动到维修操作区域后,基于视觉感知模型感知视野范围内是否存在维修对象,若不存在,则调用视野感知模型的碰撞检测功能,先通过转身动作调整位姿,直至虚拟人视野范围内可感知到维修对象,再调用角度检测功能,继续执行转身动作微调虚拟人正面和维修对象的夹角,若存在,则直接调用角度检测功能,执行转身动作微调虚拟人正面和维修对象的夹角,直至虚拟人正面和维修对象的夹角不超预设角度,进入S4;
[0010]S4.在视觉感知模型基础上,基于SAC算法优化智能决策模型,决策虚拟人的维修行为。
[0011]优选地,所述基于FSM实现虚拟人的站、走、跑、转身动作,具体如下:
[0012]将虚拟人有限状态机表示为一个五元组M=(A,S,T,W,q0),其中,
[0013]A表示有限状态集,它是指虚拟人所有不同状态序列的集合,所述状态包括站、走、跑、转身四种;
[0014]S表示虚拟人状态转换的触发输入事件,包括感知障碍物、在规划路径上、到达指定维修区域、维修对象与虚拟人正面的夹角、行走花费的时间;
[0015]W表示状态转移函数,使状态机从当前状态转换为另一个状态;
[0016]q0表示虚拟人状态机初始状态,初始状态为站;
[0017]T表示非空的状态转换集合,定义为一个五元组T=(SState,TState,Constraint,Input

event,Action),SState表示当前虚拟人的状态,TState表示虚拟人将要成为的状态,Constraint表示触发条件的约束;Input

event表示状态转移触发的条件,当达到此条件时,虚拟人状态机就会发生状态转换,包括感知到障碍物、避开障碍物后回到规划路径、行走花费的时间计时达到预设时间、虚拟人到达路径规划的终点、虚拟人正面和维修对象的夹角小于等于预设角度,Action表示状态迁移后执行的动作。
[0018]优选地,当虚拟人开始执行任务时,将状态机转换为走,每走两秒就将状态转换为跑,当走或跑的过程中,如果视觉感知模型感知到障碍物,则将状态转换为转身,避开障碍物回到规划路线后状态转化为走或跑;当虚拟人到达指定维修区域后,状态机转换为站,并判断虚拟人正面和维修对象的角度,如果大于预设角度则将状态转换为转身,当小于等于预设角度时再将状态转换为站,如果小于等于预设角度则保持状态机状态不变。
[0019]优选地,所述视觉感知模型包括:三个Cube触发器,其中,中间的Cube触发器布置于虚拟人正前方,两侧的Cube触发器对称布置于虚拟人左前方和右前方,以形成Cube触发器触发范围内60
°
的扇形视野范围;所述Cube触发器的半径为2米。
[0020]优选地,步骤S4包括:
[0021](1)利用Unity3D的组件ML

Agents构建深度强化学习环境,初始化Critic网络参数ω1和ω2、Actor网络参数θ和经验池D;修改算法配置文件,将最大步数Max

Step设为1000万,网络层num_layer设为8层;
[0022](2)为虚拟人添加一个基智能体脚本Agents,虚拟人根据视觉感知模型观测信息,收集虚拟人的三维空间位置向量P
r
、虚拟人正面和维修对象的夹角θ
r
、维修工具三维空间位置向量T
r
和维修零件的三维空间位置向量C
r
,并定义状态空间为将虚拟人手部维修动作定义成一个表,提供给虚拟人的具体动作是这个表的索引,定义一个动
作空间其中,AC0,AC1,AC2分别表示手部抓取、手部松开、手部移动操作;
[0023](3)根据虚拟人视觉感知模型获取当前步骤的观测信息和操作目标T
g
,虚拟人选择合适的执行动作通过奖惩函数获取奖励R,此时,观测信息状态转换为将T
g
、R和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SAC算法和FSM的智能虚拟人辅助维修方法,其特征在于,该方法包括:S1.获取虚拟人的三维模型、待维修对象的三维模型、维修工具的三维模型和维修场景的三维模型,各三维模型导入图型化开发环境,使得虚拟人、待维修对象和维修工具处于维修场景中;S2.将虚拟人位于维修场景中的位置设为起点,将维修操作区域设为终点,进行路径规划,基于FSM实现虚拟人的站、走、跑、转身动作,所述维修操作区域为待维修对象及其周围指定空间;S3.按照规划路径,通过走动作和跑动作,将虚拟人移动到维修操作区域,移动的同时基于视觉感知模型进行碰撞检测,若检测到的对象为障碍物,则通过转身动作使得虚拟人避开障碍物;虚拟人移动到维修操作区域后,基于视觉感知模型感知视野范围内是否存在维修对象,若不存在,则调用视野感知模型的碰撞检测功能,先通过转身动作调整位姿,直至虚拟人视野范围内可感知到维修对象,再调用角度检测功能,继续执行转身动作微调虚拟人正面和维修对象的夹角,若存在,则直接调用角度检测功能,执行转身动作微调虚拟人正面和维修对象的夹角,直至虚拟人正面和维修对象的夹角不超预设角度,进入S4;S4.在视觉感知模型基础上,基于SAC算法优化智能决策模型,决策虚拟人的维修行为。2.如权利要求1所述的方法,其特征在于,所述基于FSM实现虚拟人的站、走、跑、转身动作,具体如下:将虚拟人有限状态机表示为一个五元组M=(A,S,T,W,q0),其中,A表示有限状态集,它是指虚拟人所有不同状态序列的集合,所述状态包括站、走、跑、转身四种;S表示虚拟人状态转换的触发输入事件,包括感知障碍物、在规划路径上、到达指定维修区域、维修对象与虚拟人正面的夹角、行走花费的时间;W表示状态转移函数,使状态机从当前状态转换为另一个状态;q0表示虚拟人状态机初始状态,初始状态为站;T表示非空的状态转换集合,定义为一个五元组T=(SState,TState,Constraint,Input

event,Action),SState表示当前虚拟人的状态,TState表示虚拟人将要成为的状态,Constraint表示触发条件的约束;Input

event表示状态转移触发的条件,当达到此条件时,虚拟人状态机就会发生状态转换,包括感知到障碍物、避开障碍物后回到规划路径、行走花费的时间计时达到预设时间、虚拟人到达路径规划的终点、虚拟人正面和维修对象的夹角小于等于预设角度,Action表示状态迁移后执行的动作。3.如权利要求2所述的方法,其特征在于,当虚拟人开始执行任务时,将状态机转换为走,每走两秒就将状态转换为跑,当走或跑的过程中,如果视觉感知模型感知到障碍物,则将状态转换为转身,避开障碍物回到规划路线后状态转化为走或跑;当虚拟人到达指定维修区域后,状态机转换为站,并判断虚拟人正面和维修对象的角度,如果大于预设角度则将状态转换为转身,当小于等于预设角度时再将状态转换为站,如果小于等于预设角度则保持状态机状态不变。4.如权利要求1所述的方法,其特征在于,所述视觉感知模型包括:三个Cube触发器,其中,中间的Cube触发器布置于虚拟人正前方,两侧的Cube触发器对称布置于虚拟人左前方和右前方,以形成Cube触发器触发范围内60
°
的扇形视野范围;所述Cube触发器的半径为2
米。5.如权利要求1所述的方法,其特征在于,步骤S4包括:(1)利用Unity3D的组件ML

Agents构建深度强化学习环境,初始化Critic网络参数ω1和ω2、Act...

【专利技术属性】
技术研发人员:吴鹏飞郭晨李恒
申请(专利权)人:中国船舶集团有限公司第七〇九研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1