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

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

     

  • 相关阅读:
    LeetCode220805_71、组合总和
    mac上安装windows系统
    计算机信息系统安全服务等级证.
    硬核剖析AQS源码,深入理解底层架构设计
    【Leetcode HOT100】寻找重复数 c++
    【设计模式】单例模式
    Acrel-EIoT能源物联网云平台助力电力物联网数据服务-Susie 周
    【数据结构】List、Set、Map的联系和区别(通俗易懂,清晰直观!!)
    【Kafka面试演练】那Kafka消费者手动提交、自动提交有什么区别?
    R语言ggplot2可视化:使用ggpubr包的ggline函数可视化折线图(点线图、line plot)、同一水平的多个点用线连接起来
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126218698