基本思想

1.在已知的静态地图中随机生成点,可以预设这个点是目标点的概率使其随机性减小

2.寻找随机生成点的最近点,连接并在最近点延时固定步长,判断是否与障碍物碰撞

3.重复上述,直到离终点一个范围,到达终点

代码

clear()
ob=[10,10;50,80;70,20;40,40;80,50];
ob_r=[3;5;10;6;5];%% map setting
rows=100;
cols=100;
start=[5,5];
goal=[100,100];
figure(1)
plot(start(1),start(2),'*r');
hold on
plot(goal(1),goal(2),'*g');
%obstacle draw
aplha=0:pi/40:2*pi;
for ob_r_count=1:length(ob_r)x=ob(ob_r_count,1)+ob_r(ob_r_count)*cos(aplha);y=ob(ob_r_count,2)+ob_r(ob_r_count)*sin(aplha);plot(x,y,'-');axis equal
end
%% parameter setting
current_point=start;
current_parent=[];
current_cost=[];
tree_point=start;
tree_parent=start;
tree_cost=0;
step=5;%% loop
while 1if current_point==goal%node recallline([current_point(1),parent_point(1)],[current_point(2),parent_point(2)]);breakend%generate random dot trace,the goal point chance is 10%rand_count=rand(1);if rand_count<=0.1new_point=goal;elsenew_point=rand(1,2)*diag([rows,cols],0);end%find parent pointparent_point=parent(new_point,tree_point);point=parent_point+step*(new_point-parent_point)/norm(parent_point-new_point);%judge the distance from obstaclesif distance(ob,ob_r,point,parent_point,step)plot(point(1),point(2),'.b',parent_point(1),parent_point(2),'.b');line([point(1),parent_point(1)],[point(2),parent_point(2)]);%pause(0.2);%animationcurrent_point=point;tree_point=[tree_point;point];tree_parent=[tree_parent;parent_point];tree_cost=[tree_cost,];endif norm(current_point-goal)<=steptree_parent=[tree_parent;current_point];current_point=goal;tree_point=[tree_point;current_point];end
end%% function parent
function parent_point=parent(new_point,tree_point)
point=dsearchn(tree_point,new_point);
parent_point=tree_point(point,:);
end
%% function distance
function feasibility=distance(ob,ob_r,point,parent_point,step)
feasibility=1;
for count2=1:length(ob_r)if norm(point-ob(count2,:))<=ob_r(count2)feasibility=0;breakendline=ob(count2,:)-parent_point;line1=point-parent_point;if norm(line)<=step+ob_r(count2) && abs(sum(line.*line1)/(norm(line)*norm(line1)))>=(norm(line)^2-ob_r(count2)^2)^0.5/norm(line)feasibility=0;end
end
end

RRT算法matlab实现(未改进)相关推荐

  1. 风电功率预测优化算法MATLAB程序基于改进神经网络

    风电功率预测优化算法MATLAB程序基于改进神经网络 (1) 该程序为基于改进神经网络的风电功率预测优化算法程序,风电预测程序,期刊论文源程序,配有该论文. (2) 该程序所用的ICA-BP 神经网络 ...

  2. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  3. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  4. 最优隐神经元数目 算法 matlab,BP算法的改进在Matlab的实现研究

    BP 算法的改进在M a tlab 的实现研究 姚文俊 (中南民族大学电子信息工程学院 湖北武汉 430074) 摘 要:利用M atlab 中的神经网络工具箱提供的丰富网络学习和训练函数,对BP 网 ...

  5. 改进后的A星三维路径规划完整算法(matlab语言),包括障碍物模型优化

    改进后的A星三维路径规划完整算法(matlab语言),包括障碍物模型优化,平滑处理,启发函数的改进,环境地图可以根据自己的实际情况进行改进,算法包含了非常详细的代码注释 ID:695006710638 ...

  6. 改进后的A星三维路径规划完整算法(matlab语言)

    改进后的A星三维路径规划完整算法(matlab语言),包括障碍物模型优化,平滑处理,启发函数的改进,环境地图可以根据自己的实际情况进行改进,算法包含了非常详细的代码注释 YID:69500671063 ...

  7. DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型

    DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 YID:87140641990659957爱熬夜的程序猿

  8. DG储能选址定容模型matlab 程序采用改进粒子群算法

    DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠编号:75140641990659957爱熬夜的程序猿

  9. DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠

    DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 YID:87140641990659957爱熬夜的程序猿

最新文章

  1. 用 Python 实现隐身,我可以 | 文末福利
  2. 汇智清华,医道生机 | 第四届清华校友三创大赛医疗健康行业论坛圆满召开
  3. Node核心模块Buffer
  4. 获取iPhone型号
  5. 列出一个目录中所有文件及大小
  6. php 物联网应用,蜂窝物联网的概念以及应用
  7. american fuzzy lop 介绍
  8. 【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
  9. java常用lib_Java常用工具类整理
  10. oracle更新字段为null,OracleORA-01451:要修改为NULL的列无法修改为NULL
  11. 什么是BIM,什么是CIM?
  12. Nuxt.js 如何做SEO优化
  13. 据说是“缓存之王”? Caffeine高性能设计剖析
  14. C语言winmain函数的参数,c++:谁调用了main/WinMain函数!
  15. ExtJS面板的使用(Ext.Panle、Ext.TabPanel、Ext.Viewport)
  16. 商务咖啡机实力推荐——Barsetto百胜图BAV01咖啡机
  17. 让你的高清监控摄像头,轻松实现在微信公众号直播
  18. 上海科目二考试-浦东沪南考场的心得总结
  19. win10网络共享的一些坑
  20. 萌新的第一场CTF——HECTF

热门文章

  1. C++MFC常用控件
  2. 『TypeScript』泛型
  3. 第一章 算法设计与分析基础知识
  4. php脚本的执行过程(编译与执行相分离)
  5. 【北邮国院大三下】Cybersecurity Law 网络安全法 Week1【更新Topic4, 5】
  6. 叙述计算机的主要应用领域并各举实例说明,《大学计算机基础》习题集.DOC
  7. Grasshopper 二次开发 (C#) Part 2 - Interesting Examples
  8. 内网靶场_从自做到拿下-攻击篇
  9. 【电机控制算法】SVPWM算法的应用(基于Simulink与STM32外设场景的仿真)
  10. 高等数理统计 | 一致最优势检验