一种自动驾驶车辆的垂直泊车方法及其装置、车辆
技术领域
本发明涉及智能驾驶技术领域,特别是涉及一种自动驾驶车辆的垂直泊车方法及其装置、车辆。
背景技术
随着科学技术的飞速发展,自动驾驶车辆的应用领域日益扩大,各个国家都对其投入了大量科研力量,毫无疑问,自动泊车是自动驾驶车辆的一个重要的应用场景。自动泊车,是指汽车不需要人工控制自动泊车入位,自动泊车不仅能够减轻驾驶员泊车难度,代替其完成自动停车,而且能够有效的避免发生车辆泊车剐蹭等人为事故,减少经济损失。
目前,应用较多的自动驾驶垂直泊车方法可大致分为基于规则的方法和基于搜索的方法。
其中,基于规则的方法,通常是根据车辆和车位的相对关系(由高清地图或者视觉识别提供)、车辆模型等,通过数学计算给出多段曲线,逐步引导车辆进入车位泊车点;而基于搜索的方法,顾名思义就是通过搜索算法(比如动态窗口法算法(Dynamic WindowApproach),混合A星算法(hybrid a*))以车辆当前位置为搜索起点,依靠算法本身逐步搜索到车位泊车点,最后车辆按照搜索出的路线泊车入库;
对于基于规则的方法,需要设计非常完善的逻辑规则库,即车辆的任意初始位置和泊车点的关系都需要考虑到,同时泊车过程中车辆控制会出现一定程度的跟踪偏差,在过程中需要实时进行数学运算,甚至是泊车规则的实时调整,设计逻辑规则库和调试庞大的模型参数都不是一件简单的事情。此外,基于规则的方法很难处理不固定的行人和车辆出入等动态情况,在这些场景下,基于规划的方法极易出现反复泊车,甚至是泊车失败的情况。
对于基于搜索的算法,比基于规则的方法更加灵活,其能够快速的根据环境的变化作为新的规划,但是,由于搜索算法能力边界的存在以及缺乏对泊车场景下狭窄道路搜索的针对性约束,无法保证在任意位置都可以搜索出到泊车点的路径。另外,由于车位内部位置狭窄,搜索空间非常有限,即使能够搜索出到泊车点的路径,也很难保证最终路径角度能够完全和车位中线角度一致,加上车辆跟踪偏差,最终车辆能够进入车位,却很难摆正车身;
综上所述,目前的泊车技术,主要聚焦在对泊车算法的性能提升,寄希望于能够通过算法一次性获得到泊车点的路径。但是,针对泊车场景,驾驶员等用户希望的最终结果是需要让车在任意环境条件下都必须能够入库即算法有解,区别于普通的路径规划问题,驾驶员等用户进行泊车时,更关注的是能够实现入库,而不关注传统上的路径必须是最短路径,能源消耗代价最小等情况。目前的泊车算法,从设计上都更关注全局,没有充分的考虑泊车这一场景的特殊性,在泊车复杂环境下,很难找到合适解,甚至出现无解,导致泊车失败;
因此,鉴于自动驾驶泊车方法作为“泊车大脑”,其在整个泊车过程中起到至关重要的作用,它决定了自动驾驶车辆泊车的智能化程度和性能优劣程度。因此,目前设计一种有效合理且鲁棒稳定的自动驾驶泊车方法,具有非常重要的意义。
发明内容
本发明的目的是针对现有技术存在的技术缺陷,提供一种自动驾驶车辆的垂直泊车方法及其装置、车辆。
为此,本发明提供了一种自动驾驶车辆的垂直泊车方法,包括以下步骤:
步骤S1,环境建模:获取车辆当前位置、车位综合信息、车辆动力学模型和障碍物信息;
其中,车位综合信息,包括车位自身尺寸和位置信息,以及车位周围空间信息;
步骤S2,引导点选取,首先执行步骤S21:车位外部空间采样,获得作为初始泊车位置的初始引导点集合;然后执行步骤S22:根据预设的筛选条件,从初始引导点集合中获取有效初始引导点;
步骤S3,规划泊车:根据车辆当前位置和有效初始引导点的位置,结合车辆动力学模型,生成车辆从当前位置到达有效初始引导点之间的行车路径,然后选择其中一条行驶路径,行驶到对应的有效初始引导点,然后再根据该有效初始引导点对应的车辆的泊车路径进行泊车,最终完成泊车入位。
其中,车辆动力学模型,是包括车辆的长宽、轴距、最小转弯半径、速度和加速度极限值在内的车辆固有参数;
障碍物信息具体包括:静态障碍物的位置信息,以及动态障碍物的位置和速度信息。
其中,所述步骤S21:车位外部空间采样,获得作为初始泊车位置的初始引导点集合,具体包括以下步骤:
步骤S211,模拟车辆出库过程:假设车辆已泊车在车位,根据车辆动力学模型信息和车位位置信息,结合车位周围空间信息,来规划车辆的基准出库路径;
车辆的基准出库路径的具体内容包括:车辆从位于车位中心位置时的泊车点驶出,先沿着基准固定长度的直线段路径行驶,再从直线段路径终点,沿着基准固定半径的圆弧路径左转或右转行驶,最终到达圆弧路径终点;
其中,基准固定长度的直线段路径,是指:车辆从位于车位中心位置时的泊车点驶出,到车辆后轴刚过车位边界时的直线段路径;
其中,基准固定半径,大于车辆的最小转弯半径,具体可以根据用户的需求进行设置;
步骤S212,基于车辆的基准出库路径,分别增加其中的直线段路径的长度或者调整圆弧路径的半径的方式,对应获得多个车辆的第一种备选出库路径和多个车辆的第二种备选出库路径;
步骤S213,将车辆的基准出库路径、第一种备选出库路径和第二种备选出库路径中的圆弧路径终点,都定义为初始引导点,初始引导点即初始泊车位置,获得初始引导点集合,以及记录每个初始引导点对应的备选出库路径,该备选出库路径同时作为位于每个初始引导点上的车辆的泊车路径。
其中,在步骤S212中,基于车辆的基准出库路径,增加其中的直线段路径的长度,保持圆弧路径的半径不变,获得多个车辆的第一种备选出库路径。
其中,在步骤S212中,基于车辆的基准出库路径,逐渐增加其中的圆弧路径的半径长度,保持直线段路径的长度,获得多个车辆的第二种备选出库路径。
其中,所述步骤S22:根据预设的筛选条件,从初始引导点集合中选取有效初始引导点,具体包括以下步骤:
步骤S221:首先,就是设计如下函数关系,利用下面的代价函数公式,计算车辆当前位置相对于每个初始引导点的代价函数值,这么做的目的是选取代价函数值最小的引导点,具体公式如下:
cost=f(S,A,L1,L2);
上述公式中,代价函数内部使用等权重累加和的方式,计算总体cost;
其中,S是引导点所处空间面积大小,空间大小面积S通过1/S计算权重;
A是车辆当前位置和车库底线E的夹角,因此上述代价函数公式中的第二项表示:车辆当前位置与初始引导点之间的夹角,夹角偏差越小,权重越大;
L2为车辆当前位置和车库底线E的距离,因此上述代价函数公式中的第四项表示:车辆当前位置和初始引导点分别与车库底线E平行方向上的偏差大小,偏差越小,权重越小;
L1是车辆当前位置距离车位中心线D之间的距离,采用分段函数的方式,每一段设置不同的权重;
其中:i代表某个初始引导点,Si表示某个初始引导点对应的空间面积大小,Avehicle与Apointi分别表示车辆当前位置与某个初始引导点相对于车库底线E的夹角,L1i表示某个初始引导点相对于车位中心线D的距离,g(Li)表示关于L1i的分段函数。L2vehicle与L2pointi分别表示车辆当前位置(即自车位置)与某个初始引导点相对于车库底线E的距离;
步骤S222:对于初始引导点集合,将其中代价函数值最小的初始引导点作为有效初始引导点。
其中,在所述步骤S3中,在生成车辆从当前位置到达有效初始引导点之间的行车路径之后,选择其中距离最短的路径,作为最佳行驶路径,然后行驶到对应的有效初始引导点。
此外,本发明还提供了一种自动驾驶车辆的垂直泊车装置,用于执行全面所述的垂直泊车方法,包括以下模块:
环境建模模块,其用于获取车辆当前位置、车位综合信息、车辆动力学模型和障碍物信息;
其中,车位综合信息,包括车位自身尺寸和位置信息,以及车位周围空间信息;
引导点选取模块,其用于进行车位外部空间采样,获得作为初始泊车位置的初始引导点集合;然后根据预设的筛选条件,从初始引导点集合中获取有效初始引导点;
规划泊车模块,其用于根据车辆当前位置和有效初始引导点的位置,结合车辆动力学模型,生成车辆从当前位置到达有效初始引导点之间的行车路径,然后选择其中一条行驶路径,行驶到对应的有效初始引导点,然后再根据该有效初始引导点对应的车辆的泊车路径进行泊车,最终完成泊车入位。
另外,本发明还提供了一种车辆,包括前面所述的自动驾驶车辆的垂直泊车装置。
由以上本发明提供的技术方案可见,与现有技术相比较,本发明提供了一种自动驾驶车辆的垂直泊车方法及其装置、车辆,其设计科学,其提出了根据出库反推出泊车入库引导点的设计思路,通过反推出库过程,将垂直泊车问题分解为规划到引导点和从引导点泊车入库两个步骤,降低了对搜索算法的能力要求,简化了问题复杂度的同时实现了逻辑的分离,更有利于实际调试。
此外,本发明可以将垂直泊车原来的单点求解问题,转化成多个点的任意解问题,使得求解空间加大,更有利于得到稳定合理的泊车路线;也就说,本发明将传统垂直泊车问题中复杂单点求解问题转换成求到多个引导点之间的若干子问题,只要求解出任意子问题就可以得到一组解,极大的降低了泊车难度。
另外,本发明更加关注垂直泊车环境特点,在最后阶段设计圆弧加直线的方式,更有利于控制跟踪,能够在一定程度上帮助控制减少误差,从而达到更好的泊车效果。
附图说明
图1为本发明提供的一种自动驾驶车辆的垂直泊车方法的基本流程示意图;
图2为本发明提供的一种自动驾驶车辆的垂直泊车方法的总体流程示意图;
图3为本发明的车辆出库示意图;
图4为本发明在保持圆弧路径的半径不变、等长度增加直线段路径长度时的车辆出库示意图;
图5为本发明在保持直线段路径的长度不变、增加圆弧路径半径时的车辆出库示意图;
图6为本发明选取有效引导点的示意图。
具体实施方式
为使本发明实现的技术手段更容易理解,下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在本申请的描述中,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
参见图1至图6,本发明提供了一种自动驾驶车辆的垂直泊车方法,预包括以下步骤:
步骤S1,环境建模:获取车辆当前位置、车位综合信息、车辆动力学模型和障碍物信息;
其中,车位综合信息,包括车位自身尺寸和位置信息,以及车位周围空间信息;
步骤S2,引导点选取,首先执行步骤S21:车位外部空间采样,获得作为初始泊车位置的初始引导点集合;然后执行步骤S22:根据预设的筛选条件,从初始引导点集合中获取有效初始引导点;
步骤S3,规划泊车:根据车辆当前位置和有效初始引导点的位置,结合车辆动力学模型,生成车辆从当前位置到达有效初始引导点之间的行车路径(例如运用现有的搜索算法或者其他能够生成行车路径的现有算法),然后选择其中一条行驶路径(即选择其中的最佳行驶路径,具体可以根据现有的通用的搜索算法,来选择、获取最佳行驶路径,即生成最佳行驶路径,常用的搜索算法如A*搜索算法,可以使用曼哈顿距离或欧式距离的长度等作为评价指标),行驶到对应的有效初始引导点,然后再根据该有效初始引导点对应的车辆的泊车路径进行泊车,最终完成泊车入位。
需要说明的是,行车路径规划,为现有的行车路径规划方式,可以采用现有公知的方法确定,在此不再赘述。
在本发明中,需要说明的是,对于步骤S1的环境建模操作,获取车辆位置以及车位和周围场地的基本信息,一般通过场端摄像头或者高清地图获得。读取车辆运动学模型,一般预先存储在车辆的配置文件中。读取障碍物信息,并进行基本的排序、滤重处理。
还需要说明的是,关于环境建模,区别于传统的路径规划,垂直泊车更加关注于车位周围的空间大小,障碍物位置等环境信息。环境建模是垂直泊车的基础,对车位周围的环境进行建模,有助于算法更好的理解物理世界,从而得到最恰当的泊车路径;
在本发明中,具体实现上,步骤S1的环境建模操作,具体包括以下子步骤:
步骤S11,获取车辆当前位置。
车辆当前位置是泊车的基础,主要是通过上游节点定位模块借助于现有的卫星全球定位系统,惯性导航,激光雷达及高清地图等获得,由于车辆位置是采用现有公知的方法来确定,在此不再赘述。
步骤S12,获取车位综合信息。
车位综合信息,包括车位自身尺寸和位置信息,以及车位周围空间信息,一般通过场端或者车端两种方式获得,其中,场端,主要是通过停车场内部固定存在的摄像头,超声波识别装置并结合停车场物理地图获得综合信息;车端,则是直接通过车辆上安装的激光雷达、视觉传感器、毫米波雷达等现有的设备结合高清地图,通过匹配和算法加工得出待泊车车位自身的尺寸信息和车位周围的空间信息;由于车位综合信息是采用现有公知的方法来确定,在此不再赘述。
步骤S13,获取车辆动力学模型。
车辆动力学模型,主要包括车辆的长宽、轴距、最小转弯半径、速度、加速度极限值等固有参数,对于相同的车辆基本固定,一般预先在车辆配置文件中定义存储。
步骤S14,获取障碍物信息;
障碍物信息具体包括:静态障碍物的位置信息,以及动态障碍物的位置和速度信息。障碍物信息的处理,主要通过从上游节点(如现有的感知、预测等设备),获取车辆和库位(即车位)一定范围(例如预设距离范围)内的障碍物位置、速度信息,将这些信息统一储存。并按照距自车(即本车辆)的相对距离大小进行排序。障碍物信息,可以通过现有的雷达、摄像机、GPS等障碍物检测设备来获得,为现有公知的方法定,在此不再赘述。
需要说明的是,在本发明中,步骤S11至步骤S14的执行先后顺序,没有要求,任何一个步骤都可以调整执行的顺序。
在本发明中,所述步骤S21:车位外部空间采样,获得作为初始泊车位置的初始引导点集合,具体包括以下步骤:
步骤S211,模拟车辆出库过程:假设车辆已泊车在车位,根据车辆动力学模型信息和车位位置信息,结合车位周围空间信息,来规划车辆的基准出库路径(避免碰撞障碍物);
车辆的基准出库路径的具体内容包括:车辆从位于车位中心位置时的泊车点驶出,先沿着基准固定长度的直线段路径(未左拐和未右拐方向盘)行驶,再从直线段路径终点,沿着基准固定半径的圆弧路径左转或右转行驶,最终到达圆弧路径终点;
其中,基准固定长度的直线段路径,是指:车辆从位于车位中心位置时的泊车点驶出,到车辆后轴刚过车位边界(即车库边界,例如刚过车位边界0.2米)时的直线段路径;
其中,基准固定半径,大于车辆的最小转弯半径(根据车辆动力学模型获知),具体可以根据用户的需求进行设置;
步骤S212,基于车辆的基准出库路径,分别增加其中的直线段路径的长度或者调整圆弧路径的半径的方式,对应获得多个车辆的第一种备选出库路径和多个车辆的第二种备选出库路径(同时实时记录);
步骤S213,将车辆的基准出库路径、第一种备选出库路径和第二种备选出库路径中的圆弧路径终点,都定义为初始引导点(即初始泊车位置),获得初始引导点集合,以及记录每个初始引导点对应的备选出库路径,该备选出库路径同时作为位于每个初始引导点上的车辆的泊车路径;
在步骤S212中,具体实现上,基于车辆的基准出库路径,增加其中的直线段路径的长度(预设的长度值,例如0.2米),保持圆弧路径的半径不变,获得多个车辆的第一种备选出库路径(同时实时记录);
在步骤S212中,具体实现上,基于车辆的基准出库路径,逐渐增加其中的圆弧路径的半径长度,保持直线段路径的长度,获得多个车辆的第二种备选出库路径(同时实时记录)。
需要说明的是,对于本发明,基于以上设计,可以让在初始引导点位置的车辆,以初始引导点作为初始泊车位置,沿着初始引导点对应的泊车路径,倒车入库,进入到车位中。
在本发明中,具体实现上,在步骤S211中,车位周围空间信息,可以通过现有的空间探索算法获取。
基于以上技术方案可知,本发明在引导点选取上,首先根据车位周围空间信息(即周围环境),从车位泊车点开始进行采样,借助空间探索算法确定车位周围空间大小,结合车辆运动学模型及车位当前位置,结合人类泊车经验,从众多采样点中选择一些合适的点作为引导点。
在一个具体实施例中,关于步骤S2的引导点选取,具体实现方式如下:
一、步骤S21:车位外部空间采样,获得作为初始泊车位置的初始引导点(即备选引导点)集合,具体实现方式如下:
垂直泊车可以看成车辆出库的逆过程,如图3所示,假设车辆初始处于车库(即车位)的A0点位置(A0即为泊车点),那么按照人类的驾驶习惯,通常是先将车辆开到B的位置(车辆后轴刚过车库边界的位置,B为直线段路径终点),然后向左打方向盘,沿着圆弧路径行驶到圆弧路径终点C1,完成出库(或者向右打方向盘到圆弧路径终点C2,完成出库)。
分析出库的整个过程,可以发现车辆的出库路径为:车辆从泊车点A0点到达C1(或者C2),首先沿着直线段路径,从A0点运动到B点,然后按照固定的半径走一段圆弧路径,即可到达C1(或者C2)或者其平行线,这时可以将其中的出库路径(具体采用C1点和C2点对应的路径)作为车辆的基准出库路径。
鉴于此,对于本发明,垂直泊车可以按照其逆过程进行,只要车辆在C1(或者C2)或者其平行线上,那么至少能够有一个解:一个固定半径的圆弧加上一段固定长度直线。那么整个泊车问题,就可以从原本的求解到固定点A0的单点求解问题,转化成到C1(或者C2)或者其平行线上的多个点的多解问题,基于这种思路进行发散,得到以下的解集空间:
1、基于以上的车辆的基准出库路径,保持圆弧路径的半径固定,改变直线段路径的长度。
参见图4所示,从图4中,可以看出,通过等长度增加泊车点A0和B点之间的直线段路径长度,在保持相同的圆弧半径(方向盘角度)下,可以把原本求解到固定点A0的单点求解问题,进一步转换到到图4中1-12点及其平行线上的多解问题(车位空间越大,可以得到越多的编号点)。
2、基于以上的车辆的基准出库路径,保持直线段路径的长度,改变圆弧路径的半径。
参见图5所示,从图5中,可以看出在固定A0点到B点之间的直线段路径长度(即在同一个位置打方向盘),按照比如等角度增加方向盘角度,逐渐改变圆弧路径的半径时(实际方向盘角度存在极限),可以进一步把上述原本求解到固定点A0的单点求解问题,转化成图5中13-32点的多解问题(车位空间越大可以得到越多编号点);
通过图4和图5可以看出,通过适当的采样方式后,可以把泊车问题(即到固定的泊车点A0的问题)转化成:求车辆到多个点(1-32)中任意一个点的规划求解问题,那么,只要车辆能够到达这些点中的任意一点,那么至少存在图示中的一个解,就可以保证车辆正常倒车入库,而这些点就称之为初始引导点集合。
二、步骤S22:根据预设的筛选条件,从初始引导点集合中选取有效初始引导点,具体实现方式如下:
如前所述,基于车辆的基准出库路径,通过不同长度的直线段路径或者不同半径的圆弧路径的采样,可以获得一系列的初始引导点,但是,这些初始引导点只是在考虑车位及其周围空间的单一情况得到的,并不是在所有的泊车场景下都是有效的。这些初始引导点选取需要考虑很多实际情况,接下来对具体因素进行分析,参见图6所示,具体如下:
1、引导点所处空间面积大小S:按照经验来说,引导点周围越空旷,给车辆调整方向和距离的空间越大,对应的泊车成功率越高;
2、车辆当前位置距离车位中心线D之间的距离L1:一般来说泊车距离是在车库中心线(即车位中心线)左右的预设距离范围(例如3米)内,越远泊车越不智能,另外按照驾驶习惯,通常会选择开到车库的右侧倒车入库,车库右侧引导点更受用户欢迎;
3、车辆当前位置和车库底线E之间的夹角A:按照驾驶习惯,如果当前车辆平行于库底(即夹角等于0°,或者小于等于预设较小角度值,例如15°),通常会使用图4里面的方式进行泊车(即根据第一种备选出库路径泊车),当存在较大夹角(例如大于15°)且空间富裕的情况下,通常按照图5里面的方式进行泊车(即根据第一种备选出库路径泊车),因此夹角不同,最佳引导点也会不同;
4、车辆当前位置和车库底线E之间的距离L2:如果当前车辆平行于车库底线(平行库底),使用图4里面的方式进行泊车,通常来说,优选为选择与当前车辆平行的初始引导点作为有效引导点;
在本发明中,具体实现上,在实际算法实现过程中,需要根据经验设计代价函数,从初始引导点集合中结合车辆当时实际的环境模型,得出有效引导点(或者集合),具体来说,所述步骤S22:根据预设的筛选条件,从初始引导点集合中获取有效初始引导点,具体包括以下两个子步骤:
步骤S221:首先,就是设计如下函数关系,利用下面的代价函数公式,计算车辆当前位置相对于每个初始引导点(即备选引导点)的代价函数值,这么做的目的是选取代价函数值最小的引导点,具体公式如下:
cost=f(S,A,L1,L2);
上述公式中,代价函数内部使用等权重累加和的方式,计算总体cost;
其中,S是引导点所处空间面积大小,空间大小面积S通过1/S计算权重;
A是车辆当前位置和车库底线E的夹角,因此上述代价函数公式中的第二项表示:车辆当前位置与初始引导点(即备选引导点)之间的夹角,夹角偏差越小,权重越大;
L2为车辆当前位置和车库底线E的距离,因此上述代价函数公式中的第四项表示:车辆当前位置和初始引导点(即备选引导点)分别与车库底线E平行方向上的偏差大小,偏差越小,权重越小;
L1是车辆当前位置距离车位中心线D之间的距离,采用分段函数的方式,每一段设置不同的权重;
其中:i代表某个初始引导点,Si表示某个初始引导点对应的空间面积大小,Avehicle与Apointi分别表示车辆当前位置与某个初始引导点相对于车库底线E的夹角,L1i表示某个初始引导点相对于车位中心线D的距离,g(Li)表示关于L1i的分段函数。L2vehicle与L2pointi分别表示车辆当前位置(即自车位置)与某个初始引导点相对于车库底线E的距离。
步骤S222:对于初始引导点集合,将其中代价函数值最小的初始引导点作为有效初始引导点。
对于本发明,可以根据不同的车辆泊车场景,代入上述代价函数,再根据评价体系,选择出最合适的引导点或者引导点集合(例如左侧车辆最佳引导点F和右侧车辆最佳引导点G),选择出的引导点质量直接决定着最终垂直泊车的效果。
本发明中,具体实现上,本发明的“评价体系”通常考虑备选引导点(即初始引导点)数量以及附加约束项。备选引导点(即初始引导点)的数量即为选择代价值最低的引导点的个数,受泊车时间、计算平台能力等条件限制。如果备选点过少,可能导致无法计算出结果,反之过多会导致泊车效果变差或耗时变长。附加约束项,可以根据实际需求以及场地约束进行确定,例如可以为:场地限制仅允许右侧倒车泊入(车位左侧受限等),或库前多车道,仅允许存在朝向与所在车道同方向的引导点等约束条件。根据约束项能够在备选引导点中去除一部分不符合约束的结果。此外,当不存在附加约束项时,“评价体系”选出的备选引导点(即初始引导点)(集合)即为代价值最低的一个(或者多个)备选引导点。
具体实现上,参见图6所示,对于图6中左右侧的备选引导点(初始引导点),其代价函数中关于S的项均相同,因此可以侧重于比较其余三项的代价即可,具体如下:
1、对于左侧车辆位置,由于初始引导点F点与自车的L2高度(即F点与车辆当前位置,相对于车库底线E的距离)基本一致,A夹角(即F点与车辆当前位置,分别相对于车库底线E的夹角)也基本相同,因此可见对于图6中左侧车辆,F点代价应为最小值,在无附加约束项时,根据“评价体系”可选出F点为最优解;
2、对于右侧车辆位置,初始引导G点与车辆的A夹角(即G点与车辆当前位置,分别相对于车库底线E的夹角)基本一致,L1距离(即G点与车辆当前位置,相对于车位中心线D的距离)也相对较小,而L2高度(即G点与车辆当前位置,相对于车库底线E的距离)与其余备选引导点差异并不显著,因此根据“评价体系”可选出G点为右侧车辆最优解;此处由于是示意图,因此仅表述大致位置,实际应根据代价值最小的备选点结合“评价体系”得出。
需要说明的是,代价函数值越小,说明对应的初始引导点的质量越好,越适合泊车入位使用。
在本发明中,具体实现上,在所述步骤S3中,在生成车辆从当前位置到达有效初始引导点之间的行车路径之后,选择其中距离最短的路径,作为最佳行驶路径,然后行驶到对应的有效初始引导点。
在本发明中,关于步骤S3的规划泊车,具体实现上,由于在步骤S2中已经找到了当前车辆环境下的引导点集(即采样点集),接下来,可以借助搜索算法得出最终的泊车路线,具体来讲:就是依次遍历车辆当前位置到引导点集,依次尝试是否能够生成满足车辆运动约束的路径,一旦在任意一个点存在路线,那么只需要车辆按照此路线行驶到对应的引导点,最后按照引导点处设计好的圆弧和直线进行泊车;
在步骤S3中,对于规划泊车,使用搜索算法找寻从车辆当前位置到采样点(具体为有效初始引导点)之间的路径,可以根据一定的约束(例如路径的距离最短),选择一条最佳路径路线(即最佳行驶路径)到达对应的采样点,再从采样点(即引导点)按照对应的车辆的泊车路径,通过使用简单的圆弧和直线段路径,完成泊车入位;
需要说明的是,上述最佳路径路线,是指使用搜索算法从自车当前位置搜索到有效初始引导点(即代价函数值最小的初始引导点)的轨迹。此时的“评价条件”是搜索算法中的路径评价方式(例如可以是路径最短,或者其他预设的评价方式),属于现有搜索算法内部的内容。常用的搜索算法如A*搜索算法,可以使用曼哈顿距离或欧式距离的长度等作为评价指标。在这里需要说明的是,该部分仅利用通用的搜索算法生成最佳行驶路径,可以认为评价的过程在搜索算法内部完成,属于业内通用的方式。
本发明提供的垂直泊车方法,主要是为了减低规划难度,提升规划成功率,但是泊车最后的实际效果还跟当时场景障碍物的分布,控制的跟踪效果等有关。
在本发明中,具体实现上,本发明的方法中获取引导点时使用的圆弧加直线的方式,也可以使用一些规则化曲线代替,从而得到其他引导点。
基于以上技术方案可知,本发明提供的自动驾驶车辆的垂直泊车方法,其主要特点如下:
1、充分考虑泊车场景道路狭窄的特殊性,将泊车分成找到引导点(初始泊车位置)和从引导点泊车入位两部分,具体来说,先从泊车点反推出合适引导点,在从车辆当前位置规划路线到引导点,然后,从引导点通过简单的曲线泊车入位;
2、借助分段泊车的设计思路,将狭窄车位泊车的单点求解问题,转换成找到合适引导点的多解问题,实现降低泊车入位难度,提升泊车成功率目的。
此外,基于以上本发明提供的一种自动驾驶车辆的垂直泊车方法,为了执行上述垂直泊车方法,本发明还提供了一种自动驾驶车辆的垂直泊车装置,该装置包括以下模块:
环境建模模块,其用于获取车辆当前位置、车位综合信息、车辆动力学模型和障碍物信息;其中,车位综合信息,包括车位自身尺寸和位置信息,以及车位周围空间信息;
引导点选取模块,其用于进行车位外部空间采样,获得作为初始泊车位置的初始引导点集合;然后根据预设的筛选条件,从初始引导点集合中获取有效初始引导点;
规划泊车模块,其用于根据车辆当前位置和有效初始引导点的位置,结合车辆动力学模型,生成车辆从当前位置到达有效初始引导点之间的行车路径(例如运用现有的搜索算法或者其他能够生成行车路径的现有算法),然后选择其中一条行驶路径(即选择其中的最佳行驶路径,具体可以根据现有的通用的搜索算法,来选择、获取最佳行驶路径,即生成最佳行驶路径,常用的搜索算法如A*搜索算法,可以使用曼哈顿距离或欧式距离的长度等作为评价指标),行驶到对应的有效初始引导点,然后再根据该有效初始引导点对应的车辆的泊车路径进行泊车,最终完成泊车入位。
需要说明的是,行车路径规划,为现有的行车路径规划方式,可以采用现有公知的方法确定,在此不再赘述。
另外,本发明还提供了一种车辆,所述车辆包括前面所述的自动驾驶车辆的垂直泊车装置。
综上所述,与现有技术相比较,本发明提供的一种自动驾驶车辆的垂直泊车方法及其装置、车辆,其设计科学,其提出了根据出库反推出泊车入库引导点的设计思路,通过反推出库过程,将垂直泊车问题分解为规划到引导点和从引导点泊车入库两个步骤,降低了对搜索算法的能力要求,简化了问题复杂度的同时实现了逻辑的分离,更有利于实际调试。
此外,本发明可以将垂直泊车原来的单点求解问题,转化成多个点的任意解问题,使得求解空间加大,更有利于得到稳定合理的泊车路线;也就说,本发明将传统垂直泊车问题中复杂单点求解问题转换成求到多个引导点之间的若干子问题,只要求解出任意子问题就可以得到一组解,极大的降低了泊车难度。
另外,本发明更加关注垂直泊车环境特点,在最后阶段设计圆弧加直线的方式,更有利于控制跟踪,能够在一定程度上帮助控制减少误差,从而达到更好的泊车效果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。