CN112660147A - 控制车辆调头的方法、装置、设备和存储介质 - Google Patents
控制车辆调头的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112660147A CN112660147A CN201910941621.2A CN201910941621A CN112660147A CN 112660147 A CN112660147 A CN 112660147A CN 201910941621 A CN201910941621 A CN 201910941621A CN 112660147 A CN112660147 A CN 112660147A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- pose
- current
- travel
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
本申请公开了控制车辆调头的方法、装置、设备和计算机可读存储介质,涉及自动驾驶领域。该方法包括获取车辆的当前位姿和车辆完成调头时的目标位姿。该方法还包括迭代地执行以下操作至少一次,直到确定车辆的当前位姿和目标位姿的接近度超过阈值:至少基于车辆的当前位姿和目标位姿,确定车辆将要到达的中间位姿;使得车辆沿着从当前位置去往中间位置的行驶路径行驶;响应于确定用于切换该行驶路径的条件被满足,使得车辆停止;以及利用车辆停止时的位姿来更新车辆的当前位姿。本公开的实施例能够在可供调头的行驶区域狭窄的场景下实现无人驾驶车辆的自动调头。
Description
技术领域
本公开的实施例主要涉及自动驾驶领域,并且更具体地,涉及用于控制车辆调头的方法、装置、设备和计算机可读存储介质。
背景技术
随着科技的发展和进步,通过自动控制系统控制交通工具的驾驶能够给人们的出行带来便利。近年来,自动驾驶(也称为无人驾驶)作为人工智能的一个应用场景,已经成为各种交通工具、特别汽车产业的新发展方向。
无人驾驶车辆在行驶过程中可能会遇到需要调头的场景。当道路中可供调头的行驶区域足够大时,可以执行U型调头(即,车辆从当前位置一次行驶至调头目标位置)。当道路中可供调头的行驶区域不够大时,U型调头可能无法实现,需要执行多点式调头(即,车辆先前进再后退,然后前进……直到到达目标位置)。当执行多点式调头时,如果中途停车位置、行驶路径和/或前进-后退动作切换时机选择不合理,可能导致调头无法完成或者调头耗时过长等问题。
发明内容
根据本公开的示例实施例,提供了一种用于控制车辆调头的方案。
在本公开的第一方面中,提供了一种用于控制车辆调头的方法。该方法包括获取车辆的当前位姿和车辆完成调头时的目标位姿,其中当前位姿指示车辆的当前位置和当前航向角,目标位姿指示车辆完成调头时的目标位置和目标航向角。该方法还包括迭代地执行以下操作至少一次,直到确定车辆的当前位姿和目标位姿的接近度超过阈值:至少基于车辆的当前位姿和目标位姿,确定车辆将要到达的中间位姿,其中中间位姿指示车辆将要到达的中间位置和到达中间位置时的航向角;使得车辆沿着从当前位置去往中间位置的行驶路径行驶;响应于确定用于切换该行驶路径的条件被满足,使得车辆停止;以及利用车辆停止时的位姿来更新车辆的当前位姿。
在本公开的第二方面中,提供了一种用于控制车辆调头的装置。该装置包括位姿获取模块,被配置为获取车辆的当前位姿和车辆完成调头时的目标位姿,其中当前位姿指示车辆的当前位置和当前航向角,目标位姿指示车辆完成调头时的目标位置和目标航向角。该装置还包括调头控制模块,被配置为迭代地执行以下操作至少一次,直到确定车辆的当前位姿和目标位姿的接近度超过阈值:至少基于车辆的当前位姿和目标位姿,确定车辆将要到达的中间位姿,其中中间位姿指示车辆将要到达的中间位置和到达中间位置时的航向角;使得车辆沿着从当前位置去往中间位置的行驶路径行驶;响应于确定用于切换该行驶路径的条件被满足,使得车辆停止;以及利用车辆停止时的位姿来更新车辆的当前位姿。
在本公开的第三方面中,提供了一种计算设备,包括一个或多个处理器;以及存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行使,使得该计算设备实现根据本公开的第一方面的方法。
在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了本公开的多个实施例能够在其中实现的示例环境的示意图;
图2A-2B分别示出了不同调头策略的示意图;
图3示出了用于对车辆状态进行建模的阿克曼车辆模型的示意图;
图4示出了根据本公开的实施例的控制车辆执行多点式调头的示意图。
图5示出了根据本公开的一些实施例的用于控制车辆调头的过程的流程图;
图6示出了根据本公开的一些实施例的用于确定中间位姿的过程的流程图;
图7示出了根据本公开的实施例的用于控制车辆调头的装置的示意框图;以及
图8示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如以上提及的,无人驾驶车辆在行驶过程中可能会遇到需要调头的场景。当道路中可供调头的行驶区域足够大时,可以执行U型调头(即,车辆从当前位置一次行驶至调头目标位置)。当道路中可供调头的行驶区域不够大时,U型调头可能无法实现,需要执行多点式调头(即,车辆先前进再后退,然后前进……直到到达目标位置)。当执行多点式调头时,如果中途停车位置、行驶路径和/或前进-后退动作切换时机选择不合理,可能导致调头无法完成或者调头耗时过长等问题。
根据本公开的实施例,提出了一种用于控制车辆调头的方案。在该方案中,车辆的当前位姿和车辆完成调头时的目标位姿被获取。以下操作被迭代地执行至少一次,直到确定车辆的当前位姿和目标位姿的接近度超过阈值:至少基于车辆的当前位姿和目标位姿,确定车辆将要到达的中间位姿;使得车辆沿着从当前位置去往中间位置的行驶路径行驶;响应于确定用于切换该行驶路径的条件被满足,使得车辆停止;以及利用车辆停止时的位姿来更新车辆的当前位姿。该方案能够在执行多点式调头时选择合适的中途停车位置、行驶路径和/或前进-后退动作切换时机,从而能够在可供调头的行驶区域狭窄的场景下实现无人驾驶车辆的自动调头。
以下将参照附图来具体描述本公开的实施例。图1示出了本公开的多个实施例能够在其中实现的示例环境100的示意图。在该示例环境100中,车辆110例如正在道路130上行驶。车辆110可以是能够承载人和/或物并且通过发动机等动力系统移动的任何类型的车辆,包括但不限于轿车、卡车、巴士、电动车、摩托车、房车、火车等等。车辆110可以是具有部分或完全自动驾驶能力的车辆,也被称为无人驾驶车辆。
车辆110可以通信地耦合到计算设备120。虽然被示出为单独的实体,但计算设备120可以被嵌入在车辆110中。计算设备120也可以被实现为车辆110外部的实体,并且可以经由无线网络与车辆110通信。计算设备120可以被实现为一个或多个计算设备,其至少包含处理器、存储器以及其他通常存在于通用计算机中的组件,以便实现计算、存储、通信、控制等功能。计算设备120可以向车辆110发送一个或多个控制命令,以控制车辆110执行相应的驾驶操作,例如,前进、倒车、停车、左转弯、右转弯、调头等。
在一些情况下,根据行驶目的地的设置,车辆110在行驶过程中可能需要调头,例如从车辆110所在的当前位置101行驶到目标位置102。计算设备120可以例如基于地图数据来确定道路130所提供的行车空间是否足够大。当道路130所提供的行车空间足够大时,计算设备120可以控制车辆110执行U型调头。图2A示出了U型调头的示意图,其中车辆可以从当前位置101一次行驶至目标位置102。
在一些实施例中,当道路130所提供的行车空间不足以完成U型调头时,计算设备120需要控制车辆110执行多点式调头。图2B示出了三点式调头的示意图,其中车辆从初始位置101首先前进(1)至第一中间位置210,然后后退(2)至第二中间位置220,然后再前进(3)至目标位置102。在下文中,出于示例的目的,将以如图2B所示的三点式调头为例来详细描述本公开的实施例。
为了便于描述控制车辆调头的原理,以下首先介绍如何对车辆状态进行建模。图3示出了用于对车辆状态进行建模的阿克曼车辆模型的示意图。图3仅出于示例的目的描述了本公开的实施例所适用的车辆模型的一种示例。应当理解,本公开的实施例也适用于除阿克曼车辆模型之外的其他车辆模型,并且本公开的范围在此方面不受限制。
图3示出了二维坐标系,其中车辆及其所在道路可以被投影至该二维坐标系中。在阿克曼车辆模型中,车辆的状态可以利用变量(x,y,θ,κ)来表示,其中(x,y)表示车辆后轴中心坐标,θ表示车辆的航向角,κ表示车辆后轴中心在路径曲线上的曲率,κ的倒数R(即,R=1/κ)表示车辆的转弯半径。表示车辆位置和航向角的变量(x,y,θ)也可以被称为车辆的位姿。车辆的状态方程例如可以表示如下:
利用如图3所示的阿克曼车辆模型,如图1所示的车辆110在位置101处的状态例如可以被表示为四元组(xs,ys,θs,κs),其中(xs,ys)表示车辆110的初始位置101被投影到如图3所示的二维坐标系中的坐标,θs表示车辆110在初始位置101处的航向角,κs表示车辆的初始曲率。如图1所示的车辆110在目标位置102处的状态例如可以被表示为四元组(xe,ye,θe,κe),其中(xe,ye)表示车辆110的目标位置102被投影到如图3所示的二维坐标系中的坐标,θe表示车辆110在目标位置102处的航向角,κe表示车辆到达目标位置102时的曲率。
为了控制车辆110执行多点式调头(也即,从初始状态(xs,ys,θs,κs)转换到目标状态(xe,ye,θe,κe)),需要确定车辆110到达多个中间点(例如,如图2B所示的中间位置210和220)时的相应状态。
图4示出了根据本公开的实施例的控制车辆执行多点式调头的示意图。例如,车辆的多点式调头过程可以被描述为包括多个行驶动作的动作序列,该动作序列例如可以被表示为{C1,C2,C3……CN}(其中N≥3),其中Ci(1≤i≤N)表示第i个行驶动作。在图4所示的示例中,例如N=3。
如图4所示,C1表示车辆110从初始位置(xs,ys)前进到第一中间位置(x1,y1)的行驶动作。通过动作C1,车辆110从初始状态(xs,ys,θs,κs)转换到第一中间状态(x1,y1,θ1,κ1),其中θ1表示车辆110到达第一中间位置(x1,y1)时的航向角并且κ1表示车辆110到达第一中间位置(x1,y1)的曲率。C2表示车辆110从第一中间位置(x1,y1)后退到第二中间位置(x2,y2)的行驶动作。通过动作C2,车辆110从第一中间状态(x1,y1,θ1,κ1)转换到第二中间状态(x2,y2,θ2,κ2),其中θ2表示车辆110到达第二中间位置(x2,y2)时的航向角并且κ2表示车辆110到达第二中间位置(x2,y2)的曲率。C3表示车辆110从第二中间位置(x2,y2)前进到目标位置(xe,ye)的行驶动作。通过动作C3,车辆110从第二中间状态(x2,y2,θ2,κ2)转换到目标状态(xe,ye,θe,κe)。
从图4可以看出,为了能够控制车辆110执行如图4所示的调头过程,在控制车辆110执行每个行驶动作之前,计算设备120需要确定通过该行驶动作期望到达的中间位置、到达该中间位置时的航向角和曲率、以及该行驶动作所对应的行驶路径。通过依次确定与每个行驶动作有关的上述信息并且使得车辆110执行该行驶动作,计算设备120可以控制车辆110执行如图4所示的调头过程。
图5示出了根据本公开的一些实施例的用于控制车辆调头的过程500的流程图。过程500可以由如图1所示的计算设备120来实现,该计算设备120可以被嵌入在车辆110中或者作为车辆110外部的独立设备。为了方便讨论,将结合图4来描述过程500。
在框510处,计算设备120获取车辆110的当前位姿和完成调头时的目标位姿。
车辆110的当前位姿例如由变量P(x,y,θ)来表示,其指示车辆110所处的当前位置(x,y)和航向角θ。在一些实施例中,车辆110的当前位姿可以由安装在车辆110上的采集设备(例如,定位设备等)实时采集。计算设备120例如可以从车辆110获取其当前位姿。
当计算设备120要控制车辆110执行调头时,计算设备120从车辆110首次获取的当前位姿P(x,y,θ)也被称为车辆110的初始位姿,其可以被特别地表示为变量S(xs,ys,θs),以供后续计算设备120执行车辆调头规划参考。
车辆110的目标位姿例如由变量E(xe,ye,θe)来表示,其指示车辆110完成调头时的目标位置(xe,ye)和目标航向角θe。在一些实施例中,计算设备120可以基于车辆110的初始位姿S(xs,ys,θs)和所设定的目的地来确定车辆110完成调头时的目标位姿E(xe,ye,θe)。在另一些实施例中,车辆110的初始位姿S(xs,ys,θs)和完成调头时的目标位姿E(xe,ye,θe)可以由另一设备或者用户输入到计算设备120中。
在框520处,计算设备120确定车辆110的当前位姿P(x,y,θ)和目标位姿E(xe,ye,θe)的接近度是否超过阈值。
在一些实施例中,当车辆110的当前航向角θ和目标航向角θe的差值小于阈值角度时,计算设备120可以确定车辆110的当前位姿P(x,y,θ)和目标位姿E(xe,ye,θe)的接近度超过阈值。在此所述的“阈值角度”可以是基于经验值而预先设定的角度,并且当车辆110的当前航向角θ和目标航向角θe的差值小于该阈值角度时,可以认为车辆110已基本完成调头。当车辆110的当前航向角θ和目标航向角θe的差值等于或超过阈值角度时,计算设备120可以确定车辆110的当前位姿P(x,y,θ)和目标位姿E(xe,ye,θe)的接近度尚未达到阈值,也即,车辆110尚未完成调头。
当计算设备120确定车辆110的当前位姿P(x,y,θ)和目标位姿E(xe,ye,θe)的接近度超过阈值(也即,车辆110已基本完成调头)时,过程500结束。否则,过程500进行至框530。
在框530处,计算设备120至少基于车辆的当前位姿P(x,y,θ)和目标位姿E(xe,ye,θe)来确定车辆将要达到的中间位姿Ex(xx,yx,θx)。中间位姿Ex(xx,yx,θx)可以指示车辆110在下一行驶动作中将要到达的中间位置(xx,yx)和到达该中间位置时的航向角θx(本文中也称为“中间航向角”)。
在一些实施例中,计算设备120可以首先确定车辆110将从当前位置(x,y)出发的行驶方向(本文中也称为“第一行驶方向”)。如之前所描述的,车辆的多点式调头过程可以被描述为包括多个行驶动作的动作序列{C1,C2,C3……CN}(其中N≥3),其中Ci(1≤i≤N)表示第i个行驶动作。在一些实施例中,初始行驶动作C1和结束行驶动作CN的行驶方向可以是前进,并且相邻两个行驶动作的行驶方向是相反的。也即,如果当前位置(x,y)与初始位置(xs,ys)相同(这表示车辆110将要执行的是初始行驶动作C1),计算设备120可以确定车辆110将从初始位置(xs,ys)出发的行驶方向为前进。如果当前位置(x,y)与初始位置(xs,ys)不同(这表示车辆110将要执行的不是初始行驶动作C1),则计算设备120可以确定车辆110到达当前位置(x,y)的行驶方向(即上一行驶动作的方向,本文中也称为“第二行驶方向”)。如果上一行驶动作的方向为前进,则计算设备120可以确定车辆110从当前位置(x,y)出发的行驶方向是后退。如果上一行驶动作的方向为后退,则计算设备120可以确定车辆110从当前位置(x,y)出发的行驶方向是前进。
在一些实施例中,计算设备120可以进一步确定车辆110所要执行调头的道路的边界。例如,这可以根据车辆110的当前位置从地图数据中得到。在一些实施例中,计算设备120还可以确定车辆110将从当前位置(x,y)出发行驶至待确定的中间位置(xx,yx)的转弯半径R(也即,曲率的倒数)。转弯半径R例如可以基于当前航向角θ和目标航向角θe的差值和/或车辆自身参数(例如,车辆的最小转弯半径)来确定。在一些实施例中,计算设备120可以将车辆110的最小转弯半径确定为车辆110将从当前位置(x,y)出发行驶至待确定的中间位置(xx,yx)的转弯半径R。在一些实施例中,例如,在车辆110执行每个驾驶动作Ci期间,其转弯半径可以是不变的。
然后,计算设备120可以基于所确定的道路边界、转弯半径、第一行驶方向、当前位姿P(x,y,θ)和目标位姿E(xe,ye,θe)中的一项或多项,来确定车辆110在下一行驶动作中将要达到的中间位姿Ex(xx,yx,θx)。
图6示出了根据本公开的一些实施例的用于确定中间位姿Ex(xx,yx,θx)的过程600的流程图。过程600可以被视为如图5所示的框530的一种示例实现方式,其可以由如图1所示的计算设备120来实现。
在框601处,计算设备120确定车辆110的当前航向角θ与目标航向角θe的差值是否小于第一阈值角度例如,第一阈值角度可以是基于经验值而预先设定的角度。当车辆110的当前航向角θ与目标航向角θe的差值小于第一阈值角度时,表示车辆110的当前位姿P(x,y,θ)和目标位姿(xe,ye,θe)的差异较小。在此情况下,在框608处,计算设备120可以将目标位姿E(xe,ye,θe)直接确定为车辆110在下一行驶动作中将要达到的中间位姿Ex(xx,yx,θx)。否则,过程600进行至框602。
在框602处,计算设备120确定车辆110下一行驶动作的行驶方向(也即,第一行驶方向)是前进还是后退。如果计算设备120在框602处确定车辆110下一行驶动作的行驶方向是后退,则过程进行至框603,其中计算设备120确定车辆110的当前航向角θ与目标航向角θe的差值是否小于第二阈值角度例如,第二阈值角度可以是基于经验值而预先设定的角度,其可以大于第一阈值角度
如果计算设备120在框603处确定车辆110的当前航向角θ与目标航向角θe的差值小于第二阈值角度则在框604处,计算设备120基于当前航向角θ来确定中间航向角θx。例如,θx=θ+π。然后,在框605处,计算设备120基于距离阈值D_与中间航向角θx来确定中间位置(xx,yx)。例如,距离阈值D_可以是基于道路边界而预先确定的值,其指示车辆110能够直线后退的最大距离。计算设备120可以基于距离阈值D_与中间航向角θx来确定中间位置(xx,yx),例如,xx=D-_·cosθx,并且yx=D_·sinθx。所确定的中间航向角θx与中间位置(xx,yx)的组合即为中间位姿Ex(xx,yx,θx)。
如果计算设备120在框603处确定车辆110的当前航向角θ与目标航向角θe的差值大于或等于第二阈值角度则在框606处,计算设备120基于当前航向角θ和目标航向角θe来确定中间航向角θx。例如,如果(θe+π)与的差值小于则否则,其中表示第三阈值角度,表示第四阈值角度,并且和可以是基于经验值而预先设定的角度。然后,在框607处,计算设备120基于当前位姿P(x,y,θ)、转弯半径R和中间航向角θx,来确定中间位置(xx,yx)。例如,根据车辆转弯半径R和车辆当前位置(x,y)可以构造一个圆。根据该圆上的某个点的航向角θx,可以确定该点的坐标(xx,yx)。所确定的中间航向角θx与中间位置(xx,yx)的组合即为中间位姿Ex(xx,yx,θx)。
如果计算设备120在框602处确定车辆110下一行驶动作的行驶方向是前进,则过程进行至框609,其中计算设备120基于当前航向角θ、初始航向角θs和目标航向角θe来确定中间航向角θx。例如,如果θe与(θ+π/2)的差值小于0,则θx=θe–θs;否则,θx=θ+π/2。然后,在框610处,计算设备120基于当前位姿P(x,y,θ)、转弯半径R和中间航向角θx,来确定中间位置(xx,yx)。框610的实现方式与以上所述的框607相同。所确定的中间航向角θx与中间位置(xx,yx)的组合即为中间位姿Ex(xx,yx,θx)。
返回至图5,过程500进行至框540,其中计算设备120使得车辆110沿着从当前位置(x,y)去往中间位置(xx,yx)的行驶路径行驶。
响应于确定了中间位姿Ex(xx,yx,θx),计算设备120可以确定车辆110的当前状态(x,y,θ,κ)和期望到达的中间状态(xx,yx,θx,κx)。在一些实施例中,计算设备120可以进一步基于当前状态(x,y,θ,κ)和期望到达的中间状态(xx,yx,θx,κx)来确定从当前位置(x,y)去往中间位置(xx,yx)的行驶路径。在一些实施例中,计算设备120可以基于当前状态(x,y,θ,κ)和期望到达的中间状态(xx,yx,θx,κx)在地图上生成用于连接当前位置(x,y)和中间位置(xx,yx)的路径曲线。在一些实施例中,该路径曲线例如可以是三次螺旋曲线。备选地,在另一些实施例中,该路径曲线可以是适合用于路径规划的其他曲线,诸如回旋线、各种样条曲线等。计算设备120可以利用任何已知或将来开发的方法来生成用于连接当前位置(x,y)和中间位置(xx,yx)的路径曲线。然后,计算设备120可以通过离散化该路径曲线,来确定从当前位置(x,y)去往中间位置(xx,yx)的行驶路径。
在一些实施例中,响应于确定从当前位置(x,y)去往中间位置(xx,yx)的行驶路径,计算设备120可以向车辆110发送控制命令,以使得车辆110沿着该行驶路径行驶。
在框550处,计算设备120确定用于切换当前行驶路径(也即,切换行驶动作)的条件是否被满足。当切换条件被满足时,计算设备120使得车辆停止。
在一些实施例中,切换行驶动作的条件可以包括以下一项或多项的组合:车辆110所处的位置与中间位置(xx,yx)之间的距离小于第一阈值距离(例如,表明车辆110已基本到达中间位置(xx,yx)或者当前行驶动作已基本完成);车辆110的行驶速度小于阈值速度(例如,表明车辆基本停止);车辆110所处的位置与道路边界之间的距离小于第二阈值距离(例如,表明车辆已基本行驶至道路边界处,不能继续在当前方向上行驶);车辆110已停止并且停车时间超过阈值时间;当前行驶路径的完成程度超过阈值水平(例如,80%);以及在当前行驶路径上检测到预定类型的障碍物。
在一些实施例中,例如,当计算设备120确定车辆所处的位置与道路边界之间的距离小于第二阈值距离,计算设备120可以使得车辆110停止(例如,加大刹车力度),从而切换到下一行驶动作。
在一些实施例中,例如,当计算设备120确定车辆110所处的位置与中间位置(xx,yx)之间的距离小于第一阈值距离,并且车辆110的行驶速度小于阈值速度时,计算设备120可以切换到下一行驶动作。当计算设备120确定车辆110所处的位置与中间位置(xx,yx)之间的距离小于第一阈值距离,但是确定车辆110的行驶速度尚不为零时,计算设备120可以使得车辆110停止(例如,加大刹车力度),从而切换到下一行驶动作。
在一些实施例中,例如,当计算设备120确定车辆110的行驶速度已小于阈值速度,并且当前行驶路径的完成程度超过阈值水平时,计算设备120可以根据车辆110遇到的障碍物类型来决定是继续等待还是切换到下一行驶动作。
在一些实施例中,例如,当计算设备120确定当前行驶路径的完成程度超过阈值水平并且车辆110停车时间超过阈值时间时,计算设备120可以切换到下一行驶动作。又例如,当计算设备120确定车辆110停车时间超过阈值时间但是当前行驶路径的完成程度尚未达到阈值水平时,计算设备120可以根据车辆110遇到的障碍物类型来决定是否要切换到下一行驶动作。
在框560处,计算设备120利用车辆110停止时的位姿来更新当前位姿P(x,y,θ)。然后,过程500进行至框520,以进行下一次迭代。通过迭代地执行框520-560,计算设备120能够控制车辆110完成如图4所示的调头。
基于以上描述能够看出,本公开的实施例提出了一种用于控制车辆调头的方案。在该方案中,车辆的当前位姿和车辆完成调头时的目标位姿被获取。以下操作被迭代地执行至少一次,直到确定车辆的当前位姿和目标位姿的接近度超过阈值:至少基于车辆的当前位姿和目标位姿,确定车辆将要到达的中间位姿;使得车辆沿着从当前位置去往中间位置的行驶路径行驶;响应于确定用于切换该行驶路径的条件被满足,使得车辆停止;以及利用车辆停止时的位姿来更新车辆的当前位姿。该方案能够在执行多点式调头时选择合适的中途停车位置、行驶路径和/或前进-后退动作切换时机,从而能够在可供调头的行驶区域狭窄的场景下实现无人驾驶车辆的自动调头。
图7示出了根据本公开实施例的用于控制车辆调头的装置700的示意性框图。装置700可以被包括在如图1所示的计算设备120中或者被实现为计算设备120。如图7所示,装置700可以包括位姿获取模块710,被配置为获取车辆的当前位姿和车辆完成调头时的目标位姿,其中当前位姿指示车辆的当前位置和当前航向角,目标位姿指示车辆完成调头时的目标位置和目标航向角。装置700还可以包括调头控制模块720,被配置为迭代地执行以下操作至少一次,直到确定车辆的当前位姿和目标位姿的接近度超过阈值:至少基于车辆的当前位姿和目标位姿,确定车辆将要到达的中间位姿,其中中间位姿指示车辆将要到达的中间位置和到达中间位置时的航向角;使得车辆沿着从当前位置去往中间位置的行驶路径行驶;响应于确定用于切换该行驶路径的条件被满足,使得车辆停止;以及利用车辆停止时的位姿来更新车辆的当前位姿。
在一些实施例中,调头控制模块720还被配置为:响应于确定当前航向角和目标航向角的差值小于阈值角度,确定当前位姿和目标位姿的接近度超过阈值。
在一些实施例中,调头控制模块720还被配置为:确定车辆将从当前位置出发的第一行驶方向,其中第一行驶方向指示车辆前进或后退;确定车辆所在的道路边界和车辆的转弯半径;以及基于道路边界、转弯半径、第一行驶方向、当前位姿和目标位姿,确定中间位姿。
在一些实施例中,调头控制模块720还被配置为:确定车辆行驶至当前位置的第二行驶方向;响应于第二行驶方向指示车辆前进,将第一行驶方向确定为后退;以及响应于第二行驶方向指示车辆后退,将第一行驶方向确定为前进。
在一些实施例中,调头控制模块720还被配置为:确定从当前位置去往中间位置的行驶路径;以及使得车辆沿着该行驶路径行驶。
在一些实施例中,调头控制模块720还被配置为:在地图上生成用于连接当前位置和中间位置的曲线;以及通过离散化该曲线来确定行驶路径。在一些实施例中,该曲线包括三次螺旋曲线。
在一些实施例中,用于切换行驶路径的条件包括以下至少一项:车辆所处的位置与中间位置之间的距离小于第一阈值距离;车辆的行驶速度小于阈值速度;车辆所处的位置与车辆所在的道路边界之间的距离小于第二阈值距离;车辆已停止并且停止时间超过阈值时间;行驶路径被完成的程度超过阈值水平;以及与在该行驶路径上检测到预定类型的障碍物。
在一些实施例中,车辆包括无人驾驶车辆。
图8示出了可以用来实施本公开的实施例的示例设备800的示意性框图。设备800可以用于实现如图1所示的计算设备120。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元801执行上文所描述的各个方法和处理,例如过程500和/或600。例如,在一些实施例中,过程500和/或600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由CPU801执行时,可以执行上文描述的过程500和/或600的一个或多个步骤。备选地,在其他实施例中,CPU 801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程500和/或600。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种用于控制车辆调头的方法,包括:
获取车辆的当前位姿和所述车辆完成调头时的目标位姿,其中所述当前位姿指示所述车辆的当前位置和当前航向角,所述目标位姿指示所述车辆完成调头时的目标位置和目标航向角;以及
迭代地执行以下操作至少一次,直到确定所述车辆的所述当前位姿和所述目标位姿的接近度超过阈值:
至少基于所述车辆的所述当前位姿和所述目标位姿,确定所述车辆将要到达的中间位姿,其中所述中间位姿指示所述车辆将要到达的中间位置和到达所述中间位置时的航向角;
使得所述车辆沿着从所述当前位置去往所述中间位置的行驶路径行驶;
响应于确定用于切换所述行驶路径的条件被满足,使得所述车辆停止;以及
利用所述车辆停止时的位姿来更新所述车辆的所述当前位姿。
2.根据权利要求1所述的方法,其中确定所述车辆的所述当前位姿和所述目标位姿的接近度超过阈值包括:
响应于确定所述当前航向角和所述目标航向角的差值小于阈值角度,确定所述当前位姿和所述目标位姿的接近度超过所述阈值。
3.根据权利要求1所述的方法,其中确定所述车辆将要到达的中间位姿包括:
确定所述车辆将从所述当前位置出发的第一行驶方向,其中所述第一行驶方向指示所述车辆前进或后退;
确定所述车辆所在的道路边界和所述车辆的转弯半径;以及
基于所述道路边界、所述转弯半径、所述第一行驶方向、所述当前位姿和所述目标位姿,确定所述中间位姿。
4.根据权利要求3所述的方法,其中确定所述第一行驶方向包括:
确定所述车辆行驶至所述当前位置的第二行驶方向;
响应于所述第二行驶方向指示所述车辆前进,将所述第一行驶方向确定为后退;以及
响应于所述第二行驶方向指示所述车辆后退,将所述第一行驶方向确定为前进。
5.根据权利要求1所述的方法,其中使得所述车辆沿着从所述当前位置去往所述中间位置的行驶路径行驶包括:
确定从所述当前位置去往所述中间位置的所述行驶路径;以及
使得所述车辆沿着所述行驶路径行驶。
6.根据权利要求5所述的方法,其中确定所述行驶路径包括:
在地图上生成用于连接所述当前位置和所述中间位置的曲线;以及
通过离散化所述曲线来确定所述行驶路径。
7.根据权利要求6所述的方法,其中所述曲线包括三次螺旋曲线。
8.根据权利要求1所述的方法,其中用于切换所述行驶路径的所述条件包括以下至少一项:
所述车辆所处的位置与所述中间位置之间的距离小于第一阈值距离;
所述车辆的行驶速度小于阈值速度;
所述车辆所处的位置与所述车辆所在的道路边界之间的距离小于第二阈值距离;
所述车辆已停止并且停止时间超过阈值时间;
所述行驶路径被完成的程度超过阈值水平;以及
在所述行驶路径上检测到预定类型的障碍物。
9.根据权利要求1所述的方法,其中所述车辆包括无人驾驶车辆。
10.一种用于控制车辆调头的装置,包括:
位姿获取模块,被配置为获取车辆的当前位姿和所述车辆完成调头时的目标位姿,其中所述当前位姿指示所述车辆的当前位置和当前航向角,所述目标位姿指示所述车辆完成调头时的目标位置和目标航向角;以及
调头控制模块,被配置为迭代地执行以下操作至少一次,直到确定所述车辆的所述当前位姿和所述目标位姿的接近度超过阈值:
至少基于所述车辆的所述当前位姿和所述目标位姿,确定所述车辆将要到达的中间位姿,其中所述中间位姿指示所述车辆将要到达的中间位置和到达所述中间位置时的航向角;
使得所述车辆沿着从所述当前位置去往所述中间位置的行驶路径行驶;
响应于确定用于切换所述行驶路径的条件被满足,使得所述车辆停止;以及
利用所述车辆停止时的位姿来更新所述车辆的所述当前位姿。
11.根据权利要求10所述的装置,其中所述调头控制模块还被配置为:
响应于确定所述当前航向角和所述目标航向角的差值小于阈值角度,确定所述当前位姿和所述目标位姿的接近度超过所述阈值。
12.根据权利要求10所述的装置,其中所述调头控制模块还被配置为:
确定所述车辆将从所述当前位置出发的第一行驶方向,其中所述第一行驶方向指示所述车辆前进或后退;
确定所述车辆所在的道路边界和所述车辆的转弯半径;以及
基于所述道路边界、所述转弯半径、所述第一行驶方向、所述当前位姿和所述目标位姿,确定所述中间位姿。
13.根据权利要求12所述的装置,其中所述调头控制模块还被配置为:
确定所述车辆行驶至所述当前位置的第二行驶方向;
响应于所述第二行驶方向指示所述车辆前进,将所述第一行驶方向确定为后退;以及
响应于所述第二行驶方向指示所述车辆后退,将所述第一行驶方向确定为前进。
14.根据权利要求10所述的装置,其中所述调头控制模块还被配置为:
确定从所述当前位置去往所述中间位置的所述行驶路径;以及
使得所述车辆沿着所述行驶路径行驶。
15.根据权利要求14所述的装置,其中所述调头控制模块还被配置为:
在地图上生成用于连接所述当前位置和所述中间位置的曲线;以及
通过离散化所述曲线来确定所述行驶路径。
16.根据权利要求15所述的装置,其中所述曲线包括三次螺旋曲线。
17.根据权利要求10所述的装置,其中用于切换所述行驶路径的所述条件包括以下至少一项:
所述车辆所处的位置与所述中间位置之间的距离小于第一阈值距离;
所述车辆的行驶速度小于阈值速度;
所述车辆所处的位置与所述车辆所在的道路边界之间的距离小于第二阈值距离;
所述车辆已停止并且停止时间超过阈值时间;
所述行驶路径被完成的程度超过阈值水平;以及
在所述行驶路径上检测到预定类型的障碍物。
18.根据权利要求10所述的装置,其中所述车辆包括无人驾驶车辆。
19.一种计算设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述计算设备实现根据权利要求1-9中任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910941621.2A CN112660147A (zh) | 2019-09-30 | 2019-09-30 | 控制车辆调头的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910941621.2A CN112660147A (zh) | 2019-09-30 | 2019-09-30 | 控制车辆调头的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112660147A true CN112660147A (zh) | 2021-04-16 |
Family
ID=75399656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910941621.2A Pending CN112660147A (zh) | 2019-09-30 | 2019-09-30 | 控制车辆调头的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112660147A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113619603A (zh) * | 2021-08-25 | 2021-11-09 | 华中科技大学 | 一种双阶段自动驾驶车辆调头轨迹规划方法 |
CN114103957A (zh) * | 2021-12-22 | 2022-03-01 | 阿波罗智联(北京)科技有限公司 | 变道控制方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240332A1 (en) * | 2004-04-27 | 2005-10-27 | Yukio Mori | Turning control device and method and program for the same |
CN105109480A (zh) * | 2015-08-24 | 2015-12-02 | 奇瑞汽车股份有限公司 | 智能调头方法及装置 |
CN107662644A (zh) * | 2016-07-29 | 2018-02-06 | 奥迪股份公司 | 用于车辆的驾驶辅助系统和方法及包含该系统的车辆 |
CN108449954A (zh) * | 2015-12-09 | 2018-08-24 | 福特全球技术公司 | U形转弯辅助 |
CN108463690A (zh) * | 2016-01-14 | 2018-08-28 | 福特全球技术公司 | 评估u形转弯可行性 |
CN109733384A (zh) * | 2018-12-25 | 2019-05-10 | 科大讯飞股份有限公司 | 泊车路径设置方法及系统 |
-
2019
- 2019-09-30 CN CN201910941621.2A patent/CN112660147A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240332A1 (en) * | 2004-04-27 | 2005-10-27 | Yukio Mori | Turning control device and method and program for the same |
CN105109480A (zh) * | 2015-08-24 | 2015-12-02 | 奇瑞汽车股份有限公司 | 智能调头方法及装置 |
CN108449954A (zh) * | 2015-12-09 | 2018-08-24 | 福特全球技术公司 | U形转弯辅助 |
CN108463690A (zh) * | 2016-01-14 | 2018-08-28 | 福特全球技术公司 | 评估u形转弯可行性 |
CN107662644A (zh) * | 2016-07-29 | 2018-02-06 | 奥迪股份公司 | 用于车辆的驾驶辅助系统和方法及包含该系统的车辆 |
CN109733384A (zh) * | 2018-12-25 | 2019-05-10 | 科大讯飞股份有限公司 | 泊车路径设置方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113619603A (zh) * | 2021-08-25 | 2021-11-09 | 华中科技大学 | 一种双阶段自动驾驶车辆调头轨迹规划方法 |
CN113619603B (zh) * | 2021-08-25 | 2023-02-07 | 华中科技大学 | 一种双阶段自动驾驶车辆调头轨迹规划方法 |
CN114103957A (zh) * | 2021-12-22 | 2022-03-01 | 阿波罗智联(北京)科技有限公司 | 变道控制方法、装置、电子设备和存储介质 |
CN114103957B (zh) * | 2021-12-22 | 2024-02-06 | 阿波罗智联(北京)科技有限公司 | 变道控制方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10459441B2 (en) | Method and system for operating autonomous driving vehicles based on motion plans | |
US11117569B2 (en) | Planning parking trajectory generation for self-driving vehicles using optimization method | |
US10823575B2 (en) | Reference line smoothing method using piecewise spiral curves with weighted geometry costs | |
US10118639B2 (en) | Method and system for steering control of an autonomous vehicle using proportional, integral, and derivative (PID) controller | |
US20190187715A1 (en) | Non-linear reference line optimization method using piecewise quintic polynomial spiral paths for operating autonomous driving vehicles | |
CN112277931B (zh) | 垂直泊车轨迹生成方法、装置、车辆及存储介质 | |
CN110806744A (zh) | 使用分层选项马尔可夫决策过程的交叉路口自主驾驶决策 | |
EP2888930A1 (en) | Automatic guidance system with stability control for an agricultural vehicle | |
US11180160B2 (en) | Spiral curve based vertical parking planner system for autonomous driving vehicles | |
CN106909153A (zh) | 无人车横向控制方法和装置 | |
CN113267199A (zh) | 行驶轨迹规划方法及装置 | |
US11731612B2 (en) | Neural network approach for parameter learning to speed up planning for complex driving scenarios | |
EP3652602B1 (en) | A spiral path based three-point turn planning for autonomous driving vehicles | |
US11106212B2 (en) | Path planning for complex scenes with self-adjusting path length for autonomous driving vehicles | |
US10732632B2 (en) | Method for generating a reference line by stitching multiple reference lines together using multiple threads | |
CN111452868B (zh) | 曲线转弯控制方法、装置、存储介质及车辆 | |
US20220315037A1 (en) | Lane changing based only on local information | |
CN113670305A (zh) | 泊车轨迹生成方法、装置、计算机设备和存储介质 | |
CN112660147A (zh) | 控制车辆调头的方法、装置、设备和存储介质 | |
CN112433531A (zh) | 一种自动驾驶车辆的轨迹跟踪方法、装置及计算机设备 | |
CN115127576B (zh) | 路径规划方法、装置、芯片、终端、电子设备及存储介质 | |
US11188083B2 (en) | Method, device, and computer readable storage medium with instructions for motion planning for a transportation vehicle | |
CN111332279A (zh) | 泊车路径生成方法和装置 | |
CN115097826A (zh) | 一种车辆掉头轨迹规划方法及装置 | |
Gawron et al. | Algorithmization of constrained monotonic maneuvers for an advanced driver assistant system in the intelligent urban buses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |