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

机械臂控制方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:58:30


机械臂控制方法、装置、设备及存储介质

技术领域

本申请实施例涉及机器人和自动控制技术领域,特别涉及一种机械臂控制方法、装置、设备及存储介质。

背景技术

机器人是一种模拟人类操作的自动控制机器,机械臂形式的机器人可以模仿人类手臂的动作。

在相关技术中,对瓶子在机械臂上的触觉信息进行处理,得到瓶子在机械臂上的位置,再通过差分的手段来获取瓶子的速度,将瓶子在机械臂上的位置和瓶子的速度作为PID(Proportional Integral Differential,比例微积分)控制器的输入,将机械臂关节的旋转角度作为PID控制器的输出,以完成瓶子在机械臂上保持平衡的任务。

然而上述方法中,PID控制器仅依赖机械臂的反馈变量,没有前馈控制,反应速度较慢。

发明内容

本申请实施例提供了一种机械臂控制方法、装置、机器人及存储介质。所述技术方案如下:

根据本申请实施例的一个方面,提供了一种机械臂控制方法,所述方法包括:

获取N个时刻的历史数据对,所述历史数据对包括历史输入数据和历史输出数据,所述历史输入数据用于控制所述机械臂运动,使得第一物体在所述机械臂上保持平衡状态,所述历史输出数据用于表征基于所述历史输入数据控制所述机械臂运动后,所述机械臂和所述第一物体的位姿,N为正整数;

根据所述N个时刻的历史数据对,确定所述机械臂的预测输入数据;

基于所述预测输入数据,控制所述机械臂运动,所述第一物体在所述机械臂的运动过程中保持平衡。

根据本申请实施例的一个方面,提供了一种机械臂控制装置,所述装置包括:

获取模块,用于获取N个时刻的历史数据对,所述历史数据对包括历史输入数据和历史输出数据,所述历史输入数据用于控制所述机械臂运动,使得第一物体在所述机械臂上保持平衡状态,所述历史输出数据用于表征基于所述历史输入数据控制所述机械臂运动后,所述机械臂和所述第一物体的位姿,N为正整数;

确定模块,用于根据所述N个时刻的历史数据对,确定所述机械臂的预测输入数据;

控制模块,用于基于所述预测输入数据,控制所述机械臂运动,所述第一物体在所述机械臂的运动过程中保持平衡。

根据本申请实施例的一个方面,提供了一种机械臂,所述机械臂包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述机械臂控制方法。

根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述机械臂控制方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机指令存储在计算机可读存储介质中。机器人的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该机器人执行上述机械臂控制方法。

本申请实施例提供的技术方案可以包括如下有益效果:

通过获取多个时刻的历史数据对,对机械臂的输入数据进行预测,得到预测输入数据,基于预测输入数据控制机械臂的运动,来完成第一物体在机械臂上保持平衡的任务。根据历史数据来对机械臂未来的系统状态进行预测,不仅仅是依赖于机械臂系统的反馈变量,因此控制响应更快。

附图说明

图1是本申请一个实施例提供的机械臂控制方法的流程图;

图2是本申请一个实施例提供的第一物体在机械臂上的平衡任务的示意图;

图3是本申请另一个实施例提供的第一物体在机械臂上的平衡任务的示意图;

图4是本申请一个实施例提供的机械臂控制方法的示意图;

图5是本申请一个实施例提供的动力学模型的简化示意图;

图6是本申请一个实施例提供的采用动力学模型的机械臂控制方法的框图;

图7是本申请一个实施例提供的机械臂所处的坐标系的示意图;

图8是本申请一个实施例提供的机械臂控制方法的架构图;

图9是本申请一个实施例提供的7自由度机械臂的示意图;

图10是本申请一个实施例提供的3自由度肩关节的示意图;

图11是本申请一个实施例提供的肩关节的整体示意图;

图12是本申请一个实施例提供的差分机构的正视图和侧视图;

图13是本申请一个实施例提供的差分机构的实现原理的示意图;

图14是本申请一个实施例提供的差分机构的剖视图;

图15是本申请一个实施例提供的大臂驱动模块的示意图;

图16是本申请一个实施例提供的腕关节和肘关节电机驱动模块的示意图;

图17是本申请一个实施例提供的中间轴连接剖视图;

图18是本申请一个实施例提供的机械臂控制装置的框图;

图19是本申请另一个实施例提供的机械臂控制装置的框图;

图20是本申请一个实施例提供的机器人的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法的例子。

人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、预训练模型技术、操作/交互系统、机电一体化等。其中,预训练模型又称大模型、基础模型,经过微调后可以广泛应用于人工智能各大方向下游任务。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、数字孪生、虚拟人、机器人、人工智能生成内容(AIGC,AI-Generated Content)、对话式交互、智能医疗、智能客服、游戏AI等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

机械臂广泛应用于工业生产与学术研究中,但一般的应用大多集中于应用机械臂的末端或机器手完成一些操作任务,很少有人应用机械臂的刚体连接件和外壳完成相应的任务,也很少有应用机械臂的外壳完成相应的操作任务的应用。其主要原因在于:

(1)机械臂的外观一般是曲面设计,不具备较大的平面;

(2)没有手等可抓取的机构设计,机械臂的外观与外界物体之间的接触不会形成形封闭和力封闭,对控制的难度太大;

(3)机械臂外壳基本上没有触觉感知,缺少感知的反馈使得控制很难实现。

区别于以往技术,本申请实施例给出了一种用机械臂的小臂外壳实现平衡瓶子滚动,保持瓶子在这个过程中不从机械臂的小臂滑落的动作,及其实现方法。具体方法包括:

(1)控制架构的设计;

(2)触觉传感器的使用;

(3)控制器设计。

本申请实施例提供的方法,各步骤的执行主体可以是机械臂,该机械臂是指具备数据计算、处理和存储能力的电子设备。本申请实施例提供的机械臂,可以应用于工业(如工业机器人)、服务(如上菜机器人)、娱乐(如表演机器人)、医疗(如医疗机器人)等场景中,本申请实施例对此不作具体限定。

本申请实施例提供的方案涉及人工智能的自动化控制等技术,能够实现对机械臂的控制,具体通过如下实施例进行说明。

相关技术中,使用PID作为控制器,将瓶子在机械臂上的触觉信息经过处理得到瓶子的位置,再通过差分的手段来获取速度。将位置和速度作为PID控制器的输入,将机械臂关节旋转角度作为PID控制器的输出以完成瓶子的平衡任务。

然而采用PID控制器的方法会受到如下限制:

(1)PID控制器对于外部干扰和噪声比较敏感,可能导致控制性能下降。

(2)PID控制器只能处理单变量的情况,对于多变量的系统需要使用其他的控制方法。

(3)单纯的PID控制器没有前馈,反应较慢,只有当误差出现之后PID才会发挥其控制作用。

(4)PID控制器的输入信号中的速度甚至是加速度是通过差分计算出来的,误差很大,并且会引入噪声,因此根据差分求出的输入信号进而得到的PID的控制量会十分抖动。

(5)PID是线性控制器,当被控系统具备的非线性因素较大的时候,PID控制器无法控制住被控对象。

本申请实施例采用DD MPC(Data Driven Model Predictive Control,数据驱动的模型预测控制),能够克服如上问题,得以实现瓶子在机械臂上的平衡任务。本申请实施例能够取得如下效果:

(1)Data driven MPC控制器考虑了噪声的干扰,具备更好的自适应特性和鲁棒性,且输出量不会因为输入的噪声而变得抖动。

(2)Data driven MPC控制器能够同时控制多个被控变量。

(3)Data driven MPC可以根据历史数据对未来的系统状态进行预测,不仅仅是依赖于系统的反馈变量,因此Data driven MPC的控制响应更快。

(4)Data driven MPC可以考虑一些现实中的约束,比如说机械臂的关节位置上下限、机械臂关节速度的上下限、机械臂关节加速度的上下限等,该控制器求出的控制变量是满足现实约束的。

请参考图1,其示出了本申请一个实施例提供的机械臂的控制方法的流程图。在本实施例中,以该方法应用于上文介绍的机械臂中来举例说明。该方法可以包括如下几个步骤(110~130):

步骤110,获取N个时刻的历史数据对,历史数据对包括历史输入数据和历史输出数据,历史输入数据用于控制机械臂运动,使得第一物体在机械臂上保持平衡状态,历史输出数据用于表征基于历史输入数据控制机械臂运动后,机械臂和第一物体的位姿,N为正整数。

在一些实施例中,对于当前时刻t,获取当前时刻t之前的N个时刻的历史数据对。

在一些实施例中,对于任一时刻t,获取该时刻t之前的N个时刻的历史数据对。

在一些实施例中,上述N个时刻可以是连续的N个时刻,也可以是不连续的N个时刻,本申请对此不作限定。

在一些实施例中,上述N个时刻中,任意两个连续的时刻之间的时间间隔是相同的。示例性地,N=3,其中时刻1与时刻2之间的时间间隔,与时刻2和时刻3之间的时间间隔相同。

在一些实施例中,基于输入数据,控制机械臂运动,在机械臂的运动过程中,第一物体在机械臂上保持平衡不掉落。

在一些实施例中,第一物体可以随着机械臂的运动而改变其与机械臂之间的相对位置。

对于第一物体的种类、形状等,本申请不作限定。示例性地,第一物体可以是圆柱类物体,如瓶子;也可以是球形物体,如乒乓球。

在一些实施例中,某一时刻对应的输入数据可以包括一个或多个数据,本申请对此不作限定。示例性地,机械臂可以包括肩关节、肘关节、腕关节,输入数据可以包括一个或多个关节的旋转角度。

在一些实施例中,某一时刻对应的输出数据可以包括一个或多个数据,本申请对此不作限定。示例性地,输出数据可以包括机械臂与水平面的夹角、第一物体在机械臂上所处的位置、机械臂的一个或多个关节的旋转角度中的一项或多项数据。

步骤120,根据N个时刻的历史数据对,确定机械臂的预测输入数据。

在一些实施例中,根据N个时刻的历史数据对,预测机械臂在当前时刻的输入,得到机械臂的预测输入数据。

在一些实施例中,采用DD MPC控制器,根据N个时刻的历史数据对,确定机械臂的预测输入数据。

在一些实施例中,预测输入数据可以是控制机械臂运动的参数中的一种或多种,可以基于预测输入数据,确定如何控制机械臂的运动。示例性地,预测输入数据可以是力矩,也可以是机械臂的关节的旋转角度。

步骤130,基于预测输入数据,控制机械臂运动,第一物体在机械臂的运动过程中保持平衡。

在一些实施例中,对于当前时刻t,机械臂处于第一形态,控制机械臂按照预测输入数据运动至第二形态,在该过程中,第一物体在机械臂上保持平衡。

在一些实施例中,第一物体随着机械臂的运动,也相对于机械臂产生运动。

需要说明的是,本申请实施例中所说的机械臂的运动,是指机械臂相对于地面的运动,在机械臂的运动过程中,第一物体也会相对于地面运动,然而由于机械臂相对于水平面的角度的改变,第一物体的受力情况产生变化,第一物体也可能会相对于机械臂产生运动。

示例性地,如图2所示,第一物体210位于机械臂220的小臂上,此时机械臂处于第一形态,机械臂220基于预测输入数据进行运动,达到如图3所示的第三形态,此时第一物体210与机械臂220之间的相对位置产生了改变。

在一些实施例中,第一物体在机械臂上的运动范围可以包括机械臂的全部,也可以仅包括机械臂的一部分。例如,第一物体可以在机械臂的大臂、小臂和末端上进行运动,也可以仅在机械臂的小臂上运动。

本申请实施例提供的技术方案,通过获取多个时刻的历史数据对,对机械臂的输入数据进行预测,得到预测输入数据,基于预测输入数据控制机械臂的运动,来完成第一物体在机械臂上保持平衡的任务。根据历史数据来对机械臂未来的系统状态进行预测,不仅仅是依赖于机械臂系统的反馈变量,因此控制响应更快。

在一些实施例中,机械臂可以看作是一个LTI(linear time-invariant systems,线性时不变系统)系统,LTI系统的基本性质有:线性(齐次性和可加性)、时不变性、微分性、积分性。

在一些实施例中,线性时不变系统的系统参数不随着时间的变化而改变,因此在已知单位脉冲响应的情况下,确定LTI系统的输入数据,基于LTI系统的系统状态,即可得到对应的输出数据,反过来讲,在已知LTI系统的输入数据、输出数据和LTI系统的系统状态的情况下,可以求解得到单位脉冲响应。在本申请实施例中,以控制机械臂的一个关节(或称为旋转关节)为例进行示例性说明,因此可以将机械臂看作是一个LTI系统,本申请实施例中确定机械臂的预测输入数据的过程,可以看作是求解单位脉冲响应的过程。考虑到现实中存在很多误差、噪声等会对机械臂产生影响的情况,不同的历史数据对求解得到的单位脉冲响应可能并不相同,因此在求解单位脉冲响应的过程中需要考虑现实条件的约束,也需要基于机械臂的反馈(基于预测输入数据运动后,第二形态的机械臂对应的输出数据),以及机械臂的理想平衡状态来调整单位脉冲响应的取值。其中,单位脉冲响应实际上是一个单位脉冲响应序列,为简化表述,因此本申请实施例中称之为单位脉冲响应,也可以称为单位脉冲响应序列。

另外,若需要控制机械臂的多个关节(或称为旋转关节),则需要对机械臂的实际情况进行具体分析,不能简单的将之看作是一个LTI系统。

对于本申请实施例来说,机械臂系统可以看作是如下公式(1)所示的LTI系统:

其中,α是指单位脉冲响应,

需要说明的是,本申请实施例中,将一段时刻的输入数据或输出数据,称为轨迹。

其中,

其中,x是指历史数据(可以是历史输入数据,也可以是历史输出数据),x

在一些实施例中,在历史数据的种类数量不为1的情况下,hankel矩阵的维度为(m*L+m*n)×(N-L-n+1)。其中,m为历史数据的种类数量,n是指机械臂的系统阶数。

上述公式(1)可以看作是离散LTI系统在时域的卷积和表达式,公式的含义可以理解为:如果存在任意α与hankel矩阵相乘之后的输出,一定是LTI系统的某一轨迹

上述公式通过一段LTI系统的历史数据隐式地表达了系统的模型,以通过历史数据来替代MPC中的M也就是模型。

在一些实施例中,上述步骤120可以实现为如下步骤121~123中的至少一个步骤(图中未示出)。

步骤121,根据N个时刻的历史数据对,构造机械臂的约束函数和代价函数,约束函数用于描述数据需满足的约束条件,代价函数用于表示预测数据与平衡数据之间的差异度,平衡数据包括机械臂与第一物体在理想平衡状态时的输入数据和输出数据,预测数据包括预测输入数据和预测输出数据,预测输出数据是基于历史输出数据预测得到的。

在一些实施例中,约束函数用于描述机械臂所需满足的现实条件。在一些实施例中,代价函数,也可以看作是损失函数,用于描述预测数据与平衡数据之间的差异度。

在一些实施例中,理想平衡状态是指当机械臂的输入数据为0时,机械臂不发生运动,也就是机械臂的输出数据相对于上一时刻的输出数据不会发生改变的状态。以第一物体在机械臂的小臂上运动为例,理想平衡状态可以为机械臂的小臂平行于水平面,且第一物体位于机械臂的小臂的中点,第一物体的质心位置与机械臂的中线构成的平面垂直于水平面。

在一些实施例中,步骤121可以实现为下述步骤a~c中的至少一个步骤(图中未示出)。

步骤a,确定第一矩阵和第二矩阵,第一矩阵包括N个时刻的历史数据对中的历史输入数据,第二矩阵包括N个时刻的历史数据对中的历史输出数据。

在一些实施例中,将N个时刻的历史数据对中的历史输入数据,确定为第一矩阵的元素,将N个时刻的历史数据对中的历史输出数据,确定为第二矩阵的元素。

在一些实施例中,将N个时刻中的第i-1至第N-L-n+i-1个时刻的历史输入数据,确定为第一矩阵的第i行;将N个时刻中的第i-1至第N-L-n+i-1个时刻的历史输出数据,确定为第二矩阵的第i行;其中,i为正整数。

在一些实施例中,第一矩阵即为上述公式(1)中的H

步骤b,根据第一矩阵中的前n行和第二矩阵中的前n行,构造机械臂的约束函数,n为机械臂的系统阶数,n为正整数。

在一些实施例中,由于约束函数用于描述现实条件对机械臂的约束,因此约束函数可以包括一个或多个。

在一些实施例中,约束函数包括第一约束函数、第二约束函数、第三约束函数和第四约束函数。

在一些实施例中,根据松弛变量,构造第一约束函数,松弛变量用于描述测量噪声,第一约束函数用于降低测量噪声对预测输入数据的干扰。

在一些实施例中,由于现实场景中存在测量噪声,因此引入松弛变量。松弛变量引入的目的是为让带有测量噪声的y再代入到hankel矩阵等式(上述公式(1))中依旧能够保证等式成立(理想中的hankel矩阵等式中的y是不带有噪声的)。

在一些实施例中,第一约束函数如下公式(3)所示:

其中,σ(t)是指松弛变量,

在一些实施例中,根据第一矩阵中的前n行和第二矩阵中的前n行,构造第二约束函数,第二约束函数用于描述前n个时刻的历史数据对。

在一些实施例中,第二约束函数用于表达下述含义:LTI系统的某一时刻t的-n到-1个历史输入数据

在一些实施例中,第二约束函数如下公式(4)所示:

其中,

在一些实施例中,根据第一矩阵中的前n行、第二矩阵中的前n行和平衡数据,构造第三约束函数,第三约束函数表示机械臂随着时间推移趋近于理想平衡状态。

在一些实施例中,第三约束函数是Data Driven MPC控制器中的二次规划问题对应的约束。此处的等式约束被称之为终端等式约束,终端等式约束:通常用于限制优化变量在优化过程中的最终值等于特定的目标值,例如在控制问题中,使系统达到特定的目标状态。比如在本申请实施例中,使机械臂趋近于理想平衡状态。

在一些实施例中,第三约束函数如下公式(5)所示:

其中,

由于未来t+L-n到t+L-1时刻的轨迹是未知的,只能根据LTI系统的性质加可持续性激励的历史数据来进行预测。所以在控制流程中会实时更新当前时刻的前n个点的轨迹来更新这个等式约束。终端等式约束中的“终端”可以理解为系统最终要到达的状态:平衡点。该终端等式约束可以根据LTI系统的hankel矩阵等式写成对应的形式hankel矩阵乘α的形式于是终端等式约束就被转换成了一个关于α的等式。

在一些实施例中,上述平衡点是指理想平衡状态。

在一些实施例中,各个时刻的理想平衡状态是相同的。

在一些实施例中,根据松弛变量、第一界点和单位脉冲响应,构造第四约束函数,第一界点是指松弛变量的上限值,第四约束函数用于约束预测预测输入数据的过程收敛。

在一些实施例中,第四约束函数如下公式(6)所示:

其中,σ

在一些实施例中,当λ

步骤c,根据第一矩阵中的后L行和第二矩阵中的后L行,构造机械臂的代价函数,L为机械臂的预测步长,L为正整数。

在一些实施例中,根据第一矩阵中的后L行和第二矩阵中的后L行,构造第一范数;其中,第一范数包括:N个时刻的后L个时刻的历史输入数据的二阶平方范数,以及N个时刻中的后L个时刻的历史输出数据的二阶平方范数;根据第一惩罚权重、第一界点和第一正则项,构造第一惩罚项,第一正则项是针对单位脉冲响应的正则化惩罚,第一惩罚权重是指对第一正则项的惩罚权重,第一界点是指松弛变量的上限值,松弛变量用于描述测量噪声;根据第二惩罚权重和第二正则项,构造第二惩罚项,第二正则项是针对松弛变量的正则化惩罚,第二惩罚权重是指对第二正则项的惩罚权重;根据第一范数、第一惩罚项和第二惩罚项,构造代价函数。

在一些实施例中,机械臂的前n个时刻的历史数据对,用于预测机械臂的后L个时刻的输入数据和输出数据。

在一些实施例中,代价函数如下公式(7)所示:

其中,

是指对α的正则化的惩罚,目的是为了防止在求解二次规划问题的过程中出现过拟合的现象同时能够减少hankel矩阵构成的等式的误差。而λ

是对松弛变量σ正则化的惩罚。而λ

步骤122,根据约束函数和代价函数,计算机械臂的单位脉冲响应,单位脉冲响应用于表征机械臂针对预测输入数据的反馈。

在一些实施例中,代价函数和约束函数都被转换成了关于α的函数,整个二次规划问题就能求出一个使代价函数最小并且满足等式约束的α。

步骤123,根据单位脉冲响应,确定机械臂的预测输入数据。

在一些实施例中,根据单位脉冲响应,和N个时刻的历史输入数据对,确定机械臂的预测输入数据。

在一些实施例中,根据N个时刻的历史输入数据对,确定第三矩阵,第三矩阵包括第一矩阵和第二矩阵,第一矩阵包括N个时刻的历史数据对中的历史输入数据,第二矩阵包括N个时刻的历史数据对中的历史输出数据;根据单位脉冲响应和第三矩阵,计算机械臂的预测输入数据。

在一些实施例中,第三矩阵即为上述公式(1)所示的hankel矩阵等式左侧的hankel矩阵,预测输入数据即为等式右侧的

通过上述方法,将第一物体在机械臂上的平衡任务,看作是一个离散LTI系统的求解任务,求解得到LTI系统的单位脉冲响应,基于单位脉冲响应预测机械臂的预测输入数据,方案更加简单。过程中考虑了现实条件的约束,使得预测得到的预测输入数据能够满足现实约束条件。另外,采用松弛变量来描述测量噪声对输出数据的影响,考虑了噪声的干扰,具备更好的自适应特性和鲁棒性。

示例性地,图4给出了本申请一个实施例提供的DD MPC控制器的工作流程图。1.采集一段长度为N的系统历史轨迹;2.将历史轨迹构成hankel矩阵;3.将hankel矩阵(分解hankel矩阵中的前n行和后L列,前n行用于构成终端等式约束,后L列用于构成二次规划问题中的Hessien(海森)和Gradient(梯度)矩阵)和Reference(参考)和RQ惩罚权重矩阵代入到代价函数和终端等式约束中以构成一个关于α的二次规划问题;4.利用二次规划求解器(比如说qpOASES)求解出使代价函数最小并且满足等式约束的α;5.将α带回hankel矩阵等式求出对应的输入输出轨迹并取出其中的预测输入数据u;6.将预测输入数据u发送给机械臂执行;7.取当前时刻前n个输入输出的轨迹点用于更新终端等式约束作为反馈;8.设t=t+1,重新执行4直到系统达到平衡状态。

在一些实施例中,可以根据动力学模型来推导机械臂的输入数据的类型和输出数据的类型,也可以不根据动力学模型来推导机械臂的输入数据的类型和输出数据的类型,对此本申请实施例给出了如下实施例进行示例性说明。

一、采用动力学模型

在一些实施例中,根据第一物体的运动参数和机械臂的运动参数,构建机械臂的动力学方程。

运动参数包括至少一个影响动能或者势能的参数,动力学方程包括欠驱动方程和驱动方程,欠驱动方程是指输入力矩为0的方程,驱动方程是指输入力矩不为0的方程。

在一些实施例中,运动参数包括以下至少之一:机械臂的长度、第一物体的规格、机械臂的质量、第一物体的质量、机械臂的转动惯量、第一物体的转动惯量。

在一些实施例中,第一物体的运动参数包括的种类,与机械臂的运动参数包括的种类可以相同,也可以不同。

在一些实施例中,根据欠驱动方程和第三矩阵,构建机械臂的状态空间方程,状态空间方程用于描述机械臂的运动状态;根据状态空间方程和驱动方程,计算预测输入数据。

在一些实施例中,根据第三矩阵,构建机械臂的第一状态空间方程,根据欠驱动方程对第一状态空间方程进行处理,得到状态空间方程。

在一些实施例中,根据状态空间方程和驱动方程,计算输入力矩,输入力矩用于控制机械臂的关节转动;将输入力矩确定为预测输入数据。

在一些实施例中,根据瓶子的运动参数和机械臂的运动参数,构建机械臂的初始动力学方程;对初始动力学方程进行部分反馈线性化处理,得到动力学方程,部分反馈线性化处理是指对初始动力学方程进行近似线性化处理。

在一些实施例中,部分反馈线性化处理是指将初始动力学方程中的参数初始化为满足线性化要求的参数。示例性地,在θ趋近于0时,将sinθ初始化为θ。

示例性地,针对机械臂的小臂外壳实现平衡瓶子的场景,对基于该场景抽象成的机械臂进行动力学建模的过程如下所述。

首先,机械臂在世界坐标系下。定义机械臂的小臂的延长线方向为y轴的正方向,与y轴垂直且平行于地面的方向为x轴方向,与机械臂同向站立时,右手的方向为x轴的正方向;与重力相反的方向,竖直向上,垂直于地面的方向为z轴,建立空间直角坐标系。为实现机器人平衡瓶子的控制,可以在YOZ平面上建立的一个二维模型来实现。

在YOZ平面内二维模型简化图如图5所示。其中上面的圆圈510代表瓶子的横截面,下面的长矩形520代表机械臂的小臂的侧面,长矩形520上的圆圈530代表转动小臂的转轴(例如机械臂的肘关节)。我们将第一问题看成一个匀质刚体,以瓶子的质心来评估瓶子的位置。瓶子与小臂之间近似于垂直放置。

将二维模型中使用的物理量(运动参数)及其正方向定义如下:瓶子质心到机械臂转轴的轴心沿着机械臂侧面水平方向的距离为s。使机械臂转轴转动的力矩为τ,逆时针为该力矩的正方向,对应小臂相对于世界坐标系转动的角度为θ。小臂侧面的长度为l

示例性地,定义二维模型中使用的物理量如下:

小臂长度:l

瓶子半径:r

小臂质量:m

瓶子质量:m

小臂的转动惯量:I

瓶子的转动惯量:I

瓶子的运动线速度的平方可以表示为:

瓶子转动的角速度可以表示为:

根据欧拉拉格朗日方程,我们需要对系统中所有刚体的动能和势能分别进行求解,系统中所有刚体的动能加和为:

系统中所有刚体的势能加和为:

动能对状态s(状态s也就是瓶子在小臂上的位置s)和θ在其扩展坐标系(Generalized coordinates)的偏导:

势能对状态s和θ在其扩展坐标系的偏导:

根据欧拉拉格朗日方程对上述结果进行计算可得,在平面YOZ上的系统,简化动力学模型可以表示为如下方程。其中,第1行表示的是在s自由度(s自由度也是指瓶子在小臂上的位置s)上的动力学方程,该方向上由于欠驱动,方程的右侧的实际输入力矩为0。第2行表示的是在小臂转角θ这个自由度上的动力学方程,在该自由度上的驱动为电机的力矩τ,所以第2行方程的右侧为τ。

一般会将动力学模型中的欠驱动部分(也就是等式右侧为0的式子)引入到状态空间方程中,让描述系统的状态空间方程考虑到系统的动力学。

根据动力学模型的输入和输出,机械臂的输入数据u被设置为旋转关节的旋转角加速度

在本申请实施例中,直接将

部分反馈线性化处理后,将动力学欠驱动方程引入状态空间方程。状态空间方程如下所示:

将动力学驱动方程作为力矩τ与部分反馈线性化引入的新的控制量v(在此是

在上述内容中,根据动力学模型来确定机械臂的输入数据和输出数据,此时机械臂的输入数据为旋转关节的旋转角加速度

需要说明的是,上述公式中的g为重力加速度。

在一些实施例中,采用动力学模型的情况下,根据单位脉冲响应和第三矩阵,计算机械臂的关节的旋转角速度;将旋转角速度确定为输入数据。

二、不采用动力学模型

当不根据动力学模型选择系统输入输出时,输入数据被设置成旋转关节的旋转角度θ,而输出被设置成第一物体在臂上的位置与误差关于时间的积分∫s dt以及第一物体在臂上的位置s和第一物体在小臂上的速度

θ代表机械臂的小臂绕着y轴转动的pitch方向的角度,

在一些实施例中,由于受到硬件条件的限制,无法准确采集和给机械臂发送加速度信号

在一些实施例中,对于时刻t,获取时刻t之前的多个连续历史时刻的历史数据对;对多个连续历史时刻的历史数据对进行均匀采样,得到N个时刻的历史数据对。

示例性地,采集过去长度为N=1000的历史数据对(包括历史输入数据和历史输出数据),由于当N太大构成的hankel矩阵过大,严重增大计算机的计算负担和时间,所以采用间距采样,每隔4个点取输入输出数据中的一个点,将长度为1000的系统历史数据压缩到200个然后输入到DDMPC控制器中。同时设prediction horizon的长度为50。再调节DDMPC中涉及到的所有惩罚权重。

最后将第一物体放置到机械臂小臂上,对第一物体施加干扰,DDMPC会输出旋转关节的旋转角度θ,控制机械臂以完成第一物体在机械臂上的平衡任务。

对于如何获取N个时刻的历史输出数据,本申请也给出了示例性实施例。

在一些实施例中,可以采用视觉感知的方法来对第一物体进行姿态识别。然而该方法会带来1~2厘米的线性误差,以及5~10度的角度误差,同时他的运算时间较长,在100ms左右,即10Hz。

在一些实施例中,可以采用工程化的视觉解决方案,即应用轻量级的数据图像处理方式,确定第一物体质心在x方向的位置。具体的实现方式有很多种,本申请对此不作限定。比如,第一物体为瓶子,根据瓶子和环境周边物体颜色的不同进行聚类分析,进而求出瓶子的几何中心,再将瓶子的几何中心与质心位置进行模型标定得到。再比如,第一物体为瓶子,对瓶子进行特征识别,确定瓶子在图片中的位置,进而确定瓶子的几何中心,再将瓶子的几何中心与质心位置进行模型标定得到。这种方法由于是轻量级的计算,其运算速度较快,基本上一个运算只需要10ms左右的时间,即将近100Hz,其线性误差也比较可控,一般在1cm左右,角度的误差在5度左右。但这种方式的缺点是在摄像头的深度方向上,即瓶子的世界坐标系的y方向上误差较大。上述内容中涉及的坐标系的内容(如x方向和y方向),请参考上述动力学模型实施例中介绍的坐标系,本申请在此不再赘述。

而这一误差正好是触觉传感器的一个优势。触觉传感器虽然在x方向上的姿态不能得到一个非常精确的结果,只能得到第一物体与机械臂之间的接触点相对于机械臂的绝对位置,但是它对于第一物体和机械臂的接触点在机械臂的y方向上的位置测量是非常准确的。因此可以利用视觉和触觉两种方式的优点,来实现第一物体的状态估计。

在一些实施例中,可以采用视觉触觉融合的方案。示例性地,触觉传感器给出瓶子y方向位置,pitch姿态。同时通过视觉的轻量级的数据图像处理,与先验照片数据比较,确定x方向瓶子质心位置。这一方案的预算时间大概在10毫秒左右,即100Hz,线性误差在1cm左右,角度误差在5度左右。与工程化的视觉解决方案相仿,但克服了工程化的视觉解决方案在第一物体的y方向上质心测量不准的缺点。

示例性地,如图7所示,工程化的视觉解决方案可以在x方向上得到第一物体710的一个较为准确的姿态,视觉触觉融合的方案可以在y方向上得到第一物体710的一个较为准确的姿态,二者相结合,即可得到第一物体710的准确的质心位置。如表1所示,其示出了上述三种方案所需的周期和对应的误差。

表1:三种确定第一物体的姿态的方案

以采用上述视觉触觉融合的方案为例,获取N个是历史时刻的历史数据对可以包括如下步骤1~7中的至少一个步骤。

步骤1,对于N个时刻中的第j个时刻,获取第j个时刻的历史输入数据,j为小于或等于N的正整数。

步骤2,确定机械臂基于第j个时刻的历史输入数据运动后的位姿。

步骤3,基于触觉传感器,获取第一物体在机械臂上的第一位置。

步骤4,获取第j个时刻的第一物体的图像。

步骤5,根据第一物体的图像,获取第一物体在机械臂上的第二位置。

步骤6,根据第一位置和第二位置,确定第一物体的质心位置。

步骤7,根据机械臂基于第j个时刻的历史输入数据运动后的位姿,和第一物体的质心位置,确定机械臂在第j个时刻的历史输出数据。

在一些实施例中,第一位置和第二位置以坐标(x,y)的形式表示,第一位置对应的坐标为(x1,y1),第二位置对应的坐标为(x2,y2)。

基于上述内容中对视觉触觉融合的方案的介绍,第一位置在y方向上较为准确,第二位置在x方向上较为准确,因此第一物体的质心位置可以确定为(x2,y1)。

对于上述步骤5中根据第一物体的图像,获取第一物体在机械臂上的第二位置的方法,本申请不作限定。例如,可以采用特征识别的方法,确定第一物体在第一物体的图像中的位置,进而确定第一物体的几何中心,根据第一物体的几何中心,确定第二位置。

在一些实施例中,历史输出数据中包括的数据种类,可以根据是否采用动力学模型来确定。例如,若采用动力学模型,则历史输出数据中包括第一物体的质心位置、第一物体的速度、机械臂的旋转关节的角度、机械臂的旋转关节的角速度、机械臂的旋转关节的角加速度;若不采用动力学模型,则历史输出数据中包括第一物体的质心位置、第一物体的速度以及第一物体的质心位置与误差关于时间的积分。

通过上述方法,可以获取较为准确的第一物体在机械臂上的位置,为第一物体在机械臂上的平衡任务提供有力的支持。

实现上述功能的整体控制架构如图8所示。我们的最终目的是通过对机械臂关节电机指令的输入,以实现对第一物体在机械臂上的平衡任务的控制。机械臂的关节电机上均安装有关节编码器,可以反馈出个关节电机转动的角度,角速度以及电流信息。这些信息可用于机械臂的状态估计。同时,在机械臂的手指、手掌、以及某些连杆上还装有触觉传感器。根据触觉感知信息,以及状态估计得到的瓶子的位置姿态,和第一物体和小臂之间的二维或三维的系统动力学模型。该系统动力学模型可以是二维的,也可以是三维的。根据系统动力学模型可以确定机械臂的输入和输出,因此我们可以根据通过动力学模型确定的机械臂的输入和输出来采集Data-Driven MPC控制器需要采集的数据。接着根据采集得到的历史数据对设计Data-Driven MPC控制器。将第一物体放置在机械臂的小臂上,对其施加干扰,Data-Driven MPC会输出相应的预测输入数据以完成第一物体在机械臂上的平衡任务。这些预测输入数据根据机械臂的不同可以是关节空间的也可以是笛卡尔空间中的变量。如果预测输入数据是笛卡尔空间的变量,就需要通过逆运动学解算出每个关节的关节角度。在这里,随着时间的变化,控制器输出的是机械臂的末端姿态,或连杆质心姿态的一个序列,那么对应着一系列逆运动学解算,得到的就是机械臂各关节角速度、关节角速度的序列。将这个关节角度、关节角速度的序列发给机械臂,可以实现机械臂末端姿态或某一连杆质心位置和姿态的控制。如果预测输入数据是关节空间中的变量例如关节角度、角速度或者角加速度,就可以直接将预测输入数据发送给机器人以完成第一物体在机械臂上的平衡任务。

本申请实施例中,采用瓶子作为第一物体进行了真机实验。真机实验中,瓶子可以在机械臂的小臂上前后滚动,并随着机械臂的小臂与地面之间的绝对姿态的变化,而改变其运动状态。也可以通过对机械臂关节电机的控制,实现瓶子在小臂上的滚动。整个过程中瓶子保持平衡,在机械臂的小臂上运动时不向地面坠落。真机实验诠释了本申请实施例所述动作序列,并证明了本申请实施例所述的控制架构和控制器的有效性和稳定性。

本申请实施例还给出了机械臂硬件的相关信息,上述实施例中涉及的机械臂的控制方法均可以在该机械臂上实现。

如图9所示,为仿人型7自由度机械臂,其中肘部、腕部控制电机后置于肩部第三关节中空处,其中肘部及腕部绳索驱动由肩3处的电机带动皮带传动给绳轮,绳轮通过皮带传动绳对肘部腕部进行相应运动控制。3自由度肩关节结构如图10所示。机器人机构能够独立运动的关节数目,称为机器人机构的运动自由度,简称自由度(Degree of Freedom),由DOF简写表示。目前工业机器人采用的控制方法是把机械臂上每一个关节都当作一个单独的伺服机构,即每个轴对应一个伺服器,每个伺服器通过总线控制,由控制器统一控制并协调工作。

应用于七自由度机械臂的低惯量差分式肩关节结构,在肩部采用了一个差分绳驱动机构,不仅减轻了机构的重量将电机模块后置,在某些情况下还可以实现力矩的叠加。肩关节的第三个自由度采用的是一对大小线轮,采用绳驱动的方式进行传动,进一步提升传动精度,减轻重量。最后,将腕关节和肘关节的驱动模块后置于肩关节大臂模块,将整个机械臂的重量降到了极致。以上结构均易于模块化,简化制造流程。

如图11所示是肩关节的整体视图,可以看到肩关节主要分为三个的模块,差分机构模块1、交叉滚子轴承旋转模块2、大臂末端驱动模块3这三个部分,其中交叉滚子旋转模块2是将差分机构1和大臂末端驱动模块3连接起来的中间模块,下面我们详细介绍这三个模块。

图12是差分机构的正视图和侧视图,主体零件都在图一标注出来,复杂形状的零部件以及连接方式我们会在下面一一介绍,由图12我们可知整个差分机构由旋转编码器1.1、差分机构固定座1.2、大线轮1.3、电机防护盖1.4、差分机构内圈线轮轴1.5、电机1.6、差分机构外圈线轮轴1.7、电机座子1.8、交叉滚子轴承外圈端盖1.9、交叉滚子内圈固定座子1.10、差分机构小线轮1.11、连接块1.12、连接轴1.13、旋转编码器1.14、差分机构大线轮1.15、轴承端盖1.16、小线轮1.17、钢丝绳1.18、轴承端盖1.19、大臂连接座1.20。下面我们介绍整个差分机构的具体构成和运作原理,整个差分机构的运行原理类似三个锥齿轮的差分机构,如图13所示是差分机构的运行原理,可以看到图13a是整个差分机构的主体,包括大线轮1.3、差分机构内圈线轮轴1.5、差分机构外圈线轮轴1.7、差分机构小线轮1.11、差分机构大线轮1.15以及缠绕在上面的钢丝线,差分机构小线轮1.11和差分机构大线轮1.15是用螺钉固定在大臂连接座1.20上的。图13b是差分机构内圈线轮轴1.5与差分机构小线轮1.11的配合,实现差分机构的一个齿轮副的配合,驱动是通过用螺钉连接在差分机构内圈线轮轴1.5上的大线轮1.3以及其配套的小线轮1.17进行驱动,图3c是差分机构外圈线轮轴1.7与差分机构大线轮1.15组成的另一个齿轮副。可以看到差分机构内圈线轮轴1.5和差分机构外圈线轮轴1.7是采用套轴的形式进行连接的,具体结构我们会在后面介绍,图13a中的传递轴1.21是连接在连接块1.12上负责传递整个差分机构的旋转给旋转编码器1.1。

如图14所示是差分机构的剖视图,因为差分机构小线轮1.11和差分机构大线轮1.15是通过螺钉连接在大臂连接座1.20上的,所以在图14中我们就不讲述它们的连接方式了,我们可以看到在图14中旋转编码器1.1外圈是通过螺母固定在连接压片1.22上的,旋转编码器1.1的内圈是通过螺母和传递轴1.21的轴肩夹紧,从而使得内圈和传递轴1.21一起旋转,压紧片1.23是和连接压片1.22一起将深沟球轴承1.25(因为图14的所有轴承均为深沟球轴承,我们只用一个标号代表)外圈压紧。差分机构内圈线轮轴1.5与差分机构外圈线轮轴1.7的连接与上述连接类似,在差分机构外圈线轮轴1.7的上下端分别有两组深沟球轴承1.25,轴承内圈通过差分机构内圈线轮轴1.5的轴肩和卡簧1.24固定,外圈通过差分机构外圈线轮轴1.7的轴肩和轴承压片1.29固定,差分机构内圈线轮轴1.5和交叉滚子内圈固定座子1.10以及连接块1.12的连接与上述所差不大,都是通过将轴承的内外圈压紧,我们就不多赘述。连接轴1.13与连接座1.12是通过键1.28以及螺钉固定限位的。图14中,交叉滚子轴承1.27是通过交叉滚子内圈固定座子1.10和交叉滚子轴承内圈盖板1.26夹紧固定的,外圈是通过差分机构固定座1.2和交叉滚子轴承外圈端盖1.9夹紧固定的。大臂连接座1.20和连接轴1.13的连接同样是使用深沟球轴承,并且通过压紧深沟球轴承的内外圈进行固定。

如图15所示是大臂驱动模块的视图,由于这一部分的结构较为复杂,我们将其分为两个部分介绍,一个是肩关节大小线轮驱动模块,一个是腕关节和肘关节电机驱动模块,肩关节大小线轮驱动模块主要包括电机保护壳2.1、电机2.2、电机固定座2.3、小线轮2.4、大线轮2.5、交叉滚子轴承外圈固定上盖板2.6、交叉滚子轴承内圈固定下盖板2.7、交叉滚子轴承外圈固定下盖板2.8。其实这一模块的结构与上面差分机构的结构相差不大,大线轮2.5与小线轮2.4相切布置,小线轮2.4与电机2.2相连构成驱动源,电机2.2固定在大臂连接座1.20上。旋转模块同样是由交叉滚子轴承2.22构成,大线轮2.5的下端和交叉滚子轴承内圈固定下盖板2.7将交叉滚子轴承内圈夹紧,交叉滚子轴承外圈固定上盖板2.6和交叉滚子轴承外圈固定下盖板2.8将交叉滚子轴承的外圈夹紧,同时交叉滚子轴承外圈固定上盖板2.6与大臂连接座1.20用螺丝固定,整个旋转机构就完成了,下面我们来看腕关节和肘关节电机驱动模块。

如图16所示,是腕关节和肘关节电机驱动模块,这个部分是一个对称结构,所以我们只需要介绍半个部分即可,这个模块主要包括驱动电机固定座2.9、驱动电机2.10、卡簧2.11、轴承端盖2.12、带轮轴固定座2.13、深沟球轴承2.14、小线轮1 2.15、滑轮轴承2.16、螺柱2.17、螺钉2.18、同步带轮轴1 2.19、小线轮2 2.20、同步带2.21、交叉滚子轴承2.22、中间轴1 2.23、带轮盖板2.24、对锁螺母2.25、同步带轮轴2 2.26、挡边轴承2.27。我们可以看到电机固定座2.9和带轮轴固定座2.13都是连接在图5中的交叉滚子轴承内圈固定下盖板2.7上,跟随大线轮2.5一起旋转,驱动电机2.10是通过螺钉固定在电机固定座2.9上的,驱动电机2.10上连着小带轮1 2.15和小带轮2 2.20,然后通过同步带2.21将运动传递给下面的线轮轴,同步带2.21是通过滑轮轴承2.16和螺柱2.17组合张紧的。同步带轮轴1 2.19和同步带轮轴2 2.26与同步带轮轴固定座2.13的连接方式一样,通过两个挡边轴承2.27以及同步带轮轴固定座2.13的挡边将两个同步带轮轴固定住,同步带轮是与轴做成一体的,为了防止同步带2.21拖出,我们在每个同步带轮两侧加了带轮盖板2.24,通过对锁螺母2.25和螺钉2.18固定在带轮两侧。中间轴的连接方式是一个套轴的结构,我们在下面单独讲解。

由图17我们可以看到中间轴1 2.23和中间轴2 2.30的连接是采用两个深沟球轴承2.28,这样两根轴的相对旋转就可以实现,轴承的内圈靠卡簧2.31和中间轴2 2.30的轴肩锁死,外圈靠中间轴1 2.23的轴环和带轮盖板2.24锁死。两根轴的外侧都连接这深沟球轴承2.29,轴承内圈靠轴肩和卡簧锁死,外圈靠带轮轴固定座2.13和轴承端盖2.12锁死。整个结构比较紧凑,传动精度高。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图18,其示出了本申请一个实施例提供的机械臂控制装置的框图。该装置具有实现上述机械臂控制的方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的机械臂,也可以设置在机械臂上。该装置1800可以包括:获取模块1810、确定模块1820和控制模块1830。

获取模块1810,用于获取N个时刻的历史数据对,所述历史数据对包括历史输入数据和历史输出数据,所述历史输入数据用于控制所述机械臂运动,使得第一物体在所述机械臂上保持平衡状态,所述历史输出数据用于表征基于所述历史输入数据控制所述机械臂运动后,所述机械臂和所述第一物体的位姿,N为正整数。

确定模块1820,用于根据所述N个时刻的历史数据对,确定所述机械臂的预测输入数据。

控制模块1830,用于基于所述预测输入数据,控制所述机械臂运动,所述第一物体在所述机械臂的运动过程中保持平衡。

在一些实施例中,如图19所示,所述确定模块1820包括构造单元1821、计算单元1822和确定单元1823。

构造单元1821,用于根据所述N个时刻的历史数据对,构造所述机械臂的约束函数和代价函数,所述约束函数用于描述数据需满足的约束条件,所述代价函数用于表示预测数据与平衡数据之间的差异度,所述平衡数据包括所述机械臂与所述第一物体在理想平衡状态时的输入数据和输出数据,所述预测数据包括所述预测输入数据和预测输出数据,所述预测输出数据是基于所述历史输出数据预测得到的。

计算单元1822,用于根据所述约束函数和所述代价函数,计算所述机械臂的单位脉冲响应,所述单位脉冲响应用于表征所述机械臂针对所述预测输入数据的反馈。

确定单元1823,用于根据所述单位脉冲响应,确定所述机械臂的预测输入数据。

在一些实施例中,所述构造单元1821,用于确定第一矩阵和第二矩阵,所述第一矩阵包括所述N个时刻的历史数据对中的历史输入数据,所述第二矩阵包括所述N个时刻的历史数据对中的历史输出数据;根据所述第一矩阵中的前n行和所述第二矩阵中的前n行,构造所述机械臂的约束函数,n为所述机械臂的系统阶数,n为正整数;根据所述第一矩阵中的后L行和所述第二矩阵中的后L行,构造所述机械臂的代价函数,L为所述机械臂的预测步长,L为正整数;其中,所述机械臂的前n个时刻的历史数据对,用于预测所述机械臂的后L个时刻的输入数据和输出数据。

在一些实施例中,所述构造单元1821,用于将所述N个时刻中的第i-1至第N-L-n+i-1个时刻的历史输入数据,确定为所述第一矩阵的第i行;将所述N个时刻中的第i-1至第N-L-n+i-1个时刻的历史输出数据,确定为所述第二矩阵的第i行;其中,i为正整数。

在一些实施例中,所述约束函数包括第一约束函数、第二约束函数、第三约束函数和第四约束函数;所述构造单元1821,用于根据松弛变量,构造所述第一约束函数,所述松弛变量用于描述测量噪声,所述第一约束函数用于降低测量噪声对所述预测输入数据的干扰;根据所述第一矩阵中的前n行和所述第二矩阵中的前n行,构造所述第二约束函数,所述第二约束函数用于描述前n个时刻的历史数据对;根据所述第一矩阵中的前n行、所述第二矩阵中的前n行和平衡数据,构造所述第三约束函数,所述第三约束函数表示所述机械臂随着时间推移趋近于所述理想平衡状态;根据所述松弛变量、第一界点和所述单位脉冲响应,构造所述第四约束函数,所述第一界点是指所述松弛变量的上限值,所述第四约束函数用于约束预测所述预测输入数据的过程收敛。

在一些实施例中,所述构造单元1821,用于根据所述第一矩阵中的后L行和所述第二矩阵中的后L行,构造第一范数;其中,所述第一范数包括:所述N个时刻的后L个时刻的历史输入数据的二阶平方范数,以及所述N个时刻中的后L个时刻的历史输出数据的二阶平方范数;根据第一惩罚权重、第一界点和第一正则项,构造第一惩罚项,所述第一正则项是针对所述单位脉冲响应的正则化惩罚,所述第一惩罚权重是指对所述第一正则项的惩罚权重,所述第一界点是指松弛变量的上限值,所述松弛变量用于描述测量噪声;根据第二惩罚权重和第二正则项,构造第二惩罚项,所述第二正则项是针对所述松弛变量的正则化惩罚,所述第二惩罚权重是指对所述第二正则项的惩罚权重;根据所述第一范数、所述第一惩罚项和所述第二惩罚项,构造所述代价函数。

在一些实施例中,所述确定单元1823,用于根据所述N个时刻的历史输入数据对,确定第三矩阵,所述第三矩阵包括第一矩阵和第二矩阵,所述第一矩阵包括所述N个时刻的历史数据对中的历史输入数据,所述第二矩阵包括所述N个时刻的历史数据对中的历史输出数据;根据所述单位脉冲响应和所述第三矩阵,计算所述机械臂的预测输入数据。

在一些实施例中,所述确定单元1823,用于根据所述第一物体的运动参数和所述机械臂的运动参数,构建所述机械臂的动力学方程,所述运动参数包括至少一个影响动能或者势能的参数,所述动力学方程包括欠驱动方程和驱动方程,所述欠驱动方程是指输入力矩为0的方程,所述驱动方程是指输入力矩不为0的方程;根据所述欠驱动方程和所述第三矩阵,构建所述机械臂的状态空间方程,所述状态空间方程用于描述所述机械臂的运动状态;根据所述状态空间方程和所述驱动方程,计算所述预测输入数据;其中,所述运动参数包括以下至少之一:所述机械臂的长度、所述第一物体的规格、所述机械臂的质量、所述第一物体的质量、所述机械臂的转动惯量、所述第一物体的转动惯量。

在一些实施例中,所述确定单元1823,用于根据所述状态空间方程和所述驱动方程,计算输入力矩,所述输入力矩用于控制所述机械臂的关节转动;将所述输入力矩确定为所述预测输入数据。

在一些实施例中,所述确定单元1823,用于根据所述第一物体的运动参数和所述机械臂的运动参数,构建所述机械臂的初始动力学方程;对所述初始动力学方程进行部分反馈线性化处理,得到所述动力学方程,所述部分反馈线性化处理是指对所述初始动力学方程进行近似线性化处理。

在一些实施例中,所述确定单元1823,用于根据所述单位脉冲响应和所述第三矩阵,计算所述机械臂的关节的旋转角速度;将所述旋转角速度确定为所述输入数据。

在一些实施例中,如图19所示,所述装置1800还包括得到模块1840。

得到模块1840,用于对于时刻t,获取所述时刻t之前的多个连续历史时刻的历史数据对;对所述多个连续历史时刻的历史数据对进行均匀采样,得到所述N个时刻的历史数据对。

在一些实施例中,所述获取模块1810,用于对于N个时刻中的第j个时刻,获取所述第j个时刻的历史输入数据,j为小于或等于N的正整数;确定所述机械臂基于所述第j个时刻的历史输入数据运动后的位姿;基于触觉传感器,获取所述第一物体在所述机械臂上的第一位置;获取所述第j个时刻的所述第一物体的图像;根据所述第一物体的图像,获取所述第一物体在所述机械臂上的第二位置;根据所述第一位置和所述第二位置,确定所述第一物体的质心位置;根据所述机械臂基于所述第j个时刻的历史输入数据运动后的位姿,和所述第一物体的质心位置,确定所述机械臂在所述第j个时刻的历史输出数据。

本申请实施例提供的技术方案,通过获取多个时刻的历史数据对,对机械臂的输入数据进行预测,得到预测输入数据,基于预测输入数据控制机械臂的运动,来完成第一物体在机械臂上保持平衡的任务。根据历史数据来对机械臂未来的系统状态进行预测,不仅仅是依赖于机械臂系统的反馈变量,因此控制响应更快。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图20示出了本申请一个示例性实施例提供的机械臂的结构框图。该机械臂2000可以是上文介绍机械臂。

通常,机械臂2000包括有:处理器2001和存储器2002。

处理器2001可以包括一个或多个处理核心,比如4核心处理器、20核心处理器等。处理器2001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器2002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器2002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2002中的非暂态的计算机可读存储介质存储有计算机程序,该计算机程序由处理器2001加载并执行以实现上述各方法实施例提供的机械臂控制方法。

在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被处理器执行时以实现上述机械臂控制方法。

可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。

在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。机器人的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该机器人执行上述机械臂控制方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 机械臂的手眼标定方法、标定板、装置、设备和存储介质
  • 一种机械臂的控制方法、装置、服务机器人及存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种家居设备控制方法、装置、控制设备及可读存储介质
  • 控制方法及控制装置、计算机设备、存储介质及烹饪设备
  • 机械臂装配控制方法及装置、机械臂控制设备和存储介质
  • 机械臂控制方法、装置、计算机设备、存储介质和机械臂
技术分类

06120116504199