【路径规划】基于A星算法求解路径规划问题matlab代码

314 阅读1分钟

1 简介

移动机器人路径规划一直是一个比较热门的话题,A星算法以及其扩展性算法被广范地应用于求解移动机器人的最优路径。

2 部分代码

function OptimalPath_2=Eliminate_inflection_point( OptimalPath,MAP )
%消除多余拐点

path = OptimalPath;
len = size(path,1);
% startX = OptimalPath(1,2);
% startY = OptimalPath(1,1);
% endX = OptimalPath(len,2);
% endY = OptimalPath(len,1);

i=len;
while(i>=1)
   for j=1:1:i-2
       p_i_x = path(i,2);
       p_i_y = path(i,1);
       p_j_x = path(j,2);
       p_j_y = path(j,1);
       flag = hasBarrier(p_i_x,p_i_y,p_j_x,p_j_y,MAP)
       if(flag == false)
           for k=i-1:-1:j+1
               path(k,:)=[];   %删除两点之间所有的点 第k行
           end
           len = size(path,1);
           break;
       end
   end
  if(flag == false)
      i=j;
  else
      i=i-1;
  end
end


% for i=len:-1:1
%     for j=1:1:i-2
%         p_i_x = path(i,2);
%         p_i_y = path(i,1);
%         p_j_x = path(j,2);
%         p_j_y = path(j,1);
%         flag = hasBarrier(p_i_x,p_i_y,p_j_x,p_j_y,MAP)
%         if(flag == false)
%             for k=i-1:-1:j+1
%                 path(k,:)=[];   %删除两点之间所有的点 第k行
%             end
%             i=j;
%             len = size(path,1);
%             break;
%         end
%     end
%     
% end

               
OptimalPath_2=path;      
           


end

3 仿真结果

4 参考文献

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

5 MATLAB代码与数据下载地址

见博客主页