精华内容
下载资源
问答
  • 简单改进遗传算法实现路径规划的方式
  • 基于遗传算法的路径规划 MATLAB 实现 主程序 clear all; close all; t=23; %过程点个数 =t 1 s=500; %种群规模 pc=0.90; %交叉概率 pm=0.20; %变异概率 pop=zeros(s,t; for i=1:s pop(i,1:t-1)=randperm(t-1; end ...
  • 遗传算法的matlab代码实现路径规划,栅格法画地图,障碍物位置可以自己定义,画出平均路径和最短路径曲线,适应度函数考虑路线顺滑度和距离两个因素
  • 遗传算法路径规划

    2018-01-19 10:37:12
    用 MATLAB 实现基于遗传算法的路径规划,只是一个9x9方格的小程序。
  • 遗传算法为基础的一种机器人的路径规划遗传算法是根据生物学上遗传学而改变的
  • 路径规划是移动机器人关键技术,针对移动机器人在已知环境下避障和搜索最优路径问题,提出了一种运用栅格法辅以遗传算法进行搜索方案。其中栅格法用来划分地图,而后为机器人自身周围八个方位进行二进制编码,这些方位...
  • 针对机器人路径规划中,应用遗传算法时容易陷入局部最优解以及收敛速度较慢等问题,设计出一种基于混沌遗传算法的路径规划方法。在基本遗传算法的基础上采用自适应调整的选择概率,并引入混沌操作,从而增强移动...
  • 遗传算法实现路径规划程序-path planning MATLAB.txt 用遗传算法实现的路径规划,MATLAB平台,不错,Greensim团队创作的,分享一下!
  • 3.用matlab对遗传算法,蚁群算法仿真,比较不同算法的优缺点,确定有效的路径规划求解算法。 所以就形成了 遗传算法–>栅格法+TSP问题 蚁群算法–>栅格法+TSP问题 路径优化的问题很常见,本带马工会竭尽所...

    这是一个多年以前研究过的课题,现在简单说一下

    本课题主要是
    1.学习理解机器人路径规划算法,重点研究遗传算法和蚁群算法。
    2.对典型的二维场景采用栅格法进行matlab建模。
    3.用matlab对遗传算法,蚁群算法仿真,比较不同算法的优缺点,确定有效的路径规划求解算法。

    所以就形成了
    遗传算法–>栅格法+TSP问题
    蚁群算法–>栅格法+TSP问题

    路径优化的问题很常见,本带马工会竭尽所能解决小白入坑的问题(手动笑哭)。评论会推送至邮箱,我看见了就会回复。可接私活。
    也欢迎各位大佬详细交流,

    展开全文
  • 在MATLAB中,使用遗传算法完成路径规划的问题,简单来说就是走迷宫。使用MATLAB进行仿真与实现。
  • 在ROSnavigation-kinetic-devel中,使用现成RAstar接口,编写遗传算法路径规划程序。能完成小车自主寻路,效率略低于Astar算法。
  • 基于改进遗传算法的AGV路径规划苑光明,翟云飞,丁承君,张鹏【摘要】[摘要]针对AGV在自动化生产线中原有路径规划算法存在路径拐弯次数多,不利于AGV自动控制的问题,提出了一种改进遗传算法。为提高AGV运行的效率...

    基于改进遗传算法的

    AGV

    路径规划

    苑光明,翟云飞,丁承君,张

    【摘

    要】

    [摘

    要]

    针对

    AGV

    在自动化生产线中原有路径规划算法存在路径拐

    弯次数多,不利于

    AGV

    自动控制的问题,提出了一种改进遗传算法。为提高

    AGV

    运行的效率,该算法引入了拐弯因素。针对在路径规划中传统遗传算法收

    敛速度慢的问题,结合分层方法,改进传统的精英保留策略。在算法进化过程

    中,根据个体适应度的变化动态调整交叉概率和变异概率,加快算法的收敛速

    度。

    Matlab

    仿真实验结果显示

    :

    改进遗传算法能够规划出一条更合理的路径,

    相比较传统方法减少了转弯次数,改善了搜索路径质量,表明该算法可以满足

    自动化生产线

    AGV

    路径规划的要求。

    【期刊名称】

    北京联合大学学报(自然科学版)

    【年

    (

    ),

    期】

    2018(032)001

    【总页数】

    5

    【关键词】

    [关键词]

    自动导航车

    ;

    路径规划

    ;

    改进遗传算法

    ;

    转弯次数

    0

    引言

    随着自动化技术的不断发展,目前国内大部分制造业,尤其是在汽车制造、制

    药等劳动力密集的制造企业,传统的物料运输方式效率低,柔性较差,且需要

    的人工量大,对于企业来说难以达到其高效生产的要求。为了克服这种现状,

    相关领域积极引入

    AGV(Automated

    Guided

    Vehicle)

    自动导航车,达到物料

    运输的目的[

    1

    2

    AGV

    在实际应用中仍然有一些需要解决的问题,路径规

    划是其中比较重要的一个问题,当

    AGV

    收到调度系统下达的任务后,会自动规

    划出

    1

    条从当前位置到达目标位置的路径,该路径需要优化的方面有行程时间、

    展开全文
  • 提出一种基于神经网络和遗传算法的路径规划算法。采用神经网络模型对机器人的环境信息进行描述,利用神经网络的输出建立遗传算法的适应度函数;然后使用遗传算法优化路径。在该算法中将需规划路径的二维编码简化成一...
  • 基于改进遗传算法的双重路径约束下多AGV的路径规划作者:Zengliang Han, Dongqing Wang ,Feng Liu,Zhiyong Zhao,翻译:Wu Xian摘要:论文主要研究一种改进的遗传算法在多个自动导引车(AGV)路径规划中的应用。...
    基于改进遗传算法的双重路径约束下多AGV的路径规划

    作者:Zengliang Han, Dongqing Wang ,Feng Liu,Zhiyong Zhao,翻译:Wu Xian
    摘要:论文主要研究一种改进的遗传算法在多个自动导引车(AGV)路径规划中的应用。其创新体现两方面,首先,三交换启发交叉算子用来获得比传统的两交换启发交叉算子的改进遗传算法优化的更多信息,产生更多的后代。第二,同时对全AGV路径总距离和每个单AGV路径距离施加约束,以此来获得优化的最短总路径距离。仿真结果表明,利用改进的遗传算法能够有效缩短全AGV路径总距离及最长单AGV路径距离。

    关键词:遗传算法,AGV,路径规划

    原文网址:http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0181747

    Multi-AGV path planning with double-pathconstraints by using an improved genetic algorithm

    Abstract: Thispaper investigates an improved genetic algorithm on multiple automated guidedvehicle (multi-AGV) path planning. The innovations embody in two aspects. First,three-exchange crossover heuristic operators are used to produce more optimaloffsprings for getting more information than with the traditional two-exchangecrossover heuristic operators in the improved genetic algorithm. Second,double-path constraints of both minimizing the total path distance of all AGVsand minimizing single path distances of each AGV are exerted,gaining theoptimal shortest total path distance. The simulation results show that thetotal path distance of all AGVs and the longest single AGV path distance areshortened by using the improved genetic algorithm.

    Key words: geneticalgorithm;AGV; path planning

     

    1 多AGV路径规划问题

    1.1  AGV系统相关问题

    多目标的优化已经应用于包括工程、运输、物流等许多领域,所谓多目标问题就是寻找一个满足所有目标函数的解决方案。多目标优化方法包括经典优化算法(如加权和法,ε约束法,迭代法)和智能优化方法(如基于遗传进化的方法、基于种群的方法)。具有多目标性的多无人车系统,由于他们在工作站间的材料运输上的高效率,在物流配送领域正发挥着越来越重要的作用。

    AGV系统的应用面临的几个重要问题:AGV的数量确定,路径规划和约束施加等等。确定车辆最优数量是AGV系统管理中的基本问题。为了解决这一问题,有几种方法被提出,它们的主要目标是利用足够数量的AGV及时执行所有任务。例如,Vivaldini等人提出了一种新的模型,通过整合任务分配和路由,来为一组任务的执行估计无人车的最优数量。冀和夏等人为AGV系统建立了一个新的模型,采用基于二分查找的近似解析法研究车辆最小数量。Koo等人研究了AGV车队尺寸模型,用等待时间来衡量各种车辆调度以确定合适的车队大小。

    多AGV路径规划是保证物料在生产过程中高效流动的关键。路径规划涉及调度,行程安排,任务路线等三个问题。和旅行商问题类似,多AGV路径规划问题会在寻找最短路程(时间)方面,由于搜索空间太大而难以求解。Smolic-Rocak等人用向量形式的时间窗求解多AGV系统的最短路径问题。Draganjac等人提出了一种多AGV系统考虑非完全车辆约束的最短可行路径规划算法。王等人提出了一种基于生成优良个体的TSP多后代遗传算法。江和严为TSP开发了一种离散果蝇优化算法。

    在多AGV路径规划中存在各种约束,例如无碰撞约束,时间窗约束,以及距离/时间约束。

    1.2  算法简介

    传统的遗传算法采用两个交换交叉算子进行交叉操作,即利用两个亲本个体来产生子代染色体。显然,传统的只有两个亲代个体而非多亲代个体的遗传算法,将获得较少的父信息,并且降低了子代性能的多样性。为了提高后代的多样性,我们提出了三交换交叉算子进行交叉操作,即采用三个父代个体产生的后代染色体。

    区别于传统路径约束即只对全路径的总距离进行约束,新的算法对全AGV路径及每个AGV单路径进行双路径限制。该策略成倍缩短了总/单路径长度,并得到了最优结果。利用三个父代个体比其他传统的方法只有两个父代个体来产生的后代染色体,这种方法提高了生产后代的染色体信息,增加了获得继承父代优良特性的可能性并且加速了改进算法的搜索速度。对算法的仿真结果显示,相比传统遗传算法,改进后的算法能获得较短的全AGV路径总距离。

    2 AGV工作空间建模

    一个多AGV的车间制造系统担任物料输送的工作,有M个AGV工作于N个工作站之间。对于工作站的分配考虑以下方面:

    • M个AGV往返于N个工作站之间(N>M);

    • 只有一个AGV需要通过每个工作站(除了起点);

    • 每个AGV从相同的起点(工作站)出发并回到起点;

    • 每个AGV分别以预定的路径和固定的速度单独行进一条路线;

    • 施加双重约束:所有AGV路径总距离应最小化同时每个AGV单路径距离应尽量小。

    如图1所示

    图1无人车系统工作路线图

    Fig.1 Thework diagram of the AGV system

    用符号表示

    目标函数:

    条件:式(5)指定每个AGV从启动站0开始,所有工作站只能通过AGV访问一次;式(6)表示任何路径都是从启动工作站开始,式(7)说明同样以起点为结束。

    3 算法设计

    采用遗传算法进行多AGV路径规划的关键问题是采用有效的编码和解码方法。遗传算法反复地选择、交叉和变异人口,以产生新一代的人口,比父母更适应环境,直到满足所需的要求。遗传算法的步骤包括:遗传编码、种群选择、适应度函数、选择操作、交叉操作和矩阵译码。

    3.1 遗传编码

    对N个运输工作站分别记为1,2,,N,并增加M-1个虚拟标记,代表M-1个虚拟位置,分别标记为N+1,...,N+M-1。这些虚拟标记与起始点一致,代表每当出现一个虚拟符号时,相应的AGV返回到起始点。假设一个基因代表一个单AGV运行路径,一条染色体中包含的所有基因,即所有AGV的运动路径。为了避免子路径的频繁出现,设起始点0到起点0的路径距离是无限的。

    例如,有10个工作站,其代码是0-9,由5台AGV完成任务,一个随机的染色体编码如图2所示

    图2一条随机染色体

    Fig. 2  A random chromosome

    5辆AGV的路径如下:

    0—6—2—0

    0—7—0

    0—1—8—0

    0—3—4—0

    0—5—9—0

    在迭代过程中,可能会有两种不可行的方案,如图3、4所示。

    图3 不可行情况1

    Fig. 3 Situation 1 of dead solutions

    图4 不可行情况2

    Fig .4  Situation 2 of dead solutions

    1. 虚拟符号出现在染色体的一端

    情况1下,5辆AGV的路径如下:

    0—0—0

    0—2—6—7—0

    0—1—8—0

    0—3—4—0

    0—5—9—0

    0—0—0路径的距离是无限的,并不能满足距离最小化约束,所以这个染色体将会被淘汰。

    2. 虚拟符号不断出现在一条染色体上

    情况2下,5辆AGV的路径如下:

    0—6—2—0

    0—7—8—1—0

    0—0—0

    0—3—4—0

    0—5—9—0

    显然,0—0—0路径的染色体并不能满足最小化距离约束,所以这个染色体也会被淘汰。

    3.2 群体选择

    适当的种群规模对遗传算法收敛性是很重要的。如果种群规模太小,遗传算法很容易得到局部最优解,反之,如果种群规模过大,则遗传算法的计算速度会降低。种群规模与N有关,适当的种群规模应控制在4N和6N之间。

    3.3 适应度函数

    这里采用指数适应度函数,该方法思想来自SA(模拟退火)过程。由于以指数规模变换的优势,这里选择一种指数变换的适应函数。

    其中z(=z1+z2+zk)是其中的一个父代个体;α和β是运算常量,α决定强制复制程度,值越小,则以最大适应值的个体的复制强度越大。

    3.4 选择操作

    选择操作决定再结合或交叉父代个体和预定种群产生的后代个体数量。选择操作会直接影响遗传算法的结果。不合适的选择操作将造成进化终止或使算法丧失多样性,造成早熟问题。这里采用轮盘赌轮选择父代个体,个体i的概率等于其适应值与群体适应值和的比值,如下式所示。

    其中fi 是个体i的适应值,Q是所选染色体数或种群大小。

    3.5 交叉操作

    传统上,交叉指的是两个染色体以某种方式相互交换某些基因以形成一个新个体的过程。交叉操作后产生新的一代,继承了父代的基本特征。三交换启发式交叉算子算法的思想是在三个亲本个体间产生一个后代。与传统的只有双亲的方法相比,提出的该方法增加了产生子代染色体的信息。亲本染色体的增多提高了继承双亲优良性状的可能性,加快了算法的搜索速度。三个交换启发式交叉算子方法的图示如图5所示。

    图5 带5个基因的三交叉遗传算法

    Fig.5 Three-exchange heuristic crossoveroperator method with 5 genes.

    以一项涉及10个工作站和5台AGV任务为例,对三交叉遗传算法详细过程如下

    十个工作站间的距离如表1所示。

    表1 10个工作站间的距离表

    Tab.1 The distance between the tenworkstations.

    随机选取三个个体进行交叉操作:

    A = 6 2 12 7 111 8 10 3 4 13 5 9

    B = 3 2 12 7 911 1 4 13 5 10 6 8

    C = 5 3 10 8 711 2 6 12 1 4 13 9

    路径A的总距离为81,单个AGV路径的最大距离为27.

    路径B的总距离为78,单个AGV路径的最大距离为24.

    路径C的总距离为71,单个AGV路径的最大距离为22.

    以染色体A为参考,6是染色体的第一个位置,从右到左,循环移动染色体B和C中的基因,当6处于第一个位置时停止,然后选择6作为后代的第一点,结果如下

    A= 6 2 12 7 11 1 8 10 3 4 13 5 9

    B= 6 8 3 2 12 7 9 11 1 4 13 5 10

    C= 6 12 1 4 13 9 5 3 10 8 7 11 2

    S= 6 * * * * * * * * * * * *

    从表1中,我们可以得到相应距离,d(6,2)=8,d(6,8)=11,d(6,12)=d(6,0)=9.因此有d(6,8)>d(6,12)>d(6,2).

    为了满足单AGV路径距离最小化的约束条件,我们选择2作为第二点,结果如下

    A = 6 2 12 7 11 1 8 10 3 4 13 5 9
    B = 6 2 12 7 9 11 1 4 13 5 10 8 3
    C = 6 2 12 1 4 13 9 5 3 10 8 7 11

    同样,我们可以确定的交叉后代把其他基因。利用单AGV路径距离最小化约束,第一交叉步的交叉后代为S = 6 2 12 7 9 11 1 4 13 5 10 8 3

    上面得到的后代染色体表明所有AGV路径总距离为65,最大路径距离单AGV是17。显然,得到的S所有AGV路径总距离和最大单AGV路径距离比原来的A,B,和C都小。

    3.6 变异操作

    突变是指相同的染色体内的基因交换,从而产生新的个体。变异可以保证遗传算法的局部搜索能力,保持群体的多样性,防止遗传算法过早收敛。论文中采用交换变异方法,其思想是选择有序的数a,b,c(a<b<c),然后在c之后插入中间路径a和b。

    例如,如果序列号a=2,b=5和C=10是随机生成的,相应的个体转换如下所示:

    A= 6 2 12 7 11 1 8 10 3 4 13 5 9

    变异后:

    A= 6 1 8 10 3 4 2 12 7 11 13 5 9

    3.7 矩阵解码

    假设一个有10个工作站和5台AGV的生产线。图6显示了一条随机染色体A,5个AGV各自的路径分别为

    0—6—2—0

    0—7—0

    0—1—8—0

    0—3—4—0

    0—5—9—0

    建立10*10的工作站距离矩阵D

    具体解码步骤如下:

    (1)获得AGV的可达距离矩阵

    将AGV1的运动路径与矩阵D比对,值1代表AGV1通过工作站,其他情况用0表示。可得到AGV1的可达矩阵X1:

    同样,可以得到其他的AGV可达矩阵X2,X3,X4,X5。

    (1)得到AGV路径的距离矩阵

    将矩阵Xk(k=1,2,...,5)与D相乘得到每个AGV的距离矩阵Dk(k=1,2,...,5)

    如AGV1路径的距离矩阵为

    (1)计算出AGV的路径距离

    AGV1的路径距离为Z1=6+3+8=17,同样地,Z2=3+12,Z3=4+4+5=13,Z4=12+7+8=27,

    Z5=5+5+2=12,还有全AGV的总路径距离Z=Z1+Z2+Z3+Z4+Z5=84

    a.AGV路径图 

     b.遗传算法迭代图

    图6.AGV路径图和新的遗传算法

    Fig.6 AGV diagram and map of the newgenetic algorithm.

    4 模拟仿真

    在仿真中,假设一个5台 AGV和50个工作站的生产场景,并满足在第2节列出的要求和双路径约束条件。设置种群大小为200,应用所提出的新遗传算法进行路径优化。两种遗传算法的仿真结果如图3-6所示。图3和图4表明,在3000次迭代中,新遗传算法的总路径距离为72,传统遗传算法的路径距离为86。图表明,在60次迭代中,传统遗传算法的最大AGV距离为34,新遗传算法的最大距离为32。图10显示了这两种算法使用条形图之间的距离比较。从仿真中,我们可以得到:

    (1)改进的遗传算法与传统遗传算法相比,总路径距离更短。

    (2)改进遗传算法收敛速度比传统遗传算法快。


    a.AGV路径图

    b.遗传算法迭代图

    图7 AGV路径图和传统遗传算法

    Fig .7 AGV diagram and map of thetraditional genetic algorithm.

    图8 最大单AGV距离

    Fig. 8 Maximumdistance of single AGV.

    图9 两种算法路程比较

    Fig . 9 Distancecomparison between two algorithms.

    5 结论

    通过将多AGV路径规划问题放到遗传算法的框架中来研究该进遗传算法在多AGV路径优化中的应用。在改进的遗传算法中,采用三交换启发交叉算子比传统两交换启发交叉算子具有更多信息,得到更加优良的后代。通过对总路径距离及各自AGV距离最小的双路径约束,在AGV输送任务中得到一个优化的最短路径总距离。仿真结果表明,采用改进的遗传算法缩短了AGV的路径距离和最短的单路径距离。

    参考文献:

    [1]Hu XS, Jiang JC, Egardt B, Cao DP. Advanced power-source integration in hybridelectric vehicles: multicriteria optimization approach. IEEE Transactions onIndustrial Electronics. 2015; 62(12), 7847–7858.

    [2]Hu XS, Moura Scott J, Nilolce M, Egardt B, Cao DP. Integrated optimization ofbattery sizing, charging, andpower management in plug-in hybrid electric vehicles. IEEE Transactions onControl Systems Technology.2012; 24(3), 1036–1043.

    [3]Hu XS, Zou Y, Yang YL. Greener plug-in hybrid electric vehicles incorporatingrenewable energy and rapidsystem optimization. Energy. 2016; 111(20): 971–980.

    [4]Hu XS, Clara MM, Yang YL. Charging, power management, and battery degradationmitigation in plugin hybrid electric vehicles: a unified cost-optimal approach.Mechanical Systems and Signal Processing.2017; 87(17), 4–16.

    [5]Zhang Z, Zhao DB, Gao JW, Wang DQ, Dai YJ. FMRQ-a multiagent reinforcementlearning algorithm for fully cooperative tasks. IEEE Transactions onCybernetics. 2017; 47(6): 1367–1379.

    [6]Anvari B, Angeloudis P, Ochieng WY. A multi-objective GA-based optimisation forholistic manufacturing, transportation and assembly of precast construction.Automation in Construction. 2016; 71(2):226–241.

    [7]Hadas Y, Nahum OE. Urban bus network of priority lanes: A combinedmulti-objective, multi-criteria and group decision-making approach. TransportPolicy. 2016; 52: 186–196.

    [8]Sabar NR, Kieu LM, Chung E, Tsubota T, de Almeida PEM. A memetic algorithm forreal world multiintersection traffic signal optimisation problems. EngineeringApplications of Artificial Intelligence. 2017;63: 45–53.

    [9]Xu G, Liang X, Yao S, Chen D, Li Z. Multi-objective aerodynamic optimization ofthe streamlined shape of high-speed trains based on the Kriging model. PLoSOne. 2017; 12(1): e0170803.

    [10]ChodrowPS, al-Awwad Z, Jiang S, Gonza´lez MC. Demand and congestion in multiplextransportation networks. PLoS One. 2016; 11(9): e0161738.

    [11]RamezaniM, Bashiri M, Tavakkoli-Moghaddam R. A new multi-objective stochastic model fora forward/reverse logistic network design with responsiveness and qualitylevel. Applied Mathematical Modelling. 2013; 37(1-2): 328–344.

    [12]Wang F, Lai XF, Shi N. A multi-objective optimization for green supply chainnetwork design, Decision Support Systems. 2011; 51(2): 262–269.

    展开全文
  • 采用栅格对机器人工作...用遗传算法解决优化问题时步骤是固定,就是种群初始化,选择,交叉,变异,适应度计算这样,那么下面我就说一下遗传算法求栅格地图中机器人路径规划在每个步骤问题、难点以及解决办法。
  • 基于遗传算法的移动机器人路径规划

    万次阅读 多人点赞 2019-02-10 18:09:40
    之前在网上找基于遗传算法的移动机器人路径规划资料的时候,没有找到理想的开源代码。最后参照论文,用matlab写了代码。平时学习的时候,会看很多人写的一些博客和公众号文章,觉得很有帮助,所以也想分享一点自己学...

      之前在网上找基于遗传算法的移动机器人路径规划资料的时候,没有找到理想的开源代码。最后参照论文,用matlab写了代码。最近开了公众号——Joe学习笔记,会不定期更新一些文章,主要是自己平时学到的知识,内容包括自动驾驶、计算机视觉、人工智能和机器人技术。我会第一时间把文章更新在公众号上,感兴趣的可以扫描下面的二维码关注并分享哦!
    在这里插入图片描述
      最近新出了一个关于机器人路径规划和轨迹优化的视频课程,介绍常用的路径规划算法和轨迹优化算法,感兴趣的可以点击b站链接观看。更新中。。。 https://www.bilibili.com/video/BV1yT4y1T7Eb
      遗传算法视频讲解地址:https://www.bilibili.com/video/BV1Sf4y1475E/

    下面具体来讲讲基于遗传算法的移动机器人路径规划,文章是从公众号上搬过来的。
    1.地图的建立和种群编码
      机器人进行路径规划之前首先要建立地图,本文采用栅格法建立移动机器人的行走空间模型。栅格面积越小,空间中各种环境信息表示越精确,但同时占用的存储空间就会加大,算法所使用的搜索时间就会加大。若栅格面积越大,则空间中各种环境信息不能准确表示出来,容易出现碰撞问题。所以在建立环境模型时,需要先做以下规定:
    (1)不考虑障碍物高度问题,机器人行走空间为二维平面空间;
    (2)障碍物的大小、位置已知,并且不存在动态障碍物;
    (3)在规划时可以把机器人看做质点处理。
      为了方便设置栅格面积,我们通常用正方形表示机器人的行走空间。如果障碍物面积小于正方形面积,可以将障碍物扩大为正方形;如果障碍物面积大于正方形面积,可以用两个正方形表示障碍物面积;如果障碍物面积更大,则可以用多个正方形表示。建模后机器人行走空间如图1所示,图中白色部分为自由栅格,黑色部分为障碍物栅格。
    在这里插入图片描述
      在构建栅格地图时,首先以地图左下角第一个栅格为坐标原点建立直角坐标系。因此每一个栅格可以用(x,y)的坐标形式表示,比如左下角第一个栅格可以表示为(1,1)。并且从左下角开始每一个栅格进行编号N,编号从0开始。编号和坐标的转换公式为:
    在这里插入图片描述
      Gsize为每一行栅格数,int为取整操作。已为每一个栅格编好号码,因此可以用此编号来表示一条路径,比如起点为0终点为24的路径可以表示为(0,6,7,8,13,19,24),在遗传算法中即为十进制编码。
    2.代码整体框架
      遗传算法是一种智能优化算法,主要用来解决优化问题,其主要步骤为种群初始化、适应度函数计算、选择、交叉和变异。应用于移动机器人路径规划时其主要步骤相同,流程图如图2所示。具体每步的方法将在以下小节做详细介绍。
    在这里插入图片描述
    3.初始化种群
      机器人的起始位置为栅格0,目标位置为栅格99。初始化种群要求随机产生多条可行路径,可行路径表示不与障碍物栅格相碰撞的路径。可行路径的产生分为两个主要步骤。第一步首先产生一条间断路径。机器人每次行走一个栅格,因此每一行至少有一个栅格在可行路径中。所以初始化时先按顺序在每一行随机取出一个无障碍栅格,形成一条间断的路径,其中为了减短路径长度路径的第一个和最后一个栅格分别为机器人的起始位置和目标位置。
      第二步是将间断的路径连接为连续路径。在这一步中首先从第一个栅格开始判断相邻的两个栅格是否为连续栅格,栅格是否连续的判断方法为:在这里插入图片描述
      若D等于1则说明两个相邻栅格连续,反之不连续。对于不连续的栅格取两个栅格的中点栅格,中点栅格的坐标计算为:
    在这里插入图片描述
      若新栅格为障碍物栅格则以上下左右顺序取新栅格的相邻栅格,并判断此栅格是否已经在路径中(防止陷入死循环),如果此栅格为无障碍栅格且不在路径中则插入路径中,如果遍历上下左右四个栅格后没有满足条件的栅格则删除这条路径;若新栅格为无障碍物栅格,则插入两个不连续栅格中间。继续判断新插入的栅格和新插入的栅格的前一个栅格是否连续,若不连续则循环以上步骤,直到两个栅格连续。当两个栅格连续后取下一个栅格,循环以上步骤,直到整条路径连续。初始化一条路径的流程图如图3所示。很久没画框图了把框图的开始和结束画成了长方形,懒得改了将就看下吧。
    在这里插入图片描述
    4.适应度函数计算
      适应度函数分成两部分,分别用来判断路径的长短和平滑程度。路径长度的计算相对简单,公式如下:
    在这里插入图片描述
      要求的是机器人的路径最短,而选择方式采用的是轮盘赌的方式,所以适应度函数的第一部分为:
    在这里插入图片描述
      机器人由于运动学和动力学的约束,行进时拐弯不宜过大,并且相对平滑的路径有利于机器人的行驶,因此产生的路径有平滑度的要求。路径越平滑,相邻三点形成的角度越大,角度越大相邻三点之间的距离越大,因此计算路径中所有相邻三点的距离作为适应度函数的第二部分,计算公式如下:
    在这里插入图片描述
      d3的值可对应路径中连续三点的夹角的四种情况分别为180度、钝角、直角和锐角,其中180度的三点成一直线,平滑度最好,钝角、直角次之。由于机器人动力学的约束,锐角是不允许的。所以分别对除直线外的3种情况给予惩罚,分别为5、30和无穷大,可以根据实际情况改动惩罚的大小。惩罚之和的倒数即为适应度函数的第二部分。
    适应度函数的两部分需要取一个权重,权重公式如下:
    在这里插入图片描述
      根据路径长度和平滑度之间的权重选择参数a和b。
    5.选择方法
      选择方法采用简单的基于概率的轮盘赌方法。首先计算出所有个体的适应度函数的和,再计算每一个个体所占的比率,计算公式如下:
    在这里插入图片描述
      然后根据每个个体的概率,以轮盘赌的方式选择出下一代个体。轮盘赌的方式保证了部分非最优的个体,可以有效的防止算法陷入局部最优解。
    6.交叉方式
      首先需要确定一个交叉概率pc,产生0-1之间的一个随机数,并和交叉概率pc比较,若小于pc则进行交叉操作。交叉方式采用的是单点交叉的方式,具体的交叉操作是找出两条路径中所有相同的点,然后随机选择其中的一个点,将之后的路径进行交叉操作。具体的流程图如图4(a)所示,其中n为路径数(即种群数量)。
    7.变异方式
      首先需要确定一个变异概率pm,产生0-1之间的一个随机数,并和变异概率pm比较,若小于pm则进行变异操作。变异方法是随机选取路径中除起点和终点以外的两个栅格,去除这两个栅格之间的路径,然后以这两个栅格为相邻点,使用初始化路径中的第二步将这两个点进行连续操作。此时有可能无法产生连续的路径,则需要重新选择两个栅格执行以上操作,直到完成变异操作。具体的流程图如图3(b)所示,其中n为路径数(即种群数量)。(还是一样把开始和结束框画错了。)
    在这里插入图片描述
    8.仿真结果
      在20*20的栅格地图上进行实验,起点为0栅格,终点为399栅格,其中pc=0.8,pm=0.2,a=1,b=0。当b=0即表示不考虑路径的平滑度,只考虑了路径长度作为适应度函数,栅格地图上的路径如图5(a)所示,最短路径如图5(b)所示。从图5(a)中可以看到算法成功的找到了一条无障碍路径,但路径中有多处直角的转折,不利于机器人行驶,有时甚至出现锐角的情况,这种情况一般的机器人是无法行驶的。从图5(b)中得出,经过10次左右迭代算法已经收敛,最优路径的长度为31.799(相邻栅格间隔为1个单位长度)。当a=5,b=2时,即考虑路径平滑度时的算法结果如图5(c)、(d)所示,由于路径顺滑函数中对出现直角的情况加了较大的惩罚,出现锐角的情况加一个无穷大的惩罚,因此顺滑了路径且避免了锐角的出现。此时最优路径的长度也为31.799。
    在这里插入图片描述
    9.总结
      本文的重点是如何实现基于遗传算法的路径规划算法,首先介绍栅格地图的构建和十进制种群的编码方法。然后给出了整个过程的流程图,在此基础上详细介绍了种群初始化、适应度函数、选择方法、变异方法和交叉方法,并对其中较复杂的种群初始化、变异方法和交叉方法给出了程序流程图。主要的缺点是生成的路径不够平滑,可能是间断路径连续化产生的路径不够平滑,可以在此方面改进,也可以改进适应度函数中的路径平滑的部分,设计更加合理的平滑函数。
      由于自己水平有限,其中的错误在所难免,大家发现错误可以在下面留言,不懂的地方也可以互相讨论。本文部分内容参考了文献:张小兵. 基于遗传算法的移动机器人路径规划[D]. 西安建筑科技大学, 2014.

    展开全文
  • 基于遗传算法的机器人路径规划的实现。经本人亲自验证,是可以运行的C++程序。 基于遗传算法的机器人路径规划的实现。经本人亲自验证,是可以运行的C++程序。
  • java-web遗传算法最短路径规划

    千次阅读 2017-08-26 22:16:13
    使用遗传算法,使用D3可视化库。前端部分使用CSS样式将需要点击区域和body区域设置不同样式。然后所有内容都是用JavaScript完成,对于JavaScript基本知识不做过多介绍,这也是一门面向对象语言。 首先使用...
  • z改进遗传算法的机器人路径规划研究
  • 让每个人平竽地捉升口我 PAGE PAGE # 基于遗传算法的机器人路径规划MATLAB源码 算法的思路如下取幹障碍物顶点连线的中点为路径虑?相互连接路径点.将机器人移动的起点和终点 限制在各路径点上利用Dijkstra算法來求...
  • 电子书。利用遗传算法进行路径规划的一篇论文
  • 加尔普 遗传算法的机器人路径规划 受到李在成(Jaesung Lee)的启发,金大元的论文 我待会再编辑

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 402
精华内容 160
关键字:

遗传算法的路径规划