摘要:运动学位置正解是对并联机器人速度、加速度以及其他受力分析、误差分析、动力分析的基础, 位置正解也是并联机器人研究中的一个难点。对并联机器人运动学正解问题建立新的模型,利用粒子群算法的全局搜索能力,以一台并联机器人为对象进行研究,获得了其运动学正解,利用MATLAB 软件进行仿真。最后总结出了粒子群算法的优点。
关键词:粒子群算法;6-SPS并联机器人;运动学正解;
0 引言
并联机器人是一类全新的机器人, 它具有刚度大、承载能力强、误差小、精度高、自重负荷比小、动力性能好、控制容易等一系列优点, 与目前广泛应用的串联机器人在应用上构成互补关系, 因而扩大了整个机器人的应用领域。位置分析是运动分析的基本任务,也是机构速度、加速度、以及其他受力、误差分析等的基础。由于并联机构结构的复杂性,位置正解的难度比较大。数值方法求解计算速度比较慢,不能求得机构的所有位置解,并且最终的结果与初值的选取有直接的关系。
利用并联机器人位姿反解容易求取的特点,把并联机器人的位姿正解问题转化为假设已知位姿正解,通过位姿反解求得杆长值,并使所求得的杆长值与给定的杆长值之差为最小的优化问题,然后利用粒子群算法的全局寻优能力来直接求解并联机器人的位姿正解。粒子群算法( particle swarm optimization ,简称PSO ) 是由Kennedy和Eberhart于1995年提出的一种新的仿生优化方法,目前已发展成为一种有效的优化工具。粒子群优化算法是基于群体智能理论的优化算法,它是通过群体中粒子间的合作与竞争产生的群体智能来进行优化搜索。与进化算法比较,粒子群保留了基于种群的全局搜索策略,但是它采用了一种相对简单的速度—位移模型,避免了复杂的遗传算子操作。同时它特有的记忆功能使其可以动态跟踪当前的搜索情况而调整其搜索策略。因此,粒子群算法是一种高效的并行搜索算法。由于算法的收敛速度快,设置参数少,近年来受到学术界的广泛关注。
1 位置正解数学模型
6-SPS并联机构上、下平台以6个分支相连,每个分支两端是两个球铰,中间是一个移动副。驱动器推动移动副作相对运动,改变各杆长的长度,使上平台在空间的位置和姿态发生变化。若给定各个杆长,求上平台在空间的位置和姿态,就是该机构的位置正解。
在机构的上、下平台上各建立一坐标系,如图1所示,动坐标系OX’Y’Z’建立在上平台上,坐标系OXYZ固定于下平台。在动坐标系中的任一向量R’可以通过坐标变换方法变换到固定坐标系中:
R=[T]R’+P ………..(1)
其中,,式中的[T]为上平台姿态的方向余弦矩阵,为动坐标相对定坐标的3个独立的转角,P为上平台选定的参考点位置矢量,即动坐标系的原点在固定坐标系中的坐标。这时6个驱动器的杆长矢量li:i=1,2,…,6 ……..(2)
bi、Bi为上、下平台铰链点。
图1 并联机器人结构示意图
令,若已知6杆杆长,求得与输入位移相对应的动平台的位置和姿态,就是该机构的位置正解问题。
则建立目标函数为:
…........(3) (i=1,2,….,6)
转化成优化模型:
………(4)
2 位置正解的粒子群算法
PSO中,粒子的位置代表被优化问题在搜索空间中的潜在解。所有的粒子都有一个由被优化的函数决定的适应值(Fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。粒子们追随当前的最优粒子在解空间中搜索。PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。一个是粒子本身所找到的最优解,称为个体极值;另一个极值是整个种群目前找到的最优解,称为全局极值。
假设在一个D维的目标搜索空间中,有m个粒子组成一个群落,其中第i个粒子表示为一个D维的向量即第i个粒子在D维的搜索空间中的位置。将代入一个目标函数就可以计算出其适应值,根据其适应值的大小衡量优劣。第i个粒子的“飞行”速度也是一个D维的向量,记为。第i个粒子迄今为止搜索到的最优位置称为个体极值,记为,整个粒子群迄今为止搜索到的最优位置为全局极值,记为。在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和新的位置:
…………..(5)
其中ω是非负数,称为惯性权值;c1,c2是非负常数,称为加速因子,根据经验通常c1、c2在0~2之间。Vid是粒子的速度,i=1,2,…,m,d=1,2,…,D;Vid ∈[-vmax,vmax],设定常数vmax用来限制粒子的速度;rand()是介于(0,1)之间的随机数。
图2 粒子移动原理图
Xt:目前搜索到的点
Xt+1:改进后的搜索点
Vt:当前速度
Vt+1:改进后的速度
Vpbest:基于个体极值的速度
Vgbest:基于全局极值的速度
PSO算法的基本步骤和流程:
1)初始化粒子群,包括种群规模t=30,最大进化代数k=300,各粒子的初始位置x和初始速度v,加速度权重系数c1=c2=1.8,粒子最大飞行速度Vmax=0.2ω=0.9-k(0.9-0.7)/kmax,即最大加权因子-(最大加权因子-最小加权因子)*当前世代数/总世代数;
2)计算每个粒子的适应度值;
3)对每个粒子,比较它的适应度值和它经历的最好位置PBest的适应度值;若更好,更新PBest;
4)对每个粒子,比较它的适应度值和群体所经历的最好位置gBest的适应度值;若更好,更新gBest;
5)根据位置和速度的更新公式调整粒子的位置和速度;
6)若达到结束条件(最大迭代次数),结束;否则,转步骤2。