发明名称 基于多目标粒子群算法的机械臂最小跃度轨迹优化方法
摘要 本发明公开了一种基于多目标粒子群算法的机械臂最小跃度轨迹优化方法,首先利用三次样条插值函数生成各关节从任务起点到终点经过各路径节点的轨迹;根据生成的轨迹,确定优化目标函数中与之对应的各关节最小跃度均值;根据优化目标函数和任务的约束条件确定各关节的适应度函数;最后,根据各关节的适应度函数,利用多目标粒子群优化算法,得到优化目标函数对应的Pareto最优解集,然后按照一定的原则从最优解集中选择最优的轨迹规划方案。本发明综合考虑各个关节的跃度值,在降低路径中所有关节跃度的最大值以及各关节跃度值平均性和均衡分布方面都有明显改善,利用该方法,可有效减小机械臂的执行误差,减少运动过程对关节机构的磨损。
申请公布号 CN104020665B 申请公布日期 2016.08.24
申请号 CN201410289512.4 申请日期 2014.06.25
申请人 北京邮电大学 发明人 高欣;王一帆;孙汉旭;杜明涛;贾庆轩
分类号 G05B13/00(2006.01)I 主分类号 G05B13/00(2006.01)I
代理机构 北京北新智诚知识产权代理有限公司 11100 代理人 赵郁军
主权项 基于多目标粒子群算法的机械臂最小跃度轨迹优化方法,其特征在于,包括如下步骤:1)在任务约束条件下,利用三次样条插值函数生成三次样条插值曲线,该三次样条插值函数为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>Q</mi><mrow><mi>j</mi><mi>i</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mover><mi>Q</mi><mo>&CenterDot;&CenterDot;</mo></mover><mrow><mi>j</mi><mi>i</mi></mrow></msub><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mrow><mn>6</mn><msub><mi>h</mi><mi>i</mi></msub></mrow></mfrac><msup><mrow><mo>(</mo><msub><mi>t</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><mi>t</mi><mo>)</mo></mrow><mn>3</mn></msup><mo>+</mo><mfrac><mrow><msub><mover><mi>Q</mi><mo>&CenterDot;&CenterDot;</mo></mover><mrow><mi>j</mi><mi>i</mi></mrow></msub><mrow><mo>(</mo><msub><mi>t</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow></mrow><mrow><mn>6</mn><msub><mi>h</mi><mi>i</mi></msub></mrow></mfrac><msup><mrow><mo>(</mo><mi>t</mi><mo>-</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>3</mn></msup></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><mo>&lsqb;</mo><mfrac><msub><mi>q</mi><mrow><mi>j</mi><mo>,</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mi>h</mi><mi>i</mi></msub></mfrac><mo>-</mo><mfrac><mrow><msub><mi>h</mi><mi>i</mi></msub><msub><mover><mi>Q</mi><mo>&CenterDot;&CenterDot;</mo></mover><mrow><mi>j</mi><mi>i</mi></mrow></msub><mrow><mo>(</mo><msub><mi>t</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow></mrow><mn>6</mn></mfrac><mo>&rsqb;</mo><mrow><mo>(</mo><mi>t</mi><mo>-</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><mo>&lsqb;</mo><mfrac><msub><mi>q</mi><mrow><mi>j</mi><mo>,</mo><mi>i</mi></mrow></msub><msub><mi>h</mi><mi>i</mi></msub></mfrac><mo>-</mo><mfrac><mrow><msub><mi>h</mi><mi>i</mi></msub><msub><mover><mi>Q</mi><mo>&CenterDot;&CenterDot;</mo></mover><mrow><mi>j</mi><mi>i</mi></mrow></msub><mrow><mo>(</mo><msub><mi>t</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mn>6</mn></mfrac><mo>&rsqb;</mo><mrow><mo>(</mo><msub><mi>t</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><mi>t</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001010397030000011.GIF" wi="941" he="646" /></maths>其中,Q<sub>ji</sub>(t)为时间区间[t<sub>i</sub>,t<sub>i+1</sub>]上的三次样条轨迹,<img file="FDA0001010397030000012.GIF" wi="133" he="77" />为第i个路径节点处的加速度,q<sub>ji</sub>为在起点及终点速度、加速度均为零的约束条件下第j个关节在第i个路径节点处的位置,h<sub>i</sub>为相邻路径节点间的时间间隔,t<sub>i</sub>为第i个路径节点处的时刻值,t<sub>i+1</sub>为第i+1个路径节点处的时刻值,n为包括起点、终点的路径节点个数;2)根据生成的三次样条插值曲线,确定优化目标函数中与之对应的各关节最小跃度:<maths num="0002" id="cmaths0002"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msub><mi>F</mi><mrow><mi>o</mi><mi>b</mi><mi>j</mi></mrow></msub><msub><mrow><mo>(</mo><mi>h</mi><mo>)</mo></mrow><mi>j</mi></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mo>|</mo><msub><mover><mi>Q</mi><mo>&CenterDot;&CenterDot;&CenterDot;</mo></mover><mrow><mi>j</mi><mi>i</mi></mrow></msub><mrow><mo>(</mo><mi>h</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>h</mi><mi>i</mi></msub><mo>|</mo></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mo>|</mo><mfrac><mrow><mo>(</mo><msub><mi>&alpha;</mi><mrow><mi>j</mi><mo>,</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>&alpha;</mi><mrow><mi>j</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>)</mo></mrow><msub><mi>h</mi><mi>i</mi></msub></mfrac><mo>&CenterDot;</mo><msub><mi>h</mi><mi>i</mi></msub><mo>|</mo></mrow></mtd></mtr><mtr><mtd><mtable><mtr><mtd><mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mo>|</mo><msub><mi>&alpha;</mi><mrow><mi>j</mi><mo>,</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>&alpha;</mi><mrow><mi>j</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>|</mo></mrow></mtd><mtd><mrow><mo>(</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>...</mn><mo>,</mo><mi>m</mi><mo>)</mo></mrow></mtd></mtr></mtable></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001010397030000013.GIF" wi="861" he="501" /></maths>式中,F<sub>obj</sub>(h)<sub>j</sub>为第j个关节在给定时间向量h下的优化目标函数值,<img file="FDA0001010397030000014.GIF" wi="163" he="70" />是三次样条插值曲线的跃度,m为机械臂的关节个数,α<sub>j,i</sub>为第j个关节在第i个路径节点处的加速度,n为包括起点、终点的路径节点个数,h<sub>i</sub>为相邻路径节点间的时间间隔;3)根据优化目标函数和任务约束条件,确定各关节的适应度函数:fitness(X)<sub>j</sub>=F<sub>obj</sub>(h)<sub>j</sub>+r<sub>1</sub>G<sub>v</sub>(h)<sub>j</sub>+r<sub>2</sub>G<sub>a</sub>(h)<sub>j</sub>+r<sub>3</sub>G<sub>j</sub>(h)<sub>j</sub>+r<sub>4</sub>G<sub>t</sub>(h)<sub>j</sub>式中,fitness(X)<sub>j</sub>为第j个关节在给定决策向量X下的适应度函数值,r<sub>1</sub>,...,r<sub>4</sub>为惩罚系数,G<sub>v</sub>,G<sub>a</sub>,G<sub>j</sub>,G<sub>t</sub>分别为速度、加速度、跃度、时间约束条件下的惩罚项;4)根据各关节的适应度函数,利用多目标粒子群优化算法,得到优化目标函数对应的Pareto最优解集;所述步骤4)包括如下步骤:S1:设置算法初始化的相关参数,给定种群规模,在任务约束条件的范围内随机生成初始粒子的速度与位置,产生初始群体,计算得到初始群体中各粒子适应度函数值,并依据Pareto主导准则将初始种群中所有粒子相互比较完成后得到初始群体中Pareto最优解,并将最优解存入外部存储器I中;S2:将每个粒子的个体最优极值设置为对应粒子的当前位置;S3:每个粒子的全局最优极值,从外部存储器I中随机选取;S4:对于每个粒子,根据选取出的个体最优极值和全局最优极值,按照以下公式计算新的粒子速度并更新粒子位置,得到新群体;<maths num="0003" id="cmaths0003"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>v</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mi>&omega;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><msub><mi>v</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mn>1</mn></msub><mrow><mo>(</mo><msub><mi>pbest</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>(</mo><mi>t</mi><mo>)</mo><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><msub><mi>r</mi><mn>2</mn></msub><mrow><mo>(</mo><msub><mi>gbest</mi><mi>j</mi></msub><mo>(</mo><mi>t</mi><mo>)</mo><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001010397030000021.GIF" wi="901" he="247" /></maths>其中,j为粒子的第j维,j=1,2,…,n,i表示第i个粒子,i=1,2,...,M,c<sub>1</sub>和c<sub>2</sub>为学习因子,pbest<sub>ij</sub>(t)为第t代种群中第i个粒子个体最优极值的第j维分量,gbest<sub>j</sub>(t)为第t代种群中所有粒子全局最优极值的第j维分量;r<sub>1</sub>和r<sub>2</sub>为两个相互独立并服从正态分布的随机函数,ω为惯性权重;x<sub>ij</sub>(t)为第t代种群中第i个粒子位置的第j维分量,v<sub>ij</sub>(t)为第t代种群中第i个粒子速度的第j维分量;S5:依据任务的约束条件,将新群体中所有粒子的速度、位置都限定在约束条件范围内;S6:利用新群体更新外部存储器I,若I中的粒子个数超过一定规模,计算每个粒子相应的拥挤度,保留拥挤度较大的粒子;S7:对新群体中的所有粒子,按照基于约束主导的Pareto排序法更新每个粒子的个体最优极值;粒子的全局最优极值仍然从外部存储器I中随机选取;S8:判断算法是否满足结束条件,若满足,则执行步骤S9,否则跳转至步骤S4;S9:输出外部存储器I中的所有粒子作为所述优化目标函数对应的Pareto最优解集。
地址 100876 北京市海淀区西土城路10号