多自由度空间机械臂非完整路径规划方法与流程

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

技术特征:

1.一种多自由度空间机械臂非完整路径规划方法,其特征在于,该方法包括如下的步骤:

步骤一,机械臂各关节运动规律函数化,采用正弦函数对关节角进行参数化设计;

步骤二,利用初始、终端、过程状态约束条件,将步骤一所述正弦函数中的未知参数用待定参数表示,以减少待定参数个数;

步骤三,基于终端时刻本体控制精度和过程约束要求,得到适应度目标函数;

步骤四,进行待定参数的遗传算法寻优,基于本体-臂耦合动力学关系寻找使适应度目标函数最小的待定参数组合,据此确定机械臂完整运动路径。

2.根据权利要求1所述的多自由度空间机械臂非完整路径规划方法,其特征在于,所述步骤一中,采用了关于时间的五次多项式正弦函数对关节角进行参数化设计,以约束关节角的运动范围,并保证机械臂运动过程的平滑,函数关系表示为:

θi(t)=Ai1sin(ai7t7+ai6t6+ai5t5+ai4t4+ai3t3+ai2t2+ai1t+ai0)+Ai2 (1)

其中,变量下标i对应机械臂系统的第i个关节;

所述步骤二中,根据如下约束条件化简待定参数:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>&Theta;</mi> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mn>0</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>&Theta;</mi> <mn>0</mn> </msub> <mo>,</mo> <mi>&Theta;</mi> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mi>f</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>&Theta;</mi> <mi>d</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mover> <mi>&Theta;</mi> <mo>&CenterDot;</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mn>0</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mover> <mi>&Theta;</mi> <mo>&CenterDot;</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mi>f</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mover> <mi>&Theta;</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mn>0</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mover> <mi>&Theta;</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mi>f</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mo>_</mo> <mi>min</mi> </mrow> </msub> <mo>&le;</mo> <msub> <mi>&theta;</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>&le;</mo> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mo>_</mo> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,Θ=[θ1 θ2 ... θn]T,n为机械臂关节总数,1≤i≤n,且t0≤t≤tf

将(1)式求一阶及二阶导数,并将(2)式定义的约束条件代入,得到:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mo>_</mo> <mi>max</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mo>_</mo> <mi>min</mi> </mrow> </msub> </mrow> <mn>2</mn> </mfrac> <mo>,</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mo>_</mo> <mi>max</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mo>_</mo> <mi>min</mi> </mrow> </msub> </mrow> <mn>2</mn> </mfrac> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>0</mn> </mrow> </msub> <mo>=</mo> <msup> <mi>sin</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mo>&lsqb;</mo> <mrow> <mo>(</mo> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mn>0</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>/</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> <mo>&rsqb;</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>3</mn> </mrow> </msub> <mo>=</mo> <mo>-</mo> <mfrac> <mrow> <mn>3</mn> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>7</mn> </mrow> </msub> <msubsup> <mi>t</mi> <mi>f</mi> <mn>7</mn> </msubsup> <mo>+</mo> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mi>6</mi> </mrow> </msub> <msubsup> <mi>t</mi> <mi>f</mi> <mi>6</mi> </msubsup> <mo>-</mo> <mn>10</mn> <mrow> <mo>(</mo> <mi>arcsin</mi> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mi>d</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> </mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> </mfrac> <mo>-</mo> <mi>arcsin</mi> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mi>0</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> </mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> </mfrac> <mo>)</mo> </mrow> </mrow> <msubsup> <mi>t</mi> <mi>f</mi> <mn>3</mn> </msubsup> </mfrac> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>4</mn> </mrow> </msub> <mo>=</mo> <mo>-</mo> <mfrac> <mrow> <mn>8</mn> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>7</mn> </mrow> </msub> <msubsup> <mi>t</mi> <mi>f</mi> <mn>7</mn> </msubsup> <mo>+</mo> <mn>3</mn> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mi>6</mi> </mrow> </msub> <msubsup> <mi>t</mi> <mi>f</mi> <mi>6</mi> </msubsup> <mo>-</mo> <mn>15</mn> <mrow> <mo>(</mo> <mi>arcsin</mi> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mi>d</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> </mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> </mfrac> <mo>-</mo> <mi>arcsin</mi> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mi>0</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> </mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> </mfrac> <mo>)</mo> </mrow> </mrow> <msubsup> <mi>t</mi> <mi>f</mi> <mn>4</mn> </msubsup> </mfrac> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>5</mn> </mrow> </msub> <mo>=</mo> <mo>-</mo> <mfrac> <mrow> <mn>6</mn> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mn>7</mn> </mrow> </msub> <msubsup> <mi>t</mi> <mi>f</mi> <mn>7</mn> </msubsup> <mo>+</mo> <mn>3</mn> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mi>6</mi> </mrow> </msub> <msubsup> <mi>t</mi> <mi>f</mi> <mi>6</mi> </msubsup> <mo>-</mo> <mn>6</mn> <mrow> <mo>(</mo> <mi>arcsin</mi> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mi>d</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> </mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> </mfrac> <mo>-</mo> <mi>arcsin</mi> <mfrac> <mrow> <msub> <mi>&theta;</mi> <mrow> <mi>i</mi> <mi>0</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> </mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> </mfrac> <mo>)</mo> </mrow> </mrow> <msubsup> <mi>t</mi> <mi>f</mi> <mn>5</mn> </msubsup> </mfrac> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

由此,ai6、ai7为待定参数,其余未知参数均用待定参数表示,定义:

<mrow> <mi>A</mi> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mn>16</mn> </msub> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>2</mi> <mn>6</mn> </mrow> </msub> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>n</mi> <mn>6</mn> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mn>1</mn> <mi>7</mi> </mrow> </msub> </mtd> <mtd> <msub> <mi>a</mi> <mi>27</mi> </msub> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>n</mi> <mn>7</mn> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

根据(4)式,通过对A中待定参数组合的设定,来调节机械臂关节空间从初始状态Θ0运动到期望终端状态Θd的路径,进而对本体姿态运动加以干预。

3.根据权利要求2所述的多自由度空间机械臂非完整路径规划方法,其特征在于,所述步骤三中,适应度目标函数表示为:

<mrow> <mi>J=</mi> <mfrac> <mrow> <mi>||</mi> <mi>&delta;</mi> <mi>q</mi> <mo>|</mo> <mo>|</mo> </mrow> <msub> <mi>K</mi> <mi>q</mi> </msub> </mfrac> <mo>+</mo> <mfrac> <msub> <mi>J</mi> <mover> <mi>&Theta;</mi> <mo>&CenterDot;</mo> </mover> </msub> <msub> <mi>K</mi> <mover> <mi>&Theta;</mi> <mo>&CenterDot;</mo> </mover> </msub> </mfrac> <mo>+</mo> <mfrac> <msub> <mi>J</mi> <mover> <mi>&Theta;</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> </msub> <msub> <mi>K</mi> <mover> <mi>&Theta;</mi> <mo>&CenterDot;&CenterDot;</mo> </mover> </msub> </mfrac> <mo>+</mo> <mfrac> <msub> <mi>J</mi> <mrow> <mi>&Delta;</mi> <mi>q</mi> </mrow> </msub> <msub> <mi>K</mi> <mrow> <mi>&Delta;</mi> <mi>q</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

其中,δq为本体姿态四元数终值误差,||·||为求范数运算,Kq为根据本体姿态控制精度要求设定的阈值,只要||δq||<Kq,即认为结果满足要求;分别表示关节角速度和角加速度超出其允许值的百分比,分别为与对应的阈值;JΔq为机械臂运动过程中星本体姿态相对于初值最大变化量的百分比,KΔq为与JΔq对应的阈值。

4.根据权利要求3所述的多自由度空间机械臂非完整路径规划方法,其特征在于,所述步骤四中,星本体-机械臂耦合动力学与运动学关系表示为:

<mrow> <msub> <mi>&omega;</mi> <mn>0</mn> </msub> <mo>=</mo> <msub> <mi>J</mi> <mrow> <mi>b</mi> <mi>a</mi> <mo>_</mo> <mi>&omega;</mi> </mrow> </msub> <mover> <mi>&Theta;</mi> <mo>&CenterDot;</mo> </mover> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mover> <mi>q</mi> <mo>&CenterDot;</mo> </mover> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>q</mi> <mn>0</mn> </msub> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <msub> <mi>q</mi> <mn>1</mn> </msub> </mtd> <mtd> <msub> <mi>q</mi> <mn>0</mn> </msub> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> <mtd> <msub> <mi>q</mi> <mn>2</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>q</mi> <mn>2</mn> </msub> </mtd> <mtd> <msub> <mi>q</mi> <mn>3</mn> </msub> </mtd> <mtd> <msub> <mi>q</mi> <mn>0</mn> </msub> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <msub> <mi>q</mi> <mn>3</mn> </msub> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> <mtd> <msub> <mi>q</mi> <mn>1</mn> </msub> </mtd> <mtd> <msub> <mi>q</mi> <mn>0</mn> </msub> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>&omega;</mi> <mn>0</mn> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

其中,Jba_ω为本体角速度-机械臂关节角速度雅可比矩阵,是根据和机械臂各关节的历史构型实时计算得到;q为本体姿态四元数。

5.根据权利要求4所述的多自由度空间机械臂非完整路径规划方法,其特征在于,所述步骤四中,对适应度目标函数按如下流程进行计算:

S11、对于一组确定的A值,代入(1)式的一阶导数计算各关节角速度,进而确定以及(5)式中的

S12、根据(6)式计算本体的角速度ω0

S13、根据(7)式计算本体四元数的时间导数

S14、计算本体四元数终值以及(5)式中JΔq

S15、根据(5)式计算适应度目标函数。

6.根据权利要求5所述的多自由度空间机械臂非完整路径规划方法,其特征在于,所述步骤四中,采用遗传算法对待定参数矩阵A寻优的流程如下:

S21、随机产生含np个个体的初始种群P0;np为种群大小;

S22、计算每个个体的适应度目标函数:若存在任意个体的适应度目标函数的每一项均小于1,则终止寻优,确定该个体为待定参数矩阵A的最优值,并根据由此最优值确定的(1)式θi(t)和(6)式中计算机械臂最优运动路径;否则转S23;

S23、确定当代种群的进化代数Ng:若Ng=Ng_max,将当代种群中适应度目标函数最小的个体作为待定参数矩阵A的次优估计值,并根据此次优估计值确定的(1)式θi(t)和(6)式中计算机械臂次优运动路径;否则转S24;

S24、进行复制、交叉、变异操作生成后代种群,Ng=Ng+1,并转S22。

7.根据权利要求5所述的多自由度空间机械臂非完整路径规划方法,其特征在于,所述步骤四中,遗传算法的算法参数:种群大小np=40,复制概率pc=0.8,交叉概率pm=0.08,有效基因数ne=4,进化总代数Ng_max=300。

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