主要内容

plannerAStarGrid

一个网格地图的*路径规划器

    描述

    plannerAStarGrid对象创建一个A*路径规划器。规划器在占用地图上执行A*搜索,并根据启发式代价确定在指定的起始点和目标网格位置之间找到最短的无障碍路径。

    创建

    描述

    规划师= plannerAStarGrid创建一个plannerAStarGrid对象与一个binaryOccupancyMap对象的宽度和高度为10米,网格分辨率为每米一个单元格。

    例子

    规划师= plannerAStarGrid (地图创建一个plannerAStarGrid对象使用指定的映射对象地图.指定地图作为一个binaryOccupancyMapoccupancyMap对象。的地图的值地图财产。

    规划师= plannerAStarGrid (___名称,值属性使用一个或多个名值对。未指定的属性有默认值。将每个属性名用引号括起来。

    例如,plannerAStarGrid(地图,“GCost”、“曼哈顿”)使用Manhattan代价函数创建一个A*路径规划器对象。

    属性

    全部展开

    映射表示,指定为abinaryOccupancyMapoccupancyMap对象。该对象将机器人的环境表示为占用网格。每个网格单元格的值表示地图中相关位置的占用率。

    例子:计划。地图= binaryOccupancyMap(zeros(50,50));

    在网格中任意两点之间移动的一般代价,指定为下列预定义的代价函数之一“切比雪夫”“欧几里得”“EuclideanSquared”,或“曼哈顿”

    请注意

    您可以使用预定义的代价函数,也可以使用自定义的代价函数。要使用自定义成本函数,请参见GCostFcn财产。

    例子:规划师= plannerAStarGrid(地图,“GCost”,“曼哈顿”);

    例子:计划。GCost= 'Chebyshev';

    数据类型:字符串|字符

    自定义GCost函数,指定为函数句柄。函数句柄必须接受两个姿势输入作为[向量并返回一个double类型的标量。

    请注意

    您可以使用预定义的代价函数,也可以使用自定义的代价函数。要使用预定义的代价函数,请参见GCost财产。

    例子:规划师= plannerAStarGrid(地图,GCostFcn, @ (pose1 pose2)和(abs (pose1-pose2), 2));

    例子:计划。GCostFcn= @(pose1,pose2)sum(abs(pose1-pose2),2);

    数据类型:function_handle

    网格中一个点和目标之间的启发式代价,指定为下列预定义的代价函数之一“切比雪夫”“欧几里得”“EuclideanSquared”,或“曼哈顿”

    请注意

    您可以使用预定义的代价函数,也可以使用自定义的代价函数。要使用自定义成本函数,请参见HCostFcn财产。

    例子:规划师= plannerAStarGrid(地图,“HCost”,“曼哈顿”);

    例子:计划。HCost= 'Chebyshev';

    数据类型:字符串|字符

    自定义HCost函数,指定为函数句柄。函数句柄必须接受两个姿势输入作为[向量并返回一个double类型的标量。

    请注意

    您可以使用预定义的代价函数,也可以使用自定义的代价函数。要使用预定义的代价函数,请参见HCost财产。

    例子:规划师= plannerAStarGrid(地图,HCostFcn, @ (pose1 pose2)和(abs (pose1-pose2), 2));

    例子:计划。HCostFcn= @(pose1,pose2)sum(abs(pose1-pose2),2);

    数据类型:function_handle

    切换平局模式,指定为两者之一“上”“关闭”

    启用决胜局属性,A*路径规划器通过调整启发式代价值在多条相同长度的路径之间进行选择。

    例子:规划师= plannerAStarGrid(地图,决胜局,'在');

    例子:计划。决胜局=“关闭”;

    数据类型:字符串|字符

    切换对角线搜索模式,指定为任意一种“上”“关闭”

    当您将此属性设置为“上”, A*路径规划器沿对角线方向与网格的其他四个方向一起搜索。当您将此属性设置为“关闭”, A*路径规划器只在网格的四个方向上搜索。

    数据类型:字符|字符串

    对象的功能

    计划 求两点之间最短的无障碍路径
    显示 绘制和可视化A*探索节点和规划路径

    例子

    全部折叠

    使用A*路径规划算法规划通过障碍物网格图的最短无碰撞路径。

    生成一个binaryOccupancyMap对象带有随机分散的障碍物mapClutter函数。

    rng (“默认”);地图= mapClutter;

    使用映射创建一个plannerAStarGrid对象。

    规划师= plannerAStarGrid(地图);

    定义开始点和目标点。

    Start = [2 3];目标= [248 248];

    规划一条从起点到目标点的路径。

    计划(计划,开始,目标);

    方法可视化路径和所探索的节点显示对象的功能。

    显示(计划)

    图中包含一个axes对象。标题为AStar的axis对象包含8个类型为image、line的对象。这些对象表示Path, Start, Goal, GridsExplored。

    扩展功能

    C / c++代码生成
    使用MATLAB®Coder™生成C和c++代码。

    版本历史

    介绍了R2020b

    Baidu
    map