APP下载

基于多目标粒子群算法的机器人逆运动学求解方法

2020-05-12刘洋

现代计算机 2020年10期
关键词:运动学适应度姿态

刘洋

(四川大学计算机学院,成都 610065)

0 引言

已知机器人末端执行器的位置姿态信息,求解机器人各关节角度值的过程称为机器人的逆运动学求解。机器人逆运动学是机器人领域的基础问题,在工程实践中有着十分广泛的应用需求。

机器人逆运动学的求解方法很多,主要可以分为解析方法和数值方法两类。由于解析方法[1]具有很大的局限性且对自由度较高的机器人效果不佳,目前主流的研究工作均集中在数值方法上。数值方法的本质就是将机器人逆运动学问题转换成一个优化问题,再利用相关优化方法进行求解。目前应用较多的数值方法主要分为神经网络和群体智能方法两类。通过神经网络的方法[2],可以很好地实现对机器人的逆运动学求解。但是神经网络精度的高低完全取决于所使用训练集质量的好坏,而不同结构的机器人之间无法共享同一训练集;因此必须针对特定的机器人结构单独提取高质量的训练集,这无疑大幅增加了神经网络方法的使用成本。相比于神经网络方法,群体智能方法在通用性上有着巨大的优势。常用的群体智能方法,如粒子群算法[3]、萤火虫算法[4]、遗传算法[5]等,在机器人逆运动学求解中均取得了不错的效果,实现了很高的位置精度。但在工程实践中,很多应用场景对姿态精度也有很高的要求,上述的单目标优化方法无法同时解决这两方面的需求。

针对机器人逆运动学求解中对位置精度和姿态精度两方面的需求,文章将其转化为多目标优化问题,并通过多目标粒子群算法加以实现。

1 机器人逆运动学

1.1 机器人运动学模型

以自由度为6的机器人为例,根据D-H方法[6]建立机器人各关节坐标系Oxiyizi,如图1所示。Ox0y0z0

表示世界坐标系,Ox6y6z6表示工具坐标系。如何构建起两个坐标系之间的转换关系正是机器人运动学研究的内容。

图1 机器人关节坐标系

其中,p=[px,py,pz]T表示机器人工具坐标系的原点在世界坐标系中的坐标,即机器人末端控制器的位置信息;[n,s,a]表示机器人工具坐标系各坐标轴单位向量在世界坐标系中的坐标,即机器人末端控制器的姿态信息,用欧拉角形式表示为

1.2 机器人逆运动学求解

相比于正运动学求解,机器人逆运动学求解过程无疑要困难很多。在已知机器人各关节角度值的情况下,可以利用公式(1)求解出末端执行器的位置和姿态信息:

其中,p、e为机器人末端执行器的位置和姿态信息;Fposition()、Forientation()表示运用机器人正运动学模型对机器人末端执行器的位置和姿态信息进行求解的过程。

利用公式(2),可以将机器人逆运动学表述为多目标优化问题:

其中,ptar、etar为机器人末端控制器的目标位置和姿态;qtar为待求解的机器人关节转角值;qinit为机器人关节转角初始值为机器人关节转角θi的限制范围。

公式(3)表明逆运动学求解需要满足三方面的目标要求,即位置精度最高、姿态精度最高以及关节角度值变化最小。针对这一多目标优化问题,文章根据位置精度和姿态精度的目标函数构造相应的适应度函数并采用多目标粒子群算法[7]进行求解;在此基础之上,利用关节角度值变化的目标函数对所得的解集进行多解优化,从而完成机器人逆运动学的求解。

2 多目标粒子群算法

2.1 基本定义

由于多个适应度函数的存在,在多目标粒子群算法中需要引入帕累托支配的概念:对于向量u=[u1,u2,…,un] 和v=[v1,v2,…,vn],当且仅当u部分小于v时,u支配v。即:

当两组适应度之间存在帕累托支配关系时,可以根据支配关系进行比较评价优劣。但很多时候两组适应度之间并不存在帕累托支配关系,无法比较评价优劣,此时两组解均应当进行保留。因此,将所有相互之间没有支配关系的解构成一个集合,即帕累托最优解集:

2.2 算法流程

多目标粒子群算法中的基本搜索单位是粒子,具有位置和速度两种属性。在逆运动学求解过程中,每个粒子的位置都是一组关节角度值,表示逆运动学问题的一组可能解;每个粒子的速度表示该粒子在空间内搜索时的方向和幅度,并随着搜索的进行不断进行调整。

针对逆运动学问题的多目标粒子群优化算法流程如图2所示。

图2 算法流程图

粒子群初始化:粒子群初始化主要包括粒子位置和速度的初始化。粒子位置的初始化通过在各关节角度限制范围内随机生成来实现。粒子速度的初始化通过在各关节搜索速度范围内随机生成来实现。

适应度计算:根据公式(2)计算粒子位置代表的关节角度值对应的末端执行器位置姿态。根据所得的末端执行器位置姿态分别计算粒子对应的多个适应度函数的值,从而完成对粒子适应度的计算。

历史最优解提取:包括帕累托最优解集的更新、粒子的局部最优解Pd的更新以及粒子群的全局最优解Pg的更新。局部最优解Pd的更新根据帕累托支配关系即可确定。帕累托最优解集的更新也通过帕累托支配关系判定,同时要尽可能的保持解集中解的多样性。全局最优解Pg的更新则需要在帕累托最优解集更新完成的基础上进行。

粒子信息更新:当全局最优解Pg不满足精度要求并且迭代次数没达到上限时,需要对粒子的位置和速度信息进行更新,从而开始新一轮的迭代:

多解优化:当全局最优解Pg满足精度要求或者迭代次数达到上限时,算法停止迭代,需要进一步对帕累托最优解集进行多解优化,从帕累托最优解集中选取出最适合的一个作为逆运动学问题的最优解。

2.3 适应度函数的构造

根据公式(3)的描述,需要同时满足位置、姿态精度最高和关节变化幅度最小三个要求。其中,关节变化幅度最小是在已经实现位置、姿态精度最高基础上的进一步要求。因此,在帕累托最优解集的优化过程中,仅需要考虑位置精度和姿态精度的适应度函数。

位置精度的适应度函数为:

其中,ptar=[px_tar,py_tar,pz_tar]T为目标位置信息;pcur=[px_cur,py_cur,pz_cur]T为通过公式(2)得到的关节转角qcur对应的实际位置信息。

姿态精度的适应度函数为:

2.4 帕累托最优解集的更新

随着粒子的不断搜索,帕勒托最优解集也在不断进行更新。这一更新通过帕累托支配关系来实现。对于当前解,若其与帕累托最优解集中的解没有支配或被支配的关系,则将其加入帕勒托最优解集;若其与帕累托最优解集中的解具有支配关系,则将其加入帕累托最优解集并删除解集中所有被其支配的解;若其与帕勒托最优解集中的解具有被支配关系,则帕累托最优解集保持不变。

随着迭代次数的增加,帕累托最优解集的规模也在不断增大。这不仅会对存储能力提出很高的要求,而且会严重影响算法的计算速度。因此,需要对集合中解的数量设定一个上限,并决定帕累托最优解淘汰的策略。文章采用自适应网格方法,将适应度空间按网格等分为许多子空间,并将每个子空间内的解的个数作为该子空间内解的密度值。为了保持解集中解的多样性,让集合内的解在空间中分布的更为均匀,选择密度值最大的子空间内的解随机进行淘汰。

2.5 历史最优解的提取

历史最优解是粒子群算法中的核心参数,包括每个粒子的局部最优解Pd和整个粒子群的全局最优解Pg。它们也需要随着算法的迭代不断进行更新。

粒子的局部最优解Pd的更新较为简单,仅根据帕勒托支配关系即可确定。若当前解支配上一轮迭代的局部最优解,则将当前解确定为局部最优解;若当前解被上一轮迭代的局部最优解支配,则局部最优解保持不变;若二者不存在支配关系,则随机选择一个作为局部最优解。

粒子群的全局最优解Pg的更新要从帕累托最优解集中选取。粒子群算法每进行一次迭代,均需要对帕累托最优解集进行更新。在此基础之上,采用轮盘赌算法选择一个子空间,子空间被选中的概率与其密度值成反比。选中子空间后,在子空间中随机选择一个解作为粒子群的全局最优解Pg进行更新。

2.6 多解优化

经过多目标粒子群算法的搜索,可以得到机器人逆运动学问题的帕累托最优解集。要从中选出唯一的一个作为问题的最优解,需要进行多解优化。由于帕累托最优解集中的解均具有较高的位置精度和姿态精度,在评价体系中添加对关节角度值变化的评价。

多解优化的评价函数为:

其中,ftotal为多解优化的评价函数。帕累托最优解集中使得ftotal最小的解,即为机器人逆运动学问题的最优解。

3 算法仿真

算法仿真采用的参数如下:粒子数100个、迭代次数 1000次、惯性权重w=0.5、加速常数c1=1.2、c2=1.2。

根据目标位置姿态进行仿真,结果如表2所示。通过多目标粒子群算法的优化,三组目标位置姿态的逆运动学求解均得以实现,且具有很高的位置精度和姿态精度。第三组的实际关节角度与目标关节角度差异很大,这主要是由于机器人逆运动学求解的不唯一性。相比于目标关节角度,求解得到的实际关节角度的关节转动幅度更小,更符合实际应用的需求。

图3以第一组目标位置姿态的求解为例,展示了多目标粒子群算法搜索的过程。图中平面坐标系的坐标轴分别为粒子对应的位置精度和姿态精度的适应度。开始搜索时,由于粒子在搜索空间中随机均匀的进行搜索,粒子的适应度分布的也较为均匀。随着迭代次数的增加,粒子在适应度空间内逐渐向原点方向靠拢,粒子搜索的范围越来越集中;此时的帕累托最优解集的数量很大,这些帕累托最优解共同构成了帕累托前沿,成折线形分布。最终,当迭代完成时,进行搜索的粒子汇聚在一起,几乎不再运动;帕累托最优解集的数量也大幅减少,且均满足位置精度和姿态精度的要求。根据多解优化,即可从中选出最优解。

图3 不同迭代次数的粒子适应度分布图

表1 目标位置姿态信息表

表2 仿真结果表

4 结语

本文将机器人逆运动学问题转化为多目标优化问题,并通过多目标粒子群算法进行了实现。在此基础之上,通过计算机仿真对算法性能进行了测试。仿真测试表明,多目标粒子群算法在同时满足目标位置精度和姿态精度的情况下,实现了对机器人逆运动学问题的求解。但是多目标粒子群算法对计算能力的要求很高,耗费的时间较长。要实现实时处理,必须采用并行计算且对GPU的性能要求较高。在未来的研究中,可以对算法进行进一步的改进,以提高算法求解速度。

猜你喜欢

运动学适应度姿态
改进的自适应复制、交叉和突变遗传算法
轿车前后悬架运动学仿真分析
基于MATLAB的工业机器人运动学分析与仿真
速度轮滑直道双蹬技术的运动学特征
启发式搜索算法进行乐曲编辑的基本原理分析
“必修1”专题复习与训练
另一种姿态
基于人群搜索算法的上市公司的Z—Score模型财务预警研究
以文青的姿态回归主流——对《后悔无期》的两重解读
阅读是最美的姿态