基于迭代学习控制的遗传算法在机器人动力学参数估计中的应用
1. 引言
工业机器人需要重复执行轨迹运动,并且要具备高轨迹跟踪精度。要实现这一点,需要有精确的机器人动力学模型。然而,在大多数情况下,动力学模型的参数难以精确计算,模型存在不确定性。因此,机器人控制系统需要结合多种控制策略来提高轨迹跟踪精度。
-
已有控制策略
:
- 有将计算扭矩控制与模糊控制相结合的方法。
- 还有使用隐式Lyapunov函数控制方法作为连续反馈控制。
- 更具计算效率的是迭代学习控制(ILC),它由Uchiyama和Arimoto提出,是一种受生物启发的方法,通过重复执行相同轨迹并使用学习算子来减少轨迹跟踪误差。对于非线性系统,其鲁棒性和收敛性在1989年由Heizinger等人证明。
- 受限输出迭代学习控制(COILC) :该方法可轻松融入硬约束机器人系统的控制系统中。COILC过程的收敛性取决于学习算子的选择,而学习算子的选择又依赖于机器人动力学模型参数的正确估计。
- 遗传算法(GA) :由Holland在1975年提出,是最早的基于种群的随机算法之一。它通过模拟物种进化的自然选择过程来实现优化策略,包括选择下一代的最佳个体以及通过交叉和变异技术形成下一代。
本研究的目标是将COILC和遗传算法相结合,以找到机器人模型参数的最佳估计。
2. 问题描述
为了研究,我们考虑SCARA型机器人的前两个连杆,并使用SEIKO Instruments TT - 3000的模型。其运动学关系中,$l_1 = 25$ cm,$l_2 = 22$ cm。
该机器人的拉格朗日动力学方程为:
[
\begin{cases}
a_{11}(q_2)\ddot{q}
1 + a
{12}(q_2)\ddot{q}
2 - 2b\sin q_2\dot{q}_1\dot{q}_2 - b\sin q_2\dot{q}_2^2 + d_1\dot{q}_1 + f
{c1} = u_1 \
a_{12}(q_2)\ddot{q}
1 + a
{11}(q_2)\ddot{q}
2 - 2b\sin q_2\dot{q}_1^2 + d_2\dot{q}_2 + f
{c2} = u_2
\end{cases}
]
其中:
[
\begin{cases}
a_{11}(q_2) = a + 2b\cos q_2 \
a_{12}(q_2) = a_{21}(q_2) = v + b\cos q_2 \
a_{22} = v \
a = I_1 + m_1s_1^2 + I_2 + m_2(I_1^2 + s_2^2) \
b = m_2l_1s_2 \
v = I_2 + m_2s_2^2
\end{cases}
]
这里,$d_i$($i = 1, 2$)是粘性阻尼,$f_{ci}$是库仑摩擦,$l_i$是机器人连杆的指定长度,$s_i$是质心位置,$m_i$是连杆总质量,$I_i$是连杆绕质心的惯性矩。
COILC控制算法步骤如下:
1. 设置初始迭代次数$l = 0$,开始迭代过程。
2. 从初始位置$q_l(0)$开始,系统在控制$u_l(t)$下跟踪期望轨迹,直到出现$j$($1\leq j\leq m$),使得$q_{l,j}(S_l) = Q_{min,j}$或$q_{l,j}(S_l) = Q_{max,j}$,或者到达结束位置$q_l(T)$。当$t = S_l$($S_l\in(0, T]$)时,跟踪过程停止。
3. 当前跟踪完成后,学习控制器根据以下学习更新定律更新前馈控制项:
[
\begin{cases}
u_{l + 1}(t, S_l) = u_l(t, S_{l - 1}) + u_l^
(t, S_l) \
u_0(t, S_{-1}) \equiv u_0(t) \
u_l^
(t, S_l) =
\begin{cases}
L(q_l(t), t)(\ddot{q}_d(t) - \ddot{q}_l(t)), & t\in[0, S_l], S_l\in(0, T] \
0, & \forall t\in(S_l, T]
\end{cases}
\end{cases}
]
4. 如果输出误差(最大迭代跟踪误差)$\vert\Delta q_l(t)\vert$小于或等于可接受的跟踪精度,则退出学习过程;否则,令$l = l + 1$,转到步骤2。
离线计算的前馈项$u_{l + 1}$可减少机器人在下一次迭代中的运动跟踪误差。ILC更新定律的鲁棒性和收敛性在$L(q)\equiv\hat{A}(q)$时得到证明,其中$\hat{A}$是惯性矩阵$A$的相应估计。ILC过程的收敛取决于动力学模型参数$a$、$b$和$v$的正确估计。本研究的目标是使用遗传算法找到使COILC方法总收敛时间最小的参数$a$、$b$和$v$。
3. 结合COILC和GA的参数估计算法
为了应用遗传算法,需要定义初始初始化、选择、交叉、变异和终止条件等操作。
-
第一代初始化
:第一代将随机初始化为48位无符号整数。为减少所需的代数,初始种群的个体应根据机器人动力学参数的预期估计来选择。对于所描述的机器人,参数$a$将在2000到8000 $kg\cdot cm^2$范围内选择,参数$b$和$v$将在1000到2000 $kg\cdot cm^2$之间。
-
选择
:
1. 为每一代定义一个适应度函数,计算使用该代对应个体的学习算子应用COILC时收敛所需的总时间。
2. 由于学习算子是随机选择的,需要限制ILC过程的最大迭代次数,以避免非收敛的ILC过程。如果ILC过程不收敛或在选择的最大迭代次数内找不到解,则适应度函数返回预定义的最大值。
3. 评估所有个体的适应度函数值,并按适应度值升序对个体进行排序。
4. 下一代保留排序后前50%的个体,另外50%通过交叉操作生成。
-
交叉操作
:从选择的前50%具有最佳适应度值的个体中选择两个父个体,将它们分别拆分为16位和32位的两部分,然后进行组合。16位部分对应参数$a$,32位部分对应参数$b$和$v$,生成两个新的子个体。
-
变异操作
:交叉操作后,按无符号整数升序对新一代个体进行排序。如果一代中有两个相等的数字,则随机翻转其中一个的单个位进行变异。
-
终止条件
:代过程的终止条件是手动检查和达到固定代数的组合。
该遗传算法依赖于ILC收敛与受控机器人系统惯性矩阵正确估计之间的对应关系,通过自然选择过程找到对应于机器人惯性矩阵估计的最优参数。
4. 仿真结果
使用TT - 3000机器人的计算机仿真来评估遗传算法的性能。仿真使用两组不同的参数,标准参数集用于模拟机械臂,实验估计参数集用于计算COILC过程的学习算子$L(q)\equiv\hat{A}(q)$。
机器人需要执行如图所示的轨迹。如果使用实验估计参数集应用COILC,达到最大跟踪误差0.02的执行时间对于轨迹A为83 s,对于轨迹B为103 s。
对于遗传算法,考虑由120个个体组成的一代,随机初始化后创建15代。适应度函数是考虑轨迹A时COILC过程达到最大跟踪误差0.02所需的最短时间。
| 标准参数 [kg·cm²] | a | b | v | d1 | d2 | fc1 | fc2 |
|---|---|---|---|---|---|---|---|
| 6596.2 | 1505.6 | 1353.4 | 17.29 | 12.49 | 6.46 | 3.44 | |
| 实验估计 [kg·cm²] | $\hat{a}$ | $\hat{b}$ | $\hat{v}$ | $\hat{d}_1$ | $\hat{d}_2$ | $\hat{f}_{c1}$ | $\hat{f}_{c2}$ |
| 6555.3 | 1471.8 | 1847.8 | 17.29 | 12.49 | 8.13 | 5.51 |
经过15代后,最佳适应度值为29.1 s。以下是部分代中最佳两个个体的比较:
| 代 | 个体表示 | a [kg·cm²] | b [kg·cm²] | v [kg·cm²] | 适应度值 [s] |
| — | — | — | — | — | — |
| 1 | 32049171138104 | 7462 | 1910 | 1592 | 53.24 |
| 1 | 30163684557856 | 7023 | 1972 | 1056 | 57.71 |
| 2 | 25155706356780 | 5857 | 1265 | 1068 | 38.80 |
| 2 | 26783510365447 | 6236 | 1439 | 1287 | 48.50 |
| 15 | 24193633813516 | 5633 | 1267 | 1036 | 29.10 |
| 15 | 24502871327752 | 5705 | 1265 | 1032 | 29.10 |
对于轨迹B,使用遗传算法找到的最佳参数集将COILC执行时间从103 s减少到58.2 s。使用实验估计参数集时,前几次迭代因达到工作空间限制而中止;使用遗传算法找到的参数集时,跟踪轨迹更接近期望轨迹,COILC收敛更快。
值得注意的是,遗传算法找到的参数与用于虚拟机器人仿真的参数不同,这是因为COILC学习算子未考虑摩擦,但COILC过程可以补偿由摩擦引起的误差。
综上所述,本研究提出的将COILC和遗传算法相结合的方法,通过计算机仿真验证了其有效性,表明COILC可用于机器人的轨迹跟踪和模型参数估计。
基于迭代学习控制的遗传算法在机器人动力学参数估计中的应用
5. 方法优势分析
将COILC和遗传算法相结合的方法具有多方面的优势,以下进行详细分析:
-
提高参数估计精度
:遗传算法通过模拟自然选择过程,在众多可能的参数组合中寻找最优解。结合COILC的收敛特性,能够不断优化参数估计,使其更接近真实值。从仿真结果可以看出,经过多代迭代,找到的参数能显著减少COILC的执行时间,提高轨迹跟踪精度。
-
适应模型不确定性
:由于机器人动力学模型参数难以精确计算,存在不确定性。该方法不依赖于精确的模型,而是通过迭代学习和遗传搜索来适应这种不确定性。即使模型存在误差,也能找到合适的参数,保证系统的性能。
-
处理约束条件
:COILC方法可以安全地应用于具有状态空间约束的机器人系统。在实际应用中,机器人的运动往往受到各种限制,如关节角度限制、速度限制等。该方法能够在满足这些约束条件的前提下,实现有效的轨迹跟踪和参数估计。
6. 实际应用场景
这种基于COILC和遗传算法的参数估计方法在多个实际应用场景中具有重要价值:
-
工业生产
:在工业机器人的生产线上,机器人需要重复执行相同的任务,对轨迹跟踪精度要求较高。通过准确估计动力学参数,可以提高机器人的工作效率和产品质量,减少废品率。
-
物流仓储
:物流仓储中的搬运机器人需要在复杂的环境中进行货物搬运,对运动的灵活性和准确性有较高要求。该方法可以帮助机器人更好地适应环境变化,提高搬运效率。
-
医疗手术
:在医疗手术机器人中,精确的轨迹跟踪和参数估计至关重要。该方法可以提高手术机器人的操作精度,减少手术风险,为患者提供更安全、有效的治疗。
7. 未来研究方向
虽然本研究取得了一定的成果,但仍有一些方面值得进一步深入研究:
-
算法优化
:可以探索更高效的遗传算法操作,如改进选择策略、交叉和变异算子,以加快收敛速度,提高算法性能。
-
多机器人系统
:研究如何将该方法扩展到多机器人系统中,实现多个机器人之间的协同工作和参数估计。
-
实时应用
:进一步优化算法,使其能够在实时环境中运行,满足实际应用的实时性要求。
8. 总结
本研究成功地将受限输出迭代学习控制(COILC)和遗传算法(GA)相结合,用于机器人动力学模型参数的估计。通过计算机仿真验证了该方法的有效性,具体表现如下:
-
参数估计效果显著
:遗传算法结合COILC,能够在众多可能的参数组合中找到最优解,显著提高了参数估计的精度。从仿真结果可以看出,找到的参数使COILC的执行时间大幅减少,轨迹跟踪精度明显提高。
-
适应复杂情况
:该方法能够适应机器人动力学模型的不确定性和状态空间约束,在实际应用中具有较强的鲁棒性。
-
应用前景广阔
:该方法在工业生产、物流仓储、医疗手术等多个领域具有重要的应用价值,为机器人技术的发展提供了有力支持。
未来,我们可以进一步优化算法,拓展其应用范围,使其在更多领域发挥更大的作用。
相关流程和操作总结
以下是结合COILC和GA进行机器人动力学参数估计的主要流程:
graph LR
A[初始化第一代] --> B[选择操作]
B --> C[交叉操作]
C --> D[变异操作]
D --> E{是否满足终止条件}
E -- 否 --> B
E -- 是 --> F[输出最优参数]
- 初始化第一代 :随机生成48位无符号整数作为个体,参数$a$在2000 - 8000 $kg\cdot cm^2$,参数$b$和$v$在1000 - 2000 $kg\cdot cm^2$。
-
选择操作
:
- 定义适应度函数,计算COILC收敛时间。
- 限制ILC最大迭代次数。
- 评估适应度值并排序。
- 保留前50%个体。
- 交叉操作 :选择前50%个体中的两个父个体,拆分组合生成子个体。
- 变异操作 :对新个体排序,若有相同数字则随机翻转一位。
- 终止条件 :手动检查和达到固定代数。
通过以上流程,可以有效地估计机器人动力学模型的参数,提高机器人的轨迹跟踪精度和性能。
超级会员免费看
1225

被折叠的 条评论
为什么被折叠?



