clc;clear;close all;
img=imread('map4.bmp');
mapgray=im2gray(img);
map=im2bw(img,0.5);
startPoint=[10 10];%出发点
endPoint=[490 490];%目标点
range=20;%距离阈值
k1=45;%传统PRM算法的随机采样点数
k2=90;%传统PRM算法的随机采样点数
n=100;%重复实验次数
fprintf("对比性100次重复试验结果:\n")
%传统PRM算法重复性实验k=45
successPath = 0; % 总成功次数
pathLength = 0; % 总的路径长度
totTime = 0; % 总的规划时间
for i=1:n
tic;
drop=[startPoint;endPoint];
for i=1:k1
x=double(int32(rand(1,2) .* size(map)));
if feasiblePoint(x,map)
drop=[drop;x];
end
end
%构建无向路径图
edges=undirectedpath(drop,map);
%A*算法搜寻路径
[pathFound,len,path]=astart(startPoint,endPoint,drop,edges);
%统计成功次数、路径长度
if pathFound
successPath = successPath + 1;
pathLength = pathLength + len;
totTime = totTime + toc;
end
end
successRate = 100 * successPath / n; % 成功率
avgPathLength = pathLength / successPath; % 平均路径长度
avgPlanTime = totTime / successPath; % 平均规划时间
fprintf('传统PRM算法 ')
fprintf('成功次数:%-3d 成功率:%3.0f%% 平均路径长度:%f 平均规划时间:%f\n', ...
successPath, successRate, avgPathLength, avgPlanTime);
%传统PRM算法重复性实验k=45
successPath = 0; % 总成功次数
pathLength = 0; % 总的路径长度
totTime = 0; % 总的规划时间
for i=1:n
tic;
drop=[startPoint;endPoint];
for i=1:k2
x=double(int32(rand(1,2) .* size(map)));
if feasiblePoint(x,map)
drop=[drop;x];
end
end
%构建无向路径图
edges=undirectedpath(drop,map);
%A*算法搜寻路径
[pathFound,len,path]=astart(startPoint,endPoint,drop,edges);
%统计成功次数、路径长度
if pathFound
successPath = successPath + 1;
pathLength = pathLength + len;
totTime = totTime + toc;
end
end
successRate = 100 * successPath / n; % 成功率
avgPathLength = pathLength / successPath; % 平均路径长度
avgPlanTime = totTime / successPath; % 平均规划时间
fprintf('传统PRM算法 ')
fprintf('成功次数:%-3d 成功率:%3.0f%% 平均路径长度:%f 平均规划时间:%f\n', ...
successPath, successRate, avgPathLength, avgPlanTime);
%基于角点的PRM算法重复性实验
successPath = 0; % 总成功次数
pathLength = 0; % 总的路径长度
totTime = 0; % 总的规划时间
tic;
for i=1:n
tic;
drop=[startPoint;endPoint];
%%角点检测
H = corner(mapgray,'MinimumEigenvalue',45);
%删除距离较近的角点
newH = deletePoints(H, range);
%产生可行节点
drop=cornerPoint(drop,newH,range,map);
%构建无向路径图
edges=undirectedpath(drop,map);
%A*算法搜寻路径
[pathFound,len,path]=astart(startPoint,endPoint,drop,edges);
%统计成功次数、路径长度
if pathFound
successPath = successPath + 1;
pathLength = pathLength + len;
totTime = totTime + toc;
end
end
successRate = 100 * successPath / n; % 成功率
avgPathLength = pathLength / successPath; % 平均路径长度
avgPlanTime = totTime / successPath; % 平均规划时间
fprintf('基于角点的PRM算法 ')
fprintf('成功次数:%-3d 成功率:%3.0f%% 平均路径长度:%f 平均规划时间:%f\n', ...
successPath, successRate, avgPathLength, avgPlanTime);
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于MATLAB 2021b update5 使用说明 打开MATLAB软件即可使用 main.m是传统PRM和改进PRM的100次仿真对比实验,其中传统PRM的采样点数k分别为45、90 tradition_PRM.m是传统PRM算法 conrner_PRM.m是基于Shi-Tomasi角点检测的改进PRM算法 bmp图片是假定的地图 对于路径的平滑处理,使用的是MATLAB内置的分段三次 Hermite 插值多项式(pchip),在平滑过程中,并没有考虑到平滑的避障处理
资源推荐
资源详情
资源评论
收起资源包目录
基于PRM的路径规划和算法研究.rar (15个子文件)
基于PRM的路径规划和算法研究
GraduationDesign-master
源码及图片
checkPath.m 569B
heuristic.m 70B
undirectedpath.m 342B
map4.bmp 732KB
map2.bmp 245KB
traditional_PRM.m 1KB
historic.m 64B
main.m 3KB
deletePoints.m 619B
map3.bmp 245KB
map1.bmp 245KB
corner_PRM.m 2KB
feasiblePoint.m 207B
cornerPoint.m 396B
astart.m 1KB
共 15 条
- 1
资源评论
- LGDmaybeee2024-04-04简直是宝藏资源,实用价值很高,支持!
- 2201_756432552023-11-22资源值得借鉴的内容很多,那就浅学一下吧,值得下载!
计算机毕设论文
- 粉丝: 9991
- 资源: 398
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 20240420-扬州高中小学部风雨操场转换层条件图r.dwg
- 小猫咪邮件在线发送系统源码v1.1,支持添加附件
- 永磁电机铜耗估算表-Excel-v1.0
- 参考资料-人工智能对劳动力市场的影响机制研究.pdf
- 协同供应链集成产品介绍V71sp1.rar
- 上市公司-人工智能的采纳程度面板数据(2003-2021年).xlsx
- 参考资料-人工智能技术应用对就业的影响及作用机制研究-来自制造业企业的微观证据.pdf
- 第5章spring-mvc请求映射处理
- 2023-04-06-项目笔记 - 第一百十六阶段 - 4.4.2.114全局变量的作用域-114 -2024.04.27
- 协同供应链集成产品介绍V70.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功