机器人控制方法、装置、设备及计算机存储介质与流程

    专利2022-07-07  137


    本申请实施例涉及互联网技术领域,涉及但不限于一种机器人控制方法、装置、设备及计算机存储介质。



    背景技术:

    目前,在对机器人进行控制时,一种实现方式是基于优先级经验回放机制的深度强化学习控制算法,利用机器人操作的物体的状态信息计算出优先级,并利用深度强化学习方法完成端到端的机器人控制模型,让深度强化学习智能体在环境中自主学习并完成指定的任务;另一种实现方式是一种基于仿真工业机器人的运动学自抓取学习方法,属于计算机辅助制造领域,基于仿真环境并利用强化学习理论进行机器人抓取训练,仿真机器人通过相机拍摄的图像自动获取物体的位置信息,决定机器人末端抓取工具的抓取位置,同时,基于强化学习的图像处理方法根据观察到的图像中被抓取物体形状和摆放状态,决定抓取工具的姿态,最终成功抓取形状各异、随意摆放的物品。

    但是,相关技术中的实现方式通常对于完成一个特征任务需要训练一个模型,泛化性不强,且机器人任务的训练过程较慢。



    技术实现要素:

    本申请实施例提供一种机器人控制方法、装置、设备及计算机存储介质,涉及人工智能技术领域。基于所确定出的奖励值来更新环境交互数据中的奖励值,利用了后向经验回放的方式,提高了数据的利用率,加速了对智能体的训练,且由于环境交互数据中包括目标值,因此,可以同时训练大量的目标,通过一个模型就能够完成一定目标空间中的所有任务。

    本申请实施例的技术方案是这样实现的:

    本申请实施例提供一种机器人控制方法,包括:

    获取环境交互数据,所述环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值;

    获取在执行所述动作数据对应的动作之后所实际完成的实际目标值;

    根据所述相邻两个时刻中的第一时刻的状态参数、所述动作数据和所述实际目标值,确定在执行所述动作之后的奖励值;

    采用执行所述动作之后的奖励值更新所述环境交互数据中的奖励值,得到更新后的环境交互数据;

    采用所述更新后的环境交互数据训练机器人控制网络对应的智能体;

    采用训练后的智能体对目标机器人的动作进行控制。

    本申请实施例提供一种机器人控制装置,包括:

    第一获取模块,用于获取环境交互数据,所述环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值;

    第二获取模块,用于获取在执行所述动作数据对应的动作之后所实际完成的实际目标值;

    确定模块,用于根据所述相邻两个时刻中的第一时刻的状态参数、所述动作数据和所述实际目标值,确定在执行所述动作之后的奖励值;

    更新模块,用于采用执行所述动作之后的奖励值更新所述环境交互数据中的奖励值,得到更新后的环境交互数据;

    训练模块,用于采用所述更新后的环境交互数据训练机器人控制网络对应的智能体;

    控制模块,用于采用训练后的智能体对目标机器人的动作进行控制。

    在一些实施例中,所述训练模块还用于:在每一时刻,根据所述更新后的环境交互数据中的所述目标值,控制所述智能体执行所述更新后的环境交互数据中的所述动作数据,以得到下一时刻的状态数据,并得到所述下一时刻的奖励值;获取所述下一时刻之后的全部未来时刻的奖励值;确定所述全部未来时刻的所述奖励值对应的累积奖励值;以最大化所述累积奖励值为控制目标,对所述智能体的训练过程进行控制。

    在一些实施例中,所述训练模块还用于:确定所述累积奖励值的期望累积奖励;根据所述期望累积奖励计算初始动作值函数;通过前向经验回放,利用连续的多个时刻的所述环境交互数据,展开所述初始动作值函数,得到展开后的动作值函数,以加速所述动作值函数的学习,实现对所述智能体的训练过程进行控制。

    在一些实施例中,所述训练模块还用于:获取当前时刻之后的多个连续的未来时刻中每一未来时刻的期望奖励值和预设的折扣因子;根据所述折扣因子和每一未来时刻的所述期望奖励值,得到所述展开后的动作值函数。

    在一些实施例中,所述训练模块还用于:获取所述动作值函数的权重;其中,所述权重的取值大于0且小于1;通过前向经验回放,利用连续的多个未来时刻的所述环境交互数据,基于所述权重展开所述初始动作值函数,得到所述展开后的动作值函数。

    在一些实施例中,基于所述权重展开所述初始动作值函数通过以下公式实现:

    其中,qtarget(n)(λ)表示基于权重λ展开后的动作值函数,qtarget(i)表示初始动作值函数。

    在一些实施例中,所述装置还包括:动作数据确定模块,用于根据所述展开后的动作值函数,确定下一时刻的动作数据;第二更新模块,用于采用所述下一时刻的动作数据,更新所述环境交互数据中的所述动作数据,得到更新后的环境交互数据;对应地,所述训练模块还用于采用所述更新后的环境交互数据训练机器人控制网络对应的智能体。

    在一些实施例中,所述装置还包括:执行策略确定模块,用于当采用所述当前奖励值更新所述环境交互数据中的所述奖励值时,根据所述累积奖励值确定所述智能体的执行策略;选择模块,用于根据所述执行策略选择下一时刻的动作数据;

    第三更新模块,用于将所述下一时刻的动作数据更新至所述环境交互数据中,得到所述更新后的环境交互数据。

    在一些实施例中,当所述智能体执行所述动作之后,所述智能体当前所处环境的状态转移至下一时刻的状态,其中下一时刻的状态对应下一时刻的状态参数;所述装置还包括:第四更新模块,用于将所述下一时刻的状态参数更新至所述环境交互数据中,得到所述更新后的环境交互数据。

    在一些实施例中,所述目标值为多个,所述装置还包括:同时确定模块,用于在采用所述更新后的环境交互数据训练机器人控制网络对应的智能体时,同时确定下一时刻的多个所述目标值;第五更新模块,用于将确定出的下一时刻的多个目标值更新至所述环境交互数据中。

    本申请实施例提供一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;其中,计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器用于执行所述计算机指令,实现上述的机器人控制方法。

    本申请实施例提供一种机器人控制设备,包括:

    存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的机器人控制方法。

    本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行所述可执行指令时,实现上述的机器人控制方法。

    本申请实施例具有以下有益效果:获取环境交互数据,其中环境交互数据中至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值,根据相邻两个时刻中的第一时刻的状态参数、动作数据和执行动作之后的动作实际目标值,确定在执行动作之后的奖励值,并更新环境交互数据中的奖励值,即利用了后向经验回放的方式来提高数据的利用率,加速了对智能体的训练,且由于环境交互数据中包括目标值,因此,可以同时训练大量的目标,通过一个模型就能够完成一定目标空间中的所有任务。

    附图说明

    图1a是相关技术中的一种机器人控制方法的实现流程示意图;

    图1b是相关技术中的另一种机器人控制方法的实现流程示意图;

    图2是本申请实施例提供的机器人控制系统的一个可选的架构示意图;

    图3是本申请实施例提供的服务器的结构示意图;

    图4是本申请实施例提供的机器人控制方法的一个可选的流程示意图;

    图5是本申请实施例提供的机器人控制方法的一个可选的流程示意图;

    图6是本申请实施例提供的机器人控制方法的一个可选的流程示意图;

    图7是本申请实施例提供的机器人控制方法的一个可选的流程示意图;

    图8是本申请实施例提供的结合后向经验回放的方法流程图;

    图9是本申请实施例提供的结合前向和后向经验回放的方法流程图;

    图10a至图10h是采用本申请实施例的方法在不同任务下的测试过程示意图。

    具体实施方式

    为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

    在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

    在解释本申请实施例的方案之前,首先对本申请实施例中所涉及到的名词和专用术语进行解释:

    1)强化学习:是属于机器学习的范畴,通常用于解决序列决策问题,主要包括环境和智能体两个组成成分,智能体根据环境的状态选择动作执行,环境根据智能体的动作转移到新的状态并反馈一个数值的奖励,智能体根据环境反馈的奖励不断优化策略。

    2)离线策略:是与强化学习中一类采集数据的动作策略和更新的目标策略不相同的方法,离线策略通常需要使用经验回放技术。

    3)经验回放:是强化学习中离线策略算法使用的一个技巧,保持一个经验池储存智能体与环境交互的数据,训练策略时,从经验池中采样数据来训练策略网络。经验回放的方式使得离线策略算法的数据利用效率高于在线策略算法。

    4)多目标强化学习:通常的强化学习任务是完成一个特定任务,但是在机器人控制中常常存在大量任务,比如移动机械臂到空间中的位置,会希望智能体学习到的策略能够到达目标空间中的任意目标,于是引入了多目标强化学习。多目标强化学习是指同时完成多个目标。

    5)后向经验回放:是指针对多目标强化学习的方法,通过修改经验池中数据的期望目标为完成的目标,后向经验回放能够极大的提高了对失败数据的利用效率。

    6)前向经验回放:前向经验回放的思想来自蒙特卡洛和时序差分值函数估计,通过展开多步的期望累积奖励来加速值函数的估计。

    7)离线策略偏差:当直接在离线策略算法中使用前向经验回放方法的时候,由于行为策略和目标策略存在差异,导致了通常的前向经验回放会带来离线策略偏差的累积,可能会严重影响智能体的策略学习。

    在解释本申请实施例之前,首先对相关技术中的机器人控制方法进行说明:

    图1a是相关技术中的一种机器人控制方法的实现流程示意图,该方法是一种基于优先级经验回放机制的深度强化学习控制算法,利用机器人操作的物体的状态信息计算出优先级,并利用深度强化学习方法完成端到端的机器人控制模型,该方法让深度强化学习的智能体在环境中自主学习并完成指定的任务。训练过程中实时采集目标物体的状态信息用于计算经验回放的优先级,然后将经验回放池中的数据根据优先级供强化学习算法采样学习获得控制模型。该方法在保证深度强化学习算法的鲁棒性的前提下,最大限度利用了环境信息,提升了控制模型的效果并加快了学习收敛的速度。其中,如图1a所示,方法包括以下步骤:

    步骤s11,构建虚拟环境。

    步骤s12,获取机器人任务过程中的传感器数据。

    步骤s13,获取机器人任务过程中的环境状态参数,构建样本轨迹集合。

    步骤s14,计算样本轨迹优先级,由物料的位置变化、角度变化、速度变化三分部组成。

    步骤s15,根据样本轨迹优先级进行采样训练。

    步骤s16,判断网络更新是否达到预设步数。

    步骤s17,如果是,完成训练过程,获得强化学习模型。

    图1b是相关技术中的另一种机器人控制方法的实现流程示意图,该方法公开了一种基于仿真工业机器人的运动学自抓取学习方法和系统,属于计算机辅助制造领域。该方法是基于仿真环境并利用强化学习理论进行机器人抓取训练,仿真机器人通过相机拍摄的图像自动获取物体的位置信息,决定机器人末端抓取工具的抓取位置;同时,基于强化学习的图像处理方法根据观察到的图像中被抓取物体形状和摆放状态,决定抓取工具的姿态,最终成功抓取形状各异、随意摆放的物品;该方法抓取技术可应用于很多工业与生活场景,它可以简化传统机器人的抓取工作编程的复杂性,提高机器人程序的扩展性,极大地提高了机器人的应用范围和实际生产中的工作效率。其中,如图1b所示,整个机器人控制系统中包括机器人仿真环境11、价值估计网络12和动作选择网络13,通过机器人仿真环境11、价值估计网络12和动作选择网络13之间的交互,实现了对整个系统中网络的训练。

    但是,相关技术中的上述两种方法,至少存在以下问题:相关技术中通常对于完成一个特征任务需要训练一个模型,泛化性不强;相关技术中没有利用到后向的经验回放的信息,往往无法从失败的数据中学习;相关技术中没有利用到前向经验回放的信息,往往使用单步的时序差分方法训练,训练的效率较低,所训练的智能体的准确性较低。

    本申请实施例提出一种机器人控制方法,是一种结合前向经验回放与后向经验回放的多目标强化学习机器人控制技术,该方法能够大幅提高智能体训练的数据的利用效率,同时能够缓解离线策略偏差的影响。本申请实施例的方法,能同时训练大量目标,一个模型就能够完成一定目标空间中的所有任务;并且,利用了后向经验回放来提高失败数据的利用,加速了机器人任务的训练;同时,使用前向经验回放的多步奖励展开,加速了值函数的学习和智能体的训练。

    本申请实施例提供的机器人控制方法,首先,获取环境交互数据,环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值;在执行动作数据对应的动作之后所实际完成的实际目标值;然后,根据相邻两个时刻中的第一时刻的状态参数、动作数据和实际目标值,确定在执行动作之后的奖励值;采用执行动作之后的奖励值更新环境交互数据中的奖励值,得到更新后的环境交互数据;再然后,采用更新后的环境交互数据训练机器人控制网络对应的智能体;最后,采用训练后的智能体对目标机器人的动作进行控制。如此,利用了后向经验回放的方式来提高数据的利用率,加速了对智能体的训练,且由于环境交互数据中包括目标值,因此,可以同时训练大量的目标,通过一个模型就能够完成一定目标空间中的所有任务。

    下面说明本申请实施例的机器人控制设备的示例性应用,在一种实现方式中,本申请实施例提供的机器人控制设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能机器人等任意的电子设备或智能体本身,在另一种实现方式中,本申请实施例提供的机器人控制设备还可以实施为服务器。下面,将说明机器人控制设备实施为服务器时的示例性应用,可以通过服务器来训练智能体,通过训练后的智能体对目标机器人的动作进行控制。

    参见图2,图2是本申请实施例提供的机器人控制系统10的一个可选的架构示意图。为实现对智能体的训练,本申请实施例提供的机器人控制系统10中包括机器人100、智能体200和服务器300,其中,服务器300获取机器人100的环境交互数据,环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值,其中,状态数据可以是机器人100通过传感器采集得到的机器人的状态数据,动作数据是机器人100所执行的动作所对应的数据,奖励值是机器人在执行动作之后所获取的回报值,目标值是预先设置的机器人要达到的目标。服务器300进一步获取机器人100在执行动作数据对应的动作之后所实际完成的实际目标值。在获取到环境交互数据和实际目标值之后,服务器300根据相邻两个时刻中的第一时刻的状态参数、动作数据和实际目标值,确定在机器人100执行动作之后的奖励值;采用执行动作之后的奖励值更新环境交互数据中的所述奖励值,得到更新后的环境交互数据;采用更新后的环境交互数据训练机器人控制网络对应的智能体200;在完成对智能体200的训练之后,采用训练后的智能体200对目标机器人的动作进行控制。

    本申请实施例提供的机器人控制方法还涉及人工智能技术领域,至少可以通过人工智能技术中的计算机视觉技术和机器学习技术来实现。其中,计算机视觉技术(cv,computervision)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、光学字符识别(ocr,opticalcharacterrecognition)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。机器学习(ml,machinelearning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。本申请实施例中,通过机器学习技术实现对网络结构搜索请求的响应,以自动搜索到目标网络结构,以及,实现对控制器和分值模型的训练和模型优化。

    图3是本申请实施例提供的服务器300的结构示意图,图3所示的服务器300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。服务器300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统340。

    处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

    用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

    存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,readonlymemory),易失性存储器可以是随机存取存储器(ram,randomaccessmemory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

    操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

    网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universalserialbus)等;

    输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

    在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器350中的一种机器人控制装置354,该机器人控制装置354可以是服务器300中的机器人控制装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块3541、第二获取模块3542、确定模块3543、更新模块3544、训练模块3545和控制模块3546,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

    在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的机器人控制方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件。

    下面将结合本申请实施例提供的服务器300的示例性应用和实施,说明本申请实施例提供的机器人控制方法。参见图4,图4是本申请实施例提供的机器人控制方法的一个可选的流程示意图,将结合图4示出的步骤进行说明。

    步骤s401,获取环境交互数据,环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值。

    这里,状态数据可以是机器人通过传感器采集得到的机器人的状态数据或者机器人当前所处环境的状态数据。动作数据是机器人所执行的动作对应的数据,该动作可以是机器人在当前时刻之前的时刻已经执行的动作,也可以是当前时刻之后的下一时刻即将要执行的动作,其中,动作可以是移动、抓取、分拣等任意一种机器人可以实现的动作。

    需要说明的是,环境的状态数据对应的状态集合与动作数据对应的动作集合之间存在映射关系,即当机器人观察到环境中的某个状态时,需要发出特定的动作,在每个状态下,机器人发出不同动作的概率不同。举例来说,例如在围棋中,环境的状态集合由所有可能的棋局局面组成,机器人(例如阿尔法狗)的动作集合就是阿尔法狗可以采取的所有符合规则的落子方案,此时的策略就是阿尔法狗的行为,即面对不用局面时阿尔法狗选择的下棋方案。

    奖励值是机器人在执行动作之后所获取的回报值,即奖励值是在强化学习过程中基于机器人的动作所获取的回报值。强化学习的目的就是找到一个最佳的策略,从而使得机器人发出一系列的动作后,收到的累积回报值越高。

    目标值是预先设置的机器人要达到的目标,本申请实施例中,目标值可以为多个。

    步骤s402,获取在执行动作数据对应的动作之后所实际完成的实际目标值。

    这里,实际目标值是指机器人在执行动作数据对应的动作之后达到的目标,该目标是当前时刻下的实际目标值,实际目标值可能与期望目标值(即环境交互数据中的目标值)之间存在一定的偏差,当存在偏差时,则需要继续学习,以执行进一步的动作,实现实际目标值向期望目标值的靠拢。

    步骤s403,根据相邻两个时刻中的第一时刻的状态参数、动作数据和实际目标值,确定在执行动作之后的奖励值。

    这里,可以采用预设的奖励函数,根据相邻两个时刻中的第一时刻的状态参数、动作数据和实际目标值,确定在执行动作之后的奖励值。

    第一时刻是执行动作之前的时刻,根据执行动作之前的状态参数、机器人要执行的动作和执行动作之后实际完成的实际目标值,确定实际目标值与期望目标值之间的偏差,进而根据该偏差确定出执行动作之后的当前奖励值。

    在一些实施例中,当完成目标时,即实际目标值与期望目标值之间没有偏差或者偏差小于阈值时,当前奖励值为0;当未完成目标时,即实际目标值与期望目标值之间的偏差大于或等于阈值时,当前奖励值为-1。

    步骤s404,采用执行动作之后的奖励值更新环境交互数据中的奖励值,得到更新后的环境交互数据。

    这里,将执行动作之后的奖励值与机器人执行历史动作对应的奖励值进行累加,实现对环境交互数据中的奖励值得更新,得到更新后的环境交互数据,更新后的环境交互数据中具有新的状态数据、新的动作数据、新的奖励值和新的目标值,其中,更新后的环境交互数据中的新的状态数据是机器人在执行动作之后,所进入的一个新的环境的状态数据,例如,当机器人执行的动作是平移时,则新的状态数据则是平移后机器人的位置和姿态。新的动作数据是机器人在执行动作之后,根据新的奖励值所确定出的下一步要执行的动作,其中,多个连续的动作最终执行后的结果是使得最终的结果更加逼近预期的目标值。新的奖励值是执行动作之后的奖励值与机器人执行历史动作对应的奖励值之间的累加奖励值。

    举例来说,机器人在去完成一个目标的时候,可能当前的动作并没有完成给定的目标,而是完成了其他目标,那么,在机器人完成这个动作之后,再从后向的一个角度去重新选择一个目标,第二次的目标与第一次的目标不一样,第二次这个目标基本就是机器人能够实现的目标,因为之前定的目标可能太高了,所以第二次定一个较低的目标,即通过多次执行,以达到最终想要达到的预期目标值。

    步骤s405,采用更新后的环境交互数据训练机器人控制网络对应的智能体。

    本申请实施例中,在采用更新后的环境交互数据训练智能体的同时,还可以同时采用更新之前的环境交互数据来训练智能体,也就是说,同时采用新旧数据一起来对智能体进行训练,这样,即利用了后向经验回放来提高失败数据(即历史的未成功达到预期目标值得环境交互数据)的利用,加速了机器人任务的训练。

    步骤s406,采用训练后的智能体对目标机器人的动作进行控制。

    本申请实施例提供的机器人控制方法,获取环境交互数据,其中环境交互数据中至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值,根据相邻两个时刻中的第一时刻的状态参数、动作数据和执行动作之后的动作实际目标值,确定在执行动作之后的奖励值,并更新环境交互数据中的奖励值,即利用了后向经验回放的方式来提高数据的利用率,加速了对智能体的训练,且由于环境交互数据中包括目标值,因此,可以同时训练大量的目标,通过一个模型就能够完成一定目标空间中的所有任务。

    在一些实施例中,机器人控制系统中包括机器人、智能体和服务器,其中,机器人能够实现任意的动作,例如,抓取和移动等,智能体能够根据学习到的策略达到目标空间中的任意目标,即对机器人进行控制,以使得机器人实现特定目标对应的动作。

    图5是本申请实施例提供的机器人控制方法的一个可选的流程示意图,如图5所示,方法包括以下步骤:

    步骤s501,机器人采集得到环境交互数据,环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值。

    这里,可以通过机器人自身携带的传感器采集环境交互数据,或者机器人获取外部传感器采集到的环境交互数据。

    步骤s502,机器人将采集到的环境交互数据发送给服务器。

    步骤s503,服务器获取机器人在执行动作数据对应的动作之后所实际完成的实际目标值。

    步骤s504,服务器根据相邻两个时刻中的第一时刻的状态参数、动作数据和实际目标值,确定在执行动作之后的奖励值。

    步骤s505,服务器采用执行动作之后的奖励值更新环境交互数据中的奖励值,得到更新后的环境交互数据。

    步骤s506,服务器采用更新后的环境交互数据训练机器人控制网络对应的智能体。

    需要说明的是,步骤s503至步骤s506与上述步骤s402至步骤s405相同,本申请实施例不再赘述。

    本申请实施例中,智能体可以是服务器中的软件模块,也可以是独立于服务器的硬件结构,服务器通过对智能体进行训练,得到能够对机器人进行有效和准确控制的智能体,并采用训练后的智能体来控制机器人,从而能够避免由服务器实时控制机器人所造成的网络资源浪费的问题。

    步骤s507,采用训练后的智能体对目标机器人的动作进行控制。

    步骤s508,机器人基于智能体的控制实现特定的动作。

    需要说明的是,本申请实施例是基于强化学习技术来训练智能体,因此通过逐步的训练和学习,使得训练后的智能体能够对机器人进行准确的控制,机器人能够准确的实现用户所期望的目标,提高机器人的工作效率和工作质量。另外,由于在工业生成中,在多种情况下均可以采用机器人来代替人工进行操作,因此,采用强化学习训练得到的智能体,能够实现与人工具有相同动作的机器人控制,提高工业生产效率和生产准确性。

    基于图4,图6是本申请实施例提供的机器人控制方法的一个可选的流程示意图,如图6所示,步骤s405可以通过以下步骤实现:

    步骤s601,在每一时刻,根据更新后的环境交互数据中的目标值,控制智能体执行更新后的环境交互数据中的动作数据,以得到下一时刻的状态数据,并得到下一时刻的奖励值。

    这里,由于机器人在每一时刻均会执行当前时刻的环境交互数据中的动作数据对应的动作,因此,在每一时刻执行完动作之后,均会得到一个奖励值,并且,会将该奖励值叠加至当前时刻的环境交互数据中的奖励值中,同时更新环境交互数据中的其他数据,即随着机器人对动作的不断执行,实现了对环境交互数据中的不同数据进行迭代优化的过程。

    步骤s602,获取下一时刻之后的全部未来时刻的奖励值。

    这里,未来时刻的奖励值是指所期望得到的期望奖励值。可以预先设置下一时刻之后的每一未来时刻的期望奖励值,其中,期望奖励值与期望目标值对应。

    步骤s603,确定全部未来时刻的奖励值对应的累积奖励值。这里,累积奖励值是指未来时刻的期望奖励值得累加和。

    步骤s604,以最大化累积奖励值为控制目标,对智能体的训练过程进行控制。本申请实施例中,是基于前向经验回放技术来实现对智能体的训练,通过最大化累积奖励值,是为了使得未来时刻的期望奖励值最大,从而保证机器人的动作能够更加接近期望目标值。

    在一些实施例中,步骤s604可以通过以下步骤实现:

    步骤s6041,确定累积奖励值的期望累积奖励。步骤s6042,根据期望累积奖励计算初始动作值函数。步骤s6043,利用连续的多个时刻的环境交互数据,展开初始动作值函数,得到展开后的动作值函数,以加速动作值函数的学习,实现对智能体的训练过程进行控制。

    这里,步骤s6043中可以利用前向经验回放,来展开初始动作值函数,以加速动作值函数的学习,实现对智能体的训练过程进行控制。

    在一些实施例中,可以获取当前时刻之后的多个连续的未来时刻中每一未来时刻的期望奖励值和预设的折扣因子;然后,根据折扣因子和每一未来时刻的期望奖励值,得到展开后的动作值函数。

    在另一些实施例中,还可以获取动作值函数的权重;其中,权重的取值大于0且小于1;然后,通过前向经验回放,利用连续的多个未来时刻的环境交互数据,基于权重展开初始动作值函数,得到展开后的动作值函数。

    这里,基于权重展开初始动作值函数通过以下公式(1-1)实现:

    其中,qtarget(n)(λ)表示基于权重λ展开后的动作值函数,qtarget(i)表示初始动作值函数。

    图7是本申请实施例提供的机器人控制方法的一个可选的流程示意图,如图7所示,方法包括以下步骤:

    步骤s701,获取环境交互数据,环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值。

    步骤s702,获取在执行动作数据对应的动作之后所实际完成的实际目标值。

    步骤s703,根据相邻两个时刻中的第一时刻的状态参数、动作数据和实际目标值,确定在执行动作之后的奖励值。

    步骤s704,根据展开后的动作值函数,确定下一时刻的动作数据。

    步骤s705,采用下一时刻的动作数据,更新环境交互数据中的动作数据,得到更新后的环境交互数据。

    本申请实施例中,在得到动作值函数之后,在多个动作中选择一个能够增加奖励值的动作为目标动作,将目标动作对应的数据更新至环境交互数据中,作为下一时刻的动作数据,实现对动作的进一步更新。

    步骤s706,当采用当前奖励值更新环境交互数据中的奖励值时,根据累积奖励值确定智能体的执行策略。

    步骤s707,根据执行策略选择下一时刻的动作数据。

    步骤s708,将下一时刻的动作数据更新至环境交互数据中,得到更新后的环境交互数据。

    在一些实施例中,当所述智能体执行所述动作之后,所述智能体当前所处环境的状态转移至下一时刻的状态,其中下一时刻的状态对应下一时刻的状态参数;对应地,方法还包括:

    步骤s709,将下一时刻的状态参数更新至环境交互数据中,得到更新后的环境交互数据。

    步骤s710,采用更新后的环境交互数据训练机器人控制网络对应的智能体。

    本申请实施例中,在对环境交互数据进行更新时,是同时更新环境交互数据中的每一数据,这样,在采用更新后的环境交互数据训练智能体时,能够保证智能体确定出的下一时刻的动作是向着期望目标值靠拢。

    在一些实施例中,环境交互数据中的目标值为多个,对应地,方法还包括:

    步骤s711,确定下一时刻的多个目标值。

    步骤s712,将确定出的下一时刻的多个目标值更新至述环境交互数据中。

    步骤s713,采用训练后的智能体对目标机器人的动作进行控制。

    本申请实施例提供的机器人控制方法,环境交互数据中的目标值为多个,这样能够实现同时对多个目标进行训练,即能够同时训练大量目标,使得一个模型就能够完成一定目标空间中的所有任务。举例来说,多个目标可以包括:移动的方向为y、移动x距离、在移动过程中抓取特定对象、在抓取到特定对象之后,举起该特定对象等。由此可见,多个目标可以是在一个动作系列中连贯的动作,即通过一个模型实现目标空间中的所有任务,从而完成了对一个动作系列的执行,使得机器人更加智能。

    下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

    本申请实施例提供一种机器人控制方法,本申请实施例的方法可以应用于多目标的机器人任务中,例如需要将指定物品放置到空间中不同的位置(物流、机器人分拣等场景)、机器人(飞行器/无人车)运动到指定位置等。

    在解释本申请实施例的方法之前,首先对本申请中的涉及到的符号表述进行说明:

    强化学习通常可以表示为马尔可夫决策过程(mdp,markovdecisionprocess),本申请实施例中使用目标拓展的mdp,mdp包含了六元组(s,a,r,p,γ,g),其中s代表状态空间,a代表动作空间,r代表奖励函数,p代表状态转移概率矩阵,γ代表折扣因子,g代表目标空间(需要说明的是,目标空间包含了需要达到的所有目标的集合,即目标空间g中包括有多个目标值g,每一目标值g对应一个目标,该目标是通过强化学习想要达到的目标)。智能体每个时刻观测到状态st(其中,t表示对应的时刻),根据状态执行动作at,环境接收到动作at后转移到下一个状态st 1并反馈奖励rt,强化学习优化的目标是最大化累积奖励值智能体根据策略π(at|st)选择动作,动作值函数q(st,at)代表在状态st执行动作at后的期望累积奖励。

    其中,e表示求期望值。

    多目标强化学习中,智能体的策略和奖励函数都受到目标g的调节,奖励函数、值函数和策略具有以下表示:r(st,at,g),q(st,at,g),π(st,g)。本申请实施例中,可以使用成功与否来设置奖励函数,即完成目标时奖励为0,未完成目标时奖励为-1,用φ表示状态到目标的映射,ε表示设定达到目标的阈值,奖励函数可以通过以下公式(2-1)表示:

    本申请实施例中,深度确定性策略梯度算法(ddpg,deepdeterministicpolicygradient)基于actorcritic架构来实现,其中,critic部分对状态动作进行评估,actor部分即为选择动作的策略。在多目标强化学习的设定下,actor部分和critic部分的损失函数lactor,lcritic分别通过以下公式(2-2)至(2-4)计算:

    whereqtarget=rt γq(st 1,π(st 1,g),g)(2-4)。

    本申请实施例中,前向经验回放是指在一般离线策略算法更新的基础上,利用连续的多步数据来展开值函数,加速值函数的学习,形象的说就是让智能体拥有了向前看的视野,计算公式即时替换上式中的qtarget为n步展开的公式(2-5):

    qtarget(n)=rt γrt 1 … γnq(st 1,π(st 1,g),g)(2-5)。

    本申请实施例的方法虽然能够加速值函数的学习,但是如果应用到离线策略算法,比如这里使用的ddpg中,会带来离线策略偏差。

    后向经验回放是指,在多目标强化学习中,将失败经历的目标替换为实际完成的目标,这是一种事后诸葛亮的做法,带来了向后看的视野,能够极大的提高数据的利用效率。如图8所示,是本申请实施例提供的结合后向经验回放的方法流程图,其中,方法包括以下步骤:

    步骤s801,获取与环境的交互数据(即环境交互数据)(st,at,rt,st 1,g)。

    步骤s802,采样实际完成的目标g'。

    步骤s803,根据奖励函数重新计算奖励值rt′=r(st,at,g')。

    步骤s804,采用计算出来的奖励值rt′更新得到新的环境交互数据(st,at,rt′,st 1,g')。

    步骤s805,使用新的环境交互数据和旧的环境交互数据一起训练离线策略。

    本申请实施例提供一种结合前向与后向的多目标强化学习机器人控制技术,能够加快训练速度并且极大的提高数据的利用效率,在机器人场景中能够节省大量不必要的物理/仿真实验数据。直接将前向技术n-step结合到后向技术(her,hindsightexperiencereplay)会收到离线策略偏差的影响,可以使用指数递减权重的n-step的加权平均,缓解了离线策略偏差的影响。本申请实施例提供的带λ权重加权的方法qtarget(n)(λ)通过以下公式(2-6)计算:

    在本申请实施例的方法中,当权重λ接近0时,qtarget(n)(λ)接近单步的展开,此时qtarget(n)(λ)是没有离线偏差的但是没有利用到前向信息,当λ增加的时候,qtarget(n)(λ)包含更多的n-step的前向信息,但同时带来更多偏差,因此λ能够起到权衡前向的奖励信息和离线偏差的作用。通过调节λ和步数n,能够更好的利用前向的奖励信息。

    图9是本申请实施例提供的结合前向和后向经验回放的方法流程图,其中,方法包括以下步骤:

    步骤s901,获取与环境的交互数据(即环境交互数据)(st,at,rt,st 1,g)。

    步骤s902,采样实际完成的目标g'。

    步骤s903,根据奖励函数重新计算奖励值rt′=r(st,at,g')。

    步骤s904,采用计算出来的奖励值rt'更新得到新的环境交互数据(st,at,rt',st 1,g')。

    这里,步骤s903至步骤s904即后向技术。

    步骤s905,根据新的环境交互数据计算多步展开的qtarget。

    步骤s906,计算qtarget(n)(λ)以更新值函数。

    这里,步骤s905至步骤s906即前向技术。

    步骤s907,使用新的环境交互数据和旧的环境交互数据一起训练离线策略。

    本申请实施例提供的机器人控制方法,可以应用于多目标机器人控制,相比于相关技术中的方法会极大的提高数据的利用效率并且加快训练速度;同时,能够学习到完成整个目标空间的策略,比相关技术中的方法泛化性更强。

    以下表1是本申请实施例的方法与现有方法的实现结果对比,分别使用仿真环境fetch、hand的八个任务进行测试,fetch代表操作机械臂,hand代表操作机械手,其中ddpg代表相关技术中的方法,n-stepddpg代表前向经验回放,her代表后向经验回放,mher代表本申请实施例提供的前向结合后向的方法,比较的结果是训练完成相同次数(fetch上)后的完成任务的平均成功率,从表情可以看出,本申请实施例的方法在训练相同次数下的表现是最优的:

    表1本申请实施例的方法与现有方法的实现结果对比

    图10a至图10h是采用本申请实施例的方法在不同任务下的测试过程示意图,其中,如图10a所示,是手部伸展的示意图(handreach),其中带暗影1001的手必须用它的大拇指和一个选定的手指去够,直到它们在手掌上方的目标位置相遇。如图10b所示,是手控制立方体的示意图(handblock),手必须操纵一个方块1002,直到它达到一个期望的目标位置和旋转。如图10c所示,是手操作一个鸡蛋的示意图(handegg),手必须操纵一个鸡蛋1003或球体,直到它达到一个理想的目标位置和旋转。如图10d所示,是手操作一支笔的示意图(handpen),手必须操纵一支笔1004或木棒,直到它达到一个理想的目标位置和旋转。如图10e所示,是机器人到达某位置的示意图(fetchreach),必须将机器人的末端效应器1005移动到所需的目标位置。如图10f所示,是机器人滑动的示意图(fetchslide),机器人必须在一定方向上进行移动,这样它就会滑动,并在所需的目标上休息。如图10g所示,是机器人推动的示意图(fetchpush),机器人必须移动一个盒子1006,直到盒子1006到达所需的目标位置。如图10h所示,是机器人拾取的示意图(fetchpick),机器人必须用它的夹子从桌子上拿起一个盒子1007,并把盒子1007移到桌子上方的目标位置。

    需要说明的是,除了本申请实施例中使用的指数递减权重加权平均多步期望奖励外,还可以人工手动设计权重,或直接使用前向多步期望奖励(n-stepreturn)。

    下面继续说明本申请实施例提供的机器人控制装置354实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器350的机器人控制装置354中的软件模块可以是服务器300中的机器人控制装置,包括:

    第一获取模块3541,用于获取环境交互数据,所述环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值;第二获取模块3542,用于获取在执行所述动作数据对应的动作之后所实际完成的实际目标值;确定模块3543,用于根据所述相邻两个时刻中的第一时刻的状态参数、所述动作数据和所述实际目标值,确定在执行所述动作之后的奖励值;更新模块3544,用于采用执行所述动作之后的奖励值更新所述环境交互数据中的奖励值,得到更新后的环境交互数据;训练模块3545,用于采用所述更新后的环境交互数据训练机器人控制网络对应的智能体;控制模块3546,用于采用训练后的智能体对目标机器人的动作进行控制。

    在一些实施例中,所述训练模块还用于:在每一时刻,根据所述更新后的环境交互数据中的所述目标值,控制所述智能体执行所述更新后的环境交互数据中的所述动作数据,以得到下一时刻的状态数据,并得到所述下一时刻的奖励值;获取所述下一时刻之后的全部未来时刻的奖励值;确定所述全部未来时刻的所述奖励值对应的累积奖励值;以最大化所述累积奖励值为控制目标,对所述智能体的训练过程进行控制。

    在一些实施例中,所述训练模块还用于:确定所述累积奖励值的期望累积奖励;根据所述期望累积奖励计算初始动作值函数;利用连续的多个时刻的所述环境交互数据,展开所述初始动作值函数,得到展开后的动作值函数,以加速所述动作值函数的学习,实现对所述智能体的训练过程进行控制。

    在一些实施例中,所述训练模块还用于:获取当前时刻之后的多个连续的未来时刻中每一未来时刻的期望奖励值和预设的折扣因子;根据所述折扣因子和每一未来时刻的所述期望奖励值,得到所述展开后的动作值函数。

    在一些实施例中,所述训练模块还用于:获取所述动作值函数的权重;其中,所述权重的取值大于0且小于1;通过前向经验回放,利用连续的多个未来时刻的所述环境交互数据,基于所述权重展开所述初始动作值函数,得到所述展开后的动作值函数。

    在一些实施例中,基于所述权重展开所述初始动作值函数通过以下公式实现:

    其中,qtarget(n)(λ)表示基于权重λ展开后的动作值函数,qtarget(i)表示初始动作值函数。

    在一些实施例中,所述装置还包括:动作数据确定模块,用于根据所述展开后的动作值函数,确定下一时刻的动作数据;第二更新模块,用于采用所述下一时刻的动作数据,更新所述环境交互数据中的所述动作数据,得到更新后的环境交互数据;所述训练模块还用于采用所述更新后的环境交互数据训练机器人控制网络对应的智能体。

    在一些实施例中,所述装置还包括:执行策略确定模块,用于当采用所述当前奖励值更新所述环境交互数据中的所述奖励值时,根据所述累积奖励值确定所述智能体的执行策略;选择模块,用于根据所述执行策略选择下一时刻的动作数据;第三更新模块,用于将所述下一时刻的动作数据更新至所述环境交互数据中,得到所述更新后的环境交互数据。

    在一些实施例中,当所述智能体执行所述动作之后,所述智能体当前所处环境的状态转移至下一时刻的状态,其中下一时刻的状态对应下一时刻的状态参数;所述装置还包括:第四更新模块,用于将所述下一时刻的状态参数更新至所述环境交互数据中,得到所述更新后的环境交互数据。

    在一些实施例中,所述目标值为多个,所述装置还包括:同时确定模块,用于在采用所述更新后的环境交互数据训练机器人控制网络对应的智能体时,同时确定下一时刻的多个所述目标值;第五更新模块,用于将确定出的下一时刻的多个目标值更新至所述环境交互数据中。

    需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

    本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的方法。

    本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。

    在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(fram,ferromagneticrandomaccessmemory)、只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmablereadonlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammablereadonlymemory)、带电可擦可编程只读存储器(eeprom,electricallyerasableprogrammablereadonlymemory)、闪存、磁表面存储器、光盘、或光盘只读存储器(cd-rom,compactdisk-readonlymemory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

    在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

    作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hypertextmarkuplanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

    以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。


    技术特征:

    1.一种机器人控制方法,其特征在于,包括:

    获取环境交互数据,所述环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值;

    获取在执行所述动作数据对应的动作之后所实际完成的实际目标值;

    根据所述相邻两个时刻中的第一时刻的状态参数、所述动作数据和所述实际目标值,确定在执行所述动作之后的奖励值;

    采用执行所述动作之后的奖励值更新所述环境交互数据中的奖励值,得到更新后的环境交互数据;

    采用所述更新后的环境交互数据训练机器人控制网络对应的智能体;

    采用训练后的智能体对目标机器人的动作进行控制。

    2.根据权利要求1所述的方法,其特征在于,所述采用所述更新后的环境交互数据训练机器人控制网络对应的智能体,包括:

    在每一时刻,根据所述更新后的环境交互数据中的所述目标值,控制所述智能体执行所述更新后的环境交互数据中的所述动作数据,以得到下一时刻的状态数据,并得到所述下一时刻的奖励值;

    获取所述下一时刻之后的全部未来时刻的奖励值;

    确定所述全部未来时刻的所述奖励值对应的累积奖励值;

    以最大化所述累积奖励值为控制目标,对所述智能体的训练过程进行控制。

    3.根据权利要求2所述的方法,其特征在于,所述以最大化所述累积奖励值为控制目标,对所述智能体的训练过程进行控制,包括:

    确定所述累积奖励值的期望累积奖励;

    根据所述期望累积奖励计算初始动作值函数;

    利用连续的多个时刻的所述环境交互数据,展开所述初始动作值函数,得到展开后的动作值函数,以加速所述动作值函数的学习,实现对所述智能体的训练过程进行控制。

    4.根据权利要求3所述的方法,其特征在于,所述利用连续的多个时刻的所述环境交互数据,展开所述初始动作值函数,得到展开后的动作值函数,包括:

    获取当前时刻之后的多个连续的未来时刻中每一未来时刻的期望奖励值和预设的折扣因子;

    根据所述折扣因子和每一未来时刻的所述期望奖励值,得到所述展开后的动作值函数。

    5.根据权利要求3所述的方法,其特征在于,所述利用连续的多个时刻的所述环境交互数据,展开所述初始动作值函数,得到展开后的动作值函数,包括:

    获取所述动作值函数的权重;其中,所述权重的取值大于0且小于1;

    通过前向经验回放,利用连续的多个未来时刻的所述环境交互数据,基于所述权重展开所述初始动作值函数,得到所述展开后的动作值函数。

    6.根据权利要求5所述的方法,其特征在于,所述基于所述权重展开所述初始动作值函数通过以下公式实现:

    其中,qtarget(n)(λ)表示基于权重λ展开后的动作值函数,qtarget(i)表示初始动作值函数。

    7.根据权利要求3所述的方法,其特征在于,所述方法还包括:

    根据所述展开后的动作值函数,确定下一时刻的动作数据;

    采用所述下一时刻的动作数据,更新所述环境交互数据中的所述动作数据,得到更新后的环境交互数据;

    采用所述更新后的环境交互数据训练机器人控制网络对应的智能体。

    8.根据权利要求2所述的方法,其特征在于,所述方法还包括:

    当采用所述当前奖励值更新所述环境交互数据中的所述奖励值时,根据所述累积奖励值确定所述智能体的执行策略;

    根据所述执行策略选择下一时刻的动作数据;

    将所述下一时刻的动作数据更新至所述环境交互数据中,得到所述更新后的环境交互数据。

    9.根据权利要求1至8任一项所述的方法,其特征在于,当所述智能体执行所述动作之后,所述智能体当前所处环境的状态转移至下一时刻的状态,其中下一时刻的状态对应下一时刻的状态参数;所述方法还包括:

    将所述下一时刻的状态参数更新至所述环境交互数据中,得到所述更新后的环境交互数据。

    10.根据权利要求1至8任一项所述的方法,其特征在于,所述目标值为多个,所述方法还包括:

    在采用所述更新后的环境交互数据训练机器人控制网络对应的智能体时,同时确定下一时刻的多个所述目标值;

    将确定出的下一时刻的多个目标值更新至所述环境交互数据中。

    11.一种机器人控制装置,其特征在于,包括:

    第一获取模块,用于获取环境交互数据,所述环境交互数据至少包括相邻两个时刻的状态数据、动作数据、奖励值和目标值;

    第二获取模块,用于获取在执行所述动作数据对应的动作之后所实际完成的实际目标值;

    确定模块,用于根据所述相邻两个时刻中的第一时刻的状态参数、所述动作数据和所述实际目标值,确定在执行所述动作之后的奖励值;

    更新模块,用于采用执行所述动作之后的奖励值更新所述环境交互数据中的奖励值,得到更新后的环境交互数据;

    训练模块,用于采用所述更新后的环境交互数据训练机器人控制网络对应的智能体;

    控制模块,用于采用训练后的智能体对目标机器人的动作进行控制。

    12.一种机器人控制设备,其特征在于,包括:

    存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10任一项所述的机器人控制方法。

    13.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行所述可执行指令时,实现权利要求1至10任一项所述的机器人控制方法。

    技术总结
    本申请实施例提供一种机器人控制方法、装置、设备及计算机存储介质,涉及人工智能技术领域。方法包括:获取环境交互数据和在执行环境交互数据中的动作数据对应的动作之后所实际完成的实际目标值;根据相邻两个时刻中的第一时刻的状态参数、所述动作数据和所述实际目标值,确定在执行所述动作之后的奖励值;采用执行所述动作之后的奖励值更新所述环境交互数据中的奖励值;采用更新后的环境交互数据训练机器人控制网络对应的智能体;采用训练后的智能体对目标机器人的动作进行控制。通过本申请,能够提高数据的利用率,加速对智能体的训练,且能够同时训练大量的目标,通过一个模型就能够完成一定目标空间中的所有任务。

    技术研发人员:杨瑞;李蓝青;罗迪君
    受保护的技术使用者:腾讯科技(深圳)有限公司
    技术研发日:2020.11.13
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-5718.html

    最新回复(0)