路径规划算法学习Day2


前言

静态环境中机器人全局路径规划一直是路径规划中的一个重要问题,具有广阔的应用范围。用于全局路径规划的典型方法有可视图法、自由空间法和单元分解法等。栅格法和单元树法是两种常用的单元分解法。今天和大家一起学习的是栅格法。


一、栅格法

1、原理

栅格法是对地图建模的一种方法。就是将障碍物模拟成小方格的集合,相当于将场景的所有事物进行二值化替代,障碍物为1,非障碍物为0。
栅格法实质上是将移动机器人的工作环境进行单元分割,将其用大小相等的方块表示出来,这样栅格大小的选取是影响规划算法性能的一个很重要的因素。栅格较小的话,由栅格地图所表示的环境信息将会非常清晰,但由于需要存储较多的信息,会增大存储开销,同时干扰信号也会随之增加,规划速度会相应降低,实时性得不到保证;反之,由于信息存储量少,抗干扰能力有所增强,规划速随之增快,但环境信息划分会变得较为模糊,不利于有效路径的规划。

二、栅格法matlab实现

1.创建地图

代码如下(创建地图):

1)自定义创建

map=[0   0   1   0   0   0   0   0   1   1   0   0   1   1   0   0   0   1   1   0
     1   0   0   1   0   0   1   0   0   0   1   0   0   0   1   0   1   0   1   0
     0   0   0   0   1   0   0   0   0   0   0   0   0   1   0   0   1   0   0   1
     0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
     1   0   1   0   0   1   0   0   1   0   1   0   1   0   0   0   1   0   0   1
     0   0   0   0   0   0   0   0   0   1   0   0   1   0   1   0   0   0   1   0
     1   0   0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   1   0   1
     0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   1   0   0   0
     0   0   0   0   1   0   0   0   0   1   0   0   0   1   0   1   0   0   1   1
     1   0   0   1   0   0   0   0   1   0   0   0   0   1   0   0   1   0   0   0
     0   0   1   0   0   1   0   0   1   0   0   0   0   0   0   1   0   0   1   1
     1   0   0   0   0   0   0   1   0   0   0   1   0   0   0   0   0   0   0   0
     0   1   0   0   0   0   0   0   0   0   0   0   0   1   0   0   1   0   0   0
     0   0   0   1   0   0   1   0   0   0   1   0   0   0   0   0   0   0   0   1
     1   0   0   0   0   0   0   0   1   0   1   0   1   0   0   0   1   1   0   0
     0   0   0   0   0   1   0   0   0   1   0   0   0   0   1   0   0   0   0   0
     1   0   1   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   0   1
     0   0   0   0   1   0   0   1   0   0   0   0   1   0   1   0   0   0   0   0
     0   0   0   1   0   0   0   0   0   0   0   1   0   1   0   0   0   0   0   0
     0   0   1   0   1   0   1   0   1   0   0   0   0   0   0   1   0   0   0   0;]

2)随机数创建20*20矩阵地图

map=rand(20)>0.3;

2.完整代码

以随机数创建地图示例

function grid_method 
map=rand(20)>0.8;%随机数创建栅格地图
 s_l=1;
 m_vec=size(map);%(20,20)
 x=0:s_l:m_vec(1);%步进数为i
 y=0:s_l:m_vec(2);
 figure(1);
 axis([0 m_vec(1) 0 m_vec(2)]);
 set(gca,'xtick',x,'ytick',y);
 set(gca,'GridLineStyle','-','xGrid','on','yGrid','on');
 hold on
d=1;
for i=1:m_vec(1)%外走行
    for j=1:m_vec(2)%if map(i,j)==1
            row=j-1;
            col=i-1;
            fill([row row+1 row+1 row],[col col col+1 col+1],'k');
            d=d+1;
        end
    end
end
for i=1:m_vec(1)*m_vec(2)
    number=1:m_vec(1)*m_vec(2);
    [row,col]=ind2sub([m_vec(1) m_vec(2)],i);
    text(row-0.5,col-0.5,num2str(number(i)),'color','r')
end

3.所生成地图

在这里插入图片描述

三、总结

这篇博文是为了后面路径算法准备的工作,期待大家的点评指正。

  • 12
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

写Bug那些事

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

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

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

打赏作者

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

抵扣说明:

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

余额充值