基于人工智能的机器人控制方法、装置及电子设备

文档序号:124120 发布日期:2021-10-22 浏览:11次 >En<

阅读说明:本技术 基于人工智能的机器人控制方法、装置及电子设备 (Robot control method and device based on artificial intelligence and electronic equipment ) 是由 郑宇� 张丹丹 魏磊 张正友 于 2021-01-08 设计创作,主要内容包括:本申请提供了一种基于人工智能的机器人控制方法、装置、电子设备及计算机可读存储介质;方法包括:在机器人执行任务的过程中,采集机器人所处环境的图像;其中,任务包括级联的多个任务层级,且每个任务层级包括多个候选任务进度;根据图像遍历多个任务层级,以在遍历到的任务层级包括的多个候选任务进度中,确定机器人所处的任务进度;根据图像进行运动规划处理,得到机器人的运动数据;根据多个任务层级中的任务进度以及运动数据,确定目标运动数据;根据目标运动数据控制机器人。通过本申请,能够提升机器人控制的鲁棒性,同时提升任务执行的成功率。(The application provides a robot control method, a device, electronic equipment and a computer readable storage medium based on artificial intelligence; the method comprises the following steps: acquiring an image of an environment where the robot is located in the process of executing a task by the robot; the task comprises a plurality of cascaded task levels, and each task level comprises a plurality of candidate task schedules; traversing a plurality of task levels according to the image, and determining the task progress of the robot in a plurality of candidate task progresses included in the traversed task levels; performing motion planning processing according to the image to obtain motion data of the robot; determining target motion data according to task progress and motion data in a plurality of task levels; and controlling the robot according to the target motion data. By the method and the device, the robustness of robot control can be improved, and the success rate of task execution is improved.)

基于人工智能的机器人控制方法、装置及电子设备

技术领域

本申请涉及人工智能技术和大数据技术,尤其涉及一种基于人工智能的机器人控制方法、装置、电子设备及计算机可读存储介质。

背景技术

机器人(Robot)是一种能够半自主或全自主工作的智能机器,用于辅助甚至替代人类执行特定的任务,从而服务于人类生活,扩大或延伸人类的活动及能力范围。机器人可以广泛地应用于日常生活及工业制造等应用场景中。

在相关技术提供的方案中,通常是在机器人内部预设一系列的控制指令,从而控制机器人执行特定的任务。但是,该种方案的鲁棒性差,在面临实际任务时无法应对不可预测的突发情况,即任务执行的成功率低。

发明内容

本申请实施例提供一种基于人工智能的机器人控制方法、装置、电子设备及计算机可读存储介质,能够提升机器人控制的鲁棒性,同时提升任务执行的成功率。

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

本申请实施例提供一种基于人工智能的机器人控制方法,包括:

在机器人执行任务的过程中,采集所述机器人所处环境的图像;其中,所述任务包括级联的多个任务层级,且每个任务层级包括多个候选任务进度;

根据所述图像遍历所述多个任务层级,以在遍历到的任务层级包括的多个候选任务进度中,确定所述机器人所处的任务进度;

根据所述图像进行运动规划处理,得到所述机器人的运动数据;

根据所述多个任务层级中的任务进度以及所述运动数据,确定目标运动数据;

根据所述目标运动数据控制所述机器人。

本申请实施例提供一种基于人工智能的机器人控制装置,包括:

采集模块,用于在机器人执行任务的过程中,采集所述机器人所处环境的图像;其中,所述任务包括级联的多个任务层级,且每个任务层级包括多个候选任务进度;

进度确定模块,用于根据所述图像遍历所述多个任务层级,以在遍历到的任务层级包括的多个候选任务进度中,确定所述机器人所处的任务进度;

运动规划模块,用于根据所述图像进行运动规划处理,得到所述机器人的运动数据;

结合模块,用于根据所述多个任务层级中的任务进度以及所述运动数据,确定目标运动数据;

控制模块,用于根据所述目标运动数据控制所述机器人。

本申请实施例提供一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的基于人工智能的机器人控制方法。

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

本申请实施例具有以下有益效果:

将任务划分为级联的多个任务层级,在机器人执行任务的过程中,根据机器人所处环境的图像逐级确定机器人所处的任务进度,并结合运动规划处理得到的运动数据确定目标运动数据,能够提升根据目标运动数据控制机器人的准确性和可解释性,提升任务执行的成功率。

附图说明

图1是本申请实施例提供的基于人工智能的机器人控制系统的架构示意图;

图2是本申请实施例提供的终端设备的架构示意图;

图3A是本申请实施例提供的基于人工智能的机器人控制方法的流程示意图;

图3B是本申请实施例提供的基于人工智能的机器人控制方法的流程示意图;

图3C是本申请实施例提供的基于人工智能的机器人控制方法的流程示意图;

图4是本申请实施例提供的基于人工智能的机器人控制方法的示意图;

图5是本申请实施例提供的数据采集的架构示意图;

图6是本申请实施例提供的数据采集的架构示意图;

图7是本申请实施例提供的三个层级分别对应的神经网络模型的示意图;

图8是本申请实施例提供的机器人线上实时控制的架构示意图。

具体实施方式

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

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)人工智能(Artificial Intelligence,AI):利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。在本申请实施例中,可以基于人工智能原理(如机器学习原理)来构建模型,如进度分类模型和运动规划模型。

2)机器人:一种能够半自主或全自主工作的智能机器。本申请实施例对机器人的结构不做限定,例如可以是扫地机器人或拥有机械臂的机器人等,对于拥有机械臂的机器人来说,其可以是6自由度(如拥有6个关节)或7自由度等。

3)任务:指机器人所要执行的任务,例如可以是倒水、烹饪、清洁、护理或清扫等。在本申请实施例中,任务包括级联的多个任务层级,每个任务层级包括多个候选任务进度。任务层级可以根据实际应用场景进行划分,以倒水任务(控制源容器向目标容器倒水)举例,可以划分为阶段任务层级和状态任务层级,其中,阶段任务层级包括4个候选任务进度,即[控制源容器接近目标容器]、[开始倒水]、[放慢倒水的速度]和[结束倒水以及移开源容器];状态任务层级包括10个候选任务进度,分别为目标容器的内部空间已被水填充10%、目标容器的内部空间已被水填充20%、……目标容器的内部空间已被水填充100%。

4)机器人所处环境的图像:可以是以机器人自身为视角(即第一人称视角)观测得到的图像,也可以是以第三人称视角观测得到的图像,例如通过独立于机器人的摄像机所拍摄的图像。对于采集到的机器人所处环境的图像来说,可以不包括机器人的任何结构,也可以包括机器人的全部或部分结构。

5)运动数据:本质上是运动学数据,对于机器人来说,机器人的运动数据的数据类型包括但不限于位姿值、角速度以及力矩值。

6)模仿对象:指机器人的模仿目标,模仿对象同样可以执行任务。在本申请实施例中,模仿对象可以是用户,也可以是另外的机器人。

7)大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。在本申请实施例中,可以利用大数据技术来实现模型训练以及实时的机器人控制。

本申请实施例提供一种基于人工智能的机器人控制方法、装置、电子设备及计算机可读存储介质,能够提升机器人控制的鲁棒性,同时提升任务执行的成功率。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器。

参见图1,图1是本申请实施例提供的基于人工智能的机器人控制系统100的一个架构示意图,终端设备400通过网络300连接服务器200,服务器200连接数据库500,其中,网络300可以是广域网或者局域网,又或者是二者的组合。在图1中,以倒水任务为例,还示出了机器人600(图1中示出的机器人600可以是一个机器人中的手腕关节)、源容器700以及目标容器800。

在一些实施例中,以电子设备是终端设备为例,本申请实施例提供的基于人工智能的机器人控制方法可以由终端设备实现。例如,终端设备400运行客户端410,客户端410可以是用于控制机器人600的客户端。客户端410可以在机器人600执行历史任务的过程中,采集机器人600所处环境的样本图像、样本图像对应的样本任务进度、以及在样本图像对应时刻控制机器人600的样本运动数据。客户端410根据样本图像以及样本任务进度,对样本任务进度所在任务层级对应的进度分类模型进行训练,同时根据样本图像以及样本运动数据,对运动规划模型进行训练。值得说明的是,在机器人600执行历史任务的过程中,用户可以通过客户端410生成自定义的控制指令,以控制机器人,从而保证样本图像、样本任务进度以及样本运动数据的准确性。

在需要实时控制机器人600执行任务时,客户端410采集机器人600所处环境的图像,其中,客户端410可以通过终端设备400内部的摄像机,对机器人600所处的环境进行拍摄得到图像;可以采集(获取)独立于终端设备400和机器人600的摄像机对机器人600所处的环境进行拍摄得到的图像;也可以采集机器人600内部的摄像机对外界进行拍摄得到的图像(即机器人600的第一人称图像)。然后,针对任务包括的每个任务层级,客户端410根据任务层级对应的训练后的进度分类模型,对采集到的图像进行进度分类处理,得到机器人600在该任务层级所处的任务进度。同时,客户端410根据训练后的运动规划模型,对采集到的图像进行运动规划处理,得到运动数据。客户端410根据多个任务层级中的任务进度以及运动数据,确定目标运动数据,并根据目标运动数据生成控制指令以控制机器人600。

在一些实施例中,以电子设备是服务器为例,本申请实施例提供的基于人工智能的机器人控制方法可以由服务器和终端设备协同实现。例如,服务器200从数据库500中获取历史采集到的机器人600所处环境的样本图像、样本图像对应的样本任务进度、以及在样本图像对应时刻控制机器人600的样本运动数据。然后,根据获取到的这些数据训练运动规划模型以及每个任务层级对应的进度分类模型。

针对待执行的任务,服务器200从客户端410中获取客户端410采集到的机器人600所处环境的图像。然后,服务器200根据每个任务层级对应的训练后的进度分类模型,分别对获取到的图像进行进度分类处理,得到机器人600在每个任务层级所处的任务进度。同时,服务器200根据训练后的运动规划模型,对获取到的图像进行运动规划处理,得到运动数据。服务器200根据多个任务层级中的任务进度以及运动数据,确定目标运动数据,并将根据目标运动数据生成的控制指令发送至客户端410,以使客户端410根据该控制指令控制机器人600;或者,服务器200也可以将目标运动数据发送至客户端410,以使客户端410根据目标运动数据生成控制指令,并根据控制指令控制机器人600。在一些实施例中,服务器200也可以将训练后的运动规划模型以及每个任务层级对应的训练后的进度分类模型发送至客户端410,以使客户端410在本地进行预测处理(即运动规划处理及进度分类处理),从而确定目标运动数据。

在图1中,机器人600在被控制的过程中,可以实现将源容器700中的水倒入目标容器800的倒水任务,可以应用于酒吧、咖啡店及饭店等,以替代人工。值得说明的是,在图1中,以终端设备400独立于机器人600的情况进行了示例说明,在一些实施例中,终端设备400也可以集成于机器人600内部实现(即终端设备400作为机器人600内部的一个组件),从而使机器人600本身具有自控制能力。

在一些实施例中,终端设备400或服务器200可以通过运行计算机程序来实现本申请实施例提供的基于人工智能的机器人控制方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。

在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。

以本申请实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图2中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图2,图2是本申请实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。

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

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

存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。

存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。

在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

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

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

呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);

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

在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的基于人工智能的机器人控制装置455,其可以是程序和插件等形式的软件,包括以下软件模块:采集模块4551、进度确定模块4552、运动规划模块4553、结合模块4554以及控制模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的基于人工智能的机器人控制方法。

参见图3A,图3A是本申请实施例提供的基于人工智能的机器人控制方法的一个流程示意图,将结合图3A示出的步骤进行说明。

在步骤101中,在机器人执行任务的过程中,采集机器人所处环境的图像;其中,任务包括级联的多个任务层级,且每个任务层级包括多个候选任务进度。

在本申请实施例中,对机器人执行的任务的类型不做限定,例如可以是倒水任务或清扫任务等。机器人执行的任务包括级联的多个任务层级,且每个任务层级包括多个候选任务进度,任务层级以及候选任务进度均可以根据实际应用场景进行设定。例如,倒水任务包括阶段任务层级及状态任务层级,阶段任务层级包括4个候选任务进度(或称阶段),分别为[控制源容器接近目标容器]、[开始倒水]、[放慢倒水的速度]和[结束倒水以及移开源容器];状态任务层级包括的候选任务进度表示目标容器的内部空间被水填充的状态,如包括10%(即目标容器的内部空间已被水填充10%)、20%、……100%。又例如,清扫任务包括阶段任务层级及状态任务层级,阶段任务层级包括3个候选任务进度,分别为[控制抹布接近待清扫的桌面]、[开始清扫]和[结束清扫以及移开抹布];状态任务层级包括的候选任务进度表示当前清扫的区域,如第n个区域(这里以将桌面划分为多个区域为例),其中n为大于0的整数。

在机器人执行任务的过程中,采集机器人所处环境的图像,这里的图像可以是通过独立于机器人的摄像机,对机器人所处的环境进行拍摄得到的图像,即是以第三人称视角拍摄得到的图像;也可以是根据机器人内部的摄像机,对机器人所处的环境进行拍摄得到的图像,即是以机器人的第一人称视角拍摄得到的图像。机器人所处环境的图像可以不包括机器人本身的任何结构,也可以包括机器人的全部或部分结构。

在步骤102中,根据图像遍历多个任务层级,以在遍历到的任务层级包括的多个候选任务进度中,确定机器人所处的任务进度。

这里,任务包括的多个任务层级存在设定的层级顺序,以任务包括阶段任务层级及状态任务层级为例,则在层级顺序中,阶段任务层级为上级的任务层级,状态任务层级为下级的任务层级。在采集到机器人所处环境的图像时,根据层级顺序遍历多个任务层级,例如第一个遍历到的任务层级为阶段任务层级,第二个遍历到的任务层级为状态任务层级。

对于遍历到的任务层级来说,在其包括的多个候选任务进度中,根据采集到的图像确定机器人所处的任务进度。这里,可以通过任务层级对应的进度分类模型,来确定机器人该任务层级中的任务进度,具体在后文进行阐述。

在一些实施例中,可以通过这样的方式来实现上述的在遍历到的任务层级包括的多个候选任务进度中,确定机器人所处的任务进度:当上一个遍历到的任务层级中的任务进度与遍历到的任务层级包括的至少部分候选任务进度存在级联关系时,根据图像在至少部分候选任务进度中确定机器人所处的任务进度;当上一个遍历到的任务层级中的任务进度与遍历到的任务层级包括的所有候选任务进度均不存在级联关系时,停止遍历,并确定遍历到的任务层级及后续未遍历到的任务层级中的任务进度为空。

在本申请实施例中,一种情况是,某任务层级中的某候选任务进度与下一个任务层级中的至少部分候选任务进度存在级联关系,该级联关系可以根据实际应用场景预先设定。以倒水任务举例,可以设定阶段任务层级中的[开始倒水]的候选任务进度与状态任务层级中的10%、20%、30%、40%、50%和60%这些候选任务进度存在级联关系;阶段任务层级中的[放慢倒水的速度]的候选任务进度与状态任务层级中的70%、80%、90%及100%这些候选任务进度存在级联关系。

另一种情况是,某任务层级中的某候选任务进度与下一个任务层级中的所有候选任务进度均不存在级联关系。以倒水任务举例,可以设定阶段任务层级中的[控制源容器接近目标容器]的候选任务进度与状态任务层级中的所有候选任务进度均不存在级联关系;阶段任务层级中的[结束倒水以及移开源容器]的候选任务进度也与状态任务层级中的所有候选任务进度均不存在级联关系。

对于这两种情况,通过不同的方式来确定机器人在遍历到的任务层级中所处的任务进度。例如,当上一个遍历到的任务层级中的任务进度与遍历到的任务层级包括的至少部分候选任务进度存在级联关系时,根据图像在遍历到的任务层级包括的至少部分候选任务进度中,确定机器人所处的任务进度,并继续遍历;当上一个遍历到的任务层级中的任务进度与遍历到的任务层级包括的多个候选任务进度均不存在级联关系时,停止遍历,并确定遍历到的任务层级中的任务进度为空,同时确定后续未遍历到的任务层级中的任务进度均为空,即不采用遍历到的任务层级中的任务进度、以及后续未遍历到的任务层级中的任务进度来确定目标运动数据。通过上述方式,能够基于不同任务层级的候选任务进度之间是否存在级联关系的情况,来提升确定出的任务进度的准确性和合理性。

在一些实施例中,在根据图像遍历多个任务层级的过程中,还包括:当遍历到的任务层级中的任务进度对应单个运动数据时,停止遍历;根据遍历到的任务层级中的任务进度对应的运动数据控制机器人。

在本申请实施例中,某些任务层级的某些候选任务进度可能对应有设定的单个运动数据,不同候选任务进度对应的运动数据可以相同,也可以不同。当遍历到的任务层级中的任务进度对应单个运动数据时,停止遍历,并直接根据该运动数据控制机器人,即无需执行后续的步骤103至步骤105。以倒水任务举例,阶段任务层级中的候选任务进度[控制源容器接近目标容器]可以对应一个设定的运动数据,候选任务进度[结束倒水以及移开源容器]也可以对应一个设定的运动数据,这两个运动数据可以相同,也可以不同,根据实际应用场景而定。通过上述方式,能够提升机器人控制的灵活性,满足不同候选任务进度的控制需求。

在步骤103中,根据图像进行运动规划处理,得到机器人的运动数据。

除了根据图像确定机器人在各任务层级中的任务进度之外,在本申请实施例中,还根据图像进行运动规划处理,得到机器人的运动数据,这里,可以根据运动规划模型来实现运动规划处理,具体在后文进行阐述。

在步骤104中,根据多个任务层级中的任务进度以及运动数据,确定目标运动数据。

这里,根据多个任务层级中的任务进度对运动数据进行约束,得到目标运动数据。例如,确定最后一个遍历到的任务层级中的任务进度对应的运动数据范围(该运动数据范围可以预先设定,或通过其他方式得到),当机器人的运动数据与该运动数据范围匹配成功时,将该运动数据作为目标运动数据;当机器人的运动数据与该运动数据范围匹配失败时,根据该运动数据范围确定目标运动数据,如将该运动数据范围中的任意一个运动数据作为目标运动数据。当然,结合多个任务层级中的任务进度以及运动数据确定目标运动数据的方式并不限于此。

在步骤105中,根据目标运动数据控制机器人。

本申请实施例对目标运动数据的数据类型不做限定,例如可以是位姿值、角速度或力矩值等。在确定出目标运动数据后,通过逆运动学原理确定出控制指令,并根据控制指令控制机器人,其中,控制指令包括有机器人可以直接读取并执行的控制数据(控制量),控制数据如机器人的多个关节的转动角度。当然,若目标运动数据能够被机器人直接读取并执行,则也可以将目标运动数据直接作为控制指令中的控制数据。

值得说明的是,可以周期性地执行步骤101至步骤105,即周期性地采集机器人所处环境的图像,并确定出目标运动数据以控制机器人,如此,能够实现实时且准确的控制。

如图3A所示,本申请实施例根据机器人所处环境的图像逐级确定机器人所处的任务进度,同时进行运动规划处理得到运动数据,然后结合多个任务层级中的任务进度以及运动数据确定目标运动数据,提升了确定出的目标运动数据的准确性和可解释性,也提升了机器人执行任务的成功率。

在一些实施例中,参见图3B,图3B是本申请实施例提供的基于人工智能的机器人控制方法的一个流程示意图,图3A示出的步骤104可以通过步骤201至步骤202实现,将结合各步骤进行说明。

在步骤201中,针对每个任务层级中的任务进度,根据任务进度对应的运动数据范围对运动数据进行更新处理。

在本申请实施例中,多个任务层级中的任务进度可以分别对应一个运动数据范围。其中,运动数据范围可以由人为设定,也可以通过其他方式确定,不同任务层级中的任务进度分别对应的运动数据范围可以相同,也可以不同。

在根据图像进行运动规划处理得到运动数据后,可以根据每个任务层级中的任务进度对应的运动数据范围,对运动数据进行更新处理,如此,能够将运动数据约束在特定的运动数据范围内,即实现安全性约束。在一些实施例中,可以遍历多个任务层级中的任务进度,并根据遍历到的任务进度对应的运动数据范围对运动数据进行更新处理,这里的遍历可以是按照层级顺序进行遍历,也可以是按照层级顺序的相反顺序进行遍历,对此不做限定。

在一些实施例中,可以通过这样的方式来实现上述的根据任务进度对应的运动数据范围对运动数据进行更新处理:当运动数据与任务进度对应的运动数据范围匹配成功时,保持运动数据不变;当运动数据与任务进度对应的运动数据范围匹配失败时,根据任务进度对应的运动数据范围,确定新的运动数据。

这里,提供了更新处理的一种示例,为了便于理解,以根据任意一个任务层级中的任务进度对应的运动数据范围,对运动数据进行更新处理的过程进行说明。首先,将运动数据与任务进度对应的运动数据范围进行匹配,这里,匹配成功可以是指运动数据落入该运动数据范围中,匹配失败可以是指运动数据未落入该运动数据范围中,即运动数据大于该运动数据范围中最大的运动数据、或者小于该运动数据范围中最小的运动数据,当然,这并不构成对本申请实施例的限定。

当运动数据与该运动数据范围匹配成功时,保持运动数据不变;当运动数据与该运动数据范围匹配失败时,将该运动数据范围中的任意一个运动数据(如最大的运动数据或者最小的运动数据),作为新的运动数据,从而保证新的运动数据能够与该运动数据范围匹配成功。通过上述方式,能够在更新处理的过程中,对运动数据进行有效的安全性约束。

在一些实施例中,可以通过这样的方式来实现上述的当运动数据与任务进度对应的运动数据范围匹配失败时,根据任务进度对应的运动数据范围,确定新的运动数据:执行以下至少一种处理:当运动数据小于任务进度对应的运动数据范围中最小的运动数据时,确定运动数据与任务进度对应的运动数据范围匹配失败,并将最小的运动数据作为新的运动数据;当运动数据大于任务进度对应的运动数据范围中最大的运动数据时,确定运动数据与任务进度对应的运动数据范围匹配失败,并将最大的运动数据作为新的运动数据。

在本申请实施例中,对于不同的任务进度,可以设定针对运动数据的不同约束方式,约束方式如最小值约束和最大值约束。为了便于理解,以根据任意一个任务层级中的任务进度对应的运动数据范围,对运动数据进行更新处理的过程进行说明

若任务进度对应的约束方式是最小值约束,则在运动数据小于任务进度对应的运动数据范围中最小的运动数据时,确定运动数据与任务进度对应的运动数据范围匹配失败,并将该最小的运动数据作为新的运动数据,即最小值约束的目的是避免运动数据过小。

若任务进度对应的约束方式是最大值约束,则在运动数据大于任务进度对应的运动数据范围中最大的运动数据时,确定运动数据与任务进度对应的运动数据范围匹配失败,并将该最大的运动数据作为新的运动数据,即最大值约束的目的是避免运动数据过大。其中,运动数据越大,表示对机器人的控制幅度越大。

举例来说,在倒水任务中,对于阶段[开始倒水],设定对应的约束方式是最小值约束,从而防止倒水的速度过慢;对于阶段[放慢倒水的速度],设定对应的约束方式是最大值约束,从而防止倒水的速度过快。

值得说明的是,对于同一任务进度,也可以设定对应的约束方式同时包括最小值约束和最大值约束。通过上述方式,能够提升对运动数据进行更新处理的灵活性,可以根据实际应用场景中不同任务进度的特点,来针对性地设定对应的约束方式。

在一些实施例中,当不同任务层级中的任务进度分别对应的运动数据范围所针对的数据类型不同时,根据任务进度对应的运动数据范围对运动数据进行更新处理之前,还包括:当运动数据的数据类型与任务进度对应的运动数据范围所针对的数据类型匹配失败时,根据任务进度对应的运动数据范围所针对的数据类型,对运动数据进行数据类型转换处理。

在本申请实施例中,多个任务层级中的任务进度可以分别对应针对不同数据类型的运动数据范围,例如,机器人在阶段任务层级中的任务进度对应针对位姿值的运动数据范围,如为[位姿值1,位姿值2];机器人在状态任务层级中的任务进度对应针对角速度的运动数据范围,如为[角速度1,角速度2]。运动数据范围可以由人为设定,也可以通过其他方式确定。如此,可以对运动数据进行不同维度的约束,最大程度地保证机器人控制的安全性。

在根据任意一个任务层级中的任务进度对应的运动数据范围对运动数据进行更新处理之前,首先判断运动数据的数据类型是否与该运动数据范围所针对的数据类型相同,若相同,则根据该运动数据范围对运动数据进行更新处理;若不同,则根据该运动数据范围所针对的数据类型对运动数据进行数据类型转换处理,再根据该运动数据范围对数据类型转换处理后的运动数据进行更新处理。举例来说,运动数据的数据类型为角速度,而运动数据范围所针对的数据类型为位姿值,则先将运动数据的数据类型从角速度转换为位姿值(即进行数据类型转换处理),再根据该运动数据范围,对数据类型为位姿值的运动数据进行更新处理。

在步骤202中,将根据多个任务层级中的任务进度进行更新处理后得到的运动数据,作为目标运动数据。

例如,在对多个任务层级中的任务进度遍历完成时,将根据多个任务层级中的任务进度依次进行更新处理后得到的运动数据,作为目标运动数据。

如图3B所示,本申请实施例通过多个任务层级中的任务进度分别对应的运动数据范围,对运动数据进行安全性约束,能够有效提升确定出的目标运动数据的安全性。

在一些实施例中,参见图3C,图3C是本申请实施例提供的基于人工智能的机器人控制方法的一个流程示意图,基于图3A,在步骤101之前,还可以在步骤301中,在机器人执行历史任务的过程中,采集机器人所处环境的样本图像、样本图像对应的样本任务进度、以及在样本图像对应时刻控制机器人的样本运动数据。

在本申请实施例中,可以基于人工智能原理构建模型,从而确定任务进度以及运动数据。首先,在机器人执行历史任务的过程中,采集(这里可以是周期性地采集)机器人所处环境的样本图像、样本图像对应的任务进度(为了便于区分,命名为样本任务进度)、以及在样本图像对应时刻控制机器人的样本运动数据,以对模型进行训练。这里的历史任务是在步骤101中的任务之前执行的一个或多个任务的统称,历史任务与步骤101中的任务的类型相同,例如都为倒水任务。样本任务进度可以由用户基于样本图像进行人为标注得到。样本运动数据可以从样本图像中获取,也可以与机器人建立通信连接,从而获取机器人发送的样本运动数据。

值得说明的是,这里获取到的样本运动数据可以是机器人的全部结构的运动数据,也可以是机器人的部分结构,如末端执行器(End-effector)的运动数据,其中,末端执行器是指连接在机器人的任意一个关节,且具有一定功能的工具,例如在倒水任务中,末端执行器可以连接在机器人的机械臂的手腕关节上,实现握持并转动源容器的功能,在另一些情况中,末端执行器也可以视为与机器人的机械臂的手腕关节一体。

在一些实施例中,步骤301之后,还包括:针对采集到的每种样本任务进度,执行以下处理:根据样本任务进度对应的多个样本运动数据,构建样本任务进度对应的运动数据范围,以在机器人执行任务的过程中,结合样本任务进度对应的运动数据范围,以在机器人执行任务的过程中,结合运动规划处理得到的运动数据确定目标运动数据。

对于得到的每一种样本任务进度,可以根据样本任务进度对应的最小的样本运动数据以及最大的样本运动数据,构建该样本任务进度对应的运动数据范围,即运动数据范围为[最小的样本运动数据,最大的样本运动数据]。如此,在机器人执行任务的过程中,若该样本任务进度成为了确定出的任务进度,则可以根据该样本任务进度对应的运动数据范围,对运动数据进行更新处理,即结合运动数据确定目标运动数据。通过上述方式,能够实现运动数据范围的自动构建,节省人力成本,并且构建出的运动数据范围也能够适于相应的样本任务进度。

值得说明的是,对于部分样本任务进度,其所需要的并不是运动数据范围,而是单个运动数据,例如倒水任务的阶段任务层级中的候选任务进度[控制源容器接近目标容器]以及[结束倒水以及移开源容器]。对于这类型的样本任务进度,在构建出对应的运动数据范围后,可以将运动数据范围中的任意一个运动数据(如最大的运动数据或者最小的运动数据)作为样本任务进度对应的单个运动数据,从而实现自动设定。

在一些实施例中,在机器人执行历史任务的过程中,还包括:执行以下任意一种处理:获取针对机器人的控制指令,以控制机器人;获取机器人的操控对象的运动数据,并根据操控对象的运动数据生成控制指令,以控制机器人。

为了保证采集到的样本图像和样本运动数据的准确性和有效性,本申请实施例提供了两种方式来控制机器人执行历史任务。第一种方式是主从控制方式,在该方式中,机器人对应有一个主控制器(Master Controller),例如可以是一个主机器人,在获取到某个对象(如用户)针对主控制器的控制指令时,根据该控制指令控制机器人。

第二种方式是传感方式,例如,在机器人的操控对象(如操控用户)预先穿戴好传感器的情况下,获取传感器监测到的该操控对象的运动数据,并根据该运动数据生成对应的控制指令,以控制机器人。该操控对象的运动数据也可以作为机器人在对应时刻的样本运动数据。

当然,这并不构成对本申请实施例的限定,例如还可以通过拖动示教的方式来控制机器人,即由机器人的操控对象直接拖动机器人,以执行历史任务。通过上述方式,能够提升控制机器人以执行历史任务的灵活性。

在步骤302中,根据样本图像以及样本任务进度,对样本任务进度所在任务层级对应的进度分类模型进行训练;其中,不同任务层级对应的进度分类模型不同。

这里,根据采集到的样本图像以及对应的样本任务进度,对该样本任务进度所在任务层级对应的进度分类模型进行训练。由于采集到的样本图像通常包括多个,其对应的样本任务进度也会涉及到各个任务层级,因此,能够对各任务层级对应的进度分类模型进行有效训练。其中,对进度分类模型的类型不做限定,例如可以是神经网络模型。

在本申请实施例中,可以通过反向传播的机制实现对进度分类模型的训练。对于某个样本图像以及对应的样本任务进度,首先根据该样本任务进度所在任务层级对应的进度分类模型,对该样本图像进行进度分类处理,得到机器人在该任务层级中的任务进度,为了便于区分,将这里得到的任务进度命名为待对比的任务进度。然后,根据该进度分类模型的损失函数,对样本任务进度及待对比的任务进度进行处理得到损失值(也称样本任务进度与待对比的任务进度之间的差异),其中,对损失函数的类型不做限定,例如可以是交叉熵损失函数。根据得到的损失值在该进度分类模型中进行反向传播,并在反向传播的过程中,沿梯度下降方向更新该进度分类模型的权重参数。

在步骤303中,根据样本图像以及样本运动数据,对运动规划模型进行训练。

同理,可以根据采集到的样本图像以及对应的样本运动数据,结合反向传播的机制,对运动规划模型进行训练。

值得说明的是,任务的部分样本任务进度对应的可能是单个运动数据(即用于直接控制机器人的运动数据),因此该类型的样本任务进度所对应的样本图像可以不参与对运动规划模型的训练。

在一些实施例中,每个任务层级对应的进度分类模型以及运动规划模型包括共享的特征提取网络,且运动规划模型包括最后一个任务层级对应的进度分类模型中的所有网络。

这里,提供了每个任务层级对应的进度分类模型以及运动规划模型的示例架构,即每个任务层级对应的进度分类模型以及运动规划模型包括共享的特征提取网络。本申请实施例对特征提取网络的架构不做限定,例如可以包括级联的若干个卷积层,又例如可以包括级联的若干个残差块。此外,运动规划模型包括最后一个任务层级对应的进度分类模型中的所有网络,即运动规划模型与最后一个任务层级对应的进度分类模型之间的共享网络是后者中的所有网络。基于该架构,能够加强不同进度分类模型之间、以及进度分类模型与运动规划模型之间的关联性,提升模型训练效果。

在一些实施例中,可以通过这样的方式来实现上述的根据样本图像以及样本任务进度,对样本任务进度所在任务层级对应的进度分类模型进行训练:当样本任务进度所在的任务层级是第一个任务层级时,根据样本图像以及样本任务进度,对第一个任务层级对应的进度分类模型中的特征提取网络、以及除特征提取网络之外的网络进行训练;当样本任务进度所在的任务层级是除第一个任务层级之外的任意一个任务层级时,根据样本图像以及样本任务进度,对任意一个任务层级对应的进度分类模型中除特征提取网络之外的网络进行训练。

在每个任务层级对应的进度分类模型以及运动规划模型包括共享的特征提取网络的情况下,当样本图像对应的样本任务进度所在的任务层级是第一个任务层级时,根据该样本图像以及该样本任务进度,对第一个任务层级对应的进度分类模型中的所有网络(包括特征提取网络、以及除特征提取网络之外的网络)进行训练;当样本图像对应的样本任务进度所在的任务层级是除第一个任务层级之外的任意一个任务层级(为了便于区分,命名为任务层级A)时,根据该样本图像以及该样本任务进度,对任务层级A对应的进度分类模型中除特征提取网络之外的网络进行训练。

为了提升训练效果,可以按照层级顺序依次训练各个任务层级对应的进度分类模型,例如,在第一个任务层级对应的进度分类模型训练完成之后,再训练第二个任务层级对应的进度分类模型,以此类推。通过上述方式,能够实现各任务层级对应的进度分类模型的有效训练。

在一些实施例中,可以通过这样的方式来实现上述的根据样本图像以及样本运动数据,对运动规划模型进行训练:确定运动规划模型与最后一个任务层级对应的进度分类模型之间的区别网络,并根据样本图像以及样本运动数据对区别网络进行训练。

在运动规划模型包括最后一个任务层级对应的进度分类模型中的所有网络的情况下,针对运动规划模型,可以确定运动规划模型与最后一个任务层级对应的进度分类模型之间的区别网络(如若干个全连接层),并样本图像以及对应的样本运动数据对区别网络进行训练。值得说明的是,为了提升训练效果,可以按照层级顺序依次训练各个任务层级对应的进度分类模型,再训练运动规划模型。

在一些实施例中,根据样本图像以及样本任务进度,对第一个任务层级对应的进度分类模型中的特征提取网络、以及除特征提取网络之外的网络进行训练之前,还包括:在模仿对象执行历史任务的过程中,采集模仿对象所处环境的样本图像以及对应的样本任务进度;根据模仿对象的样本图像以及对应的样本任务进度,对模仿对象对应的进度分类模型中的特征提取网络、以及除特征提取网络之外的网络进行训练;根据模仿对象对应的训练后的特征提取网络,对机器人对应的进度分类模型以及运动规划模型中共享的特征提取网络进行初始化。

在本申请实施例中,可以对特定的模仿对象进行模仿,模仿对象可以是用户,也可以是其他的机器人,如由用户手动控制的机器人,手动控制的方式可以是主从控制方式、传感方式以及拖动示教方式中的任意一种。在模仿对象执行历史任务的过程中,采集模仿对象所处环境的样本图像以及对应的样本任务进度,其中,模仿对象执行的历史任务与步骤301中机器人执行的历史任务的类型相同,例如都为倒水任务,模仿对象的样本图像对应的样本任务进度也可以通过人为标注得到。

为了提升模仿效果,可以设定模仿对象所处环境的样本图像与机器人所处环境的样本图像的拍摄视角及拍摄范围相同,例如机器人所处环境的样本图像包括机器人的末端执行器(手腕关节),则模仿对象(以用户为例)所处环境的样本图像可以包括用户的手腕。

根据采集到的模仿对象的样本图像以及对应的样本任务进度,对模仿对象对应的进度分类模型中的特征提取网络、以及除特征提取网络之外的网络进行训练。这里所指的模仿对象对应的进度分类模型,可以是专门为模仿对象设置的第一个任务层级对应的进度分类模型,其可以与为机器人设置的第一个任务层级对应的进度分类模型的结构相同,在该情况下,模仿对象的样本图像对应的样本任务进度也是第一个任务层级中的任务进度。

完成训练后,根据模仿对象对应的训练后的特征提取网络,对机器人对应的进度分类模型以及运动规划模型中共享的特征提取网络进行初始化,然后,便可根据机器人在执行历史任务的过程中所处环境的样本图像以及对应的样本任务进度,对初始化的特征提取网络进行训练。通过上述方式,能够对特定的模仿对象(如用户)进行有效模仿,实现机器人对应的特征提取网络的有效初始化,提升后续对机器人对应的进度分类模型和运动规划模型的训练效果,加快模型的收敛速度。

在图3C中,图3A示出的步骤102可以更新为步骤304,在步骤304中,根据图像遍历多个任务层级,根据遍历到的任务层级对应的训练后的进度分类模型,对图像进行进度分类处理,得到机器人在遍历到的任务层级中所处的任务进度。

这里,在机器人执行任务的过程中,可以根据实时采集到的图像遍历多个任务层级,并根据遍历到的任务层级对应的训练后的进度分类模型,对图像进行进度分类处理,得到机器人在遍历到的任务层级中所处的任务进度。

在图3C中,图3A示出的步骤103可以更新为步骤305,在步骤305中,根据训练后的运动规划模型对图像进行运动规划处理,得到运动数据。

同理,可以根据训练后的运动规划模型对实时采集到的图像进行运动规划处理,得到运动数据。

如图3C所示,本申请实施例能够对机器人对应的多个进度分类模型以及运动规划模型进行有效训练,便于提升根据训练后的模型进行机器人控制的鲁棒性。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用,为了便于理解,以机器人执行倒水任务的场景进行示例说明,但这并不构成对本申请实施例的限定,机器人也可以执行其他任务,如烹饪、清洁、护理或清扫等人类日常生活中的任务,当然还可以执行工业领域中的任务。

本申请实施例提供了如图4所示的基于人工智能的机器人控制方法的示意图,包括数据采集、基于多层模仿学习的模型训练、以及带有安全性约束的机器人实时控制3个步骤,接下来进行分别说明。

1)数据采集。

这里,采集机器人在历史的倒水任务(对应上文的历史任务)中的样本数据,为了保证采集到的样本数据的准确性,可以由用户控制机器人执行历史的倒水任务,其中,样本数据可以包括样本图像、样本图像对应的样本标签(对应上文的样本任务进度,可以由用户进行标注)以及在样本图像对应时刻控制机器人的样本运动数据。

在本申请实施例中,用户可以通过遥操作模式(主从控制模式)、穿戴式传感器模式或拖动示教模式来控制机器人,在遥操作模式中,获取针对用户针对机器人对应的主控制器的控制指令,以根据该控制指令控制机器人;在穿戴式传感器模式中,获取传感器(指用户穿戴的传感器)所监测到的用户的运动数据,并生成相应的控制指令以控制机器人;在拖动示教模式中,用户可以直接拖动机器人,实现对机器人的控制。

本申请实施例提供了如图5所示的数据采集的架构示意图,示出了机器人51、在一个高台上架起的摄像机52以及终端设备53(图5中以电脑为例),其中,机器人51与终端设备53之间、以及摄像机52与终端设备53之间均存在通信连接。以遥操作模式进行举例,终端设备53采集用户针对主控制器(图5中未示出)的控制指令(即用户手腕的运动数据),并根据该控制指令控制机器人51,以使机器人51随着用户的手腕做出相同的转动源容器54的动作,即控制源容器54向目标容器55进行倒水。在倒水过程中,摄像机52采集多个样本图像,并将多个样本图像发送至终端设备53,终端设备53可以基于样本图像确定机器人51在对应时刻的样本运动数据(当然样本运动数据也可以由摄像机52直接确定,前提是摄像机52具有相应的功能),其中,对摄像机52的类型不做限定,例如可以是RGB-D深度摄像机,另外,样本运动数据也可以通过其他方式进行确定,并不限于这里的根据图像进行确定的方式。值得说明的是,这里的样本运动数据可以包括机器人51的所有关节的运动数据,也可以包括机器人51的某个关节(如手腕关节)的运动数据,为了便于理解,后文以后者情况进行说明。

作为示例,本申请实施例还提供了如图6所示的数据采集的架构示意图,图6以遥操作模式为例,示出了摄像机、主控制器、用于数据采集的终端设备、用于机器人控制的终端设备以及机器人,其中,摄像机与用于数据采集的终端设备之间可以通过USB进行连接,用于数据采集的终端设备与用于机器人控制的终端设备之间可以通过传输控制协议(Transmission Control Protocol,TCP)建立连接,当然,这并不构成对本申请实施例的限定。值得说明的是,在图6中,用于数据采集的终端设备与用于机器人控制的终端设备是不同的终端设备,但在实际应用场景中,同一终端设备也可以同时支持数据采集功能和机器人控制功能。

2)基于多层模仿学习的模型训练。

本申请实施例提供了多层模仿学习的框架,其中,第一个层级为阶段任务层级,主要通过对应的感知模型(如神经网络模型)对人类活动的含义进行推理,即估计当前所处的阶段。对于倒水任务来说,可以划分为4个候选阶段(对应阶段任务层级中的候选任务进度),包括[控制源容器接近目标容器]、[开始倒水]、[放慢倒水的速度]和[结束倒水以及移开源容器],分别表示这4个候选阶段的阶段标签可以根据实际应用场景进行设定,如这4个候选阶段的阶段标签依次为1、2、3和4。

第二个层级为状态任务层级,主要通过对应的神经网络模型估计水倾倒的状态,即目标容器的内部空间被水填充的状态(状态即状态任务层级中的任务进度)。这里,可以预先设定多个候选状态以及与每个候选状态对应的状态标签,例如,状态标签1对应目标容器的内部空间已被水填充10%的候选状态、状态标签2对应目标容器的内部空间已被水填充20%的候选状态、……状态标签10对应目标容器的内部空间已被水填充100%的候选状态。其中,第一个层级和第二个层级即对应上文的级联的多个任务层级。

第三个层级为运动数据层级,主要通过对应的神经网络模型估计机器人的运动数据(如机器人手腕关节的运动数据),然后通过逆运动学原理确定针对机器人的控制指令,以控制机器人。这里,仅以划分出三个层级为例进行说明,在实际应用场景中,根据任务的不同可以划分出更多的层级(这里指划分出更多的任务层级),使得子任务的学习更有效,同时加强训练出的模型的通用性。

在通过数据采集得到样本数据后,即可基于样本数据训练三个层级分别对应的神经网络模型。其中,第一个层级对应的训练后的神经网络模型以及第二个层级对应的训练后的神经网络模型可以适用于多种机器人平台,第三个层级与运动数据的数据类型(数据类型可以是位姿值、角速度或力矩值等)相关,而不同机器人平台中用于控制机器人的运动数据的数据类型可能不同,因此,第三个层级对应的训练后的神经网络模型适用于特定的机器人平台,即用于进行数据采集的机器人平台。

在本申请实施例中,三个层级中每个层级对应的神经网络模型可以包括特征提取网络以及若干个全连接(Fully Connected,FC)层,其中,特征提取网络可以是三个层级分别对应的神经网络模型共享的。作为示例,本申请实施例提供了如图7所示的三个层级分别对应的神经网络模型的示意图,如图7所示,特征提取网络可以包括若干个残差块(Residual Block),每个残差块中卷积层(Convolutional Layer)的数量可以灵活调节,在每个残差块中还进行批标准化(Batch Normalization,BN)和基于线性整流函数(Rectified Linear Unit,ReLU)实现的激活处理。基于残差块,可以更深入、准确、有效地训练神经网络模型,提升基于训练后的神经网络模型进行预测的精度。在实际应用场景中,可以根据任务的复杂度适量增加或减少特征提取网络中的残差块的数量,也可以适量增加或减少全连接层的数量。

在图7中,第一个层级对应的神经网络模型(即阶段任务层级对应的进度分类模型,后文命名为F1模型)包括特征提取网络以及全连接层1至K,第二个层级对应的神经网络模型(即状态任务层级对应的进度分类模型,后文命名为F2模型)包括特征提取网络以及全连接层1'至M',第三个层级对应的神经网络模型(即运动规划模型,后文命名为F3模型)包括特征提取网络、全连接层1'至M'、以及全连接层1”至L”,其中,K、M'及L”均为大于0的整数。其中,F1模型和F2模型均为分类模型,可以通过SoftMax激活函数进行激活处理,从而输出标签;F3模型为回归模型,可以通过线性(Linear)激活函数进行激活处理,从而输出运动数据。

以DT表示通过数据采集得到的多个样本数据构成的集合,其中,每个样本数据包括一个样本图像、该样本图像对应的样本标签、以及该样本图像对应时刻的样本运动数据。样本标签可以由用户进行标注得到,包括第一个层级的样本阶段标签以及第二个层级的样本状态标签,对于样本阶段标签c,c=1表示[控制源容器接近目标容器]的样本阶段(对应上文的样本任务进度),c=2表示[开始倒水]的样本阶段,c=3表示[放慢倒水的速度]的样本阶段,c=4表示[结束倒水以及移开源容器]的样本阶段,C表示划分出的候选阶段的数量(这里为4);对于样本状态标签s,s=1表示目标容器的内部空间已被水填充10%的样本状态,s=2表示目标容器的内部空间已被水填充20%的样本状态,以此类推,S表示划分出的候选状态的数量。

对于F1模型来说,训练过程可以视为有监督下的分类训练,训练集Op包括DT中的所有样本图像、以及每个样本图像对应的样本阶段标签;对于F2模型来说,训练过程同样可以视为有监督下的分类训练,训练集Os包括DT中符合[开始倒水]的阶段和[放慢倒水的速度]的阶段的所有样本图像(即符合c=2及c=3的所有样本图像)、以及每个样本图像对应的样本状态标签;对于F3模型来说,训练过程可以视为有监督下的回归训练,训练集Oa包括DT中符合[开始倒水]的阶段和[放慢倒水的速度]的阶段的所有样本图像、以及每个样本图像对应的样本运动数据,当然,训练集Oa也可以包括DT中的所有样本图像、以及每个样本图像对应的样本运动数据。

为了便于理解,以步骤形式说明基于多层模仿学习的模型训练过程。对于F1模型,其训练过程如下:

①初始化F1模型的权重参数θ′a,这里的权重参数θ′a包括特征提取网络的权重参数,还包括全连接层1至K的权重参数;

②根据批大小(Batch Size)从训练集Op中采样,以Batch Size=20为例,则一次从训练集Op中采样20个样本图像、以及每个样本图像对应的样本阶段标签;

③计算采样出的数据对应的损失值La

④根据得到的损失值La,结合梯度下降的机制更新权重参数θ′a,即执行和θ′a=θa,其中,α表示学习率,为梯度符号。其中,步骤②至④可能会迭代执行多次,直至满足F1模型的收敛条件。

在训练F1模型的同时,还从DT中获取每个样本阶段对应的机器人手腕关节的位姿值范围[pmin(c),pmax(c)](c=0,1,...,C)。

对于F2模型,其训练过程如下:

①初始化F2模型的权重参数θ′b,这里的权重参数θ′b包括全连接层1'至M'的权重参数;

②根据批大小(Batch Size)从训练集Os中采样,以Batch Size=20为例,则一次从训练集Os中采样20个样本图像、以及每个样本图像对应的样本状态标签;

③计算采样出的数据对应的损失值Lb

④根据得到的损失值Lb,结合梯度下降的机制更新权重参数θ′b,即执行和θ′b=θb。其中,步骤②至④可能会迭代执行多次,直至满足F2模型的收敛条件。

在训练F2模型的同时,还从DT中获取每个样本状态对应的机器人手腕关节转动的角速度范围[vmin(s),vmax(s)](s=0,1,...,S)。

对于F3模型,其训练过程如下:

①初始化F3模型的权重参数θ′c,这里的权重参数θ′c包括全连接层1”至L”的权重参数;

②根据批大小(Batch Size)从训练集Oa中采样,以Batch Size=20为例,则一次从训练集Oa中采样20个样本图像、以及每个样本图像对应的样本运动数据(以机器人手腕关节转动的角速度为例);

③计算采样出的数据对应的损失值Lc

④根据得到的损失值Lc,结合梯度下降的机制更新权重参数θ′c,即执行和θ′c=θc。其中,步骤②至④可能会迭代执行多次,直至满足F3模型的收敛条件。

在线下训练好F1模型、F2模型及F3模型后,便可将其应用于线上的机器人实时控制,执行机器人智能倒水的任务。本申请实施例提供了如图8所示机器人线上实时控制的架构示意图,示出了摄像机、用于对实时的图像进行处理(借助三个层级分别对应的训练后的神经网络模型)的终端设备、用于机器人控制的终端设备以及机器人。

3)带有安全性约束的机器人实时控制。

这里,以p(t)表示t时刻机器人手腕关节的预测位姿值,以v(t)表示t时刻机器人手腕关节转动的预测角速度,通过伪代码的形式说明机器人实时控制的过程,如下所示:

初始化p(t)=0,t=0;

当倒水任务未结束时,执行{

t=t+δt;其中,δt表示对机器人的控制频率的倒数,即相邻两次向机器人发送控制指令之间的时间间隔;

c=F1(ot);其中,ot表示t时刻通过摄像机采集到的图像;

当c=1,即从多个候选阶段中确定出的阶段为[控制源容器接近目标容器]时,执行{

p(t)=p(t-1)+v0δt;其中,v0为[控制源容器接近目标容器]的阶段对应的单个运动数据,可以根据实际应用场景进行具体设定;}

当c=2,即从多个候选阶段中确定出的阶段为[开始倒水]时,执行{

s=F2(ot);v(t)'=F3(ot);

当v(t)'<vmin(s)时,执行{

v(t)=vmin(s);}

当v(t)'≥vmin(s)时,执行{

v(t)=v(t)';}

p(t)'=p(t-1)+v(t)δt;

当p(t)'<pmin(c)时,执行{

p(t)=pmin(c);}

当p(t)'≥pmin(c)时,执行{

p(t)=p(t)';}}

当c=3,即从多个候选阶段中确定出的阶段为[放慢倒水的速度]时,执行{

s=F2(ot);v(t)'=F3(ot);

当v(t)'>vmax(s)时,执行{

v(t)=vmax(s);}

当v(t)'≤vmax(s)时,执行{

v(t)=v(t)';}

p(t)'=p(t-1)+v(t)δt;

当p(t)'>pmax(c)时,执行{

p(t)=pmax(c);}

当p(t)'≤pmax(c)时,执行{

p(t)=p(t)';}}

当c=4,即从多个候选阶段中确定出的阶段为[结束倒水以及移开源容器]的阶段时,执行{

p(t)=p(t-1)+v1δt;其中,v1为[结束倒水以及移开源容器]的阶段对应的单个运动数据,可以根据实际应用场景进行具体设定;}}

上述伪代码的最终输出p(t)即为目标运动数据,可以通过逆运动学原理对p(t)进行处理,得到机器人中多个关节的转动角度,从而向机器人发送相应的控制指令(包括多个关节的转动角度),以控制机器人的电机转角。此外,在上述伪代码中,以F3模型输出的运动数据为机器人手腕关节转动的预测角速度为例,当然,F3模型输出的运动数据也可以具有其他的数据类型,这取决于F3模型的训练集Oa中的样本运动数据是哪一种数据类型。

值得说明的是,本申请实施例对机器人的控制方式不做限定,例如可以应用速度(如角速度)控制、姿态(如位姿值)控制或力矩值控制的模式。最终生成的控制指令中的控制数据可以根据具体使用的机器人平台进行适应修改。

本申请实施例至少具有以下技术效果:1)提出了多层模仿学习的框架,能够提升模型的可解释性,即可以输出确定出的任务进度(如阶段及状态)来让人类理解机器人的行为(解释输出目标运动数据的原因),如果在机器人控制的过程中发生意外故障,失败的原因可以追溯和解释,如此,可以通过明确的方向进一步改善模型,缓解传统神经网络的黑匣子效应;2)多层模仿学习的框架对数据的依赖性不强,第一层级和第二层级学习到的通用知识便于迁移,在学习执行不同的任务时无需重新采集大量数据;3)可以避免复杂的流体模型建模,不需要过多的模型假设和约束;4)应用场景广泛,即可以广泛地应用于各种目标驱动式的任务,包括但不限于倒水、烹饪、清洁、护理或清扫,以清扫任务为例,可以将待清扫的桌面划分为多个区域,每个区域对应一个状态,最终目标即是将桌面清扫干净。

下面继续说明本申请实施例提供的基于人工智能的机器人控制装置455实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的基于人工智能的机器人控制装置455中的软件模块可以包括:采集模块4551,用于在机器人执行任务的过程中,采集机器人所处环境的图像;其中,任务包括级联的多个任务层级,且每个任务层级包括多个候选任务进度;进度确定模块4552,用于根据图像遍历多个任务层级,以在遍历到的任务层级包括的多个候选任务进度中,确定机器人所处的任务进度;运动规划模块4553,用于根据图像进行运动规划处理,得到机器人的运动数据;结合模块4554,用于根据多个任务层级中的任务进度以及运动数据,确定目标运动数据;控制模块4555,用于根据目标运动数据控制机器人。

在一些实施例中,进度确定模块4552,还用于:根据遍历到的任务层级对应的进度分类模型,对图像进行进度分类处理,得到机器人在遍历到的任务层级中所处的任务进度;其中,不同任务层级对应的进度分类模型不同。

在一些实施例中,运动规划模块4553,还用于:根据运动规划模型对图像进行运动规划处理,得到机器人的运动数据。

在一些实施例中,基于人工智能的机器人控制装置455还包括:机器人样本采集模块,用于在机器人执行历史任务的过程中,采集机器人所处环境的样本图像、样本图像对应的样本任务进度、以及在样本图像对应时刻控制机器人的样本运动数据;第一训练模块,用于根据样本图像以及样本任务进度,对样本任务进度所在任务层级对应的进度分类模型进行训练;第二训练模块,用于根据样本图像以及样本运动数据,对运动规划模型进行训练。

在一些实施例中,每个任务层级对应的进度分类模型以及运动规划模型包括共享的特征提取网络,且运动规划模型包括最后一个任务层级对应的进度分类模型中的所有网络。

在一些实施例中,第一训练模块还用于:当样本任务进度所在的任务层级是第一个任务层级时,根据样本图像以及样本任务进度,对第一个任务层级对应的进度分类模型中的特征提取网络、以及除特征提取网络之外的网络进行训练;当样本任务进度所在的任务层级是除第一个任务层级之外的任意一个任务层级时,根据样本图像以及样本任务进度,对任意一个任务层级对应的进度分类模型中除特征提取网络之外的网络进行训练。

在一些实施例中,第二训练模块还用于:确定运动规划模型与最后一个任务层级对应的进度分类模型之间的区别网络,并根据样本图像以及样本运动数据对区别网络进行训练。

在一些实施例中,基于人工智能的机器人控制装置455还包括:模仿对象样本采集模块,用于在模仿对象执行历史任务的过程中,采集模仿对象所处环境的样本图像以及对应的样本任务进度;第三训练模块,用于根据模仿对象的样本图像以及对应的样本任务进度,对模仿对象对应的进度分类模型中的特征提取网络、以及除特征提取网络之外的网络进行训练;初始化模块,用于根据模仿对象对应的训练后的特征提取网络,对机器人对应的进度分类模型以及运动规划模型中共享的特征提取网络进行初始化。

在一些实施例中,基于人工智能的机器人控制装置455还包括:范围构建模块,用于针对采集到的每种样本任务进度,执行以下处理:根据样本任务进度对应的多个样本运动数据,构建样本任务进度对应的运动数据范围,以在机器人执行任务的过程中,结合运动规划处理得到的运动数据确定目标运动数据。

在一些实施例中,基于人工智能的机器人控制装置455还包括:示教控制模块,用于在机器人执行历史任务的过程中,执行以下任意一种处理:获取针对机器人的控制指令,以控制机器人;获取机器人的操控对象的运动数据,并根据操控对象的运动数据生成控制指令,以控制机器人。

在一些实施例中,结合模块4554,还用于:当每个任务层级的任务进度均对应一个运动数据范围时,针对每个任务层级中的任务进度,根据任务进度对应的运动数据范围对运动数据进行更新处理;将根据多个任务层级中的任务进度进行更新处理后得到的运动数据,作为目标运动数据。

在一些实施例中,结合模块4554,还用于:当运动数据与任务进度对应的运动数据范围匹配成功时,保持运动数据不变;当运动数据与任务进度对应的运动数据范围匹配失败时,根据任务进度对应的运动数据范围,确定新的运动数据。

在一些实施例中,结合模块4554,还用于:执行以下至少一种处理:当运动数据小于任务进度对应的运动数据范围中最小的运动数据时,确定运动数据与任务进度对应的运动数据范围匹配失败,并将最小的运动数据作为新的运动数据;当运动数据大于任务进度对应的运动数据范围中最大的运动数据时,确定运动数据与任务进度对应的运动数据范围匹配失败,并将最大的运动数据作为新的运动数据。

在一些实施例中,当不同任务层级中的任务进度分别对应的运动数据范围所针对的数据类型不同时,结合模块4554,还用于:当运动数据的数据类型与任务进度对应的运动数据范围所针对的数据类型匹配失败时,根据任务进度对应的运动数据范围所针对的数据类型,对运动数据进行数据类型转换处理。

在一些实施例中,进度确定模块4552,还用于:当上一个遍历到的任务层级中的任务进度与遍历到的任务层级包括的至少部分候选任务进度存在级联关系时,根据图像在至少部分候选任务进度中确定机器人所处的任务进度;当上一个遍历到的任务层级中的任务进度与遍历到的任务层级包括的所有候选任务进度均不存在级联关系时,停止遍历,并确定遍历到的任务层级及后续未遍历到的任务层级中的任务进度为空。

在一些实施例中,基于人工智能的机器人控制装置455还包括:停止遍历模块,用于当遍历到的任务层级中的任务进度对应单个运动数据时,停止遍历;直接控制模块,用于根据遍历到的任务层级中的任务进度对应的运动数据控制机器人。

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

本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3A、图3B及图3C示出的基于人工智能的机器人控制方法。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

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

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

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

32页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:机器人加工工件时建立工件坐标系的方法及位姿校正方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!