目录
- 效果一览
- 基本介绍
- 程序设计
- 参考文献
效果一览
基本介绍
RRT结合APF算法的matlab代码。地图为可以替换的栅格地图。代码是在复现华中科技大学发表的英文论文的基础上的进一步改进。RRT算法。人工势场算法。
1.原论文方法简介:针对快速探索随机树(RRT)路径规划算法存在的随机抽样和效率低等问题,提出了一种结合人工势场法(APF)的改进算法。该方法首先在基本 RRT 算法的随机树扩展步骤中引入概率值,加快随机树向目标节点的收敛速度,并在随机树中加入引力成分,引导随机树向目标点生长,加快搜索过程。在障碍物周围建立斥力场,限制障碍物之间的搜索区域,减少路径的随机性。
2.本代码在复现原论文方法的基础上进一步改进。代码删除了RRT算法产生的大量冗余节点,生成更短且更合理的路径。红色路径为未删除冗余节点的路径。绿色路径为最终的路径。
3.代码还附带一份创建地图矩阵的代码。

程序设计
- 完整源码和数据私信博主回复RRT结合APF算法快速探索随机树结合人工势场法的路径规划算法(Matlab)
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代码](https://blog.csdn.net/k8291121/article/details/135536037?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171289754716800227423370%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171289754716800227423370&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-135536037-null-null.nonecase&utm_term=RRT%E7%BB%93%E5%90%88APF%E7%AE%97%E6%B3%95%E7%9A%84matlab%E4%BB%A3%E7%A0%81&spm=1018.2226.3001.4450) \[2\] [基于蚁群算法求解栅格地图路径规划问题matlab源码含GUI](https://blog.csdn.net/k8291121/article/details/135482226)