【路径规划】基于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代码问题可私信交流。

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


相关文章
|
17天前
|
传感器 算法 安全
【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab实现)
【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab实现)
115 2
|
17天前
|
机器学习/深度学习 算法 新能源
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 存储 并行计算
【无人机】基于MPC的无人机路径规划研究(Matlab代码实现)
【无人机】基于MPC的无人机路径规划研究(Matlab代码实现)
123 6
|
17天前
|
传感器 并行计算 算法
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
|
17天前
|
存储 算法 安全
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
110 0
|
17天前
|
机器学习/深度学习 传感器 数据采集
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
|
17天前
|
机器学习/深度学习 数据采集 算法
【创新无忧】基于白鲨算法WSO优化广义神经网络GRNN电机故障诊断(Matlab代码实现)
【创新无忧】基于白鲨算法WSO优化广义神经网络GRNN电机故障诊断(Matlab代码实现)
|
18天前
|
算法 Java 调度
【车间调度】基于GA、PSO、SA、ACO、TS优化算法的车间调度比较研究(Matlab代码实现)
【车间调度】基于GA、PSO、SA、ACO、TS优化算法的车间调度比较研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 边缘计算 人工智能
【无人机】采用NOMA的节能多无人机多接入边缘计算(Matlab代码实现)
【无人机】采用NOMA的节能多无人机多接入边缘计算(Matlab代码实现)
|
17天前
|
机器学习/深度学习 传感器 运维
【电机轴承监测】基于matlab声神经网络电机轴承监测研究(Matlab代码实现)
【电机轴承监测】基于matlab声神经网络电机轴承监测研究(Matlab代码实现)

热门文章

最新文章