【路径规划】基于A星算法求解自定义起点终点障碍路径规划问题matlab代码

【路径规划】基于A星算法求解自定义起点终点障碍路径规划问题matlab代码

1 简介

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

2 部分代码

%% 使用A *搜索演示

%% 参数的设定

% 定义二维地图框架

MAX_X = 10;

MAX_Y = 10;

MAP = zeros(MAX_X,MAX_Y); % 此数组存储地图的坐标和每个坐标中的对象

% 获得障碍,目标和机器人位置

% 使用输入值初始化MAP

% 障碍= -1,目标= 1,起点= 1,空格= 0

j=0;

x_val = 1;

y_val = 1;

axis([1 MAX_X+1 1 MAX_Y+1]) % 框图的大小

grid on; % 加入网格

hold on; % 与新图共存

n=0; % 障碍物的数量

for BB = 1:3

%% 确定目标点

pause(1); % 一般是为了动态观察变化过程 pause(a)暂停a秒后执行下一条指令

h=msgbox('请使用鼠标左键选择目标'); % 显示提示窗口

uiwait(h,5);

if ishandle(h) == 1

delete(h);

end

xlabel('请使用鼠标左键选择目标','Color','black');

but=0; % 这个地方可以设置成1,这样的话,统一目标点

while (but ~= 1) % 重复,直到没有单击“向左”按钮

[xval,yval,but]=ginput(1);

end

xval=floor(xval);

yval=floor(yval);

xTarget=xval; % X目标的坐标

yTarget=yval; % Y目标的坐标

MAP(xval,yval)=1; % 初始化地图中的目标位置

plot(xval+.5,yval+.5,'gd');

text(xval+1,yval+.5,'目标点')

%% 确定障碍物

pause(2);

h=msgbox('使用鼠标左键选择障碍物,使用右键选择最后一个障碍物');

xlabel('使用鼠标左键选择障碍物,使用右键选择最后一个障碍物','Color','blue');

uiwait(h,10);

if ishandle(h) == 1

delete(h);

end

while but == 1

[xval,yval,but] = ginput(1);

xval=floor(xval);

yval=floor(yval);

MAP(xval,yval)=-1; %Put on the closed list as well

plot(xval+.5,yval+.5,'ro');

end

% MAP(Optimal_path(2,1),Optimal_path(2,2))=1

MAP1=rot90(MAP)

number = size(Optimal_path,1)

if (BB==1)

Optimal_path1 = Optimal_path

hold on;

else if (BB==2)

Optimal_path2 = Optimal_path

hold on;

else

Optimal_path3 = Optimal_path

end

end

end

3 仿真结果

4 参考文献

[1]周宇杭等. "基于A星算法的移动机器人路径规划应用研究." 电脑知识与技术 v.16.13(2020):7-9+16.

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