主要内容

通货膨胀计算机

基于通货膨胀的COSTMAP的碰撞检查配置

描述

通货膨胀计算机函数创建一个通货膨胀计算机对象,可容纳车辆Costmap的碰撞检查配置。带有此配置的车辆成本量图会膨胀车辆环境中的障碍物大小。这种通货膨胀基于指定的通货膨胀计算机属性,例如车辆的尺寸和包围车辆所需的圆的半径。有关更多详细信息,请参阅算法。路径规划算法,例如Pathplannerrrt,使用此Costmap碰撞检查配置,以避免膨胀的障碍,并通过环境计划无碰撞的路径。

使用通货膨胀计算机对象设置CollisionChecker您的财产VERICLECOSTMAP目的。此碰撞检查配置会影响签到核对使用的功能VERICLECOSTMAP。这些值表明车辆姿势是自由的或者占据

创建

描述

CCCONFIG =通货膨胀CollisionChecker创建一个通货膨胀计算机目的,ccconfig,这可以保持车辆Costmap的碰撞检查配置。该对象使用一个圆来包围车辆。车辆的尺寸对应于默认值的值车辆限度目的。

CCCONFIG =通货膨胀CollisionChecker(VehicleDims)指定车辆的尺寸车辆是一个车辆限度目的。这车辆输入设置车辆限度财产的ccconfig

例子

CCCONFIG =通货膨胀CollisionChecker(车辆,,,,数字还指定了用来包围车辆的圆数。这数字输入设置数字财产的ccconfig

例子

CCCONFIG =通货膨胀CollisionChecker(___,,,,名称,价值设置中心位置通货膨胀使用名称值对的属性和来自前面的任何语法的输入。将每个属性名称包装在报价中。

例子:通货膨胀CollisionChecker(“中心位置”,[0.2 0.5 0.8],'FellationRadius',1.2)

特性

展开全部

用于封闭车辆并计算通货膨胀半径的圆数,指定为正整数。典型值是1到5。

  • 对于更快但更保守的碰撞检查,请减少圆的数量。这种方法可以提高性能,因为路径计划算法的碰撞检查更少。

  • 对于较慢但更精确的碰撞检查,请增加圆的数量。当计划在紧密的角落或通过狭窄的走廊(例如在停车场)进行一条路径时,这种方法很有用。

沿车辆纵轴的圆中心归一化位置,指定为1乘数字实际值的向量[0,1]。

  • 值为0的值将一个圆形中心放在车辆的后部。

  • 值为1的值将一个圆心中心放在车辆的前部。

将红色圆圈放置在值0和1的车辆

指定中心位置当您想与车辆上的精确位置对齐时。如果你走中心位置未指定的对象计算中心位置,使圆圈完全封闭了车辆。如果您更改中心位置的数量,数字已更新到中心位置

用于计算通货膨胀半径的车辆尺寸,指定为车辆限度目的。默认情况下,通货膨胀计算机对象使用默认的尺寸车辆限度目的。车辆尺寸在世界单位中。

通货膨胀半径,指定为非负实数。默认情况下,对象根据数字,,,,中心位置, 和车辆限度。有关更多详细信息,请参阅算法

对象功能

阴谋 情节碰撞配置

例子

全部收缩

通过使用优化的快速探索随机树(RRT*)算法计划车辆路径到达狭窄的停车位。尝试在RRT*路径计划器使用的COSTMAP中尝试不同的碰撞检查配置。

加载并显示停车场的成本量表。Costmap是一个VERICLECOSTMAP目的。默认,VERICLECOSTMAP使用碰撞检查配置,该配置基于仅包含车辆的一个圆的半径来夸大障碍物。Costmap过度充气障碍物(停车位边界)。

数据=负载('ParkingLotCostMap.mat');costmap = data.parkinglotcostmap;图图(COSTMAP)标题(“与一个圆圈进行碰撞检查”

图包含一个轴对象。带有标题碰撞检查一个圆的轴对象包含2个类型图像的对象。该物体代表膨胀的区域。

利用通货膨胀计算机为Costmap创建新的碰撞检查配置。

  • 为了减少障碍的通胀,请增加封闭车辆的圆圈数量。

  • 要指定车辆的尺寸,请使用车辆限度目的。

指定碰撞检查配置CollisionCheckerCOSTMAP的属性。

车辆=车辆限度(4.5,1.7);%4.5 m长,宽1.7 mnumcircles = 3;CCCONFIG =通货膨胀CollisionChecker(VehicleDims,Numcircles);costmap.collisionChecker = ccconfig;

使用新的碰撞检查配置显示COSTMAP。膨胀的区域减少了。

图图(COSTMAP)标题(“与三个圆圈进行碰撞检查”

图包含一个轴对象。带有标题碰撞检查三个圆圈的轴对象包含2个类型图像的对象。该物体代表膨胀的区域。

定义计划问题:车辆在停车场的左入口附近开始,并在停车位结束。

startpose = [11 10 0];%[米,仪表,学位]守门= [31.5 17 90];

用一个Pathplannerrrt反对计划通往停车位的路径。绘制计划中的道路。

planner = pathplannerrrt(costmap);示意=计划(计划者,起跑者,门柱);抓住情节(召集)持有离开

图包含一个轴对象。带有标题碰撞检查三个圆圈的轴对象包含11个类型的图像,补丁,散点,线,多边形的对象。该物体代表膨胀的区域。

为Costmap创建碰撞检查配置。手动指定圆心中心,以便将车辆完全封闭。

通过使用车辆限度目的。

长度= 5;%米宽度= 2;%米车辆=车辆限度(长度,宽度);

定义三个圆圈中心和用于碰撞检查的通胀半径。将一个中心放在车辆的中点。在车辆的任何一端都将其他两个中心相等。

Distfromside = 0.175;中心位置= [Distfromside 0.5 1-Distfromside];通货膨胀= 1.2;

创建并显示碰撞检查配置。

CCCONFIG =通货膨胀CollisionChecker(VehicleDims,...“中心位置”,中心位置,“通货膨胀”,通货膨胀);图(CCCONFIG)

图包含一个轴对象。轴对象包含20个类型线,多边形,散点,文本的对象。这些对象代表圆圈中心。

在这种配置中,车辆的角未封闭在圆圈内。要充分封闭车辆,请增加通胀半径。显示更新的配置。

ccconfig.inflationradius = 1.3;情节(ccconfig)

图包含一个轴对象。轴对象包含20个类型线,多边形,散点,文本的对象。这些对象代表圆圈中心。

使用此碰撞检查配置创建一个10 x 20米的COSTMAP。

COSTMAP = VERICLECOSTMAP(10,20,0.1,“ CollisionChecker”,ccconfig);

提示

  • 要在视觉上验证圆圈是否完全封闭了车辆,请使用阴谋功能。如果圆圈没有完全包围车辆,则有些自由姿势由签到(或未占用的姿势核对)实际上可能是在碰撞中。

算法

通货膨胀财产的通货膨胀计算机确定在世界单位中膨胀障碍的数量。默认,通货膨胀等于完全包围车辆所需的最小重叠圆的半径,如以下特性所确定:

带有三个圆心的车辆

有关此碰撞检查配置如何定义Costmap中夸大区域的更多详细信息,请参见算法部分VERICLECOSTMAP

参考

[1] Ziegler,J。和C. Stiller。“快速碰撞检查是否智能车辆运动计划。”IEEE智能车辆研讨会。2010年6月21日至24日。

扩展功能

版本历史记录

在R2018B中引入