基于粒子群优化算法的移动机器人全局路径规划-附代码

基于粒子群优化算法的移动机器人全局路径规划-附代码


摘要:本文主要介绍一种基于粒子群优化算法的移动机器人全局路径规划算法。

1.问题描述与建模

对于移动机器人, 路径规划就是寻找其在环境中移动时所必须经过的点的集合. 如图1 所示, 在全局坐标系O-XY 中, S 为机器人的出发点, G 为终点.图中黑色实心填充的物体表示障碍. 机器人的路径规划即为寻找一个点的集合
P = { S , p 1 , p 2 , . . , P m , G } (1) P = \{S,p_1,p_2,..,Pm,G\} \tag{1} P={S,p1,p2,..,Pm,G}(1)
其中 ( p 1 , p 2 , . . , p m ) (p_1,p_2,..,p_m) (p1,p2,..,pm)为全局地图中一个点的序列,即规划目标. 对点 p j p_j pj的要求是: p j p_j pj为非障碍点, p j p_j pj与相邻点的连线上不存在障碍点.

在这里插入图片描述

图1.路径产生过程

在全局地图中建立一个新的坐标系, 以 SG 作为 X ′轴, 垂直于 X′且经过 S 点的直线作为 Y′轴,X′, Y′轴的方向如图 1所示. 对应的坐标变换为:
[ x ′ y ′ ] = [ c o s α − s i n α s i n α c o s α ] [ x y ] + [ x s y s ] \left[\begin{matrix}x'\\ y'\end{matrix}\right] = \left[\begin{matrix}cos\alpha&-sin\alpha\\ sin\alpha&cos\alpha\end{matrix}\right]\left[\begin{matrix}x\\ y\end{matrix}\right] + \left[\begin{matrix}xs\\ ys\end{matrix}\right] [xy]=[cosαsinαsinαcosα][xy]+[xsys]
其中: ( x , y ) , ( x ′ , y ′ ) (x, y) , ( x′, y′) (x,y),(x,y) 分别为地图中某一点在不同坐标系 O − X Y O-X Y OXY S − X ′ Y ′ S-X ′Y′ SXY下的坐标, A A A为坐标轴 X X X X ′ X′ X的夹角, ( x S , y S ) ( x S , y S ) (xS,yS) S S S 点在坐标系 O − X Y O-X Y OXY 下的坐标。

将线段 S G SG SG进行 ( m + 1 ) ( m + 1) (m+1) 等分, 在每一个等分点作垂线, 得到平行直线族 ( l 1 , l 2 , ⋯ , l m ) ( l_1 , l_2 , ⋯, l_m ) (l1,l2,,lm) , 它们与路径 P P P的交点即为目标点序列 ( p 1 , p 2 , ⋯ , p m ) ( p_1 , p_2 , ⋯, p_m ) (p1,p2,,pm) . 定义 S S S p 0 p_0 p0 , G G G p m + 1 p_{m+ 1} pm+1 , 路径 P P P 的长度 L P LP LP 为:
L P = L s p 1 + ∑ j = 1 m − 1 L p j p j + 1 + L p m G = ∑ j = 0 m L p j p j + 1 (2) LP=Lsp_1+\sum_{j=1}^{m-1}Lp_jp_{j+1}+Lp_mG=\sum_{j=0}^mLp_jp_{j+1}\tag{2} LP=Lsp1+j=1m1Lpjpj+1+LpmG=j=0mLpjpj+1(2)
其中 L p j p j + 1 Lp_jp_{j+1} Lpjpj+1 表示点 p j p_j pj 与点 p j + 1 p_{j+1} pj+1间的距离. 最终优化算法的目标函数即为求一条不存在障碍物的路径使得LP的值最小。

2.基于粒子群算法的路径规划

粒子群算法原理这里不在阐述,网上资料很多。粒子群的适应度函数为:
f i t n e s s = a r g m i n { L P } (2) fitness = argmin\{LP\} \tag{2} fitness=argmin{LP}(2)
约束条件为,路径不能经过障碍物。

3. 实验结果

粒子群相关参数设定如下:

%% 粒子群参数设定
%速度范围设定
Vmax = 2;
Vmin = - 2;
dim = lineNum-1;%变量维度,段数-1
fobj = @(x) fun(x,PointStart,PointEnd,ks,bs);%适应度函数
lb = 1; %变量下边界
ub = boundary-1;%变量上边界
SearchAgents_no = 30;%种群数量
Max_iteration = 1000;%最大迭代次数

设置不同的分段数如5,10,15。如结果如下图所示:
在这里插入图片描述
在这里插入图片描述
粒子算法的收敛曲线如下图所示:
在这里插入图片描述

4.参考文献

[1]孙波,陈卫东,席裕庚.基于粒子群优化算法的移动机器人全局路径规划[J].控制与决策,2005(09):1052-1055+1060.

5.Matlab代码

基于粒子群优化算法的移动机器人全局路径规划
个人资料介绍

  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
粒子群路径规划是一种基于仿生学的算法,用于求解最优路径问题。MATLAB是一种功能强大的数学软件,可以用于实现粒子群路径规划算法粒子群路径规划中,把待求解问题看作一个在解空间中的搜索问题。其中,每个解被称为一个粒子,其位置表示了解的特征,速度表示了解的变化方向和速度。粒子群中每个粒子根据自身的位置和速度,以及整个粒子群中的最优解,进行位置和速度调整,寻找最优解。 在MATLAB中实现粒子群路径规划算法的步骤如下: 1. 初始化粒子群的位置和速度。可以随机生成粒子的位置和速度,并设定每个粒子的初始最优解。 2. 根据粒子位置,计算适应度函数值。适应度函数可以根据问题的实际情况来确定,可以是路径长度、成本等。 3. 更新每个粒子的最佳位置和全局最佳位置。比较当前最优解与新解的适应度函数值,若新解优于当前最优解,则更新当前最优解。 4. 根据全局最佳位置和个体最佳位置,更新粒子的速度和位置。速度更新公式包括个体和社会学习因子。 5. 重复步骤3和4,直到满足停止条件。 在MATLAB中实现粒子群路径规划算法主要涉及到数据结构的操作和适应度函数的定义。可以利用矩阵和向量来表示粒子群的位置、速度和适应度函数值。根据更新公式,可以利用循环和向量运算来更新粒子的位置和速度。 总之,使用MATLAB可以很方便地实现粒子群路径规划算法,通过编写相应的程序,可以求解最优路径问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值