确定是否有计划路径是无障碍物
ispathvalid(
返回逻辑pathmetricsobj.
)1(真实)
如果计划的路径是免费的或逻辑的0(假)
如果路径无效。
基于一组姿势和相关地图环境计算计划路径的平滑度,间隙和有效性。
加载并将映射分配给状态验证器
从示例映射创建占用映射并设置地图分辨率。
加载examplemapsmat.;%simplemap.mapresolution = 1;%细胞/仪表地图= itemancymap(SimpleMap,MapResolution);
创建杜宾斯状态空间。
SENARYPACE =标准尼磺税素;
基于占用映射创建状态验证器,以存储Dubins状态空间中的参数和状态。
StateValidator = ValidatoroccupAccemap(标准空间);
将映射分配给验证器。
StateValidator.map = map;
设置验证器的验证距离。
StateValidator.ValidationDistance = 0.01;
更新状态空间绑定与地图限制相同。
stationspace.statebounds = [map.xworldlimits; map.yworldlimits; [ - pi pi]];
计划路径
创建RRT * Path Planner并允许进一步优化。
Planner = PlannerRrtstar(SenationPace,StateValidator);planner.continuaftergoalReached =真;
减少最大迭代次数并增加最大连接距离。
规划师..AxIterations = 2500;Planner.MaxConnectionDistance = 0.3;
为路径规范器定义开始和目标状态[
x,y,theta]
vectors。X和y是笛卡尔坐标,还有笛卡尔舞θ.是定向角度。
start = [2.5,2.5,0];%[米,米,弧度]目标= [22.5,8.75,0];
从起始状态计划到目标状态的路径。计划函数返回一个纳瓦路
目的。
RNG(100,'twister')%可重复的结果[PATH,SOLUTIONINFO] =计划(计划者,开始,目标);
计算和可视化路径指标
创建路径指标对象。
pathmetricsobj = pathmetrics(path,statevalidator);
检查路径有效性。结果是1(真实)
如果计划的路径是免费的。0(假)
表示无效路径。
ispathvalid(pathmetricsobj)
ans =.逻辑1
计算路径的最小间隙。
清关(Pathmetricsobj)
ans = 1.4142
评估路径的平滑度。靠近的值0.
表示一个更平滑的路径。直线路径返回一个值0.
。
平滑度(pathmetricsobj)
ANS = 1.7318.
可视化路径的最小间隙。
show(pathmetricsobj)图例('计划道路'那'最小清关')
使用RRT *算法通过停车场计划车辆路径。计算和可视化计划路径的平滑度,间隙和有效性。
加载并将映射分配给状态验证器
装载停车场的肋骨。绘制Costmap以查看停车场和车辆应该避免的膨胀区域。
加载停车镇序司机映射.MAT;costmap =停车艇门;绘图(Costmap)Xlabel('x(米)')ylabel('Y(米)')
创建一个标准尼替代金斯
对象并增加最小的图灵半径4.
米。
SENARYPACE =标准尼磺税素;标量值..MinturningRadius = 4;%仪表
创建一个Validatorvehiclecostmap.
对象使用创建的状态空间。
StateValidator = ValidatorVehiclecostMap(SerialPace);
将停车场CostMap分配给状态验证器对象。
statevalidator.map = costmap;
计划路径
定义车辆的开始和目标姿势[X
那y
那θ.
] vectors。世界单位(X
那y
)地点是米。世界单位的方向角度θ.
是度数。
血统= [5,5,90];%[米,米,度]守门= [40,38,180];%[米,米,度]
用一个pathplannerrrt.
(自动驾驶工具箱)对象和对象计划
(自动驾驶工具箱)从开始姿势到目标姿势来规划车辆路径的功能。
Planner = pathplannerrt(costmap);Refpath =计划(规划师,血统,守缩小);
沿着每米的路径插入。将方向角从度到弧度转换为弧度。
姿势=零(尺寸(Refpath.Pathsegments,2)+1,3);姿势(1,:) = Refpath.Startpose;为了i = 1:size(RefPath.PathSegments,2)姿势(i + 1,:) = Refpath.PatchSegments(i).GoOlpose;结尾姿势(:,3)= DEG2RAD(姿势(:,3));
创建一个纳瓦路
对象使用Dubins状态空间对象和指定的状态姿势
。
路径= NavPath(SyentsPace,Pose);
计算和可视化路径指标
创建一个途径
目的。
pathmetricsobj = pathmetrics(path,statevalidator);
检查路径有效性。结果是1
(真的
)如果计划的路径是免费的。0.
(错误的
)表示无效路径。
ispathvalid(pathmetricsobj)
ans =.逻辑1
计算和可视化最小值清除
路径。
清关(Pathmetricsobj)
ans = 0.5000.
show(pathmetricsobj)图例('膨胀区域'那'计划道路'那'最小清关')xlabel('x(米)')ylabel('Y(米)')
计算和可视化平滑
路径。靠近的值0.
表示一个更平滑的路径。直线路径返回一个值0.
。
平滑度(pathmetricsobj)
ans = 0.0842.
show(pathmetricsobj,'度量标准',{'平滑'}) 传奇('膨胀区域'那'路径平滑')xlabel('x(米)')ylabel('Y(米)')
可视化每种状态的间隙。
show(pathmetricsobj,'度量标准',{'不确定'}) 传奇('膨胀区域'那'计划道路'那'公路声明')xlabel('x(米)')ylabel('Y(米)')
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。