首页 / 专利库 / 工业自动化和数控机床 / 示教器 / 一种结合迭代学习的时间最优轨迹规划控制器及方法

一种结合迭代学习的时间最优轨迹规划控制器及方法

阅读:241发布:2022-02-12

专利汇可以提供一种结合迭代学习的时间最优轨迹规划控制器及方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种结合 迭代 学习的时间最优轨迹规划 控制器 及方法,所述控制器包括路径离散模 块 、轨迹规划模块、迭代学习模块和存储模块;路径离散模块,用于将任务路径离散化;轨迹规划模块,获得时间最优轨迹;迭代学习模块用于补偿动 力 学模型误差;存储模块存储每次迭代的迭代数据。所述方法包括以下步骤:S1、将连续任务路径输入到路径离散模块将路径离散化;S2、将路径离散化后的结果输入到轨迹规划模块,获得时间最优轨迹;S3、运行轨迹获得反馈力矩;S4、将计算结果和存储模块中的迭代数据输入到迭代学习模块中,输出迭代学习补偿项;S5、更新关节空间动力学模型;S6、重复步骤S2-步骤S5直到动力学模型不再更新。,下面是一种结合迭代学习的时间最优轨迹规划控制器及方法专利的具体信息内容。

1.一种结合迭代学习的时间最优轨迹规划控制器,其特征在于,所述轨迹规划控制器包括路径离散模、轨迹规划模块、迭代学习模块和存储模块;
路径离散模块用于将机器人的任务路径离散化;
轨迹规划模块用于获得时间最优轨迹,具体是根据约束条件,建立每个离散点的关节空间动学模型,并将关节空间动力学模型转化到路径空间动力学模型并构建非线性优化模型,通过非线性求解工具求得机器人的时间最优轨迹,从而求得最优路径-时间函数,将控制周期代入最优位移-时间函数得到每个控制周期的最优位移,从而得到每个控制周期各关节的度,并根据电机每圈脉冲数以及减速器传动比将每个控制周期各关节角度并转化为每个控制周期的脉冲指令,同时计算相应的力矩作为前馈力矩,并将脉冲指令和前馈力矩用于机器人的控制;
迭代学习模块用于补偿动力学模型误差,提高动力学模型精度,从而获得最优解和提高跟踪性能,具体是利用轨迹运行后获得的反馈力矩和前馈力矩以及存储模块中的上一次迭代的力矩偏差和迭代学习补偿项输入迭代学习控制器来获得新的迭代学习补偿项,用于补偿关节空间动力学模型的建模误差,从而更新轨迹规划模块中的动力学模型,用于轨迹规划模块进行轨迹规划;
存储模块用于存储每次迭代的迭代数据,以用于下一次迭代;迭代数据包括前馈力矩、反馈力矩、力矩偏差和迭代学习补偿项。
2.一种利用权利要求1所述轨迹规划控制器的结合迭代学习的时间最优轨迹规划方法,其特征在于,包括以下步骤:
S1.通过离线规划或利用示教器获得机器人的连续任务路径,并将连续任务路径输入到路径离散模块将路径离散化;
S2.将路径离散化后的结果输入到轨迹规划模块,获得时间最优轨迹,并转化为相应的脉冲指令,再将脉冲指令和前馈力矩下发到机器人控制柜;
S3.运行轨迹获得反馈力矩;
S4.计算前馈力矩和反馈力矩的力矩偏差,将计算结果和存储模块中的迭代数据输入到迭代学习模块中更新迭代学习补偿项,输出新的迭代学习补偿项;
S5.利用新的迭代学习补偿项更新迹规划模块中的关节空间动力学模型,用于轨迹规划模块中重新规划和运行;
S6.重复步骤S2-步骤S5直到关节空间动力学模型不再更新。
3.根据权利要求2所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,步骤S1的路径离散模块将连续的任务路径离散为N个离散点,并假设相邻两点之间为匀加速运动。
4.根据权利要求2所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,步骤S2具体包括以下步骤:
S21.建立每个离散点的机器人关节空间动力学模型,并根据动力学约束条件建立关节空间的力矩约束不等式方程组以及根据运动学约束条件建立速度约束不等式方程组和加速度约束不等式方程组;
S22.将步骤S21得到的关节空间的约束不等式方程组转化为路径空间的约束不等式方程组,并根据优化目标,构建非线性优化模型;
S23.根据非线性优化模型通过非线性求解工具求解机器人的时间最优轨迹;非线性求解工具包括python的CasADi、matlab的yamlip、sedumi和fmincon;
S24.根据时间最优轨迹得到最优位移-时间函数,将控制周期代入最优位移时间函数得到每个控制周期的最优位移,从而得到每个控制周期各关节角度,并根据电机每圈脉冲数以及减速器传动比将每个控制周期各关节角度转化为每个控制周期的脉冲指令,同时计算相应的力矩作为前馈力矩,用于后续控制。
5.根据权利要求4所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,步骤S21具体包括如下:
建立如下的关节空间动力学模型的基础形式:
其中,τ表示n×1阶关节力矩矢量,即[τ1τ2…τn]T,其中n表示机器人关节数,τn表示第n个关节的力矩矢量,上标T表示转置,M(q)表示n×n阶正定质量矩阵;q表示n×1阶关节角度矢量,即[q1q2…qn],qn表示第n个关节的矢量; 表示n×1阶关节加速度矢量,即表示第n个关节的加速度矢量;B(q)表示n×n(n-1)/2阶的哥氏力系数矩
阵, 表示n(n-1)/2×1阶的关节速度积矢量,即
表示n×1阶关节速度矢量,即 表示第n个关节的速度矢量;C(q)是n×n阶
离心力系数矩阵,而 是n×1阶矢量,即 Fv表示n×1阶粘滞摩擦力
量;Fc表示n×1阶库伦摩擦力向量;G(q)表示重力向量;δl(q)是n×1阶迭代学习补偿向量,即[δ1,l(q1)δ2,l(q2)…δn,l(qn)]T,l为迭代次数,在没有迭代即l=0时δl(q)设置为n×1阶0向量;sign表示符号函数;
根据式(1)建立离散点k的关节空间动力学模型:
其中,k表示离散点,N表示总的离散点数,τ(k)表示n×1阶关节力矩矢量,即[τ1(k)τ2(k)…τn(k)]T,其中n表示机器人关节数,τn(k)表示第n个关节的力矩矢量,上标T表示转置,M(q(k))表示n×n阶正定质量矩阵;q(k)表示n×1阶关节角度矢量,即[q1(k)q2(k)…qn(k)],qn(k)表示第n个关节的矢量; 表示n×1阶关节加速度矢量,即
表示第n个关节的加速度矢量;B(q(k))表示n×n(n-1)/2
阶的哥氏力系数矩阵, 表示n(n-1)/2×1阶的关节速度积矢量,即
表示n×1阶关节
速度矢量,即 表示第n个关节的速度矢量;C(q(k))是n×n
阶离心力系数矩阵,而 是n×1阶矢量,即 Fv表示粘
滞摩擦力向量;Fc表示库伦摩擦力向量;G(q(k))表示重力向量;δl(q(k))是n×1阶迭代学习补偿向量,即[δ1,l(q1(k))δ2,l(q(k))…δn,l(q(k))]T,l为迭代次数,在没有迭代即l=0时δl(q(k))设置为n×1阶0向量;sign表示符号函数;
设定动力学约束条件为:
τmin(k)≤τ(k)≤τmax(k)
其中,τmin(k)表示离散点k的最小约束力矩,τmax(k)表示离散点k的最大约束力矩;
设定运动学约束条件为:
其中, 表示离散点k的最小约束速度, 表示离散点k的最大约束速度,
表示离散点k的最小约束加速度, 表示离散点k的最大约束加速度;
从而得到关节空间的约束不等式方程组为:
6.根据权利要求4所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,步骤S22具体包括如下:
根据链式规则,将离散点k的速度 和加速度 分解为如下的路径空间中路径速
度和路径加速度的方程:

上式中,为了与关节空间区分开来,将路径空间的关节角度q(s(k))表示,其与q(k)是等价的,也表示在路径位移为s(k)时,路径函数q(s)的值;关节速度用 表示,其与是等价的;将关节加速度用 表示,其与 是等价的; 是路径速
度,是路径位移s(k)对时间t的一阶导数; 是路径加速度,是路径位移s(k)对时间t的二阶导数;q′(s(k))是关节角度q(s(k))对路径位移的一阶导,即路径位移为s(k)时,路径函数q(s)对路径位移的一阶微分函数q′(s)的值; 是关节角度q(s(k))对路径
位移的二阶导,即路径位移为s(k)时,路径函数q(s)对路径位移的二阶微分函数q″(s)的值;
将式(4)、(5)代入式(2)、(3)得到路径空间的约束不等式方程组
其中
上述式(7)为在第k个离散点的路径空间动力学模型,是将式(4)和(5)代入关节空间动力学模型(2)得到的;将式(7)简化为如下的路径空间动力学模型:

其中
m(s(k))=M(q(s(k)))q′(s(k))
c(s(k))=M(q(s(k)))q′′(s(k))+B(q(s(k)),q′(s(k)))q′(s(k))
+C(q(s(k)))(q′(s(k)))2
f(s(k))=Fv(q(s(k)))q′(s(k))
g(s(k))=G(q(s(k)))
δl(s(k))=δl(q(k))
上式中M(q(s(k)))、B(q(s(k)),q′(s(k)))、C(q(s(k)))、Fv(q(s(k)))、Fc(q(s(k)))、G(q(s(k)))是用来简化动力学方程的中间变量
所述优化目标为
min T
其中T表示运行任务路径所需要的时间,由于
为了计算方便,将优化目标用下式表示
所述非线性模型为
其中s.t.表示的是约束条件符号,s(1)=0表示路径起点离散点1的路径位移为0,s(N)=1表示路径终点离散点N的路径位移为1, 表示路径起点离散点1的路径速度为
0, 表示路径终点离散点N的路径速度为0,δl(s(k)表示路径位移第l次迭代的迭代学习补偿项。
7.根据权利要求4所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,步骤S24所述的最优路径-时间函数通过以下计算得到:
根据 的转换关系,
得到到达每个离散点K所需要的运行时间:
其中k表示路径中的第k个离散点,t(k)表示从轨迹起点开始到第k个离散点所需要的时间;
通过分段最小二乘法拟合每个离散点的时间t(k)以及每个离散点处的路径位移s(k)的关系,得到连续的最优位移-时间函数s(t);
所述前馈力矩的计算方法为:
将最优位移-时间函数s(t)对时间t求一阶导得到最优速度-时间函数 将最优位
移-时间函数s(t)对时间t求二阶导得到最优加速度-时间函数 将s(t),
代入式(6)得最优轨迹的力矩-时间函数τ(s(t)),将控制周期T控制周期代入τ(s(t))得到每个控制周期的力矩,即为前馈力矩。
8.根据权利要求2所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,步骤S4所述包括以下步骤:
S41.将获得的测量力矩离散化;
S42.计算前馈力矩和反馈力矩的力矩偏差,将获得的力矩偏差和存储模块中上一次迭代的力矩偏差以及迭代学习补偿项输入到迭代学习模块的迭代学习控制器中,更新迭代学习补偿项;
S43.将更新后的迭代学习补偿项平滑滤波处理后再添加到轨迹规划模块中,用于更新轨迹规划模块中的式(2)的关节空间动力学模型,重新轨迹进行规划。
9.根据权利要求8所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,迭代学习控制器中的迭代学习算法如下:
δi,l(s(k))=γi,lΔτi,l(s(k))+δi,l-1(s(k))    (6)
其中i=1…n表示机器人的关节编号,Δτi,l(s(k))=τi,反馈(s(k))-τi,前馈(s(k))表示力矩偏差,其中τi,反馈(s(k))表示第k个离散点第i个机器人关节的反馈力矩,τi,前馈(s(k))是第k个离散点第i个机器人关节的前馈力矩;l表示迭代次数,γi,l是第i个机器人关节第l次迭代的收敛因子,用于控制迭代学习的收敛,δi,l-1(s(k))是第k个离散点第i个机器人关节第l-1次迭代的迭代学习补偿项,用于保存此前的学习行为;
其中,为了使迭代收敛,收敛因子γi,l的计算公式如下:
其中γi,l表示第i个机器人关节第l次迭代的收敛因子,Δτi,l-1(s(k))表示第k个离散点第i个机器人关节第l-1次迭代的力矩偏差,Δτi,l(s(k))表示第k个离散点第i个机器人关节第l次迭代的力矩偏差, 表示欧几里得范数的平方, 表示从括号中的数从1
到N进行求和;
设l′是有效迭代次数,表示当力矩偏差成功减小时的迭代次数,根据γi,l的计算结果,迭代规则分为以下两种情况:
Case1.如果γi,l≥0,令l′=l,返回式(6)进行迭代;收敛因子γi,l等于0,作为迭代终止的标志即关节空间动力学模型不再更新;
Case2.如果γi,l<0,令γi,l=0.5γi,l′,γi,l′=0.5γi,l′,Δτi,l(s(k))=Δτi,l′(s(k)),δi,l-1(s(k))=δi,l′-1(s(k)),返回式(6)进行迭代,其中,γi,l′表示第l′次迭代,第i关节的收敛因子,Δτi,l′(s(k))表示第l′次迭代,第i关节,第k个离散点的力矩偏差,δi,l′-1(s(k))表示第l′-1次迭代,第i关节,第k个离散点的迭代学习补偿项。
10.根据权利要求8所述的一种结合迭代学习的时间最优轨迹规划方法,其特征在于,步骤S43所述的平滑滤波处理如下:
其中a表示滤波步长。

说明书全文

一种结合迭代学习的时间最优轨迹规划控制器及方法

技术领域

[0001] 本发明涉及机器人控制器及方法,尤其是一种结合迭代学习的时间最优轨迹规划控制器及方法。

背景技术

[0002] 在利用机器人进行搬运,装配,机加工等场合时,为了提高机器人的工作效率,应该使机器人始终处于允许的最大速度下工作,这种为了减少机器人执行任务的时间,使机器人在临界条件下运动的轨迹规划方法称为时间最优轨迹规划方法。
[0003] 在使用动学模型进行最优轨迹规划时,由于动力学模型并不是完全准确的,这导致了不可避免的模型工厂不匹配问题,造成通过动力学约束求得的时间最优轨迹不是最优解。

发明内容

[0004] 本发明的目的是提供一种结合迭代学习的时间最优轨迹规划控制器及方法,通过迭代学习方法消除模型工厂不匹配(model-plant mismatch)问题,最终使时间最优轨迹接近最优解,同时通过准确的预测力矩进行力矩前馈控制,提高机器人高速状态下的跟踪精度,用于生成机器人沿着给定路径运行时操作时间最短的控制指令以及提高跟踪时的跟踪性能。
[0005] 本发明采用以下的技术方案。
[0006] 一种结合迭代学习的时间最优轨迹规划控制器,所述轨迹规划控制器包括路径离散模、轨迹规划模块、迭代学习模块和存储模块;
[0007] 路径离散模块,用于将机器人的任务路径离散化;
[0008] 轨迹规划模块用于获得时间最优轨迹,具体是根据约束条件,建立每个离散点的关节空间动力学模型,并将关节空间动力学模型转化到路径空间动力学模型并构建非线性优化模型,通过非线性求解工具求得机器人的时间最优轨迹,从而求得最优路径-时间函数,将控制周期代入最优位移-时间函数得到每个控制周期的最优位移,从而得到每个控制周期各关节的度,并根据电机每圈脉冲数以及减速器传动比将每个控制周期各关节角度并转化为每个控制周期的脉冲指令,同时计算相应的力矩作为前馈力矩,并将脉冲指令和前馈力矩用于机器人的控制;
[0009] 迭代学习模块用于补偿动力学模型误差,提高动力学模型精度,从而获得最优解和提高跟踪性能,具体是利用轨迹运行后获得的反馈力矩和前馈力矩以及存储模块中的上一次迭代的力矩偏差和迭代学习补偿项输入迭代学习控制器来获得新的迭代学习补偿项,用于补偿关节空间动力学模型的建模误差,从而更新轨迹规划模块中的动力学模型,用于轨迹规划模块进行轨迹规划;
[0010] 存储模块用于存储每次迭代的迭代数据,以用于下一次迭代;迭代数据包括前馈力矩、反馈力矩、力矩偏差和迭代学习补偿项。
[0011] 一种结合迭代学习的时间最优轨迹规划方法,包括以下步骤:
[0012] S1.通过离线规划或利用示教器获得机器人的连续任务路径,并将连续任务路径输入到路径离散模块将路径离散化;
[0013] S2.将路径离散化后的结果输入到轨迹规划模块,获得时间最优轨迹,并转化为相应的脉冲指令,再将脉冲指令和前馈力矩下发到机器人控制柜;
[0014] S3.运行轨迹获得反馈力矩;
[0015] S4.计算前馈力矩和反馈力矩的力矩偏差,将计算结果和存储模块中的迭代数据输入到迭代学习模块中更新迭代学习补偿项,输出新的迭代学习补偿项;
[0016] S5.利用新的迭代学习补偿项更新迹规划模块中的关节空间动力学模型,用于轨迹规划模块中重新规划和运行;
[0017] S6.重复步骤S2-步骤S5直到关节空间动力学模型不再更新。
[0018] 进一步的,步骤S1的路径离散模块将连续的任务路径离散为N个离散点,并假设相邻两点之间为匀加速运动。
[0019] 进一步的,步骤S2具体包括以下步骤:
[0020] S21.建立每个离散点的机器人关节空间动力学模型,并根据动力学约束条件建立关节空间的力矩约束不等式方程组以及根据运动学约束条件建立速度约束不等式方程组和加速度约束不等式方程组;
[0021] S22.将步骤S21得到的关节空间的约束不等式方程组转化为路径空间的约束不等式方程组,并根据优化目标,构建非线性优化模型;
[0022] S23.根据非线性优化模型通过非线性求解工具求解机器人的时间最优轨迹;非线性求解工具包括python的CasADi、matlab的yamlip、sedumi和fmincon等;
[0023] S24.根据时间最优轨迹得到最优位移-时间函数,将控制周期代入最优位移时间函数得到每个控制周期的最优位移,从而得到每个控制周期各关节角度,并根据电机每圈脉冲数以及减速器传动比将每个控制周期各关节角度转化为每个控制周期的脉冲指令,同时计算相应的力矩作为前馈力矩,用于后续控制。
[0024] 进一步的,步骤S21具体包括如下:
[0025] 建立如下的关节空间动力学模型的基础形式:
[0026]
[0027] 其中,τ表示n×1阶关节力矩矢量,即[τ1τ2…τn]T,其中n表示机器人关节数,τn表示第n个关节的力矩矢量,上标T表示转置,M(q)表示n×n阶正定质量矩阵;q表示n×1阶关节角度矢量,即[q1q2…qn],qn表示第n个关节的矢量; 表示n×1阶关节加速度矢量,即表示第n个关节的加速度矢量;B(q)表示n×n(n-1)/2阶的哥氏力系数矩阵, 表示n(n-1)/2×1阶的关节速度积矢量,即
表示n×1阶关节速度矢量,即 表示第n个关节的速度矢量;C(q)是n×n阶
离心力系数矩阵,而 是n×1阶矢量,即 Fv表示n×1阶粘滞摩擦力
量;Fc表示n×1阶库伦摩擦力向量;G(q)表示重力向量;δl(q)是n×1阶迭代学习补偿向量,即[δ1,l(q1)δ2,l(q2)…δn,l(qn)]T,l为迭代次数,在没有迭代即l=0时δl(q)设置为n×1阶0向量;sign表示符号函数;
[0028] 根据式(1)建立离散点k的关节空间动力学模型:
[0029]
[0030] 其中,k表示离散点,N表示总的离散点数,τ(k)表示n×1阶关节力矩矢量,即[τ1(k)τ2(k)…τn(k)]T,其中n表示机器人关节数,τn(k)表示第n个关节的力矩矢量,上标T表示转置,M(q(k))表示n×n阶正定质量矩阵;q(k)表示n×1阶关节角度矢量,即[q1(k)q2(k)…qn(k)],qn(k)表示第n个关节的矢量; 表示n×1阶关节加速度矢量,即表示第n个关节的加速度矢量;B(q(k))表示n×n(n-1)/2
阶的哥氏力系数矩阵, 表示n(n-1)/2×1阶的关节速度积矢量,即
表示n×1阶关节
速度矢量,即 表示第n个关节的速度矢量;C(q(k))是n×n
阶离心力系数矩阵,而 是n×1阶矢量,即 Fv表示粘
滞摩擦力向量;Fc表示库伦摩擦力向量;G(q(k))表示重力向量;δl(q(k))是n×1阶迭代学习补偿向量,即[δ1,l(q1(k))δ2,l(q(k))…δn,l(q(k))]T,l为迭代次数,在没有迭代即l=0时δl(q(k))设置为n×1阶0向量;sign表示符号函数;
[0031] 设定动力学约束条件为:
[0032] τmin(k)≤τ(k)≤τmax(k)
[0033] 其中,τmin(k)表示离散点k的最小约束力矩,τmax(k)表示离散点k的最大约束力矩;
[0034] 设定运动学约束条件为:
[0035]
[0036]
[0037] 其中, 表示离散点k的最小约束速度, 表示离散点k的最大约束速度, 表示离散点k的最小约束加速度, 表示离散点k的最大约束加速
度;
[0038] 从而得到关节空间的约束不等式方程组为:
[0039]
[0040] 进一步的,步骤S22具体包括如下:
[0041] 根据链式规则,将离散点k的速度 和加速度 分解为如下的路径空间中路径速度和路径加速度的方程:
[0042]
[0043]
[0044] 上式中,为了与关节空间区分开来,将路径空间的关节角度q(s(k))表示,其与q(k)是等价的,也表示在路径位移为s(k)时,路径函数q(s)的值;关节速度用 表示,其与 是等价的;将关节加速度用 表示,其与 是等价的; 是路径速度,是路径位移s(k)对时间t的一阶导数; 是路径加速度,是路径位移s(k)对时间t的二阶导数;q′(s(k))是关节角度q(s(k))对路径位移的一阶导,即路径位移为s(k)时,路径函数q(s)对路径位移的一阶微分函数q′(s)的值; 是关节角度q(s(k))对路
径位移的二阶导,即路径位移为s(k)时,路径函数q(s)对路径位移的二阶微分函数q″(s)的值;
[0045] 将式(4)、(5)代入式(2)、(3)得到路径空间的约束不等式方程组
[0046]
[0047] 其中
[0048]
[0049] 上述式(7)为关节空间动力学模型,是将式(4)和(5)代入关节空间动力学模型(2)得到的;
[0050] 将式(7)简化为如下的路径空间动力学模型为:
[0051]
[0052] 其中
[0053] m(s(k))=M(q(s(k)))q′(s(k))
[0054] c(s(k))=M(q(s(k)))q″(s(k))+B(q(s(k)),q′(s(k)))q′(s(k))+C(q(s(k)))(q′(s(k)))2
[0055] f(s(k))=Fv(q(s(k)))q′(s(k))
[0056] g(s(k))=G(q(s(k)))
[0057] δl(s(k))=δl(q(k))
[0058] 上式中M(q(s(k)))、B(q(s(k)),q′(s(k)))、C(q(s(k)))、Fv(q(s(k)))、Fc(q(s(k)))、G(q(s(k)))是用来简化路径空间动力学模型的中间变量
[0059] 所述优化目标为
[0060] min T
[0061] 其中T表示运行任务路径所需要的时间,由于为了计算方便,将优化目标用下式表示
[0062]
[0063] 所述非线性模型为
[0064]
[0065]
[0066] 其中s.t.表示的是约束条件符号,s(1)=0表示路径起点离散点1的路径位移为0,s(N)=1表示路径终点离散点N的路径位移为1, 表示路径起点离散点1的路径速度为0, 表示路径终点离散点N的路径速度为0,δl(s(k)表示路径位移第l次迭代的迭代学习补偿项;
[0067] 进一步的,所述最优路径-时间函数通过以下计算得到:
[0068] 根据 的转换关系,得到到达每个离散点K所需要的运行时间:
[0069]
[0070] 其中k表示路径中的第k个离散点,t(k)表示从轨迹起点开始到第k个离散点所需要的时间;
[0071] 通过分段最小二乘法拟合每个离散点的时间t(k)以及每个离散点处的路径位移s(k)的关系,得到连续的最优位移-时间函数s(t);
[0072] 所述前馈力矩的计算方法为:
[0073] 将最优位移-时间函数s(t)对时间t求一阶导得到最优速度-时间函数 将最优位移-时间函数s(t)对时间t求二阶导得到最优加速度-时间函数 将s(t),代入式(6)得最优轨迹的力矩-时间函数τ(s(t)),将控制周期T控制周期代入τ(s(t))得到每个控制周期的力矩,即为前馈力矩。
[0074] 进一步的,步骤S4所述包括以下步骤:
[0075] S41.将获得的测量力矩离散化;
[0076] S42.计算前馈力矩和反馈力矩的力矩偏差,将获得的力矩偏差和存储模块中上一次迭代的力矩偏差以及迭代学习补偿项输入到迭代学习模块的迭代学习控制器中,更新迭代学习补偿项;
[0077] S43.将更新后的迭代学习补偿项平滑滤波处理后再添加到轨迹规划模块中,用于更新轨迹规划模块中的关节空间动力学模型,重新轨迹进行规划。
[0078] 进一步的,迭代学习控制器中的迭代学习算法如下:
[0079] δi,l(s(k))=γi,lΔτi,l(s(k))+δi,l-1(s(k))  (6)
[0080] 其中i=1…n表示机器人的关节编号,Δτi,l(s(k))=τi,反馈(s(k))-τi,前馈(s(k))表示力矩偏差,其中τi,反馈(s(k))表示第k个离散点第i个机器人关节的反馈力矩,τi,前馈(s(k))是第k个离散点第i个机器人关节的前馈力矩;l表示迭代次数,γi,l是第i个机器人关节第l次迭代的收敛因子,用于控制迭代学习的收敛,δi,l-1(s(k))是第k个离散点第i个机器人关节第l-1次迭代的迭代学习补偿项,用于保存此前的学习行为;
[0081] 其中,为了使迭代收敛,收敛因子γi,l的计算公式如下:
[0082]
[0083] 其中γi,l表示第i个机器人关节第l次迭代的收敛因子,Δτi,l-1(s(k))表示第k个离散点第i个机器人关节第l-1次迭代的力矩偏差,Δτi,l(s(k))表示第k个离散点第i个机器人关节第l次迭代的力矩偏差, 表示欧几里得范数的平方, 表示从括号中的数从1到N进行求和;
[0084] 设l′是有效迭代次数,表示当力矩偏差成功减小时的迭代次数,根据γi,l的计算结果,迭代规则分为以下两种情况:
[0085] Case1.如果γi,l≥0,令l′=l,返回式(6)进行迭代;收敛因子γi,l等于0,作为迭代终止的标志即关节空间动力学模型不再更新;;
[0086] Case2.如果γi,l<0,令γi,l=0.5γi,l′,γi,l′=0.5γi,l′,Δτi,l(s(k))=Δτi,l′(s(k)),δi,l-1(s(k))=δi,l′-1(s(k)),返回式(6)进行迭代,其中,γi,l′表示第l′次迭代,第i关节的收敛因子,Δτi,l′(s(k))表示第l′次迭代,第i关节,第k个离散点的力矩偏差,δi,l′-1(s(k))表示第l′-1次迭代,第i关节,第k个离散点的迭代学习补偿项。
[0087] 进一步的,步骤S43所述的平滑滤波处理如下:
[0088]
[0089] 其中a表示滤波步长。
[0090] 与现有技术相比,本发明的有益效果是:通过迭代学习算法,改善了动力学模型的误差,使用于时间最优规划的动力学模型更准确,从而获得更接近最优解的时间最优规划轨迹,并且准确的动力学模型作为前馈力矩进行控制时,可以提高机器人的跟踪性能。附图说明
[0091] 图1为实施例中一种结合迭代学习的时间最优轨迹规划方法的流程图
[0092] 图2为本实施例的机器人装置系统以及机器人的任务路径图;
[0093] 图3为本实施例的机器人装置系统的设备简图;
[0094] 其中:201-关节机器人、202-机器人控制柜、203-示教器、301-外部存储设备、302-只读存储器、303-示教板、304-伺服驱动器、305-电机。

具体实施方式

[0095] 下面通过具体实例对本发明的目的作进一步详细地描述,实例不能在此一一赘述,但本发明的实施方式并不因此限定于以下实例。
[0096] 本实施例的一种结合迭代学习的时间最优轨迹规划控制器,所述轨迹规划控制器包括路径离散模块、轨迹规划模块、迭代学习模块和存储模块;
[0097] 路径离散模块,用于将机器人的任务路径离散化;
[0098] 轨迹规划模块用于获得时间最优轨迹,具体是根据约束条件,建立每个离散点的关节空间动力学模型,并将关节空间动力学模型转化到路径空间动力学模型并构建非线性优化模型,通过非线性求解工具求解机器人的时间最优轨迹,从而求得最优速度时间函数,对最优速度时间函数积分得到最优位移时间函数,将控制周期代入最优位移-时间函数得到每个控制周期的最优位移,从而得到每个控制周期各关节的角度,并根据电机参数以及减速器传动比将每个控制周期各关节角度并转化为每个控制周期的脉冲指令,同时计算相应的力矩作为前馈力矩,并将脉冲指令和前馈力矩用于机器人的控制;
[0099] 迭代学习模块用于补偿动力学模型误差,提高动力学模型精度,从而获得最优解和提高跟踪性能,具体是利用轨迹运行后获得的反馈力矩和前馈力矩以及存储模块中的上一次迭代的力矩偏差和迭代学习补偿项输入迭代学习控制器来获得新的迭代学习补偿项,用于补偿关节空间动力学模型的建模误差,从而更新轨迹规划模块中的动力学模型,用于轨迹规划模块进行轨迹规划;
[0100] 存储模块用于存储每次迭代的迭代数据,以用于下一次迭代;迭代数据包括前馈力矩、反馈力矩、力矩偏差和迭代学习补偿项。
[0101] 如图1所示的一种结合迭代学习的时间最优轨迹规划方法,包括以下步骤:
[0102] S1.获取任务路径
[0103] 如图2所示,通过机器人控制柜202上的示教器203获得的任务路径。在任务路径已知的情况下,用路径位移s(k)∈[0,1],0表示路径起点时,路径位移在路径总位移中的占比为0,1表示路径终点时,路径位移在路径总位移中的占比为1,从起始点s(0)开始,沿着末端路径到第k个点的路径位移在路径总位移中的占比,从而可以表示离散点k在空间中的位置
[0104] S2.路径离散化
[0105] 设定离散点数N,从而将步骤S1获得的任务路径离散化为N个点。如图2所示的任务路径,s(1)=0表示在第一个离散点即轨迹起点的路径位移为0,s(N)=1表示在第N个离散点即轨迹终点的路径位移为1, 表示在路径中间的离散点k的路径位移为即从路径起点开始,沿着末端路径到第k个点的路径位移 在路径总位移 中的
占比。
[0106] 步骤S1和步骤S2在路径离散模块中实现,如图3所示,路径离散模块是本发明的轨迹规划控制器的一个模块,写入在机器人示教器203的外部存储设备301的中,通过示教器203中的示教板303规划机器人的初始任务路径,本实施例的外部存储设备301为硬盘
[0107] S3.建立离散点的关节空间的约束不等式方程组
[0108] 关节空间动力学模型的基础形式如下:
[0109]
[0110] 其中,τ表示n×1阶关节力矩矢量,即[τ1τ2…τn]T,其中n表示机器人关节数,τn表示第n个关节的力矩矢量,上标T表示转置,M(q)表示n×n阶正定质量矩阵;q表示n×1阶关节角度矢量,即[q1q2…qn],qn表示第n个关节的矢量;表示n×1阶关节加速度矢量,即表示第n个关节的加速度矢量;B(q)表示n×n(n-1)/2阶的哥氏力系数矩阵, 表示n(n-1)/2×1阶的关节速度积矢量,即
表示n×1阶关节速度矢量,即 表示第n个关节的速度矢量;C(q)是n×n阶
离心力系数矩阵,而 是n×1阶矢量,即 Fv表示n×1阶粘滞摩擦力向
量;Fc表示n×1阶库伦摩擦力向量;G(q)表示重力向量;δl(q)是n×1阶迭代学习补偿向量,即[δ1,l(q1)δ2,l(q2)…δn,l(qn)]T,l为迭代次数,在没有迭代即l=0时δl(q)设置为n×1阶0向量;sign表示符号函数;
[0111] 对于离散点k,根据式(1)建立该点处的关节空间动力学模型:
[0112]
[0113] 其中,式(2)是式(1)关节空间动力学模型的离散形式,表示在第k个离散点的关节空间动力学模型,其中,k表示离散点,N表示总的离散点数,τ(k)表示n×1阶关节力矩矢量,即[τ1(k)τ2(k)…τn(k)]T,其中n表示机器人关节数,τn(k)表示第n个关节的力矩矢量,上标T表示转置,M(q(k))表示n×n阶正定质量矩阵;q(k)表示n×1阶关节角度矢量,即[q1(k)q2(k)…qn(k)],qn(k)表示第n个关节的矢量; 表示n×1阶关节加速度矢量,即表示第n个关节的加速度矢量;B(q(k))表示n×n(n-1)/2
阶的哥氏力系数矩阵, 表示n(n-1)/2×1阶的关节速度积矢量,即
表示n×1阶关节
速度矢量,即 表示第n个关节的速度矢量;C(q(k))是n×n
阶离心力系数矩阵,而 是n×1阶矢量,即 Fv表示粘滞
摩擦力向量;Fc表示库伦摩擦力向量;G(q(k))表示重力向量;δl(q(k))是n×1阶迭代学习补偿向量,即[δ1,l(q1(k))δ2,l(q(k))…δn,l(q(k))]T,l为迭代次数,在没有迭代即l=0时δl(q(k))设置为n×1阶0向量;sign表示符号函数;
[0114] 设定动力学约束条件为:
[0115] Tmin(k)≤τ(k)≤τmax(k)
[0116] 其中,τmin(k)表示离散点k的最小约束力矩,τmax(k)表示离散点k的最大约束力矩;
[0117] 设定运动学约束条件为
[0118]
[0119]
[0120] 其中, 表示离散点k的最小约束速度, 表示离散点k的最大约束速度, 表示离散点k的最小约束加速度, 表示离散点k的最大约束加速
度;
[0121] 从而得到关节空间的约束不等式方程组
[0122]
[0123] S4.转换为路径空间非线性优化模型
[0124] 对于式(3),根据链式规则,可将离散点k的速度 加速度 分解为路径空间中路径速度和路径加速度的方程
[0125]
[0126]
[0127] 上式中,为了与关节空间区分开来,将路径空间的关节角度q(s(k))表示,其与q(k)是等价的,也表示在路径位移为s(k)时,路径函数q(s)的值;关节速度用 表示,其与 是等价的;将关节加速度用 表示,其与 是等价的; 是路径速度,是路径位移s(k)对时间t的一阶导数; 是路径加速度,是路径位移s(k)对时间t的二阶导数;q′(s(k))是关节角度q(s(k))对路径位移的一阶导,即路径位移为s(k)时,路径函数q(s)对路径位移的一阶微分函数q′(s)的值; 是关节角度q(S(k))对
路径位移的二阶导,即路径位移为s(k)时,路径函数q(s)对路径位移的二阶微分函数q″(s)的值。
[0128] 将式(4)、(5)代入式(2)、(3)得到路径空间的约束不等式方程组
[0129]
[0130] 其中
[0131]
[0132] 上述式(7)为关节空间动力学模型,是将式(4)和(5)代入关节空间动力学模型(2)得到的;
[0133] 将式(7)简化为如下的路径空间动力学模型为:
[0134]
[0135] 其中
[0136] m(s(k))=M(q(s(k)))q′(s(k))
[0137] c(s(k))=M(q(s(k)))q″(s(k))+B(q(s(k)),q′(s(k)))q′(s(k))+C(q(s(k)))(q′2
(s(k)))
[0138] f(s(k))=Fv(q(s(k)))q′(s(k))
[0139] g(s(k))=G(q(s(k)))
[0140] δl(s(k))=δl(q(k))
[0141] 使用路径位移s、路径速度 路径加速度 表示路径空间动力学模型(8)的基础形式:
[0142]
[0143] 式(9)表示路径位移为s、路径速度为 路径加速度为 与各关节力矩τ(s)的关系。
[0144] 由于时间最优控制优化目标为使时间最小化,即
[0145] min T
[0146] 由于 为了计算方便,将优化目标用下式表示
[0147]
[0148] 构建非线性优化模型为
[0149]
[0150]
[0151] 其中s.t.表示约束条件符号,s(1)=0表示路径起点离散点1的路径位移为0,s(N)=1表示路径终点离散点N的路径位移为1, 表示路径起点离散点1的路径速度为0, 表示路径终点离散点N的路径速度为0。
[0152] S4.规划时间最优轨迹
[0153] 根据步骤S3获得的非线性优化模型,在本实施例中,通过python非线性求解工具CasADi,求解得到时间最优轨迹即最优的 序列,其表示使时间最优时机器人在第k个点应该达到的路径速度。
[0154] S5.获得最优位移-时间函数
[0155] 根据步骤S4获得的最优序列 由于可得到路径速度sK和时间tK的关系为
[0156]
[0157] 其中K路径中的第K个离散点,t(K)表示从轨迹起点开始到第K个离散点所需要的时间。
[0158] 通过分段最小二乘法拟合每个离散点的时间t(k)以及每个离散点处的路径位移s(k)的关系,得到连续的最优位移-时间函数s(t)。
[0159] 拟合步骤如下:
[0160] S51.设置精度ε=0.00001;
[0161] S52.选取三次多项式进行拟合s(t)=a0+a1t+a2t2,式中a0、a1、a2为待求解的多项式系数,s(t)为要拟合的最优位移-时间函数s(t);
[0162] S53.从路径离散点1开始,沿着路径位移增大方向,直到路径离散点z,参数式中矩阵
[0163] S=[s(1)s(2)…s(z)], a(1)表示离散点1的路径位移;s(2)表示离散点2的路径位移;s(z)表示离散点n的路径位移,t(1)表示从轨迹起点开始到第
1个离散点所需要的时间,t(2)表示从轨迹起点开始到第2个离散点所需要的时间,t(z)表示从轨迹起点开始到第z个离散点所需要的时间,最小二乘系数向量A=[a0,a1,a2]T,其中上标T表示转置,A=B\S,\表示矩阵右除,mean()是求解矩阵里面的平均值的函数,W是用来判断拟合路径函数误差是否符合精度要求的参数;
[0164] S54.令S=[s(1)s(2)…s(z-1)], A=B\S=[a0,a1,a2]T,求得的a0,a1,a2作为拟合函数拟合q1(s)=a0+a1s+a2s2的系数,并且拟合函数为区间[t(1),t(z)]的最优位移-时间函数;
[0165] S55.根据步骤S51-S54,求解区间[0,1]内除了区间[t(1),t(z)]的其他区间的最优位移-时间函数,最终得到最优位移-时间函数。
[0166] S6.获得每个控制周期控制指令和前馈力矩
[0167] 根据步骤S5获得的最优位移-时间函数,代入控制周期T控制周期到最优位移时间函数得到每个控制周期的最优位移s(T控制周期),从而代入路径函数q(s)得到每个控制周期各关节的角度q(s(T控制周期)),根据电机每圈脉冲数P以及减速器传动比ρ得到每个控制周期的关节脉冲:
[0168] Pulse=P×ρ×q(s(T控制周期))/2π
[0169] 得到的每个控制周期的关节脉冲即为控制脉冲指令。
[0170] 对步骤S5得到的最优位移-时间函数s(t)对时间t求一阶导得到最优速度-时间函数 将最优位移-时间函数s(t)对时间t求二阶导得到最优加速度-时间函数 将s(t), 代入式(9)得最优轨迹的力矩-时间函数τ(s(t)),将控制周期T控制周期代入τ(s(t))得到每个控制周期的力矩,即为前馈力矩τ前馈(T控制周期)。将式(10)每个离散点k所需要的时间t(k)代入τ(s(t))得到每个离散点k的离散前馈力矩τ前馈(k)=[τ1,前馈(k),τ2,前馈(k)…τn,前馈(k)]T,其中下标1,2,n表示关节数。将每个控制周期前馈力矩τ前馈(T控制周期)下发到控制柜,将每个离散点k的离散前馈力矩τ前馈(k)通过图3中的存储模块保存在外部存储设备301中。
[0171] S7.下发到机器人控制柜202运行
[0172] 将步骤S6获得的控制指令Pulse和前馈力矩τ前馈(T控制周期),下发到图3机器人控制柜202的伺服驱动器304中,驱动关节机器人201的伺服电动机305运行。
[0173] 步骤S3-步骤S7在路径规划模块中实现,是图3轨迹规划控制器的一个模块,写入在示教器203的只读存储器302中。
[0174] S8.获得反馈测量力矩
[0175] 通过下发伺服驱动器304的控制指令驱动关节机器人201的伺服电动机305运行,同时将伺服电动机305在运行过程中的实时测量力矩作为反馈力矩传回到示教器203中,通过类似步骤S51-S55的分段最小二乘拟合的方式得到反馈力矩τ反馈和时间t的关系τ反馈(t),将式(10)每个离散点k所需要的时间t(k)代入代入τ反馈(t),得到每个离散点的反馈力矩τ反馈T(k)=[τ1,反馈(k),τ2,反馈(k)…τn,反馈(k)] ,其中下标1,2,n表示关节数,通过调用在只读存储器302的存储模块将τ反馈(k)存储在外部存储设备301中。
[0176] S9.通过迭代学习控制器获得迭代学习补偿项
[0177] 将存储在外部存储设备301中的前馈力矩τi,前馈(s(k))和反馈力矩τi,反馈(s(k))以及上一次迭代的迭代学习补偿项δi,l-1(s(k))输入到迭代学习控制器中,其中τi,反馈(s(k))表示第k个离散点第i个机器人关节的反馈力矩,τi,前馈(s(k))表示第k个离散点第i个机器人关节的前馈力矩,并且τi,反馈(s(k))和步骤S8的τ反馈(k)是等价的,τi,前馈(s(k))和步骤S6的τ前馈(k)是等价的。δi,l-1(s(k))表示第k个离散点第i个机器人关节第l-1次迭代的迭代学习补偿项。
[0178] 在迭代学习控制器中,首先计算力矩偏差
[0179] Δτi,l(s(k))=τi,反馈(s(k))-τi,前馈(s(k))
[0180] 其中,Δτi,l(s(k))表示第k个离散点第i个机器人关节第l次迭代的力矩偏差。
[0181] 然后计算收敛因子
[0182]
[0183] 其中γi,l表示第第i个机器人关节第l次迭代的收敛因子,Δτi,l-1(s(k))表示第k个离散点第i个机器人关节第l-1次迭代的力矩偏差,Δτi,l(s(k))表示第k个离散点第i个机器人关节第l次迭代的力矩偏差。 表示欧几里得范数的平方。 表示从括号中的数从1到N进行求和。
[0184] 设l′是有效迭代次数,表示当力矩偏差成功减小时的迭代次数,根据γi,l的计算结果,迭代规则分为以下两种情况:
[0185] Case1.如果γi,l≥0,令l′=l,γi,l保持不变;
[0186] Case2.如果γi,l<0,令γi,l=0.5γi,l′,γi,l′=0.5γi,l′,Δτi,l(s(k))=Δτi,l′(s(k)),δi,l-1(s(k))=δi,l′-1(s(k)),其中,γi,l′表示第l′次迭代,第i关节的收敛因子,Δτi,l′(s(k))表示第l′次迭代,第i关节,第k个离散点的力矩偏差,δi,l′-1(s(k))表示第l′-1次迭代,第i关节,第k个离散点的迭代学习补偿项。
[0187] 最后将根据迭代规则更新后的收敛因子γi,l以及力矩偏差代入到迭代学习算法中
[0188] δi,l(s(k))=γi,lΔτi,l(s(k))+δi,l-1(s(k))
[0189] 为防止变化过快,将δi,l(s(k))滤波平滑处理后,再添加到式(5)的动力学模型中进行规划。滤波处理如下:
[0190]
[0191] 其中a表示滤波步长。
[0192] S10.更新机器人的关节空间动力学模型
[0193] 根据步骤S9的迭代学习控制器,获得迭代学习补偿项,用于更新式(5)的机器人的关节空间动力学模型,即将新获得的迭代学习补偿项替换式(9)中旧的迭代学习补偿项,重新进行规划,并将规划后获得的τ(s(k))通过存储模块存储在外部存储设备301中。
[0194] S11.判断补偿项是否更新
[0195] 根据补偿项是否更新,即迭代学习补偿项的收敛因子γi,l是否等于0,作为迭代终止的标志即关节空间动力学模型不再更新;如果补偿项更新,则转到步骤S3重新进行循环步骤S3-步骤S11,如果补偿项不更新,则停止迭代。
[0196] 步骤S9-步骤S11在迭代学习模块实现,是轨迹规划控制器的一个模块,嵌入在示教器203里面。
[0197] 步骤S1-步骤S11示例性描述了本发明的一种结合迭代学习的时间最优轨迹规划控制器及方法的实施例。但是应当理解,本发明不限于所公开的示例性实施例。以下权利要求的范围被赋予最广泛的解释,从而涵盖所有这种修改以及等同的结构和功能。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈