【路径规划】基于RRT+APF实现机器人二值地图动态避障算法附matlab仿真

简介: 【路径规划】基于RRT+APF实现机器人二值地图动态避障算法附matlab仿真

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

一种APFRRT算法的机器人避障路径规划方法,在已知起始位置,目标位置和障碍物环境信息的条件下,利用APFRRT算法,引入障碍物数目参数和算法切换策略避免传统APF算法无法到达目标点和陷入局部最小值,引入双边最近节点选择策略;提出的改进APFRRT算法减少了路径长度,提升了算法效率,可以很好地适用于机器人避障路径规划问题.

⛄ 部分代码

clc

clear all

close all

%% 初始化

path='scc.png';

map=loadMap(path);

% 最大迭代次数

RRTCountMax = 30000;

APFCountMax = 30000;

% 步长

RRTstep = 20;

APFstep = 2;

% 起始点、目标点

%select = 5;

starts = [100, 100; 100, 100; 100, 100; 1, 3; 4,4];

targets = [300, 400; 950,750; 100, 500; 5, 9; 9,8];

%

select = 1;

start = starts(select, :);

target = targets(select, :);

% x_I = 100; y_I = 100;           % 设置初始点 100,100

% x_G = 200; y_G = 200;       % 设置目标点  750,750

% 障碍物 x y r

obs = [

   960, 690, 20;

   540, 690, 20;

   90,200,10;

   55,400,10;

   60,550,10;

   ];    % 动态障碍点圆心坐标及半径

obsv = [

   2, 2, 0;

   -2, -2, 0;

   -2,0,0;

   1,0,0;

   -1,0,0;

   ];

% kAttr, kRep

kAttr = 0.01;  % 引力系数

kRep = 10;    % 斥力系数

kObs = 5;   % 作用延伸范围

figure

imshow(map)

hold on;

plot(start(1), start(2), 'p', markersize=10, color='red');

plot(target(1), target(2), 'p', markersize=10, color='green');


ok = false;

result = [];

while ~ok

   ok = true;

   rrt_result = RRTstar(map, start, target, obs, RRTstep, RRTCountMax);

   if isempty(rrt_result)

       disp("rrt star cannot find path")

       return

   end


   if size(rrt_result, 1) == 1

       disp('start == target')

       return

   end

   hflag=0;

   h1=[];

   for i = 2: size(rrt_result, 1)

       apf_start = rrt_result(i - 1, :);

       apf_target = rrt_result(i, :);

       [h1,hflag,apf_result, success, newStart, count, obs] = APF(h1,hflag,map, start, target,apf_start, apf_target, obs,obsv, APFstep, APFCountMax, kAttr, kRep, kObs);

       result = [result; apf_result];

       if (success == false)

           ok = false;

           start = newStart;

           break;

       end

   end

end

plot(result(1:end, 1), result(1:end, 2), '--', color='g');

⛄ 运行结果

⛄ 参考文献

[1] 陈少斌, 蒋静坪. 基于神经网络和粒子群优化算法的移动机器人动态避障路径规划[J]. 系统仿真技术, 2006(4):6.

[2] 彭鹏张志安黄学功. 基于APF-RRT的双机械臂动态避障路径规划[J]. 机械传动, 2022, 46(4):48-54.

[3] 黄永良, 李燕, 张小龙. 基于改进蚁群算法的机器人路径规划[J]. 电脑与信息技术, 2023, 31(2):4.

[4] 闵凤, 江翠翠, 姚忠福. 基于Matlab和V-REP的移动机器人路径规划仿真平台[J]. 科技经济导刊, 2019(5):2.

[5] 唐新星, 刘博聪, 项天野,等. 一种改进APF-RRT算法的机器人避障路径规划方法:, CN202211189700.0[P]. 2023.

[6] 杨姗姗, 戴学丰, 唱江华. 实现机器人动态路径规划的仿真系统[J]. 计算机工程与应用, 2009, 45(32):4.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
1天前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
1天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
13天前
|
算法
基于ACO蚁群优化的UAV最优巡检路线规划算法matlab仿真
该程序基于蚁群优化算法(ACO)为无人机(UAV)规划最优巡检路线,将无人机视作“蚂蚁”,巡检点作为“食物源”,目标是最小化总距离、能耗或时间。使用MATLAB 2022a版本实现,通过迭代更新信息素浓度来优化路径。算法包括初始化信息素矩阵、蚂蚁移动与信息素更新,并在满足终止条件前不断迭代,最终输出最短路径及其长度。
|
16天前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
2月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
123 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
2月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
95 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
2月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
71 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
5月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
5月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
下一篇
无影云桌面