主要内容

plannerAStarGrid

网格地图的路径规划器

    描述

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

    创建

    描述

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

    例子

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

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

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

    属性

    全部展开

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

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

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

    请注意

    您可以使用预定义的成本函数,也可以使用自定义的成本函数。要使用自定义成本函数,请参见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

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

    请注意

    您可以使用预定义的成本函数,也可以使用自定义的成本函数。要使用自定义成本函数,请参见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*路径规划算法规划通过障碍网格地图的最短无碰撞路径。

    生成一个binaryOccupancyMap物体与随机分散的障碍使用mapClutter函数。

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

    使用该映射创建plannerAStarGrid对象。

    规划师= plannerAStarGrid(地图);

    定义开始和目标点。

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

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

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

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

    显示(计划)

    扩展功能

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

    介绍了R2020b