一种基于改进遗传算法的移动机器人路径规划方法与流程

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

技术特征:

1.一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,包括如下步骤:

步骤1、利用栅格模型对移动机器人工作空间进行预处理;

步骤2、指定机器人移动的起始点和目标点;

步骤3、使用改进遗传算法规划机器人最优移动路径,所述改进遗传算法包括:

步骤3.1、采用改进的双向快速遍历随机树算法生成多样性丰富、无不可行路径的初始种群,包括以下步骤:

步骤3.1.1、初始化双向快速遍历随机树,分别设置双向快速遍历随机树中的两棵子树的根节点为起始点和目标点;

步骤3.1.2、双向快速遍历随机树在栅格化工作空间中自由生长,双向快速遍历随机树的一棵子树自由生长时,在工作空间中机器人可自由行走部分随机选择一个点Prand作为生长方向,计算该子树的所有树节点与点Prand之间的欧氏距离,找出欧式距离最小的树节点Plst,该子树从树节点Plst开始以生长因子v朝着点Prand生长出新的树节点Pnew,将新的树节点Pnew连接到子树中;

步骤3.1.3、双向快速遍历随机树在栅格化工作空间中相向生长,双向快速遍历随机树中的一棵子树以另一棵子树自由生长的树节点Pnew为生长方向,同自由生长过程生长出新的树节点P’new,将新的树节点P’new连接到子树中;

步骤3.1.4、判断双向快速遍历随机树是否在起始点和目标点之间建立足够数量的连接,如果是则停止生长,进入步骤3.1.5,否则返回步骤3.1.2继续生长;

步骤3.1.5、使用回溯法生成初始种群,每次回溯均以双向快速遍历随机树的连接点作为回溯初始点,朝着双向快速遍历随机树的根节点进行回溯,直到回溯到根节点,回溯经历的树中的节点与边构成无碰撞路径,多次回溯产生的无碰撞路径组成初始种群;

步骤3.2、采用选择、交叉、变异3种遗传算子对初始种群进行进化,得到最优路径;

步骤4、将最优路径的关键点作为控制点,通过二次B样条曲线技术,对最优路径进行平滑处理,得到移动机器人的平滑最优路径。

2.根据权利要求1所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,所述步骤3.2包括如下步骤:

步骤3.2.1、计算上一步骤得到的种群中每个个体的适应度函数值f(pop);

步骤3.2.2、判断所述改进遗传算法是否达到最大迭代次数G,如果是则保存当前最优路径,进入步骤4,否则,进入步骤3.2.3;

步骤3.2.3、使用锦标赛选择策略对种群进行选择操作,设置锦标赛的联赛规模为Nchamp,从种群中随机选择Nchamp个个体,选出适应度最小的个体保留至下一代,重复锦标赛选择策略直到选出足够数量的个体,组成新种群;

步骤3.2.4、使用单点交叉策略对步骤3.2.3得到的种群进行交叉操作,从种群中随机选择两个个体作为父代,当满足交叉概率时,分别随机选择父代中选择一个关键点作为交叉点,交换父代交叉点之后的部分,组成两个新个体;

步骤3.2.5、步骤3.2.4得到的种群中的个体满足变异概率时,随机选择一个关键点作为变异点,使用变异点的8领域点替换变异点,替换后适应值最小的个体保留至下一代;

步骤3.2.6、更新种群,返回步骤3.2.1继续进化。

3.根据权利要求2所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,步骤3.2.3中,所述适应度通过适应度函数计算得到,种群中的一条路径pop的适应度函数为f(pop),则有:

式中,n为路径pop上关键点个数,(xi,yi)为关键点i在工作空间中的坐标,penalty为惩罚项。

4.根据权利要求2所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,步骤3.2.2中,最大迭代次数G=200;步骤3.2.3中,锦标赛的联赛规模Nchammp=2。

5.根据权利要求1所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,步骤3.1.2及步骤3.1.3中,将新的树节点连接到子树中的具体步骤为:计算新的树节点与子树所有节点之间的欧式距离,选择前w个欧式距离最小的树节点Plst,p2nd,...,pwth,判断树节点Plst,p2nd,...,pwth与新的树节点之间是否存在障碍物,如果否则将其与新的树节点连接。

6.根据权利要求1所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,步骤3.1.5中,所述双向快速遍历随机树的连接点为双向快速遍历随机树中两棵子树的公共树节点。

7.根据权利要求1所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,步骤3.1中,所述多样性丰富是指种群分布广度Br大,种群中的个体两两之间相似度小,种群中的个体两两之间的Hausdorff距离大,点集A和点集B的Hausdorff距离H(A,B)的计算公式如下:

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>B</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>max</mi> <mo>{</mo> <munder> <mi>max</mi> <mrow> <mi>a</mi> <mo>&Element;</mo> <mi>A</mi> </mrow> </munder> <mo>(</mo> <mrow> <munder> <mi>min</mi> <mrow> <mi>b</mi> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mi>d</mi> <mrow> <mo>(</mo> <mrow> <mi>a</mi> <mo>,</mo> <mi>b</mi> </mrow> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>,</mo> <munder> <mi>max</mi> <mrow> <mi>b</mi> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mrow> <mo>(</mo> <munder> <mi>min</mi> <mrow> <mi>a</mi> <mo>&Element;</mo> <mi>A</mi> </mrow> </munder> <mi>d</mi> <mo>(</mo> <mrow> <mi>a</mi> <mo>,</mo> <mi>b</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>}</mo> </mrow>

式中,d(a,b)为点a和点b之间的欧氏距离。

8.根据权利要求7所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,所述广度Br的计算公式如下:

<mrow> <mi>B</mi> <mi>r</mi> <mo>=</mo> <mfrac> <mn>2</mn> <mrow> <mi>N</mi> <mrow> <mo>(</mo> <mi>N</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <mi>H</mi> <mrow> <mo>(</mo> <msub> <mi>path</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>path</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mrow>

式中,N为种群中包含的路径数量,pathi为路径i关键点集合,pathj为路径j关键点集合。

9.根据权利要求1所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,步骤3.1.2,所述生长因子v=∞,即使用贪心算法,沿着生长方向一直生长,直到遇到障碍物或生长方向点。

10.根据权利要求1所述的一种基于改进遗传算法的移动机器人路径规划方法,其特征在于,步骤4中,二次B样条曲线的矩阵表示为P0,2(t),t∈[0,1],则有:

<mrow> <msub> <mi>P</mi> <mrow> <mn>0</mn> <mo>,</mo> <mn>2</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>&lsqb;</mo> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mi>t</mi> </mtd> <mtd> <msup> <mi>t</mi> <mn>2</mn> </msup> </mtd> </mtr> </mtable> <mo>&rsqb;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mn>2</mn> </mrow> </mtd> <mtd> <mn>2</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> </mrow> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>P</mi> <mn>0</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>P</mi> <mn>1</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>P</mi> <mn>2</mn> </msub> </mtd> </mtr> </mtable> </mfenced> </mrow>

式中,P0、P1、P2为二次B样条曲线的控制点。

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