开车。路径
计划车辆路径
描述
的开车。路径
对象表示由路径段序列组成的车辆路径。这些部分可以是其中之一开车。DubinsPathSegment
对象或开车。ReedsSheppPathSegment
对象,并存储在PathSegments
的属性开车。路径
.
方法检查路径的有效性vehicleCostmap
对象,使用checkPathValidity
函数。要沿路径的长度插值姿态,使用插入
函数。
创建
创建一个开车。路径
对象,使用计划
函数,指定一个pathPlannerRRT
对象作为输入。
属性
StartPose
- - - - - -车辆初始姿态
[x,y,Θ)向量
此属性是只读的。
车辆的初始姿态,指定为[x,y,Θ)向量。x而且y是世界单位,如米。Θ是在度。
GoalPose
- - - - - -车辆目标姿态
[x,y,Θ)向量
此属性是只读的。
车辆的目标姿态,列明为[x,y,Θ)向量。x而且y是世界单位,如米。Θ是在度。
PathSegments
- - - - - -段沿着路径
的数组开车。DubinsPathSegment
对象|的数组开车。ReedsSheppPathSegment
对象
此属性是只读的。
的数组指定的路径上的段开车。DubinsPathSegment
对象或开车。ReedsSheppPathSegment
对象。
长度
- - - - - -路径的长度
积极的真正的标量
此属性是只读的。
路径长度,以世界单位表示,指定为正实标量。
例子
规划路径并检查其有效性
利用最优快速搜索随机树(RRT*)算法规划通过停车场的车辆路径。检查路径是否有效,然后沿着路径绘制过渡姿势。
加载一个停车场的成本图。绘制成本图,看到停车场和充气区域的车辆要避免。
data =负载(“parkingLotCostmap.mat”);costmap = data.parkingLotCostmap;情节(costmap)
定义车辆的起始和目标姿态为[x,y,Θ)向量。的世界单位(x,y)的位置以米为单位。世界单位Θ方位角以度为单位。
startPose = [4,4,90];%[米,米,度]goalPose = [30, 13, 0];
使用一个pathPlannerRRT
对象来规划从起始姿势到目标姿势的路径。
规划师= pathPlannerRRT (costmap);refPath =计划(计划、startPose goalPose);
检查路径是否有效。
isPathValid = checkPathValidity (refPath costmap)
isPathValid =逻辑1
沿着路径插值过渡姿势。
transitionPoses =插入(refPath);
在成本图上绘制计划的路径和转换姿势。
持有在情节(refPath“DisplayName的”,“计划路径”)散射(transitionPoses (: 1) transitionPoses (:, 2), [],“填充”,...“DisplayName的”,“过渡姿势”)举行从
规划路径和插值沿路径
通过使用快速探索随机树(RRT*)算法规划通过停车场的车辆路径。插值车辆的姿态在沿途的点。
加载一个停车场的成本图。绘制成本图,看到停车场和充气区域的车辆要避免。
data =负载(“parkingLotCostmap.mat”);costmap = data.parkingLotCostmap;情节(costmap)
定义车辆的起始和目标姿态为[
x,y,Θ]
向量。的世界单位(x,y)的位置以米为单位。世界单位Θ方位角以度为单位。
startPose = [4,4,90];%[米,米,度]goalPose = [30, 13, 0];
使用一个pathPlannerRRT
对象来规划从起始姿势到目标姿势的路径。
规划师= pathPlannerRRT (costmap);refPath =计划(计划、startPose goalPose);
沿着整个路径每1米插值车辆姿势。
长度= 0:1:refPath.Length;提出了=插入(refPath、长度);
在成本图上绘制插值的姿势。
情节(costmap)在散射(姿势(:1),姿势(:,2),“DisplayName的”,“插入的姿势”)举行从
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
版本历史
介绍了R2018aR2018b:connectingPoses
功能和开车。路径
对象属性KeyPoses
而且NumSegments
不推荐
的connectingPoses
函数和KeyPoses
而且NumSegments
的属性开车。路径
对象不推荐使用。相反,使用插入
函数,该函数返回键姿势、连接姿势、过渡姿势和方向变化。的KeyPoses
而且NumSegments
属性不再重要。KeyPoses
,NumSegments
,connectingPoses
将在未来的版本中删除。
在R2018a,connectingPoses
使您能够沿着整个路径或沿着关键姿势之间的路径段获得中间姿势(由KeyPoses
).使用插入
函数,您现在可以在路径上的任何指定点获得中间姿势。的插入
函数还提供发生方向变化的过渡姿势。
的所有实例KeyPoses
而且NumSegments
的所有实例connectingPoses
与插入
.的典型用法connectingPoses
以及如何更新您的代码以使用插入
代替。在这里,路径
是一个开车。路径
返回的对象pathPlannerRRT
.
不使用 | 建议更换 |
---|---|
提出了= connectingPoses(路径); |
提出了=插入(路径); |
segID = 1;posesSegment = connectingPoses(路径,segID); |
一步= 0.1;sample = 0: step: path.PathSegments(1).Length;segmentPoses =插入(道路、样本); |
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。