用于控制车辆的自动驾驶的方法和装置与流程

文档序号:14834892发布日期:2018-06-30 11:58阅读:264来源:国知局
用于控制车辆的自动驾驶的方法和装置与流程

本公开总体上涉及辅助驾驶领域,并且具体地涉及用于控制车辆的自动驾驶的方法和装置。



背景技术:

在车辆辅助自动驾驶领域中可以采用基于预瞄点的控制方式,使得车辆能够跟随给定的规划轨迹中的预瞄点移动,从而实现自动驾驶。

然而,在例如泊车、上坡和下坡等场景下,车辆移动可用的空间相对狭小,因此往往需要通过多次的前进和后退来进行调整车辆的位置和朝向等,以便最终能够移动到目标位置处(例如,车库中)。

期望能够在针对例如泊车、上坡和下坡等场景给出复杂的规划轨迹的情况下,高效且安全地实现车辆的自动驾驶。



技术实现要素:

一方面,提供了一种用于控制车辆的自动驾驶的方法。该方法可以包括:将连接在起始位置与目标位置之间的规划轨迹划分成具有时间先后顺序的多个子轨迹,同一子轨迹上的所有轨迹点的车辆档位相同,而分别来自在时间上相邻的任何两个子轨迹的任何两个轨迹点的车辆档位相反;针对多个子轨迹中的任何一个当前子轨迹,使用一个或多个虚拟点从当前子轨迹的起点开始反向地延长当前子轨迹;以及以时间先后顺序按照每个经延长的子轨迹和相应的车辆档位来分段地驱动车辆。

另一方面,提供了一种用于控制车辆的自动驾驶的装置。该装置可以包括被配置为执行上述方法的处理器。

另一方面,还提供了一种用于控制车辆的自动驾驶的装置。该装置可以包括:划分器,被配置为将连接在起始位置与目标位置之间的规划轨迹划分成具有时间先后顺序的多个子轨迹,同一子轨迹上的所有轨迹点的车辆档位相同,而分别来自在时间上相邻的任何两个子轨迹的任何两个轨迹点的车辆档位相反;处理器,被配置为针对多个子轨迹中的任何一个当前子轨迹,使用一个或多个虚拟点从当前子轨迹的起点开始反向地延长当前子轨迹;以及驱动器,被配置为向车辆的执行机构发出指令和参数,以时间先后顺序按照每个经延长的子轨迹和相应的车辆档位来分段地驱动车辆。

另外,还提供了一种非临时性存储介质,在其上存储有程序指令,该程序指令可以在被执行时执行上述方法。

通过根据本公开的实施例的方法和装置,能够在针对例如泊车、上坡和下坡等场景给出复杂的规划轨迹的情况下,高效且安全地实现车辆的自动驾驶。

附图说明

图1示出根据本公开的实施例的用于控制车辆的自动驾驶的方法的流程图。

图2示出根据本公开的实施例的复杂的规划轨迹的示例。

图3示出根据本公开的实施例的基于复杂的规划轨迹来控制车辆的自动驾驶的过程的示例。

图4示出根据本公开的实施例的划分规划轨迹的示例。

图5示出根据本公开的实施例的子轨迹的延长的示例。

图6示出根据本公开的实施例的角度误差和横向误差的示例。

图7示出根据本公开的实施例的子轨迹的延长的另一个示例。

图8示出根据本公开的实施例的控制车辆停止的示例。

图9示出根据本公开的实施例的装置的示例。

图10示出根据本公开的实施例的装置的另一个示例。

具体实施方式

通常的基于预瞄点的车辆控制方式往往要求或假设在按照规划轨迹行进的过程中车辆的档位不会变成相反方向的档位。例如,给定规划轨迹,车辆可以始终以前进档行进,并且可以总是选择位于车辆行进方向的前方的构成规划轨迹的某个轨迹点作为预瞄点。

然而,如前文所述,在例如泊车、上坡和下坡等场景下,车辆移动可用的空间相对狭小,因此往往需要通过多次的前进和后退来进行调整车辆的位置和朝向等,以便最终能够移动到目标位置处(例如,车库中)。

图1示出根据本公开的实施例的用于控制车辆的自动驾驶的示例方法的流程图。

如图1所示,根据本公开的实施例的方法可以包括:步骤S10,其中,可以连接在起始位置与目标位置之间的规划轨迹划分成具有时间先后顺序的多个子轨迹,使得同一子轨迹上的所有轨迹点的车辆档位相同,而分别来自在时间上相邻的任何两个子轨迹的任何两个轨迹点的车辆档位相反;步骤S20,其中,可以针对多个子轨迹中的任何一个当前子轨迹,使用一个或多个虚拟点从当前子轨迹的起点开始反向地延长当前子轨迹;以及步骤S30,其中,可以以时间先后顺序按照每个经延长的子轨迹和相应的车辆档位来分段地驱动车辆。

下面结合示例来描述根据本公开的实施例的方法的细节。

在图2的示例中,打算使车辆V自动地从起始位置ES移动到例如车库(图2中的虚线框所表示的区域)中的目标位置EF处,其中,H表示车辆V的头部,R表示车辆V的尾部。然而,由于诸如车辆V的当前位置、头部V的朝向、车辆移动可用的空间、障碍物等因素的影响,无法在起始位置ES和目标位置EF之间设计出一条简单的规划轨迹,使得车辆V能够例如始终以倒车档从起始位置ES直接移动到目标位置EF。

替代地,可以将规划轨迹设计成由多条子轨迹形成的复杂的规划轨迹。在图2的示例中,复杂的规划轨迹可以包括以起始位置ES起点并朝向轨迹点EP1的子轨迹TR0、以轨迹点EP1为起点并朝向轨迹点EP2的子轨迹TR1、以轨迹点EP2为起点并且以终止位置EF为终点的子轨迹TR2。

如图3所示,按照图2所示的复杂的规划轨迹,车辆V从起始位置ES移动到目标位置EF的过程可以根据所包括的子轨迹分成三个阶段。

在阶段PH0中,车辆V以倒车档沿着子轨迹TR0从起始位置ES朝向轨迹点EP1倒退到子轨迹TR0的终点处。与图2中相同,H表示车辆V的头部,R表示车辆V的尾部。

然后,在阶段PH1中,车辆V以前进档沿着子轨迹TR1从子轨迹TR1的起点EP1朝向轨迹点EP2前进到子轨迹TR1的终点处。

然后,在阶段PH3中,车辆V以倒车档沿着子轨迹TR2从子轨迹TR2的起点EP2倒退到目标位置EF处。

车辆V在每个子轨迹上具有相同的档位方向,例如,始终是前进档或者始终是倒车档。每个子轨迹TR0、TR1或TR2可以包括多个轨迹点,并且可以表示为连接在子轨迹的起点和终点之间并且能够平滑地拟合该子轨迹所包括的多个轨迹点的曲线或线段。换句话说,对于根据本公开的实施例的每个子轨迹TR0、TR1或TR2中的每个轨迹点,可以存在一条直线,该直线能够在该轨迹点处与该子轨迹的拟合曲线相切或者与该子轨迹的拟合曲线或线段的一部分重叠。

车辆V在时间上相邻的两个子轨迹之间将档位转换成相反的档位。例如,车辆V的档位在子轨迹TR0上可以是倒车档,而在子轨迹TR1上可以是前进档。换句话说,车辆V在一个子轨迹的终点(例如,图2中的TR0的终点)处的档位总是与紧接在该子轨迹之后的下一个子轨迹的起点(例如,图2中的TR1的起点EP1)处的档位相反,使得整个规划轨迹在时间上相邻的两个子轨迹的连接处可以具有尖锐的形状。

对于给定的规划轨迹,在根据本公开的实施例的方法可以遍历整个形成整个规划轨迹上的每个轨迹点,并检测整个规划轨迹在哪些轨迹点处可以具有尖锐的形状。然后,可以根据所检测到的这些轨迹点将规划轨迹划分成多个部分或子轨迹,使得每个子轨迹可以具有平滑的形状。

例如,如图4所示,规划轨迹可以包括5个轨迹点P1至P5。根据本公开的实施例的方法可以从P1到P5地遍历每个轨迹点,并且可以形成尽可能平滑地拟合所有轨迹点的曲线(或折线)。如图4所示,规划轨迹在轨迹点P2、P3和P4处具有尖锐形状。相应地,可以在将P3作为一个子轨迹的终点并将P4作为在时间上紧跟在该子轨迹之后的另一个子轨迹的起点,由此完成对规划轨迹的一次划分。

在一个实施例中,可以在不插入另外的轨迹点并考虑车辆的车身长度、转变半径等因素的情况下,尝试使用一条或多条曲线或直线来拟合规划轨迹中的各个轨迹点。

例如,在针对连续的三个轨迹点(例如,图4中的P2、P3和P4)无法使用一条平滑的曲线或直线来拟合的情况下,可以根据连续的三个轨迹点中的后两个轨迹点将规划轨迹划分成不同的部分,后两个轨迹点中的前一个轨迹点可以作为一个子轨迹的终点,并且后两个轨迹点中的后一个轨迹点(或者连续的三个轨迹点中的最后一个轨迹点)可以作为在时间上紧跟在该子轨迹之后的另一个子轨迹的起点。

另外,也可以通过检测在各个轨迹点处是否存在相应的切线的方式来划分规划轨迹。例如,在图4的示例中,可以检测到在P2处只存在一条直线,该直线可以与连接P1、P2和P3的拟合曲线相切(或者与连接P1、P2和P3的拟合曲线或直线的一部分重叠);而在P3处不存在这样的唯一一条直线,该直线可以作为连接P2、P3和P4的拟合曲线的唯一切线,或者说拟合曲线在P3处不可导。于是,可以将轨迹点P3作为从起点P1开始经由轨迹点P2的一个子轨迹的终点。相应地可以将轨迹点P3之后的轨迹点P4作为另一个子轨迹的起点。

在该实施例中,可以不必针对每个轨迹点均给出与车辆档位有关的信息。可以在车辆的当前位置、当前朝向、目标位置、规划轨迹的起始位置或起始点等信息推断出在每个子轨迹中的车辆档位应当是前进档还是倒车档。在该实施例中,可以相应地设置车辆在按照每个子轨迹行进时的相应的档位,并且可以只在切换子轨迹时将车辆档位切换成使车辆行驶方向相反的档位。

在另外的实施例中,在给定的规划轨迹中每个轨迹点处的车辆档位均已知的情况下,也可以通过检测每个轨迹点的车辆档位的方式来简单地实现对规划轨迹的划分。例如,可以按照整个规划轨迹从起始位置到目标位置的延伸方向遍历整个规划轨迹的每个轨迹点。当检测到规划轨迹上的两个相邻的轨迹点处的车辆档位不同时,例如,可以从整个规划轨迹中截取出一部分作为一个子轨迹。

例如,在图4的示例中,轨迹点P1、P2和P3具有相同的档位,而P4与P3具有相反的档位。由此,根据本公开的实施例的方法可以确定轨迹点P3为包括轨迹点P1、P2和P3的一个子轨迹的终点,而轨迹点P4为规划轨迹中紧接在包括轨迹点P1、P2和P3的子轨迹之后的另一个子轨迹的起点。

由此,也可以将整个规划轨迹划分成多个子轨迹,并且使得同一子轨迹上的所有轨迹点的车辆档位相同,而分别来自在时间上相邻的任何两个子轨迹的任何两个轨迹点的车辆档位相反。

然后,可以以时间先后顺序按照每个子轨迹和相应的车辆档位来分段地驱动车辆。例如,如图3所示,在车辆V按照子轨迹TR0以倒车档从起始位置ES(子轨迹TR0的起点)移动到子轨迹TR0的终点的过程中,可以暂时屏蔽TR1和TR2等其他子轨迹,并且可以基于子轨迹TR0并采用例如基于预瞄点的控制方式来控制车辆V的自动移动,其中,可以将选择在子轨迹TR0中位于车辆V的行进方向的前方(由于车辆V在子轨迹TR0中采用倒车档,因此对应于车辆V的车身的后方)的某个轨迹点作为预瞄点。

通常的基于预瞄点的车辆控制方式往往只关注于车辆行进过程中的控制。然而,在准备开始控制车辆V以前进档或倒车档按照某个子轨迹从该子轨迹的起点自动移动时,车辆V的定位位置可能由于定位抖动、障碍物、滑动(例如,由于地面不平)等不同的因素而偏移。这样的偏移可能导致丧失先前确定的预瞄点(例如,该子轨迹的起点),或者无法确定预瞄点(例如,该子轨迹的起点),并导致基于预瞄点的车辆自动驾驶控制失效或失败。例如,车辆定位抖动可能使得所确定的车辆的定位位置与当前子轨迹的起点之间的距离超出能够正确地确定预瞄点的范围,或者车辆在前一个子轨迹移动之后的停止位置超出能够从当前子轨迹中正确地确定预瞄点范围,使得无法控制车辆按照当前子轨迹移动。

在根据本公开的实施例的方法中,可以针对通过划分整个规划轨迹所获得的多个子轨迹中的任何一个当前子轨迹,使用一个或多个虚拟点从当前子轨迹的起点开始反向地延长当前子轨迹,以克服车辆V的定位位置的偏移所带来的影响。

在本文中,“正向”可以指与子轨迹的所有轨迹点的方向所确定的该轨迹的整体方向或整体趋势相同,使得车辆在沿着该子轨迹“正向地”行进的情况下能够朝向该子轨迹的终点地移动或者能够从该子轨迹的起点移动到该子轨迹的终点。对应地,“反向”可以指与子轨迹的所有轨迹点的方向所确定的该轨迹的整体方向或整体趋势不同,使得车辆在沿着该子轨迹“反向地”行进的情况下能够背离该子轨迹的终点地移动或者无法从该子轨迹的起点移动到该子轨迹的终点。在本文中,“正向”或“反向”与子轨迹或车辆行进的整体方向或整体趋势有关,而与车辆行进时的档位(即,前进档或倒车档)无关。

在一个实施例中,可以在准备开始按照某个子轨迹以某个档位自动地驱动车辆之前反向地延长该子轨迹。在另外的实施例中,也可以在将整个规划轨迹划分成多个子轨迹之后针对每个子轨迹进行反向延长。

图5示出根据本公开的实施例的对子轨迹进行反向延长的示例,其中,在图5的示例中,轨迹点PS和PE分别表示一个子轨迹的起点和终点,轨迹点PS和PE之间的实线表示该子轨迹,实线的箭头表示该子轨迹的整体方向或整体趋势(即,车辆V将沿着该子轨迹从起点PS移动到终点PE),虚线表示反向延长的部分,虚线的箭头表示反向延长的方向。

在一个实施例中,可以使用例如虚拟点VP-1、VP-2和VP-3从起点PS开始反向地对连接在PS和PE之间的子轨迹的拟合曲线进行外插,使得以虚拟点VP-3为起点经延长的子轨迹的整体方向或整体趋势与以PS为起点的原来的子轨迹相同。在另外的实施例中,可以沿着与起点PS处的速度方向或行进方向相反的方向的射线插入一个或多个虚拟点。在另外的实施例中,可以在连接起点PS和与PS相邻的轨迹点的直线上从起点PS开始反向地插入一个或多个虚拟点。

用于反向延长的虚拟点之间的距离以及虚拟点与起点之间的距离可以根据需要任意地设置,例如,可以根据子轨迹上的轨迹点之间的距离来设置,也可以根据确定预瞄点的距离范围来确定。

在一个实施例中,可以根据子轨迹上的轨迹点之间的距离、车辆在准备按照经延长的子轨迹行进之前的当前位置与子轨迹的起点之间的距离以及车辆的定位位置的偏移来确定虚拟点的数量。另外,也可以根据子轨迹上的轨迹点之间的距离、车辆的当前位置在经反向延长的子轨迹上的投影,并考虑例如由于车辆定位抖动引起的车辆的定位位置的偏移来确定虚拟点的数量。所设置的虚拟点的数量应当确保车辆V的当前位置CP在经延长的子轨迹上的投影CP’能够位于经延长的子轨迹中的两个相邻的点之间,例如图5的示例中的VP-2和VP-3之间。

可以将经过当前位置CP并且与车辆V的行进方向垂直的直线与经延长的子轨迹的交点作为CP在经延长的子轨迹上的投影CP’。另外,也可以将以CP为圆心且与经延长的子轨迹相切的弧线上的切点作为CP在经延长的子轨迹上的投影CP’。

另外,也可以检测在经延长的子轨迹上是否存在相邻的两个轨迹点,使得从一个轨迹点到CP的向量与表示该轨迹点处的速度的向量的夹角小于或等于90度,并且从另一个轨迹点到CP的向量与表示该另一个轨迹点处的速度的向量的夹角大于或等于90度。如果存在,则可以确定CP到经延长的子轨迹上的投影CP’位于经延长的子轨迹中的两个相邻的点之间;否则,可能意味着需要使用另外的一个或多个虚拟点对经延长的子轨迹进一步地进行反向延长。

在一个实施例中,可以检测子轨迹的起始点PS到车辆V的当前位置CP的向量与表示起点PS处的速度的向量之间的夹角是否大于90度。如果是,则可以使用一个虚拟点(例如图5中的VP-1)反向地延长子轨迹,然后检测该虚拟点到车辆V的当前位置CP的向量与表示该虚拟点处的速度的向量之间的夹角是否大于90度。如果是,则继续使用另外的虚拟点(例如图5中的VP-2和VP-3)反向地延长子轨迹,直到某个虚拟点(例如图5中的VP-3)到车辆V的当前位置CP的向量与表示该虚拟点处的速度的向量之间的夹角小于或等于90度为止。

在一个实施例中,可以使得用于反向延长的虚拟点的数量大于或等于3。在该实施例中,即使在检测到子轨迹的起始点PS到车辆V的当前位置CP的向量与表示起点PS处的速度的向量之间的夹角小于或等于90度的情况下也插入虚拟点。

通过使用一个或多个虚拟点反向地延长子轨迹,能够使基于预瞄点的自动控制能够更好地定位车辆相对于轨迹的投影处于轨迹中的相对位置,并且能够消除例如由于车辆定位抖动而引起的位置偏移所带来的影响。

然后,根据本公开的实施例的方法可以按照经反向延长的子轨迹以相应的车辆档位驱动车辆。在驱动车辆按照经反向延长的子轨迹行进的过程中,如前文所述,例如可以采用任何基于预瞄点的控制算法来控制车辆的移动。

如图6所示,在控制车辆V按照经延长的子轨迹TR行进的过程中,可以选择(例如,实时地)子轨迹TR上的某个轨迹点或者某个内插的点PR作为预瞄点,并随时监测车辆的当前位置CP相对于所选择的预瞄点PR的角度误差ae和横向误差de,并根据所监测到的角度误差ae和横向误差de来调整车辆V的前轮的角度,从而及时地调整车辆V行进的实际路线,以确保车辆V始终按照由子轨迹TR所决定的路线行进。

在图6中,DT表示车辆V当前的行进方向(即,始于车辆V的当前位置CP的向量),line1表示在PR处的速度向量相对应的直线或者在PR处的切线,line2表示经过PR并且与line1垂直的直线,DPR表示始于车辆V的当前位置CP并且与PR处的速度向量具有相同方向的向量,则角度误差ae可以是DT与DPR之间的夹角,并且横向误差de可以是PR到line2与DT的交点PR’(即,预瞄点PR到DT上的投影)的距离。

如图3所示并且如前文所述,在按照一个子轨迹驱动车辆V的过程中,可以暂时屏蔽其他的子轨迹,并且采用基于预瞄点的控制方式来控制车辆的自动驾驶。当车辆接近于子轨迹的终点时,在子轨迹中将无法再找到可作为自动移动的参照物的预瞄点,导致基于预瞄点的控制方式可能在接近于子轨迹的终点时失效。

为此,在根据本公开的实施例的方法中,还可以使用虚拟射线从当前子轨迹(可以是经反向延长的子轨迹)的终点开始正向地延长当前子轨迹。

在一个实施例中,可以在车辆按照子轨迹行进的过程中的当前位置在当前子轨迹上的投影与当前子轨迹的终点之间的距离小于某个阈值(例如,5米)的情况下,对当前子轨迹进行正向延长。在另外的实施例中,也可以在将规划轨迹划分成多个子轨迹之后,对当前子轨迹进行正向延长,例如可以针对每个子轨迹定义所使用的相应的虚拟射线的函数。

在一个实施例中,可以根据当前子轨迹的终点和当前子轨迹上与终点相邻的轨迹点来确定用于正向延长当前子轨迹的虚拟射线。在另外的实施例中,也可以根据当前子轨迹在终点处的切线或者速度向量来确定用于正向延长当前子轨迹的虚拟射线。

如图7所示,可以针对起点为PS且终点为PE的子轨迹,使用一条虚拟射线VL从终点PE开始正向地延长该子轨迹。这样,当车辆V的当前位置在该子轨迹上的投影靠近终点PE时,基于预瞄点的控制仍然能够在虚拟射线上找到一个虚拟点VPR作为预瞄点,使得在车辆V靠近终点的情况下也能够正常地计算横向误差(例如,图6中的de),并且能够更好地控制车辆V在靠近终点的情况下的行进,以便使车辆在停止时的位置和朝向能够更好地适合于接下来要切换到的下一个子轨迹。

在一个实施例中,可以在车辆按照经正向延长的子轨迹行进的过程中的当前位置在子轨迹上的投影与子轨迹的终点之间的距离小于某个阈值的情况下,基于在虚拟射线上的虚拟点(例如,图7中的VPR)和该虚拟点在车辆的当前的行进方向上的投影来计算车辆的行进的横向误差。在一个实施例中,可以根据当前子轨迹上的轨迹点之间的距离、车辆的当前位置和车辆的行进速度中的一个或多个来确定和调整该阈值。在一个实施例中,可以考虑车速来确定该阈值。例如,可以与车辆的行进速度成比例地设置该阈值。例如,可以将该阈值设置为大于或等于2米,使得在车辆到终点的距离小于2米时能够使用虚拟射线上的虚拟点。又例如,在车辆以高速行进时,可以将该阈值设置为大于或等于例如5米。

另外,如前文所述,车辆在切换子轨迹时,由于需要切换档位,所以需要使车辆到达一个子轨迹的终点之后并开始按照另一个子轨迹移动之前的一段时间内停止。例如,可以基于车辆的当前位置到子轨迹的距离来判断是否使车辆停止(例如,向车辆的执行机构发出刹车指令)。然而,由于车辆的行进速度、路况、干扰、对所采样的信号处理速度等各种因素,可能无法准确判断使车辆停止的时机,导致例如急刹车等并给车辆带来损害,或者导致车辆的最终的停止位置与期望的停止位置偏差过大,甚至可能由于例如跳帧等导致无法正确地判断出应当使车辆停止。

在规划轨迹是例如图2或图3所示的那样的复杂轨迹的情况下,在驱动到车辆行进的过程可能需要使车辆停止多次,甚至可能频繁地停止多次。准确且高效的停车方案显得更加重要。

在根据本公开的实施例的方法中,可以在车辆按照经延长的当前子轨迹行进的过程中的当前位置与当前子轨迹的终点之间的距离小于某个阈值,并且当前位置到当前子轨迹的终点的向量与车辆的行进方向的夹角成为钝角的情况下,向车辆的执行机构发出指示使车辆停止的指令。

例如,如图8所示,在车辆V按照起点为PS并且终点为PE的子轨迹行时的过程中,可以检测车辆V的当前位置CP1到终点PE的向量与车辆V当前的行进方向DT1之间的夹角。如果当前的夹角a1小于90度(即,为锐角),则可以确定使车辆V继续行进。

随着车辆V的移动,当检测到车辆V的当前位置CP2到终点PE的向量与车辆V当前的行进方向DT2之间的夹角a2大于90度(即,为钝角)或者当检测到车辆V的当前位置终点PE的向量与车辆V当前的行进方向之间的夹角开始变得大于90度,并且CP2和PE之间的距离小于某个阈值r(可以是以PE为圆心的某个圆的半径)时,可以向车辆V的执行机构发出指示使车辆V停止的指令(包括刹车指令)。

根据本公开的实施例的方法可以在使车辆停止后或确定车辆停止时检测是否到达目标位置,或者是否还需要切换到下一个子轨迹来继续驱动车辆。

在确定需要继续切换到下一个子轨迹的情况下,根据本公开的实施例的方法可以向车辆的执行机构发出指示在使车辆停止的期间切换车辆档位并转动前轮的指令,并且可以将切换成下一个子轨迹的经延长的子轨迹。在一个实施例中,根据本公开的实施例的方法可以使车辆停止一段时间(例如,大于或等于4秒)之后再次启动车辆,并按照下一个子轨迹(可以是经正向和/或反向延长的子轨迹)继续驱动车辆。

例如,再次参照图3,当在PH0期间按照子轨迹TR0将车辆V从起始位置ES驱动到TR0的终点附近之后,根据本公开的实施例的方法可以检测车辆的当前位置并不是在目标位置EF附近,因此,可以使车辆V停止一段时间,例如大于或等于4秒,使车辆V原地转动前轮,以为随后的按照开始于EP1的子轨迹TR1的行进作好准备。然后,根据本公开的实施例的方法,可以将子轨迹TR0切换成子轨迹TR1,并暂时屏蔽子轨迹TR0和TR2。

当检测到车辆V当前停止在目标位置EF附近时,或者不存在下一个子轨迹需要切换时,可以确定车辆V已经到达最终的目标位置EF处,并且不必再启动车辆。在这样的情况下,根据本公开的实施例的方法还可以包括向车辆的执行机构发送使前轮回正的指令。

如前文所述,可以在车辆停止或静止的状态下控制车辆转动前轮,因此车辆的前轮的轨迹可能是不连续的。在根据本公开的实施例的方法中,可以将车辆的后轮的中心位置(例如,连接两个后轮的线段的中心位置)作为车辆的当前位置。

通过根据本公开的实施例的方法,能够在针对例如泊车、上坡和下坡等场景给出复杂的规划轨迹的情况下,高效且安全地实现车辆的自动驾驶。

图9和图10示出根据本公开的实施例的用于控制车辆的自动驾驶的装置的示例。

图9所示的示例装置可以包括一个或多个处理器PU。处理器PU可以是具有数据处理能力和/或指令执行能力的任何形式的处理单元,例如通用CPU。在一个实施例中,处理器PU至少可以执行根据本公开的实施例的方法。

另外,如图9所示,根据本公开的实施例的装置还可以包括存储器MEM和I/O接口。

存储器MEM可以包括各种形式的计算机可读写存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪速存储器等。可读写存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。存储器MEM可以包括用于指示装置执行根据本公开的实施例的方法的程序指令。

I/O接口可以用于向处理器PU提供参数或数据,还可以用于输出来自处理器PU的指令,例如向车辆的执行机构(未示出)传送各个指令。

图10所示的示例装置可以包括划分器SP、处理器PU和驱动器DRV

划分器SP可以被配置为将连接在起始位置与目标位置之间的规划轨迹划分成具有时间先后顺序的多个子轨迹,其中,同一子轨迹上的所有轨迹点的车辆档位相同,而分别来自在时间上相邻的任何两个子轨迹的任何两个轨迹点的车辆档位相反。

处理器PU可以被配置为针对多个子轨迹中的任何一个当前子轨迹,使用一个或多个虚拟点从当前子轨迹的起点开始反向地延长当前子轨迹。

驱动器DRV可以被配置为向车辆的执行机构(未示出)发出指令和参数,以时间先后顺序按照每个经延长的子轨迹和相应的车辆档位来分段地驱动车辆。

在一个实施例中,处理器PU还可以被配置为使用虚拟射线从当前子轨迹的终点开始正向地延长当前子轨迹。

另外,处理器PU还可以被配置为在车辆按照经延长的当前子轨迹行进的过程中的当前位置与当前子轨迹的终点之间的距离小于某个阈值,并且当前位置到当前子轨迹的终点的向量与车辆的行进方向的夹角成为钝角的情况下,指示驱动器DRV向车辆的执行机构发出指示使车辆停止的指令(包括刹车指令)。

已经描述了本公开的一些实施例。然而,应当理解,这些实施例仅作为示例而呈现,而不打算限制本公开的范围。实际上,在本文中所描述的方法和装置可以采用多种其他形式来实施。另外,可以在不脱离本公开的范围的情况下,在本文中所描述的方法和装置的形式上做出各种省略、替换和改变。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1