Advertisement

Matlab自动驾驶工具箱(3)-路径规划与控制-checkPathValidity

阅读量:

Matlab自动驾驶工具箱(3)-路径规划与控制-checkPathValidity

  • 1、作用
  • 2、语法
  • 3、描述
  • 4、实例-路径规划并检查其有效性
  • 5、输入输出

1、作用

checkPathValidity
检查车辆规划路径的有效性

2、语法

复制代码
    isValid = checkPathValidity(refPath,costmap)
    isValid = checkPathValidity(refPoses,costmap)

3、描述

有效性校验结果isValid由函数checkPathValidity计算得出(参数包括refPath和costmap)。基于车辆costmap图分析规划路径ref的有效性。
若满足以下条件,则认为该规划路径有效:

  • 该路径至少包含一个姿势。
  • 该路径无冲突且位于costmap的约束范围内。
    isValid被赋值为通过基于成本图检查一系列参考姿态的有效性所得的结果。

4、实例-路径规划并检查其有效性

利用RRT*优化算法计算穿过停车场区域的最佳路径。验证规划出的路径有效性后,在确定的有效路径上生成相应的姿态过渡。

*生成停车场的成本地图。通过分析成本地图研究停车位可用性与车辆停泊限制区域。

复制代码
    data = load('parkingLotCostmap.mat');
    costmap = data.parkingLotCostmap;
    plot(costmap)
在这里插入图片描述

用于描述车辆初始姿态和目标姿态的归一化表示方法中包含三个参数:[x,y,θ]矢量。其中参数(x,y)表示位置坐标系中的坐标值(世界坐标系),其基准是国际标准米;θ参数表示方位角,在该坐标系中采用度作为基准进行测量

复制代码
    startPose = [4, 4, 90]; % [meters, meters, degrees]
    goalPose = [30, 13, 0];
  • 使用pathPlannerRRT对象来规划从起始姿势到目标姿势的路径。
复制代码
    planner = pathPlannerRRT(costmap);
    refPath = plan(planner,startPose,goalPose);
  • 检查路径是否有效。
复制代码
    isPathValid = checkPathValidity(refPath,costmap)

有效案例:

在这里插入图片描述
在这里插入图片描述
  • 沿路径插入过渡姿势。
复制代码
    transitionPoses = interpolate(refPath);
  • 在成本图上绘制规划路径和过渡姿势。
复制代码
    hold on
    plot(refPath,'DisplayName','Planned Path')
    scatter(transitionPoses(:,1),transitionPoses(:,2),[],'filled', ...
    'DisplayName','Transition Poses')
    hold off
在这里插入图片描述

5、输入输出

输入来自于refPath、costmap、refPoses
输出为isValid(0|1)

全部评论 (0)

还没有任何评论哟~