文档帮助中心文档
路径度量的信息
的路径度量对象保存用于计算路径度量的信息。使用对象函数根据一组姿势和关联的贴图环境计算平滑度、间隙和路径有效性。
路径度量
pathMetricsObj = pathmetrics(路径)
pathMetricsObj=pathmetrics(路径,验证程序)
PathMetricObj= pathmetrics (路径)基于输入创建对象navPath对象。状态验证器被假定为职业地图对象。的路径输入设置路径财产。
PathMetricObj= pathmetrics (路径)
PathMetricObj
路径
navPath
职业地图
例子
PathMetricObj= pathmetrics (路径,验证器)基于输入创建对象navPath对象和关联的状态验证器,以检查路径有效性。的验证器输入设置状态验证器财产。
PathMetricObj= pathmetrics (路径,验证器)
验证器
全部展开
路径数据结构,指定为navPath对象是要计算其度量的路径。
状态验证器
ValidatorOccupencyMap(StateSpace SE2,BinaryOccupencyMap(10))
validatorVehicleCostmap
路径上状态的验证器,指定为职业地图或validatorVehicleCostmap对象。
清除
isPathValid
显示
平滑度
全部崩溃
基于一组位姿和相关的地图环境,计算规划路径的平滑度、间隙和有效性。
加载和分配映射到状态验证器
从示例地图创建一个占用地图,并设置地图分辨率。
负载exampleMaps.mat;%单纯形映射mapResolution = 1;%电池/米地图= occupancyMap (simpleMap mapResolution);
创建一个杜宾斯州空间。
statespace = stateSpaceDubins;
创建一个基于占用地图的状态验证器,在Dubins状态空间中存储参数和状态。
statevalidator=ValidatorOccupencyMap(状态空间);
将映射分配给验证器。
statevalidator。地图=地图;
设置验证器的验证距离。
statevalidator。ValidationDistance = 0.01;
更新状态空间边界,使其与映射限制相同。
statespace.StateBounds=[map.XWorldLimits;map.YWorldLimits;[-pi]];
规划路径
创建一个RRT*路径规划器并允许进一步优化。
planner=PlannerRTStar(状态空间,状态验证器);planner.ContinueAfterGoalReached=true;
减少最大迭代次数并增加最大连接距离。
planner.MaxIterations=2500;planner.MaxConnectionDistance=0.3;
将路径规划器的开始和目标状态定义为[x, y,θ]向量。x和y是笛卡尔坐标,然后呢θ是方向角。
[
]
起点=[2.5,2.5,0];%[米,米,弧度]目标= [22.5,8.75,0];
计划一条从开始状态到目标状态的路径。plan函数返回navPath对象。
rng (100“旋风”)%可重复的结果[路径,solutionInfo] =计划(计划,开始,目标);
计算并可视化路径度量
创建路径度量对象。
pathMetricsObj=pathmetrics(路径,状态验证器);
检查路径有效性。结果为1(正确)如果计划路径没有障碍物。0(假)指示无效路径。
1(正确)
0(假)
isPathValid (pathMetricsObj)
ans =逻辑1
计算路径的最小间隙。
间隙(pathMetricsObj)
ans = 1.4142
评估路径的平滑度。值接近0指示更平滑的路径。直线路径返回的值为0.
0
平滑(pathMetricsObj)
ans = 1.7318
可视化路径的最小间隙。
显示(pathMetricsObj)传说(“规划路径”,“最小间隙”)
此示例使用:
使用RRT*算法规划通过停车场的车辆路径。计算并可视化规划路径的平滑度、净空和有效性。
加载一个停车场的成本地图。绘制成本图,查看停车场和车辆应该避免的充气区域。
负载parkingLotCostmap.mat;costmap=parkingLotCostmap;绘图(costmap)xlabel(‘X(米)’)伊拉贝尔(‘Y(米)’)
创建一个stateSpaceDubins目标,并增加最小图灵半径为4米。
stateSpaceDubins
4
statespace = stateSpaceDubins;statespace。MinTurningRadius = 4;%米
创建一个validatorVehicleCostmap对象使用创建的状态空间。
statevalidator = validatorVehicleCostmap (statespace);
将停车场成本图分配给状态验证器对象。
statevalidator.Map=costmap;
将车辆的起始姿势和目标姿势定义为[x,y,Θ)向量。(x,y)位置以米为单位。方向角的世界单位Θ在度。
x
y
Θ
startPose=[5,5,90];%[米,米,度]目标概率=[40,38,180];%[米,米,度]
使用一个路径规划者(自动驾驶工具箱)对象和计划(自动驾驶工具箱)功能用于规划从起始姿势到目标姿势的车辆路径。
路径规划者
计划
规划器=路径规划器RRT(成本地图);refPath=计划(计划员、启动人员、目标人员);
沿路径每隔一米插入一次。将方向角从角度转换为弧度。
姿势=零(大小(refPath.PathSegments,2)+1,3);姿势(1,:)=refPath.StartPose;为i=1:size(refPath.PathSegments,2)姿势(i+1,:)=refPath.PathSegments(i).GoalPose;结束姿势(:,3)=deg2rad(姿势(:,3));
创建一个navPath对象使用的状态空间对象和指定的状态提出了.
提出了
路径= navPath (statespace,姿势);
创建一个路径度量对象。
检查路径有效性。结果为1(符合事实的),如果所规划的路径没有障碍。0(假)指示无效路径。
1
符合事实的
假
计算并可视化最小值清除这条路的尽头。
ans = 0.5000
显示(pathMetricsObj)传说(“膨胀的领域”,“规划路径”,“最小间隙”)xlabel(‘X(米)’)伊拉贝尔(‘Y(米)’)
计算和可视化平滑度路径的。值接近0指示更平滑的路径。直线路径返回的值为0.
ans=0.0842
显示(pathMetricsObj“指标”,{“平滑”})(传说“膨胀的领域”,路径平滑的)xlabel(‘X(米)’)伊拉贝尔(‘Y(米)’)
可视化路径每个状态的间隙。
显示(pathMetricsObj“指标”,{“州议会”})(传说“膨胀的领域”,“规划路径”,“清除路径状态”)xlabel(‘X(米)’)伊拉贝尔(‘Y(米)’)
occupancyMap|occupancyMap3D|plannerRRTStar
occupancyMap
occupancyMap3D
plannerRRTStar
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系