上一篇介绍了蚁群算法,本篇介绍路径规划的另一种经典算法——遗传算法,主要介绍算法原理,流程以及在路径规划中的应用示例。

目录

  • 1. 理论基础
  • 2. 算法实现流程
  • 3. 路径规划应用示例
  • 4. 总结

1. 理论基础

遗传算法源自于达尔文进化论的自然选择理念,是一种通过模拟自然进化过程搜索最优解的方法。解决问题时,问题的所有潜在解构成一个种群,种群中不同个体的基因编码不同。初代种群产生以后,根据个体适应度选择个体,并经过遗传学的组合交叉以及变异,产生新的个体,接着继续进行选择,进行迭代,在迭代过程中,使得种群的个体适应度越来越高,最终末代种群的最优个体,便可视为问题的近似最优解。

2. 算法实现流程

(1)种群初始化
首先规定种群中个体的数目n,种群迭代次数k,每个个体的染色体数目m,以及根据实际问题确定染色体编码方式,同时还有种群的交叉概率α,以及变异概率β。
接着,初始化种群中所有个体的染色体类型(一般采用随机生成的方式)
(2)计算适应度
确定个体适应度计算函数,一般适应度与求解目标正相关,如求最短路径时,适应度函数可以设置为:

式中:A为影响因子,D为路径长度。利用适应度函数,计算初代种群中每个个体的适应度。
(3)选择操作
采用轮盘赌法或者锦标赛法等方法,对上一代中的个体进行选择,以生成新一代的种群。
(4)交叉操作
种群中每两个相邻个体的染色体都有α的概率进行交叉操作,当发生交叉操作时,相邻个体的染色体,以规定的交叉比例因子进行交叉,如下图:

(5)变异操作
种群中每个个体都有β的概率发生变异操作,发生变异时,染色体上的基因在允许范围内随机变异,如下图所示:

(6)计算适应度函数
对新一代个体,进行适应度函数的计算,并记录最优个体。
至此,一次迭代完成,若未到达迭代次数,则转到步骤(3)继续迭代。

3. 路径规划应用示例

对如图所示二维路径规划问题,绿色圆代表障碍物,蓝色小圆形代表中间点。


(1)首先初始化种群
这里规定个体的每条染色体表示路径上的一个中间点,每条染色体上有两个基因,分别代表点的横纵坐标。
在生成初代种群时,个体染色体的基因坐标必须在规定范围内,即保证中间点必须在规划区域内。
(2)适应度计算与选择
这里的适应度函数可以如第二节中那样规定,同时,由于此问题有避障要求,因此需要添加碰撞检测函数。
碰撞检测函数可以规定为:规定最小路径单元step,在每相邻两个点形成的路径上,以step划分出若干离散点,判断每个离散点是否位于障碍物区间内,如下图所示:

同时,适应度函数中加入碰撞因子,如下式:

式中,c为碰撞因子,若发生碰撞,则c为0,否则为1。
接着,可利用轮盘赌法,锦标赛法等进行选择。上一节介绍过轮盘赌法,因此这里介绍一下锦标赛法。
若种群数目为n,则从上一代中随机选取一半的个体,选择其中适应度函数最高的作为一个新的个体,接着继续从上一代中随机选取一半……如此循环,直至生成所有新一代个体。
(3)交叉与变异操作
首先进行交叉操作,对种群中每两个相邻的个体,生成随机数与交叉概率比较,若大于交叉概率,则按下式进行交叉:

式中,X_old,X_new分别代表交叉前,后的染色体,μ代表交叉比例因子。
接着进行变异操作,同样的,对种群中的每个个体,生成随机数与变异概率比较,若大于变异概率,则按下式进行变异:

式中,X_H,X_L分别代表染色体取值上下限,rand为生成的0~1之间的随机数。
(4)计算适应度
经过上述操作后,新一代种群生成,接着计算其中每个个体的适应度,并记录最优个体与最佳适应度值。
至此,一次迭代完成。

4. 总结

本篇主要介绍了遗传算法的理论基础,算法实现流程,并结合具体的二维路径规划问题,介绍了其具体的应用方法。

六自由度机器人(机械臂)运动学建模及运动规划系列——避障路径规划算法补充:遗传算法相关推荐

  1. 六自由度机器人(机械臂)运动学建模及运动规划系列(四)——轨迹规划

    本篇目录 一.轨迹规划概述 二.关节空间规划 1. 点对点规划 2. 多节点规划 示例程序 三.笛卡尔空间规划 1. 速度规划 2. 位置规划 3. 姿态插补 4. 基于几何解法的一种简化位置规划方法 ...

  2. 六自由度机器人(机械臂)运动学建模及运动规划系列(二)——运动学分析

    本篇主要介绍六轴机械臂的运动学分析. 运动学分析是工业机器人研究和应用的重要内容,是运动控制的基础,主要研究机器人末端坐标系与基坐标系的转换关系,分为正运动学和逆运动学分析两部分. 另外,对于刚刚学习 ...

  3. 六自由度机器人(机械臂)运动学建模及运动规划系列(三)——机器人建模及运动学分析的Matlab仿真

    在完成机器人的建模以及运动学分析之后,可以利用Matlab中的Robotics工具箱进行仿真. 本篇目录 一.工具箱下载 二.机器人建模仿真 三.机器人运动学计算仿真 四.小结 一.工具箱下载 要在M ...

  4. 六自由度机器人(机械臂)运动学建模及运动规划系列(五)——避障路径规划

    在之前的内容中,我们对机器人的运动轨迹进行了规划,但是,这种规划方法的运动路径是根据简单的轨迹人为组合起来的,具有较大的任意性.在实际的复杂工作环境中,采用人工规划路径的方法,难以保证规划的效率和准确 ...

  5. 六自由度机器人(机械臂)运动学建模及运动规划系列——避障路径规划算法补充:粒子群算法(PSO)

    上一篇介绍了遗传算法,本篇接着介绍应用于路径规划的另一种算法--粒子群算法(PSO),主要介绍算法的理论基础以及实现流程等. 本篇目录 1. 算法起源与理论基础 2. 算法实现流程 (1)粒子群初始化 ...

  6. MATLAB机器人机械臂运动学正逆解、动力学建模仿真与轨迹规划

    MATLAB机器人机械臂运动学正逆解.动力学建模仿真与轨迹规划,雅克比矩阵求解.蒙特卡洛采样画出末端执行器工作空间 基于时间最优的改进粒子群优化算法机械臂轨迹规划设计 ID:4610679190520 ...

  7. 资深老师傅讲解六轴机器人机械臂的特征和优缺点!

    资深老师傅讲解六轴机器人机械臂的特征和优缺点! 六轴关节式机器人机械手臂使用旋转轴(或者叫活关节)进行装载.卸载和后处理工作.它使用一直线轴重新定位,可以做出灵活得像人类一样的动作.其具有六轴自由度, ...

  8. 【机器人学】使用代数法求解3自由度拟人机械臂的逆运动学解

    这篇博客会讨论一下使用解析法求解3自由度拟人机械臂的逆解及分析. 一.机械臂的逆解 机械臂的逆运动学问题就是由给定的末端执行器位置和方向,确定机械臂各个关节变量的值.机械臂的求解方法可以分为两大类:数 ...

  9. 修正逆解文章——六轴UR机械臂正逆运动学求解_MATLAB代码(标准DH参数表)

    如下参考链接1的作者大大实现了UR5机械臂的正运动学和逆运动学的Matlab代码.但逆解部分在不同版本的Matlab中运行有错误. 本篇文章是MatlabR2016a下完成的,并说明一下原代码错误的原 ...

最新文章

  1. python csv读取-使用python获取csv文本的某行或某列数据的实例
  2. Java NIO(一) Java NIO 概述
  3. Exception in thread main java.io.IOException: No FileSystem for scheme: hdfs
  4. 使用深度学习框架 Tensorflow 实现线性回归 (Linear Model)
  5. 微软服务器系统桌面无图标,开机桌面没有图标的几种解决方法
  6. java成绩前五名的代码_一个 JAVA 程序,实现输出考试成绩的前三名
  7. Linux下svn 安装搭建配置流程
  8. 抓取百度翻译的接口(通过反编译js获取token、gtk、sign等签名信息)
  9. database link问题解决
  10. 洛谷 p4234 最小差值生成树
  11. 计算机键盘怎么输入平方,word里平方2怎么打_在word里输入㎡符号的方法
  12. Windows - 文件系统 学习/收集
  13. 微信的原创保护机制到底是如何实现的?
  14. Linux Shell字符串变量头尾去除空格
  15. SolidWorks二次开发-关于录制宏保存的格式
  16. 解决上网认证系统 IP 更改后 Ubuntu 等 Linux 系统无法上网的问题
  17. 去除bootstrap的table样式中单元格边框线
  18. 手机触屏事件(jquery)
  19. ubuntu Segmentation Fault错误原因
  20. 对象存储OSS基本概念讲解

热门文章

  1. 中国监管的出拳,矿工们何去何从?
  2. 《杜拉拉升职记》职场36计总结
  3. linux中realplayer.rpm格式的软件安装,Linux中安装Realplay 10.0 的方法
  4. 1.34.FlinkX\工作原理\快速起步|1.35.Flink资料
  5. 阿里云WINDOWS SERVER 2019服务器安装MySQL数据库及设置远程访问权限教程
  6. 没有时间可以浪费了!探险家伊泽瑞尔...
  7. 深入了解电感与磁珠的异同
  8. 知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得
  9. 解决win11 ms-windows-store无法打开商店
  10. csdn排名上升规则测试