pathmetrics
描述
的pathmetrics
计算路径度量的对象持有信息。使用对象函数计算平滑、间隙和路径的有效性基于一组提出了地图和相关的环境。
创建
描述
基于输入创建一个对象pathMetricsObj
= pathmetrics (路径
)navPath
对象。验证器被认为是一种状态validatorOccupancyMap
对象,如果状态空间navPath
对象是一个stateSpaceSE2
,stateSpaceDubins
,或stateSpaceReedsShepp
对象。否则,验证器被认为是一种状态validatorOccupancyMap3D
对象,如果状态空间navPath
对象是一个stateSpaceSE3
对象。的路径
输入设置的值路径财产。
基于输入创建一个对象pathMetricsObj
= pathmetrics (路径
,验证器
)navPath
对象和相关状态验证器检查有效性的路径。的验证器
输入设置的值StateValidator财产。
属性
路径
- - - - - -路径的数据结构
navPath
对象
路径的数据结构,指定为一个navPath
对象的路径度量计算。
StateValidator
- - - - - -验证器对州的道路
validatorOccupancyMap
对象|validatorVehicleCostmap
对象|validatorOccupancyMap3D
对象
验证器对州路径,指定的作为validatorOccupancyMap
,validatorVehicleCostmap
,或validatorOccupancyMap3D
对象。
对于二维状态空间,默认状态验证器validatorOccupancyMap (stateSpaceSE2 binaryOccupancyMap (10))
。
三维状态空间,默认状态验证器validatorOccupancyMap3D (stateSpaceSE3)
。
对象的功能
间隙 |
最小间隙的路径 |
isPathValid |
确定计划路径障碍是免费的 |
显示 |
可视化地图环境中路径度量 |
平滑度 |
平滑的路径 |
例子
计算路径度量
计算平滑、间隙和规划路径的有效性基于一组提出了地图和相关的环境。
加载和分配映射到状态验证器
从一个例子创建一个占用地图地图,设置地图解决方案。
负载exampleMaps.mat;% simpleMapmapResolution = 1;%细胞/计地图= occupancyMap (simpleMap mapResolution);
创建一个杜宾状态空间。
statespace = stateSpaceDubins;
创建一个状态验证器根据入住率映射到存储参数和状态的杜宾状态空间。
statevalidator = validatorOccupancyMap (statespace);
指定验证器的地图。
statevalidator。地图=地图;
设置验证验证器的距离。
statevalidator。ValidationDistance = 0.01;
更新状态空间边界地图一样的限制。
statespace。StateBounds = [map.XWorldLimits; map.YWorldLimits;[-ππ]];
计划路径
创建一个RRT路径规划和允许进一步优化。
规划师= plannerRRTStar (statespace statevalidator);计划。ContinueAfterGoalReached = true;
减少迭代的最大数量和增加的最大连接距离。
计划。MaxIterations = 2500;计划。MaxConnectionDistance = 0.3;
定义启动和路径规划的目标国家(
x, y,θ]
向量。x和y是笛卡尔坐标,θ是定向角。
开始= (2.5,2.5,0);%(米,米,弧度)目标= (22.5,8.75,0);
规划一条从起始状态到目标状态。函数返回一个计划navPath
对象。
rng (100“旋风”)%可重复的结果[路径,solutionInfo] =计划(计划,开始,目标);
计算和可视化路径度量
创建一个路径度量对象。
pathMetricsObj = pathmetrics(路径,statevalidator);
检查路径的有效性。结果是1(真正的)
如果计划路径障碍是免费的。0(假)
显示无效的路径。
isPathValid (pathMetricsObj)
ans =逻辑1
计算路径的最小间隙。
间隙(pathMetricsObj)
ans = 1.4142
评估路径的平滑。值接近0
表明平滑路径。直线路径返回一个值0
。
平滑(pathMetricsObj)
ans = 1.7318
可视化的路径的最小间隙。
显示(pathMetricsObj)传说(“计划路径”,的最小间隙)
车辆路径规划和指标计算二维Costmap环境中
计划通过一个停车场车辆路径使用RRT *算法。计算和可视化平滑、间隙和规划路径的有效性。
加载和分配映射到状态验证器
负载的costmap停车场。情节costmap看到停车场和车辆应避免膨胀的领域。
负载parkingLotCostmap.mat;costmap = parkingLotCostmap;情节(costmap)包含(“X(米))ylabel (“Y”(米))
创建一个stateSpaceDubins
对象和增加最小图灵半径4
米。
statespace = stateSpaceDubins;statespace。MinTurningRadius = 4;%米
创建一个validatorVehicleCostmap
使用状态空间创建对象。
statevalidator = validatorVehicleCostmap (statespace);
指定的停车场costmap状态验证器对象。
statevalidator。地图= costmap;
计划路径
启动和目标提出了车辆定义为(x
,y
,Θ
)向量。世界单位(x
,y
位置是在米。世界单位取向角度Θ
在度。
startPose = (5, 90);%(米、米、学位)goalPose = (40, 180);%(米、米、学位)
使用一个pathPlannerRRT
(自动驾驶工具箱)对象和计划
(自动驾驶工具箱)函数的计划从一开始就对车辆路径目标构成。
规划师= pathPlannerRRT (costmap);refPath =计划(计划、startPose goalPose);
沿着路径插入在每一米。方向的角度转换为弧度。
提出了= 0(大小(refPath.PathSegments, 2) + 1, 3);:提出了(1)= refPath.StartPose;为i = 1:尺寸(refPath.PathSegments, 2)姿势(我+ 1)= refPath.PathSegments .GoalPose;结束提出了函数(:,3)=(姿势(:,3));
创建一个navPath
对象使用杜宾状态空间对象和指定的国家提出了
。
路径= navPath (statespace,姿势);
计算和可视化路径度量
创建一个pathmetrics
对象。
pathMetricsObj = pathmetrics(路径,statevalidator);
检查路径的有效性。结果是1
(真正的
如果计划路径障碍是免费的。0
(假
)表示一个无效的路径。
isPathValid (pathMetricsObj)
ans =逻辑1
计算和可视化的最低间隙
的路径。
间隙(pathMetricsObj)
ans = 0.5000
显示(pathMetricsObj)传说(“膨胀的领域”,“计划路径”,的最小间隙)包含(“X(米))ylabel (“Y”(米))
计算和可视化平滑度
的路径。值接近0
表明平滑路径。直线路径返回一个值0
。
平滑(pathMetricsObj)
ans = 0.0842
显示(pathMetricsObj“指标”,{“平滑”})(传说“膨胀的领域”,路径平滑的)包含(“X(米))ylabel (“Y”(米))
可视化的间隙为每个状态的道路。
显示(pathMetricsObj“指标”,{“StatesClearance”})(传说“膨胀的领域”,“计划路径”,路州的间隙)包含(“X(米))ylabel (“Y”(米))
在3 d环境中路径规划和指标计算
计划一条路穿过一个街区使用RRT算法。计算和可视化平滑、间隙和规划路径的有效性。
加载和分配映射到状态验证器
一块3 d占用城市地图加载到工作区。指定阈值考虑细胞无障碍。
mapData =负载(“dMapCityBlock.mat”);omap = mapData.omap;的核心。FreeThreshold = 0.5;
膨胀的入住率地图添加一个缓冲地带安全运行的障碍。
充气(omap, 1)
创建一个SE(3)状态空间对象状态变量的范围。
党卫军= stateSpaceSE3([0 0 220; 220; 100;正正,正正,正正,正正]);
创建一个3 d入住率映射状态验证器使用创建的状态空间。分配入住率validator对象映射到状态。指定采样间隔的距离。
sv = validatorOccupancyMap3D(党卫军,…地图=的核心,…ValidationDistance = 0.1);
计划路径
创建一个RRT路径规划与增加最大连接距离和最大迭代次数减少。指定一个自定义的目标函数,确定路径到达目标如果欧几里得距离目标低于1米的阈值。
规划师= plannerRRT (ss、sv、…MaxConnectionDistance = 50,…MaxIterations = 1000,…GoalReachedFcn = @ (~ s, g)(规范(s - g (1:3)) (1:3) < 1),…GoalBias = 0.1);
指定开始和目标提出了。
开始= 25 [50 180 0.7 0.2 0.1 0];目标= (150 33 35 0.3 0 0.1 - 0.6);
配置的随机数字生成器可重复的结果。
rng (1,“旋风”)
计划的路径。
[pthObj, solnInfo] =计划(计划,开始,目标);
计算和可视化路径度量
创建一个路径度量对象。
pathMetricsObj = pathmetrics (pthObj, sv);
检查路径的有效性。结果是1(真正的)
如果计划路径障碍是免费的。0(假)
显示无效的路径。
isPathValid (pathMetricsObj)
ans =逻辑1
计算路径的最小间隙。
间隙(pathMetricsObj)
ans = 10
评估路径的平滑。值接近0
表明平滑路径。直线路径返回一个值0
。
平滑(pathMetricsObj)
ans = 0.0011
可视化的路径的最小间隙。
显示(pathMetricsObj)轴平等的视图(75 [100])在%开始状态scatter3(开始(1,1),开始(1、2),开始(1、3)“g”,“填充”)%的目标状态scatter3(目标(1,1)、目标(1、2)、目标(1、3)“r”,“填充”)%的路径plot3 (pthObj.States (: 1) pthObj.States (:, 2), pthObj.States (:, 3),…“r -”线宽= 2)
版本历史
介绍了R2019b
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。