目录
- 效果一览
- 基本介绍
- 程序设计
- 参考文献
效果一览
基本介绍
RRT结合APF算法的matlab代码。地图为可以替换的栅格地图。代码是在复现华中科技大学发表的英文论文的基础上的进一步改进。RRT算法。人工势场算法。
1.原论文方法简介:针对快速探索随机树(RRT)路径规划算法存在的随机抽样和效率低等问题,提出了一种结合人工势场法(APF)的改进算法。该方法首先在基本 RRT 算法的随机树扩展步骤中引入概率值,加快随机树向目标节点的收敛速度,并在随机树中加入引力成分,引导随机树向目标点生长,加快搜索过程。在障碍物周围建立斥力场,限制障碍物之间的搜索区域,减少路径的随机性。
2.本代码在复现原论文方法的基础上进一步改进。代码删除了RRT算法产生的大量冗余节点,生成更短且更合理的路径。红色路径为未删除冗余节点的路径。绿色路径为最终的路径。
3.代码还附带一份创建地图矩阵的代码。
程序设计
- 完整源码和数据私信博主回复RRT结合APF算法快速探索随机树结合人工势场法的路径规划算法(Matlab)
clc;clear;close all;
% Experimental result parameters
% Ll = Path length; Tt = Time; Node = Number of nodes
% All_Iterations = Iterations
Ll = []; Tt = []; Node = []; Cut_L=[]; All_Iterations = [];
%-------------------------------------
load MAP.mat; %这里可以替换为自己的地图矩阵
m = size(MAP,1);
n = size(MAP,2);
global obs
global obs_new
obs_index=[];
for index=1:m*n
if ~MAP(index)
obs_index(end+1)=index;
end
end
for k=1:length(obs_index)
[x,y]=ind2sub(size(MAP), obs_index(k));
obs(k,1)=x;
obs(k,2)=y;
end
obs = [obs(:,2),m-obs(:,1)];
obs = obs*1000/m;
obs(:,3) = 1000/m;
obs(:,4) = 1000/m;
%-------------------------------------
for j=1:1:2 % 运行次数
% 设置参数
p=0.3; % 模板偏差概率
start_pose =[0,0]; % 起点
global goal_pose;
goal_pose = [999,999]; % 目标点
global step;
step = 20;
global kp; % 引力系数
kp=1;
global p0; % 斥力最大作用范围
p0 = 250;
global krep; % 斥力系数
参考文献
[1] 基于人工势场结合快速搜索树APF+RRT实现机器人避障规划附matlab代码
[2] 基于蚁群算法求解栅格地图路径规划问题matlab源码含GUI