主要内容

插入

沿着计划的车辆路径插入姿势

描述

例子

提出了=插入(refPath沿着参考路径的长度进行插值,返回转换姿势。有关更多信息,请参见过渡姿势

例子

提出了=插入(refPath长度在路径长度的指定点上插入姿态。除了包含对应于指定长度的姿势外,提出了也包括过渡姿势。

提出了方向=插值(___还返回车辆在每个姿态下的运动方向,使用来自前面任何语法的输入。

例子

全部折叠

利用最优快速探索随机树(RRT*)算法规划车辆通过停车场的路径。检查路径是否有效,然后沿着路径绘制过渡姿势。

加载一个停车场的成本图。绘制成本图,看到停车场和充气区域的车辆要避免。

数据=负载(“parkingLotCostmap.mat”);costmap = data.parkingLotCostmap;情节(costmap)

图中包含一个轴对象。axis对象包含image、patch类型的2个对象。此对象表示膨胀区域。

定义车辆的起始和目标姿态为[xyΘ)向量。的世界单位(xy)地点以米为单位。的世界单位Θ方向角的单位是度。

startPose = [4,4,90];%[米,米,度]goalPose = [30,13,0];

使用一个pathPlannerRRT对象来规划从开始姿势到目标姿势的路径。

规划师= pathPlannerRRT(成本地图);refPath = plan(planner,startPose,goalPose);

检查路径是否有效。

isPathValid = checkPathValidity(refPath,costmap)
isPathValid =逻辑1

沿着路径插值过渡姿势。

transitionposed =插值(refPath);

在成本图上绘制计划路径和转换姿势。

持有情节(refPath“DisplayName的”“计划路径”)散射(transitionPoses (: 1) transitionPoses (:, 2), [],“填充”...“DisplayName的”“过渡姿势”)举行

图中包含一个轴对象。坐标轴对象包含图像、补丁、散点、直线、多边形等13个对象。这些对象表示膨胀区域、计划路径、过渡姿势。

通过使用快速探索随机树(RRT*)算法规划通过停车场的车辆路径。插值车辆的姿态在点沿路径。

加载一个停车场的成本图。绘制成本图,看到停车场和充气区域的车辆要避免。

数据=负载(“parkingLotCostmap.mat”);costmap = data.parkingLotCostmap;情节(costmap)

图中包含一个轴对象。axis对象包含image、patch类型的2个对象。此对象表示膨胀区域。

定义车辆的起始和目标姿态为xyΘ向量。的世界单位(xy)地点以米为单位。的世界单位Θ方向角的单位是度。

startPose = [4,4,90];%[米,米,度]goalPose = [30,13,0];

使用一个pathPlannerRRT对象来规划从开始姿势到目标姿势的路径。

规划师= pathPlannerRRT(成本地图);refPath = plan(planner,startPose,goalPose);

沿着整个路径每1米插值车辆姿态。

长度= 0:1:refPath.Length;姿势=插值(refPath,长度);

在成本图上绘制插值的姿势。

情节(costmap)散射(姿势(:1),姿势(:,2),“DisplayName的”“插入的姿势”)举行

图中包含一个轴对象。坐标轴对象包含图像、补丁、散射3个对象。这些物体代表膨胀的区域,插值的姿势。

输入参数

全部折叠

规划的车辆路径,指定为开车。路径对象。

沿着路径长度的点,指定为实值向量。值必须在0到路径长度的范围内,由长度的属性refPath.的插入函数在这些指定的点上插入姿态。长度是世界单位,如米。

例子:pose =插值(refPath,0:0.1:refPath. length)沿着路径的整个长度每0.1米插值一次姿势。

输出参数

全部折叠

车辆沿路径摆姿势,返回为的-by-3矩阵xyΘ)向量。是返回的姿势的数量。

x而且y以世界单位(如米)指定车辆的位置。Θ以度为单位指定车辆的方向角度。

提出了始终包括过渡姿势,即使您只在路径上的指定点进行插值。如果没有指定长度输入参数,则提出了只包括过渡姿势。

车辆姿态的运动方向,返回为-by-1向量的1s(向前运动)和-1s(反向运动)。是返回的姿势的数量。的每个元素方向对应于的一行提出了

更多关于

全部折叠

过渡姿势

路径由多个运动组合(例如,左转、直转和右转)组成。过渡姿势是对应于一个运动的结束和另一个运动的开始的车辆姿势。它们表示路径上对应于车辆方向或方向变化的点。的插入函数总是返回转换姿势,即使您只在路径上的指定点进行插值。

转换姿势之间的路径长度由MotionLengths属性。例如,考虑下面的路径,它是a开车。路径由单个杜宾斯路径段组成的对象。这一段由三个运动组成,描述为MotionLengths而且MotionTypes段的属性。

Path对象的MATLAB输出示例及其DubinsPathSegment对象之一

插入函数按如下顺序插入以下转换姿势:

  1. 飞行器的初始姿态,StartPose

  2. 车辆左转后的姿势(“L”)最大转向角为4.39米。

  3. 车辆直线行驶后的姿势(“S”)高6.32米。

  4. 车辆右转后的姿势(“R”)最大转向角为4.39米。这个姿态也是目标姿态,因为它是整个路径的最后一个姿态。

图中显示了这些过渡姿势,它们是[xyΘ)向量。x而且y以世界单位(如米)指定车辆的位置。Θ以度为单位指定车辆的方向角度。

车辆过渡姿势

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2018b中引入

Baidu
map