【路径规划】基于A星算法实现静态障碍物下的动态目标跟踪附matlab代码

简介: 【路径规划】基于A星算法实现静态障碍物下的动态目标跟踪附matlab代码

 1 内容介绍

移动机器人路径规划一直是一个比较热门的话题,A星算法以及其扩展性算法被广范地应用于求解移动机器人的最优路径.该文在研究机器人路径规划算法中,详细阐述了传统A星算法的基本原理,并通过栅格法分割了机器人路径规划区域,利用MATLAB仿真平台生成了机器人二维路径仿真地图对其进行仿真实验,并对结果进行分析和研究,为今后进一步的研究提供经验.

2 仿真代码

close all

clear all

clc

format short;

global dongP;

global h1;

dongP=[80,0,10];

startXY=[0 0];

endXY=[100 100];%起点终点位置

nowXY=startXY;

searchR=4;  %探寻半径

circleCencerR=20;    %静态障碍物圆半径

circleCencer=[40,50];    %确定静态障碍物中心

r=rectangle('Position',[circleCencer(1)-circleCencerR,circleCencer(2)-circleCencerR,2*circleCencerR,2*circleCencerR],...

   'Curvature',[1,1]); %静态障碍物

figure(1)

hold on

r.FaceColor = [0 0 0];  %障碍物颜色

axis([0 100 0 100]);  %坐标系大小

Rout=[startXY]; %路径点集合

Routsize=0;

%% 开始寻找起始点的8位图,寻找路径

while(sqrt((endXY(2)-nowXY(2))^2+(endXY(1)-nowXY(1))^2)>=2*searchR)%当没有到达终点

   Pot8=wei8(nowXY,endXY,searchR);%当前点的8方位点

   longMin=Inf;   %下一个位置点到终点的距离

   for i=1:8 %对于每一个位置点

       if(~isInBr(Pot8(i,:),circleCencer,circleCencerR))%不在障碍物内

           Pot18=wei8(Pot8(i,:),endXY,searchR);%下一次的8方位点

           for j=1:8

               if(~isInBr(Pot18(j,:),circleCencer,circleCencerR))%如果不在静动障碍物内

                   Long=sqrt((endXY(2)-Pot18(j,2))^2+(endXY(1)-Pot18(j,1))^2);%下一点到终点距离

                   if Long<longMin%且距离比之前的小

                      longMin=Long;

                      preRout=Pot8(i,:);%保存前一个路径点

                   end

               end

           end

       end

   end

   nowXY=preRout;  %更新新的路径点

   Rout=[Rout;preRout];

   Routsize=Routsize+searchR;%路径长度

   circle(nowXY(1),nowXY(2),3);

   dongP=dongtai(3,12,80,0,0,1);%添加动态障碍物

   pause(0.1);

   delete(h1);

end

%% 画图

Rout=[Rout;endXY];

Routsize=Routsize+sqrt((endXY(2)-preRout(2))^2+(endXY(1)-preRout(1))^2);

circle(endXY(1),endXY(2),3);

plotRout(Rout);

3 运行结果

image.gif编辑

4 参考文献

[1]华洪, 张志安, 施振稳,等. 动态环境下多重A算法的机器人路径规划方法[J]. 计算机工程与应用, 2021.

[2]郭翰卿, 付丽霞, 张勇,等. 基于动态障碍物的机器人避障路径规划方法[J]. 电视技术, 2022, 46(1):6.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


相关文章
|
6天前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
102 26
|
6天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
3天前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
101 6
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
6天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
82 14
|
6天前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
|
6天前
|
算法 数据可视化 异构计算
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
|
6天前
|
机器学习/深度学习 运维 算法
【复现】基于改进秃鹰算法的微电网群经济优化调度研究(Matlab代码实现)
【复现】基于改进秃鹰算法的微电网群经济优化调度研究(Matlab代码实现)
|
6天前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】基于非支配排序的鱼鹰优化算法NSOOA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】基于非支配排序的鱼鹰优化算法NSOOA求解无人机三维路径规划研究(Matlab代码实现)
|
9天前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
8天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)

热门文章

最新文章