路径规划算法:基于模拟退火优化的路径规划算法- 附代码
摘要:本文主要介绍利用智能优化算法模拟退火算法来进行路径规划。
1.算法原理
模拟退火算法原理请参考:网络博客
1.1 环境设定
在移动机器人的路径优化中,每个优化算法的解代表机器人的一条运动路径。优化算法会通过优化计算在众多路径中找出一条最优路径。
优化算法的设定必须和机器人运动环境模型相对应。不失一般性,假设在用栅格法对机器人运动环境建模后得出的结果是 m×n 的矩形区域,坐标值从 1 开始,如图1 。其中坐标原点栅格代表机器人的初始位置,坐标 (m,n)对应的栅格代表机器人的移动目标位置。优化算法设定的一个重要内容是确定优化算法的数学表达形式,在这里这个问题转化为用一个向量表示机器人的移动路径。经过分析发现,尽管栅格法建立的模型对空间进行了离散化,但本质上机器人的移动路径依然是连续的。
1.2 约束条件
对于机器人的路径优化来说,其运动路径必须局限在栅格空间内,即搜索不能越过栅格的矩形边界。此外,还应受障碍物的限制,即机器人的运动轨迹不能穿过存在障碍物的栅格区域。
1.3 适应度函数
在本文的建模方法中,本文路径规划目标是路径长度最短。路径的长度可以表示为:
L
(
P
a
t
h
)
=
∑
i
=
0
n
−
1
(
x
l
i
+
1
−
x
l
i
)
2
+
(
y
l
i
+
1
−
y
l
i
)
2
(1)
L(Path) = \sum_{i=0}^{n-1}\sqrt{(xl_{i+1} - xl_i)^2 + (yl_{i+1} - yl_{i})^2}\tag{1}
L(Path)=i=0∑n−1(xli+1−xli)2+(yli+1−yli)2(1)
其中(x,y)是路径中间点的坐标
利用模拟退火算法对上式进行寻优,找到最短路径。模拟退火算法参数设定如下:
%% 模拟退火算法参数设置
dim=length(noLM);%维度,即为非障碍物个数。
numLM0=round((EndPoint(1)-StartPoint(1))/4);%每次迭代选取的的中间路径点个数,可调
lb=0;%下边界
ub=1;%上边界
Max_iteration = 100;%最大迭代次数
SearchAgents_no = 30;%种群数量
fobj = @(x)fun(x,noS,noE,numLM0,net);%适应度函数
2.算法结果
3.MATLAB代码
本程序中,支持1.地图任意创建保存。2.其实点任意更改。
4.参考文献
[1]罗阳阳,彭晓燕.基于改进PSO的四轮移动机器人全局路径规划[J].计算机仿真,2020,37(07):373-379.
[2]鲁丹. 粒子群算法在移动机器人路径规划中的应用研究[D].武汉科技大学,2009.