前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Robotics System Toolbox路径规划

Robotics System Toolbox路径规划

作者头像
万木逢春
发布2018-07-24 16:55:11
1.5K0
发布2018-07-24 16:55:11
举报
文章被收录于专栏:帮你学MatLab帮你学MatLab

使用Robotics System Toolbox工具箱在已知环境中规划路径

%% 导入环境数据

filePath = fullfile(fileparts(which('PathPlanningExample')),'data','exampleMaps.mat');

load(filePath)

%%

% 将环境数据读入工具箱

map = robotics.BinaryOccupancyGrid(simpleMap, 2)

%%

% 显示环境

show(map)

%% 将机器人转化为质点需要考虑的形态参数

robotRadius = 0.2;

%%

% 环境中的障碍转化

mapInflated = copy(map);

inflate(mapInflated,robotRadius);

%%

% 显示转化后的环境

show(mapInflated)

%% 定义规划器

prm = robotics.PRM

%%

% 读入转化后的环境

prm.Map = mapInflated;

%%

% 设置规划器参数

prm.NumNodes = 50;

prm.ConnectionDistance = 5;

%% 设置起点终点

startLocation = [2 1];

endLocation = [12 10];

%%

% 路径搜索

path = findpath(prm, startLocation, endLocation)

%%

% 显示路径结果

show(prm)

%% 复杂环境情况

map = robotics.BinaryOccupancyGrid(complexMap, 1)

%%

show(map)

%%

mapInflated = copy(map);

inflate(mapInflated, robotRadius);

%%

show(mapInflated)

%%

prm.Map = mapInflated;

%%

prm.NumNodes = 20;

prm.ConnectionDistance = 15;

%%

show(prm)

%%

startLocation = [3 3];

endLocation = [45 35];

%%

path = findpath(prm, startLocation, endLocation)

%% 加入循环直到搜索到合适路径

while isempty(path)

% 不合适就增加节点

prm.NumNodes = prm.NumNodes + 10;

% 更新规划器

update(prm);

% 搜索

path = findpath(prm, startLocation, endLocation);

end

% 显示路径

path

show(prm)

%% 真实环境情况

map = robotics.OccupancyGrid(ternaryMap, 20)

%%

show(map)

%%

mapInflated = copy(map);

inflate(mapInflated, robotRadius);

%%

show(mapInflated)

%%

prm.Map = mapInflated;

prm.NumNodes = 60;

prm.ConnectionDistance = 5;

%

show(prm)

%%

startLocation = [7 22];

endLocation = [15 5];

% 同样加入循环

path = findpath(prm, startLocation, endLocation);

while isempty(path)

prm.NumNodes = prm.NumNodes + 10;

update(prm);

path = findpath(prm, startLocation, endLocation);

end

% 显示结果

path

show(prm)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帮你学MatLab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档