基于遗传模拟退火算法的蛇形机器人运动控制方法与流程

文档序号:12116565阅读:来源:国知局

技术特征:

1.基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,包括步骤:

获取蛇形机器人首关节的目标位置和目标姿态;

采用遗传模拟退火算法对蛇形机器人进行逆解,求解获得蛇形机器人的各关节转角;

蛇形机器人的驱动器获取求解获得的各关节转角并控制各关节进行转动。

2.根据权利要求1所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述采用遗传模拟退火算法对蛇形机器人进行逆解,求解获得蛇形机器人的各关节转角的步骤,包括:

S1、初始化遗传模拟退火算法的初始种群、初始温度以及退温操作函数;

S2、计算种群中每一个个体的被选中概率,并根据计算出的被选中概率对种群进行随机选择;

S3、对随机选择后的种群进行交叉操作后,再进行变异操作;

S4、判断是否满足预设的停止准则,若是,则结束遗传算法并输出最优个体作为蛇形机器人的转角矩阵,反之,对种群中的个体进行更新;

S5、更新迭代参数,将遗传模拟退火算法的温度tk下降、遗传代数k增加以及种群数组更新后,返回步骤S2进行迭代。

3.根据权利要求2所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述步骤S1,包括:

S11、根据蛇形机器人的关节数,生成遗传模拟退火算法的初始种群,所述初始总群是由下式的初始个体构成的:

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>R</mi> <mo>=</mo> <mo>&lsqb;</mo> <msub> <mi>r</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>r</mi> <mn>2</mn> </msub> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msub> <mi>r</mi> <mi>n</mi> </msub> <mo>&rsqb;</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>Q</mi> <mo>=</mo> <mo>&lsqb;</mo> <msub> <mi>&theta;</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>&theta;</mi> <mn>2</mn> </msub> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msub> <mi>&theta;</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msub> <mi>&theta;</mi> <mi>n</mi> </msub> <mo>&rsqb;</mo> </mrow> </mtd> </mtr> </mtable> </mfenced>

上式中,n表示蛇形机器人的关节数,R表示变异因子,且R中的每个元素均为随机生成的处于[0,1]范围内的随机数,Q表示解空间的向量,且Q中的第i个元素满足下式:

<mrow> <msub> <mi>&theta;</mi> <mi>i</mi> </msub> <mo>=</mo> <mo>-</mo> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>+</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>&times;</mo> <mo>&lsqb;</mo> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>-</mo> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow>

S12、响应于用户输入的数据初始化遗传模拟退火算法的初始温度,并设定如下式的退温操作函数:

tk+1=λ·tk

上式中,tk表示当前温度,tk+1表示退温操作后的温度,λ表示衰减系数,其取值范围为0.5~0.99。

4.根据权利要求2所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述步骤S2,包括:

S21、设定遗传模拟退火算法的适应度函数;

S22、根据适应度函数,采用下式计算种群中每一个个体的被选中概率,并根据计算出的被选中概率对种群进行随机选择:

<mrow> <msub> <mi>f</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>exp</mi> <mo>{</mo> <mo>-</mo> <mfrac> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>f</mi> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> </msub> </mrow> <msub> <mi>t</mi> <mi>k</mi> </msub> </mfrac> <mo>}</mo> </mrow>

其中,fmin代表种群中个体适应度的最小值,f(i)代表第i个个体的适应度值,fi(tk)代表在当前温度tk下该个体被选中的概率。

5.根据权利要求4所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述步骤S21,其具体为:

根据下式,设定遗传模拟退火算法的适应度函数f(Q):

<mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>Q</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>&Delta;</mi> <mi>E</mi> <mrow> <mo>(</mo> <mi>Q</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>0.001</mn> </mrow> </mfrac> </mrow>

其中,ΔE(Q)表示预设的目标函数,其表达式如下:

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>&Delta;</mi> <mi>E</mi> <mrow> <mo>(</mo> <mi>Q</mi> <mo>)</mo> </mrow> <mo>=</mo> <mrow> <mo>(</mo> <mi>&alpha;</mi> <mo>&times;</mo> <mi>&Delta;</mi> <mi>P</mi> <mo>+</mo> <mi>&beta;</mi> <mo>&times;</mo> <mi>&Delta;</mi> <mi>Q</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>&Delta;</mi> <mi>P</mi> <mo>=</mo> <msqrt> <mrow> <mi>&Sigma;</mi> <msup> <mrow> <mo>(</mo> <msub> <mi>P</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mover> <mi>P</mi> <mo>&OverBar;</mo> </mover> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>&Delta;</mi> <mi>Q</mi> <mo>=</mo> <msqrt> <mrow> <mi>&Sigma;</mi> <msup> <mrow> <mo>(</mo> <msub> <mi>&theta;</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <msub> <mi>&theta;</mi> <mi>i</mi> </msub> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mtd> </mtr> </mtable> </mfenced>

上式中,Pj和θi分别代表蛇形机器人的齐次变化矩阵0Tn的位置元素和姿态元素,分别表示蛇形机器人的目标位置和目标姿态,α和β均表示预设的权重因子。

6.根据权利要求2所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,

其特征在于,所述步骤S3,包括:

S31、按照设定的交叉率,采用赌轮盘法对种群中的个体进行选择;

S32、对选择后的种群进行交叉操作;

S33、对交叉操作后的种群进行变异操作。

7.根据权利要求6所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述步骤S31,包括:

S311、按照设定的交叉率Pc在种群中进行搜索,计算出每一个个体的适应度值后,按从大到小的顺序进行排序,所述交叉率Pc为:

Pc=0.7-w×N/tk

其中,w代表比例系数,取值在0到1之间,N为种群规模;

S312、根据下式计算每一个个体的适应度值占总适应度值的比例Pk(Qi)后,

组成赌轮盘:

<mrow> <msub> <mi>P</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>Q</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <msub> <mi>Q</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mi>j</mi> <mi>n</mi> </munderover> <mi>f</mi> <mrow> <mo>(</mo> <msub> <mi>Q</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

上式中,f(Qi)表示第i个个体的适应度值;

S313、随机产生一个0~1之间的随机数,根据随机数在赌轮盘上所处的群尖选择对应的个体;

S314、重复执行步骤S313直到选取的个体达到种群容量的最大值。

8.根据权利要求6所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述步骤S32,包括:

S321、从选择后的种群中选择两个个体作为父代个体,进行染色体交换从而产生子代个体;

S322、根据下式计算出子代的变异因子R*

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mo>*</mo> </msubsup> <mo>=</mo> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mo>&times;</mo> <msub> <mi>R</mi> <mn>2</mn> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mo>(</mo> <mo>)</mo> </mrow> <mo>)</mo> <mo>&times;</mo> <msub> <mi>R</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>2</mn> <mo>*</mo> </msubsup> <mo>=</mo> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mo>&times;</mo> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mo>(</mo> <mo>)</mo> </mrow> <mo>)</mo> <mo>&times;</mo> <msub> <mi>R</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced>

上式中,下标1、2表示个体的序号,R表示父代个体的变异因子,rand()是0~1间的随机数;

S323、根据下式计算新的解向量Q*

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>Q</mi> <mn>1</mn> <mo>*</mo> </msubsup> <mo>=</mo> <msubsup> <mi>R</mi> <mn>1</mn> <mo>*</mo> </msubsup> <mo>&times;</mo> <msub> <mi>Q</mi> <mn>1</mn> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mn>1</mn> <mo>*</mo> </msubsup> <mo>)</mo> </mrow> <mo>&times;</mo> <msub> <mi>Q</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>Q</mi> <mn>2</mn> <mo>*</mo> </msubsup> <mo>=</mo> <msubsup> <mi>R</mi> <mn>2</mn> <mo>*</mo> </msubsup> <mo>&times;</mo> <msub> <mi>Q</mi> <mn>2</mn> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mn>2</mn> <mo>*</mo> </msubsup> <mo>)</mo> </mrow> <mo>&times;</mo> <msub> <mi>Q</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced>

上式中,下标1、2表示个体的序号,Q表示父代个体的解向量。

9.根据权利要求6所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述步骤S33,包括:

S331、对交叉操作后的种群,在其个体中按照设定的变异概率Pm随机选择一个个体Qjj1j2,…,θji,…,θjn),所述变异概率Pm为:

Pm=tk/K

其中,K为常数,满足在算法开始时让Pm等于0.7;

S332、通过下式对选择的个体进行变异:

<mfenced open = '{' close = ''> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>&theta;</mi> <mrow> <mi>j</mi> <mi>i</mi> </mrow> <mo>*</mo> </msubsup> <mo>=</mo> <msub> <mi>&theta;</mi> <mrow> <mi>j</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>P</mi> <mi>s</mi> </msub> <mo>&times;</mo> <mo>(</mo> <mrow> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>-</mo> <msub> <mi>&theta;</mi> <mrow> <mi>j</mi> <mi>i</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>&times;</mo> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mo>&gt;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>&theta;</mi> <mrow> <mi>j</mi> <mi>i</mi> </mrow> <mo>*</mo> </msubsup> <mo>=</mo> <msub> <mi>&theta;</mi> <mrow> <mi>j</mi> <mi>i</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>P</mi> <mi>s</mi> </msub> <mo>&times;</mo> <mo>(</mo> <mrow> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>+</mo> <msub> <mi>&theta;</mi> <mrow> <mi>j</mi> <mi>i</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>&times;</mo> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mo>&lt;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> </mtable> </mfenced>

其中,Ps为变异系数,其表达式为:

Ps=D+(fave-f(Qj))/fave

上式中,D=(fmax-fave)/fmax,fmax为本代个体中适应度的最大值,fave为本代个体中适应度的平均值。

10.根据权利要求2所述的基于遗传模拟退火算法的蛇形机器人运动控制方法,其特征在于,所述步骤S4中所述判断是否满足预设的停止准则的步骤,其具体为:

判断是否达到最大遗传代数,或者是否满足以下条件:

<mrow> <mi>f</mi> <mrow> <mo>(</mo> <msubsup> <mi>Q</mi> <mi>i</mi> <mo>*</mo> </msubsup> <mo>)</mo> </mrow> <mo>&gt;</mo> <mn>500</mn> </mrow>

其中,f(Qi*)表示第i个个体的适应度值,Q*表示变异操作后的新的解向量。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1