欢迎大家关注我的B站:
偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com)
本篇文章基于MATLAB导航工具箱的官方文档,详情参考Motion Planning - MATLAB & Simulink - MathWorks 中国
目录
1 pathmetrics
pathMetricsObj = pathmetrics(path)
pathMetricsObj = pathmetrics(path,validator)
Path:指定为navPath
StateValidator:
状态验证器
对象函数:
(1)clearance:返回路径的最小间隙。间隙测量为路径上状态的格网像元中心与指定地图环境中障碍物之间的最小距离。以n×1向量的形式返回路径的每个状态的最小距离集。
clearance(pathMetricsObj)
clearance(pathMetricsObj,'Type','states')
(2)isPathValid:确定规划路径是否有障碍
isPathValid(pathMetricsObj)
(3)show:可视化路径
Metrics:'MinClearance'
— 显示最小路径间隙,'StatesClearance'
— 显示路径状态的间隙,'Smoothness'
— 显示路径平滑度
(4)smoothness:路径的平滑度
smoothness(pathMetricsObj)
smoothness(pathMetricsObj,'Type','segments')
2 举例
load exampleMaps.mat; % simpleMap
mapResolution = 1; % cells/meter
map = occupancyMap(simpleMap,mapResolution);
statespace = stateSpaceDubins;
statevalidator = validatorOccupancyMap(statespace);
statevalidator.Map = map;
statevalidator.ValidationDistance = 0.01;
statespace.StateBounds = [map.XWorldLimits;map.YWorldLimits;[-pi pi]];
planner = plannerRRTStar(statespace,statevalidator);
planner.ContinueAfterGoalReached = true;
planner.MaxIterations = 2500;
planner.MaxConnectionDistance = 0.3;
start = [2.5, 2.5, 0]; % [meters, meters, radians]
goal = [22.5, 8.75, 0];
rng(100,'twister') % repeatable result
[path,solutionInfo] = plan(planner,start,goal);
pathMetricsObj = pathmetrics(path,statevalidator);
show(pathMetricsObj)
legend('Planned Path','Minimum Clearance')