【路径规划】基于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 运行结果

4 参考文献

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

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

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

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

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值