栅格法地图构建

``%% 创建栅格地图,交互程序
%% 输入地图大小,点击鼠标生成障碍物
%创建地图大小为X*Y

MAX_Y=20; %地图列数
%Objects in each coordinate
Model=(ones(MAX_X,MAX_Y)); % 地图矩阵
imshow(Model,'InitialMagnification','fit') 
[mm,nn,~] = size(Model); %获取图像的大小
x = 0.5:1:nn+1; %假设水平分成8格
y = 0.5:1:mm+1; %假设垂直分成8格
M = meshgrid(x,y); %产生网格
N = meshgrid(y,x);  %产生网格
hold on
plot(x,N,'b'); %画出水平横线
plot(M,y,'b'); %画出垂直竖线
pause(1);
h=msgbox('利用鼠标左键定义障碍物位置,定义完成后右键定义最后一个障碍物结束定义');
  xlabel('利用鼠标左键定义障碍物位置,定义完成后右键定义最后一个障碍物结束定义','Color','blue');
uiwait(h,10);
if ishandle(h) == 1
    delete(h);
end
but = 1;
while but == 1
    [xval,yval,but] = ginput(1);
    xval=floor(xval + 0.5);
    yval=floor(yval + 0.5);
    Model(yval,xval)=0;%设置障碍物
    imshow(Model,'InitialMagnification','fit')
    plot(x,N,'b'); %画出水平横线
    plot(M,y,'b'); %画出垂直竖线
end
hold off;
figure
imshow(Model,'InitialMagnification','fit') 
title('最终地图')
save('MAP.mat','MAP')

在这里插入代码片

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值