1.本技术涉及编队车辆自动驾驶技术领域,特别是涉及一种编队车辆的控制方法、装置、编队车辆控制设备和存储介质。
背景技术:
2.自动驾驶汽车作为公认的未来汽车发展方向,自动驾驶技术也处在飞速发展的过程中。目前的自动驾驶技术,大多涉及的是单个车辆驾驶,即一辆汽车通过传感器感知周围环境信息来实现该车辆的自动驾驶。合作式编队作为自动驾驶的重要形态之一,通过车辆编队的行驶进行驾驶,编队中的车辆可以获取车辆周围的相关信息,并通过车辆的车载单元传递给编队中的其他车辆,以提高信息的准确性和稳定性。编队车辆在行驶过程中,编队车辆中行驶在最前的领航车可以是人工驾驶或自动驾驶,其他的跟随车则均采用自动驾驶,以有效地减少人力成本和因为疲劳驾驶人为因素等造成的交通事故。然而,目前的车辆编队行驶方案,在编队车辆行驶过程中,若有非编队车辆插入,难以迅速对插入车辆做出有效响应。
技术实现要素:
3.基于此,有必要针对上述技术问题,提供一种能够提高有非编队车辆插入时的响应速度提高自动驾驶安全性的编队车辆的控制方法、装置、编队车辆控制设备和存储介质。
4.一种编队车辆的控制方法,所述方法包括:
5.获取传感器感知的障碍物信息;
6.根据所述障碍物信息,确定是否有自由行驶对象位于本车的车辆插入边界范围内,所述车辆插入边界范围由前相邻编队车辆与本车之间的编队车辆间区域、以及与本车行驶方向相平行的两条边界线确定,所述前相邻编队车辆为车辆编队中,与本车相邻且行驶在本车前面的编队车辆;
7.在有自由行驶对象位于所述车辆插入边界范围内时,确定有自由行驶对象插入车辆编队。
8.一种编队车辆的控制装置,所述装置包括:
9.障碍物信息获取模块,用于获取传感器感知的障碍物信息;
10.插入确定模块,用于根据所述障碍物信息,确定是否有自由行驶对象位于本车的车辆插入边界范围内,并在有自由行驶对象位于所述车辆插入边界范围内时,确定有自由行驶对象插入车辆编队,所述车辆插入边界范围由前相邻编队车辆与本车之间的编队车辆间区域、以及与本车行驶方向相平行的两条边界线确定,所述前相邻编队车辆为车辆编队中,与本车相邻且行驶在本车前面的编队车辆。
11.一种编队车辆控制设备,包括车载单元,传感器,存储器和处理器,所述车载单元获得车辆编队中的编队车辆传输的信息,所述传感器感知车辆周围的障碍物信息,所述存储器存储有计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的方法的
步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
13.上述编队车辆的控制方法、装置、编队车辆控制设备和存储介质,编队车辆在自动驾驶过程中,结合传感器感知的障碍物信息进行编队车辆的自动驾驶,并结合前相邻编队车辆和本车之间的区域以及与本车行驶方向相平行的两条边界线确定出车辆插入边界范围,据此确定是否有不属于编队车辆的其他自由行驶对象插入编队,从而在有非编队车辆插入时能够快速地得知,并可以据此进行响应,提高自动驾驶安全性。
附图说明
14.图1为一个实施例中编队车辆的控制方法的应用环境图;
15.图2为一个实施例中编队车辆的控制方法的流程示意图;
16.图3为一个实施例中确定车辆插入边界范围的原理示意图;
17.图4为另一个实施例中确定车辆插入边界范围的原理示意图;
18.图5为另一个实施例中确定车辆插入边界范围的原理示意图;
19.图6为一个实施例中的第一变距函数的示意图;
20.图7为一个实施例中的第二变距函数的示意图;
21.图8为一个实施例中编队车辆的控制装置的结构框图;
22.图9为一个实施例中编队车辆控制设备的内部结构图。
具体实施方式
23.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
24.本技术实施例提供的方案,可以应用于如图1所示的车辆编队行驶的应用环境中。车辆编队行驶是指多个车辆在组队行驶的过程中,引入自动驾驶技术。在车辆编队中,至少有两辆或者两辆以上的车辆以编队的行驶在特定的场景下行驶。其中,创建车队的车辆或者说车辆编队中行驶在最前的车辆被称为领航车,领航车后面的编队车辆被称为跟随车。领航车通常由人工驾驶,在可能的情况下,也可以是自动驾驶或者人工驾驶与自动驾驶相结合,跟随车通常是自动驾驶,以节省人工。能够组成车辆编队的车辆可以是任何类型的车辆,例如重卡、公交车、轿车、以及应用于矿区的矿卡等等。如图1所示,该车辆编队中有n个车辆,分别为车辆c1、
……
、ci-1、ci、
……
cn。本技术实施例方案涉及的是有编队插入时的解决方案。其中,编队插入是指在车辆编队稳定行驶的过程有,有非编队车辆插入车辆编队的队列之中,非编队车辆在本技术的下述相关实施例中也可以称为潜在车、自由车或者自由行驶对象。
25.在一个实施例中,如图2所示,提供了一种编队车辆的控制方法,以该方法应用于车辆编队中的编队车辆为例进行说明。可以理解的是,应用本技术实施例的方法的编队车辆,可以是车辆编队中的跟随车。该方法包括以下步骤s202至步骤s203。
26.步骤201,获取传感器感知的障碍物信息。
27.传感器是指设置在编队车辆上,能够感知编队车辆周围环境的障碍物的信息的传感器。这里的障碍物,是指任何与本车无关的其他对象,例如其他车辆、其他活动对象等等。
28.步骤202:根据所述障碍物信息,确定是否有自由行驶对象位于本车的车辆插入边界范围内,所述车辆插入边界范围由前相邻编队车辆与本车之间的编队车辆间区域、以及与本车行驶方向相平行的两条边界线确定,所述前相邻编队车辆为车辆编队中,与本车相邻且行驶在本车前面的编队车辆。
29.其中,前相邻编队车辆与本车之间的编队车辆间区域,可以结合前相邻编队车辆的位置以及本车位置确定。其中,在车辆编队中,每个编队车辆上都设置有车载单元(obu),每个编队车辆都通过自身车辆上的obu,将自身车辆的相关信息发送给车辆编队中的其他编队车辆。从而,每个编队车辆都可以从自身的obu接收到的信息中,提取与自身相邻且行驶在本车前面的前相邻编队车辆的位置。从而可以结合前相邻编队车辆的位置与本车的位置确定出前相邻编队车辆与本车之间的编队车辆间区域。
30.与本车行驶方向相平行的两条边界线,在不同的技术场景中可以有不同的设定。
31.在一个实施例中,与本车行驶方向相平行的两条边界线,可以包括:以所述前相邻编队车辆的车辆行驶轨迹为轴、向与车辆行驶轨迹方向垂直的两侧分别移动第一距离得到的两条边界线(本技术实施例中称为两条轨迹边界线)。此时,上述车辆插入边界范围包括:由位于两条所述轨迹边界线的范围内,且位于所述编队车辆间区域组成的第一车辆插入边界范围。
32.在一个实施例中,与本车行驶方向相平行的两条边界线,可以包括:将本车的两侧车身所在的车身线分别向远离车身的方向移动第二距离获得的两条边界线(本技术实施例中称为两条车身边界线)。此时,上述车辆插入边界范围包括:由位于两条所述车身边界线的范围内,且位于所述编队车辆间区域组成的第二车辆插入边界范围。
33.在一个实施例中,与本车行驶方向相平行的两条边界线,可以包括:以本车车身沿车辆前进方向的本车中心线为轴,向与本车中心线垂直的两侧分别移动第三距离得到的两条边界线(本技术实施例中称为两条中心边界线)。此时,上述车辆插入边界范围包括:由位于两条中心边界线范围内,且位于所述编队车辆间区域组成的第三车辆插入边界范围。
34.在一些实施例中,与本车行驶方向相平行的两条边界线,也可以是包括上述两条轨迹边界线、两条车身边界线以及两条中心边界线中的至少两种。此时,上述车辆插入边界范围,可以是同时包括上述第一车辆插入边界范围、第二车辆插入边界范围以及第三车辆插入边界范围中的至少两种。
35.一个实施例中,所述障碍物信息包括:自由行驶对象的自由对象位置。此时,上述根据所述障碍物信息,确定是否有自由行驶对象位于本车的车辆插入边界范围内,可以包括:在所述自由对象位置位于所述车辆插入边界范围内时,确定有自由行驶对象位于本车的车辆插入边界范围内。此时,可以是在自由行驶对象的自由对象位置实际位于车辆插入边界范围时,可以确定有自由行驶对象插入了本车的车辆插入边界范围,即有非编队车辆插入了车辆编队。
36.其中,用于与车辆插入边界范围进行比对的自由对象位置,在一些实施例中,可以是自由行驶对象的边界线的坐标,以使得能够快速发现自由行驶对象进入了车辆插入边界范围。在一些实施例中,自由对象位置也可以是自由行驶对象的中心点坐标,即车辆的中心
点坐标。
37.一个实施例中,上述障碍物信息可以包括:自由行驶对象的自由对象位置和自由对象速度。可以理解的是,自由行驶对象的自由对象速度,包含有自由行驶对象的横向速度和纵向速度,其中,横向速度可以是指车辆向与本车所在车道的方向或者本车的行驶轨迹方向垂直前进的速度,纵向速度可以是指车辆沿车道方向或者本车的行驶轨迹方向前进的速度。此时,上述根据所述障碍物信息,确定是否有自由行驶对象位于本车的车辆插入边界范围内,可以包括:
38.根据所述自由对象位置和所述自由对象速度,预测所述自由行驶对象的下一时刻的预测位置;
39.在所述预测位置位于本车的车辆插入边界范围内时,确定所述自由行驶对象位于本车的车辆插入边界范围内。
40.从而,通过预测自由行驶对象的下一时刻的预测位置,针对预测位置来确定车辆是否会位于车辆插入边界范围,从而可以提前预测是否会有车辆插入编队之中,以便于提前进行准备和响应,有助于在有车辆插入编队时,提高编队车辆的响应速度。
41.在一些实施例中,自由行驶对象的下一时刻的预测位置可以是自由行驶对象的中心点坐标,即车辆的中心点坐标,也可以是自由行驶对象的边界线坐标,由于是通过预测的方式将预测得到的位置与车辆插入边界范围进行比较,因此可以快速地预测得知其是否会插入编队。
42.其中,在根据自由对象位置和自由对象速度,预测所述自由行驶对象的下一时刻的预测位置时,可以用任何能够对下一时刻位置进行预测的方式进行。在一个实施例中,可以是以所述自由行驶对象自当前时刻到下一时刻为匀速行驶为基础,根据所述自由对象位置和所述自由对象速度,计算获得所述自由行驶对象的下一时刻的预测位置。即假定自由行驶对象在自当前时刻到下一时刻的时间范围内为匀速行驶,从而,可以直接基于自由对象位置、自由对象速度以及时长计算出下一时刻的预测位置。在另一个实施例中,可以是根据所述自由行驶对象的自由对象位置、自由对象速度、自由对象加速度、航向角以及角速度,预测获得所述自由行驶对象的下一时刻的预测位置;所述障碍物信息还包括所述自由对象加速度、航向角以及角速度。从而,综合考虑自由行驶对象的自由对象加速度、航向角以及角速度进行预测,确保了计算获得的下一时刻的预测位置的准确性。
43.步骤203:在有自由行驶对象位于所述车辆插入边界范围内时,确定有自由行驶对象插入车辆编队。
44.通过如上所述的实施例的方案,编队车辆在自动驾驶过程中,结合传感器感知的障碍物信息进行编队车辆的自动驾驶,并结合前相邻编队车辆和本车之间的区域以及与本车行驶方向相平行的两条边界线确定出车辆插入边界范围,据此确定是否有不属于编队车辆的其他自由行驶对象插入编队,从而在有非编队车辆插入时能够快速地得知,并可以据此进行响应,提高自动驾驶安全性。
45.一个实施例中,如上所述的方法还包括步骤s204:
46.步骤204,对车辆行驶状态进行自动控制,以使得本车与所述自由行驶对象的间距在第一时长内逐渐增长至第一目标间距,并在所述第一时长之后的第二时长内逐渐减少至第二目标车距。
47.从而,在确定有非编队车辆插入车辆编队时,以本车与自由行驶对象的间距或者说本车的期望车距在第一时长内逐渐增长至第一目标间距的方式对车辆进行控制,可以确保控制器计算并输出一个安全又相对平缓的刹车,而在第一时长之后的第二时长内,又使得期望车距在第二时长内逐渐减少至第二目标车距的方式对车辆进行控制,可以确保车辆编队能够恢复稳定。在期望车距减少至第二目标车距之后,可以保持期望车距为第二目标车距不变,直至发生新的变化情况,例如又有新的非编队车辆插入编队,或者说已经插入编队的上述自由行驶对象已经离开编队。
48.一个实施例中,对车辆行驶状态进行自动控制,以使得本车与所述自由行驶对象的间距在第一时长内逐渐增长至第一目标间距,并在所述第一时长之后的第二时长内逐渐减少至第二目标车距,具体包括:
49.通过第一变距函数确定本车的期望间距,所述期望间距在第一时长内逐渐增长至第一目标间距,并在所述第一时长之后的第二时长内逐渐减少至第二目标车距;
50.基于所述期望间距计算车辆的纵向指令;
51.通过所述纵向指令控制本车的工作状态。
52.从而,通过第一变距函数对车辆间距进行控制,可以让车辆不会猛然减速和猛然加速造成不好的驾驶体验。
53.一个实施例中,上述障碍物信息可以包括:所述自由行驶对象的自由对象位置、自由对象速度以及自由对象加速度,此时,基于所述期望间距计算车辆的纵向指令,包括:
54.将传感器感知的所述自由对象位置作为所述前相邻编队车辆的前车位置以及所述车辆编队中的领航车的领航车位置;将传感器感知的所述自由对象速度作为所述前相邻编队车辆的前车车速以及所述领航车的领航车车速,将传感器感知的所述自由对象加速度作为所述前相邻编队车辆的前车加速度以及所述领航车的领航车加速度;
55.基于所述期望间距,本车位置,所述前车位置,本车车速,所述前车车速,所述领航车车速,所述前车加速度,所述领航车加速度,计算车辆的纵向指令。
56.从而,在有自由行驶对象插入车辆编队的情况下,以插入车辆编队的自由行驶对象作为本车的前车以及车辆编队的领航车,据此计算车辆的纵向指令,以对车辆进行纵向控制,即将自由行驶对象作为本车的前车和领航车来进行跟随控制,以提高安全性。
57.在一个实施例中,本技术的编队车辆的控制方法,还可以包括:
58.在确定所述自由行驶对象离开车辆编队时,对车辆行驶状态进行自动控制,以使得本车与所述前相邻编队车辆的间距在第三时长内逐渐减少至第三目标车距。
59.从而,在自由行驶对象离开车辆编队的情况下,通过将本车与前相邻边度车辆的间距在第三时长内逐渐减少至第三目标车距的方式对车辆行驶状态进行控制,从而可以使得车辆编队恢复稳定的编队行驶状态。
60.一个具体示例中,对车辆行驶状态进行自动控制,以使得本车与所述前相邻编队车辆的间距在第三时长内逐渐减少至第三目标车距时,具体可以采用以下方式进行控制:
61.通过第二变距函数确定本车的期望间距,所述期望间距在第三时长内逐渐减少至第三目标车距;
62.基于所述期望间距计算车辆的纵向指令;
63.通过所述纵向指令控制本车的工作状态。
64.从而,通过第二变距函数对车辆间距进行控制,可以让车辆不会猛然加速造成不好的驾驶体验。
65.其中,在确定所述自由行驶对象离开车辆编队时,一个实施例中的方式可以包括:
66.获取传感器感知的自由行驶对象与本车的第一距离,以及通过车载单元获得的与前相邻编队车辆之间的第二距离;
67.在所述第一距离与第二距离的差值在第一阈值范围内,且所述第一距离与上一时刻传感器感知的自由行驶对象与本车的第三距离之间的差值大于第二阈值时,确定所述自由行驶对象离开车辆编队。
68.在一个实施例中,本技术的编队车辆的控制方法,还可以包括:
69.在丢失车载单元的信号时,将所述传感器感知的自由行驶对象作为所述车辆编队中的领航车以及本车的前相邻编队车辆;
70.将所述自由行驶对象的信息作为领航车的信息以及前相邻编队车辆的信息,结合本车的信息,计算车辆的纵向指令。
71.从而,在丢失车载单元信号的情况下,可以将传感器感知的自由行驶对象作为本车的前相邻编队车辆和车辆编队的领航车,据此进行车辆的纵向控制,可以在车载单元的信号丢失的情形下,也能提高安全性。
72.其中,自由行驶对象的信息可以包含任何与车辆驾驶相关的信息,例如在一些实施例中,自由行驶对象的信息可以包括例如自由对象位置、自由对象速度、自由对象加速度等。此时,在丢失车载单元的信号时,可以是将所述传感器感知的自由对象位置作为所述前相邻编队车辆的前车位置以及所述车辆编队中的领航车的领航车位置;将传感器感知的所述自由对象速度作为所述前相邻编队车辆的前车车速以及所述领航车的领航车车速,将传感器感知的所述自由对象加速度作为所述前相邻编队车辆的前车加速度以及所述领航车的领航车加速度;然后,基于所述期望间距,本车位置,所述前车位置,本车车速,所述前车车速,所述领航车车速,所述前车加速度,所述领航车加速度,计算车辆的纵向指令。
73.在一个实施例中,本技术的编队车辆的控制方法,还可以包括:在确定有自由行驶对象插入车辆编队之后,将所述传感器感知的自由行驶对象作为所述车辆编队中的领航车,并将所述自由行驶对象的信息发送给所述车辆编队中本车之后的编队车辆,以使得本车之后的编队车辆根据对应的前车以及所述自由行驶对象的信息计算车辆的纵向指令。
74.从而,在由自由行驶对象插入车辆编队的情形下,本车将自由行驶对象作为领航车,并将该领航车的信息发送给车辆编队中的后续车辆,后续车辆将该自由行驶对象作为领航车进行车辆的纵向控制,从而提高车辆编队中的后续车辆的行驶的安全性。举例来说,假设车辆编队从前往后存在车辆c1、c2
……
cn,其中车辆c3检测到有自由行驶对象z插入了本车所在的车辆编队,则车辆c3将该自由行驶对象z作为领航车,并将自由行驶对象z的信息发送给后续的其他编队车辆c4、c5
……
cn。以车辆c8为例,则其是以自由行使z为领航车,结合领航车z以及其前车c7的信息来计算纵向指令。
75.应当理解的是,若车辆编队中插入了多个自由行驶对象,则检测到自由行驶对象的编队车辆会有多个,并且都会将其检测到的自由行驶对象的信息作为领航车的信息发送给车辆编队中的后续其他编队车辆,此时,在允许的情况下,在后的编队车辆可能会同时接收到这多个自由行驶对象的信息作为跟随车的信息,此时,该在后的编队车辆可以将在后
的编队车辆发送的自由行驶对象的信息作为跟随车的信息。结合上述示例,假设车辆c3检测到了自由行驶对象z1的信息,会将该自由行驶对象z1的信息作为领航车的信息发送给后续的各跟随车辆c4、c5
……
cn。假设车辆c6也检测到了自由行驶对象z2的信息,也会将自由行驶对象z2的信息作为领航车的信息发送给后续的各跟随车辆c7、c8
……
cn。此时,以车辆c8为例,其会同时接收到自由行驶对象z1、z2的信息,由于自由行驶对象z2的信息是由车辆c3、车辆c6中在后的车辆c6发送的,或者说与车辆c8更近的车辆c6发送的,因此,车辆c8会将自由行驶对象z2的信息作为领航车的信息。
76.基于如上所述的实施例,以下结合一个具体的应用场景的示例进行详细举例说明。本技术实施例提供的编队车辆的控制方法,可以应用于重卡、公交车、轿车、矿区的矿卡等等各种车型的车辆编队,具体地可以应用于车辆编队中的跟随车,以解决在编队行驶过程中有其他非编队车辆插入时的自动控制的问题,使得编队车辆能够迅速对插入车辆做出有效响应,避免与插入车辆碰撞的同时,也不影响从车辆插入位置起的后续车辆行驶状态。
77.具体地,如上所述,在车辆编队中,有两辆或者两辆以上的车辆以编队的行驶在特定的场景下行驶。在车辆编队中,创建车队的车辆被称为领航车,领航车后边的编队车称为跟随车,其他非编队社会车辆称为潜在车或者自由车。编队插入是指编队在稳定行驶的过程中,有其它非编队车辆插入车辆编队的队列之中。
78.在车辆编队中的各编队车辆的行驶过程中,每个编队车辆的车载单元,获得和记录与本车相关的信息,并将该信息传输给所在的车辆编队中的其他的编队车辆的车载单元,以实现车辆编队中的信息的共享。在一些实施例中,编队车辆的车载单元,可以是将自身车辆的相关信息传输给车辆编队中的所有的编队车辆,以实现信息的共享。在一些实施例中,由于跟随车都是跟随前车行驶,因此,编队车辆的车载单元,也可以是将自身车辆的相关信息,仅传输给在其之后的各个编队车辆,例如可以是仅传输给车辆编队中、行驶在其后方、且与之相邻的一个或多个车辆的车载单元。当然,在一些实施例中,跟随者的车载单元,也可以同时将自身车辆的相关信息传输给领航车,以使得领航车知晓各跟随车的跟随情况,以能够据此调整领航车的驾驶策略。其中,在实际技术应用中,可以结合车载单元的编号,以确定各车载单元的前后顺序,从而,编队车载车辆的车载单元,可以是将自身车辆的相关信息,仅传输给指定编号的车载单元。本技术实施例不对各编队车辆的车载单元之间的通信方式进行限定。
79.在车辆编队的各编队车辆的行驶过程中,车辆编队中的跟随车,通过自身的车载单元获得其他编队车辆通过车载单元发送过来的信息,以维持与其他编队车辆之间的编队行驶状态。同时,该跟随车还通过自身携带的传感器,来感知周围的障碍物信息,以确定是否需要进行避障处理或者是否会有非编队车辆插入编队。
80.在获得传感器感知的障碍物信息时,结合获得的障碍物信息确定感知到的障碍物是否为不属于所在车辆编队的可移动对象,本技术实施例中称为自由行驶对象,也可以称之为自由车,例如不属于本车辆编队的行驶中的车辆,若是自由行驶对象,则基于该自由行驶对象当前的自由对象位置,进一步预测该自由行驶对象下一时刻的位置(本技术实施例中称为预测位置)。
81.在一个实施例中,可以根据卡尔曼滤波器来预测车辆下一时刻的预测位置。基于卡尔曼滤波器的原理,卡尔曼滤波器的线性离散系统的过程模型及测量模型如下:
82.x(k 1)=a(k)x(k) w(k)x(k 1)=a(k)x(k) w(k)
ꢀꢀ
(1)
83.z(k)=c(k)x(k) v(k)z(k)=c(k)x(k) v(k)
ꢀꢀ
(2)
84.e[w(k)w
t
(j)]=q(k)δ(k-j)e[w(k)w
t
(j)]=q(k)δ(k-j)
ꢀꢀ
(3)
[0085]
e[v(k)v
t
(j)]=r(k)δ(k-j)e[v(k)v
t
(j)]=r(k)δ(k-j)
ꢀꢀ
(4)
[0086]
e[w(k)v
t
(j)]=0e[w(k)v
t
(j)]=0
ꢀꢀ
(5)
[0087]
其中,x(k)是待估计量,式(1)一般被称为系统过程模型,指系统中待估计状态随时间变化的规律,具体地,在前一时刻k的状态x(k),则在下一时刻即k 1时刻会变成x(k 1),a(k)为过程矩阵,表示状态变换的关系。w(k)叫做过程噪声,表示x(k)变成x(k 1)过程中的不确定程度。式(2)被称为测量模型,其中,z(k)是通过传感器进行测量得到的测量数据。c(k)为测量矩阵,v(k)为测量噪声。假设过程噪声w(k)和测量噪声v(k)都是零均值、不相关白噪声,并且协方差矩阵已知,分别用q(k)和r(k)表示。当k=j时,δ(k-j)=1,否则δ(k-j)=0。
[0088]
在本技术实施例中,假设该编队车辆自身和自由车在周期t内为匀速,其中周期t至少包含当前时刻到协议时刻的时长,则可以根据运动学公式列出离散状态方程:
[0089][0090]
其中,xk是自由车在当前时刻的位置(即上述自由对象位置),具体可以为自由车k时刻在编队车辆的车身坐标系下的位置,vxk,vyk为自由车的速度(即上述自由对象速度,其中vxk为自由车的横向速度,vxy为自由车的纵向速度),具体可以是自由车k时刻在编队车辆的车身坐标系下的相对速度。从而,可以通过公式(6)基于当前的自由对象位置计算其下一时刻(k 1时刻)的估计值(预测位置)。
[0091]
一个具体示例中,设定卡尔曼滤波器的初值为
[0092][0093][0094]
p是指估计方差。由公式(6)可知,要预测下一时刻的状态需要计算设置了初始值、q和r以后可以通过以下步骤递推得到:
[0095][0096][0097]
k(k)=p(k|k-1)*c
t
(k)*[c
t
(k)*p(k|k-1)*c(k) r(k)]-1
ꢀꢀ
(11)
[0098]
p(k|k-1)=a(k-1)*p(k-1|k-1)*at(k-1) q(k-1)
ꢀꢀ
(12)
[0099]
p(k|k)=[i-k(k)*c(k)]*p(k|k-1)
ꢀꢀ
(13)
[0100]
式中k(k)为卡尔曼增益。
[0101]
同时,在编队车辆的行驶过程中,实时确定和更新自己的车辆插入边界范围,并将获得的自由车的预测位置与自己的车辆插入边界范围进行比对,以确定自由车是否插入了车辆编队。
[0102]
一个实施例中,由于在编队之中,由于跟随车与跟随车的前车(本技术实施例中称为前相邻编队车辆)的轨迹基本是一致的,因此可以通过obu记录下跟随车前车和跟随车之
间的轨迹(本技术实施例中称为车辆行驶轨迹),将该轨迹向与该轨迹方向垂直的两侧分别移动第一距离d1后得到两条边界线,并结合车辆行驶轨迹与这两条轨迹边界线确定。如图3所示,假设当前的编队车辆为m2,其前车为m1,a、b、c为自由车。前车m1与车辆m2相邻的边界线为10,车辆m2与前车m1相邻的边界线为20,则前车m1与车辆m2之间的车辆行驶轨迹为轨迹11。将轨迹11或者前车m1与车辆m2之间的轨迹分别向两侧垂直移动第一距离d1,得到两条轨迹边界线111和112。从而,在位于两条轨迹边界线111和112内且位于边界线10和边界线20之间的部分,即为车辆插入边界范围,本技术实施例中称为第一车辆插入边界范围。当自由车的预测位置位于该车辆插入边界范围时,即认为该自由车插入了编队。其中,该第一距离d1的具体值,可以结合实际技术需要以及控制策略的不同进行设定。其中,在实际技术应用中,可以将轨迹11从全局坐标系转到车辆m2的车身坐标系后,再针对车身坐标系下的轨迹11向两侧拓宽第一距离d1,以减少计算复杂度。
[0103]
在另一个实施例中,可以结合跟随车前车与跟随车之间的区域,以及将该车辆的车身线向远离车身的方向分别移动第二距离获得的两条车身边界线来确定。如图4所示,当前的编队车辆为m2,其前车为m1,a、b、c为自由车。前车m1与车辆m2相邻的边界线为10,车辆m2与前车m1相邻的边界线为20,则前车m1与车辆m2之间的车辆行驶轨迹为轨迹11。车辆m2的左侧的车身线为21,右侧的车身线为22,将其左侧的车身线21向远离车身的方向远离第二距离d2,得到车身边界线210,将其右侧的车身线22向远离车身的方向远离第二距离d2,得到车身边界线220。从而,在位于两条车身边界线210和220内且位于边界线10和边界线20之间的部分,即为车辆插入边界范围,本技术实施例中称为第二车辆插入边界范围。当自由车的预测位置位于该车辆插入边界范围时,即认为该自由车插入了编队。其中,该第一距离d2的具体值,可以结合实际技术需要以及控制策略的不同进行设定。在另一个实施例中,可以结合跟随车前车与跟随车之间的区域,以及将该车辆的中心线向远离车身的方向分别移动第三距离获得的两条车身边界线来确定。如图5所示,当前的编队车辆为m2,其前车为m1,a、b、c为自由车。前车m1与车辆m2相邻的边界线为10,车辆m2与前车m1相邻的边界线为20,前车m1与车辆m2之间的车辆行驶轨迹为轨迹11。车辆m2的中心线为23,将中心线向远离车身的方向分别移动第三距离d3,得到两条得到中心边界线231和232。从而,在位于两条中心边界线231和232内且位于边界线10和边界线20之间的部分,即为车辆插入边界范围,本技术实施例中称为第三车辆插入边界范围。当自由车的预测位置位于该车辆插入边界范围时,即认为该自由车插入了编队。其中,该第三距离d3的具体值,可以结合实际技术需要以及控制策略的不同进行设定。
[0104]
在一些实施例中,第一距离d1和第三距离d3可以相同,也可以不相同。第二距离d2与车身一半宽度的和值,与第一距离d1或者第三距离d3,可以相同也可以不相同。
[0105]
在实际技术应用时,车辆插入边界范围可以同时包括上述第一车辆插入边界范围、第二车辆插入边界范围和第三车辆插入边界范围。在实际进行比对时,可以是同时与这三个范围进行比较,也可以是将这三个范围组合成一个总的边界范围之后,再与该总的边界范围进行比对,本技术实施例不做限定。
[0106]
在确定有自由车插入编队后,即可以采取变距函数(本技术实施例中称为第一变距函数)进行车辆间距的控制。在车辆插入的时候,期望车距l
i0
会在第一时长t1内逐渐增长至l
i1
,这样可以确保控制器计算出一个安全又相对平缓的刹车。然后期望车距会在第二时
长t2时间内逐渐减少至l
i0
然后保持,编队恢复稳定。本技术实施例中,如图2所示,采用连续二阶可导的函数来表示期望车距,期望车距用公式表示为li=a*t2 b*t c。则可以根据li(0)=l
i0
;li(t1)=l
i1
;li(t1 t2)=l
i0
;得出二次函数的系数a、b、c,并根据该公式以及自由车插入的时间得出期望车距li的值。
[0107]
在计算得到期望间距后,可以基于期望间距计算出编队车辆的纵向指令其中εi为第i辆编队车辆和前车的车距误差,且εi=x
i-x
i-1
li,xi为本车位置,x
i-1
为前车位置,本技术实施例中将传感器感知的自由行驶对象的自由对象位置作为前车位置和领航车位置,可以理解的是,实际技术应用中,可以是将传感器感知的自由对象位置转换到车辆的车身坐标系之后作为前车位置,x
i-x
i-1
可以根据感知到的两车的距离获得,li指上述确定的期望车距。vi为本车车速,v
l
为领车车速,为领车加速度,v
i-1
为前车车速,为前车加速度,本技术实施例中将传感器感知的自由行驶对象的自由对象速度和自由对象加速度作为前车车速和前车加速度,可以理解的是,实际技术应用中,可以是将传感器感知的自由对象速度和自由对象加速度转换到车辆的车身坐标系之后,再作为前车车速和前车加速度。本车车速可以从底盘获得,其他的编队车辆相关的信息,可以通过obu得到。计算纵向指令的函数f()可以是车载单元上设定的用以计算纵向指令的函数,本技术实施例不对函数f()做具体的限定。
[0108]
在计算得到纵向指令之后,从而可以基于计算获得的纵向指令来控制本车的工作状态。
[0109]
在车辆插入编队之后,还进一步监测该车辆是否有离开车辆编队。在判断车辆是否离开车辆编队时,可以采用以下方式进行:
[0110]
获取传感器感知的自由行驶对象与本车的第一距离,以及通过车载单元获得的与前相邻编队车辆之间的第二距离;
[0111]
在所述第一距离与第二距离的差值在第一阈值范围内,且所述第一距离与上一时刻传感器感知的自由行驶对象与本车的第三距离之间的差值大于第二阈值时,确定所述自由行驶对象离开车辆编队。其中,第一阈值和第二阈值的设定,可以结合实际技术需要进行设定。
[0112]
在插入编队的车辆离开编队后,两个车之间的间距会突然增大。为了可以让车辆不会猛然加速造成不好的驾驶体验,采取变距函数(本技术实施例中称为第二变距函数)进行车辆间距的控制。若在插入车辆离开时两车的间距为d0,则设置期望车距为d0,期望车距在时间第三时长t内逐渐减速至l
i0
然后保持,这样可以确保控制器计算出一个相对平缓的油门。本技术实施例中,在[0,t]时间内采用连续二阶可导的函数来表示期望车距,如图7所示。设期望车距li=a*t2 b*t c。则可以根据li(0)=d0:li(t)=l
io
;dli(t)=0:得出二次函数的系数a、b、c,其中dli(t)表示函数li的一阶导数。根据表达式以及离开时间可以得出期望车距li的值。
[0113]
在获得期望间距之后,即可基于期望距离计算编队车辆的纵向指令并基于计算出来的纵向指令来控制本车的工作状态。此时,可以直接从obu中本车以及前车的相关信息。
[0114]
其中,在本技术实施例中,当前车或者本车的obu信息丢失时,也可以采用如上所
述的方式,基于传感器感知的行驶对象的信息作为出入量来计算纵向指令,例如将传感器感知的自由行驶对象的自由对象位置作为前相邻编队车辆的位置,将传感器感知的自由行驶对象的自由对象速度和自由对象加速度作为前相邻编队车辆的车速和加速度。从而基于该方案,增加了编队系统的鲁棒性。
[0115]
应该理解的是,虽然上述实施例中提及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例中提及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0116]
在一个实施例中,如图8所示,提供了一种编队车辆的控制装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为编队车辆中的一部分,该装置具体包括:
[0117]
障碍物信息获取模块81,用于获取传感器感知的障碍物信息;
[0118]
插入确定模块82,用于根据所述障碍物信息,确定是否有自由行驶对象位于本车的车辆插入边界范围内,并在有自由行驶对象位于所述车辆插入边界范围内时,确定有自由行驶对象插入车辆编队,所述车辆插入边界范围由前相邻编队车辆与本车之间的编队车辆间区域、以及与本车行驶方向相平行的两条边界线确定,所述前相邻编队车辆为车辆编队中,与本车相邻且行驶在本车前面的编队车辆。
[0119]
一个实施例中,所述装置还包括:插入控制模块,用于对车辆行驶状态进行自动控制,以使得本车与所述自由行驶对象的间距在第一时长内逐渐增长至第一目标间距,并在所述第一时长之后的第二时长内逐渐减少至第二目标车距。
[0120]
一个实施例中,所述障碍物信息包括:自由行驶对象的自由对象位置。插入确定模块82,在所述自由对象位置位于所述车辆插入边界范围内时,确定有自由行驶对象位于本车的车辆插入边界范围内。
[0121]
一个实施例中,所述障碍物信息包括:所述自由行驶对象的自由对象位置和自由对象速度。插入确定模块82,包括:
[0122]
位置预测模块,用于根据所述自由对象位置和所述自由对象速度,预测所述自由行驶对象的下一时刻的预测位置;
[0123]
预测插入模块,用于在所述预测位置位于本车的车辆插入边界范围内时,确定所述自由行驶对象位于本车的车辆插入边界范围内。
[0124]
一个实施例中,位置预测模块以所述自由行驶对象自当前时刻到下一时刻为匀速行驶为基础,根据所述自由对象位置和所述自由对象速度,计算获得所述自由行驶对象的下一时刻的预测位置。
[0125]
一个实施例中,位置预测模块根据所述自由行驶对象的自由对象位置、自由对象速度、自由对象加速度、航向角以及角速度,预测获得所述自由行驶对象的下一时刻的预测位置;所述障碍物信息还包括所述自由对象加速度、航向角以及角速度。
[0126]
一个实施例中,所述两条边界线包括:以所述前相邻编队车辆的车辆行驶轨迹为轴、向与车辆行驶轨迹方向垂直的两侧分别移动第一距离得到的两条轨迹边界线。此时,所
述车辆插入边界范围包括:由位于两条所述轨迹边界线的范围内,且位于所述编队车辆间区域组成的第一车辆插入边界范围。
[0127]
一个实施例中,所述两条边界线包括:将本车的两侧车身所在的车身线分别向远离车身的方向移动第二距离获得的两条车身边界线。此时,所述车辆插入边界范围包括:由位于两条所述车身边界线的范围内,且位于所述编队车辆间区域组成的第二车辆插入边界范围。
[0128]
一个实施例中,所述两条边界线包括:以本车车身沿车辆前进方向的本车中心线为轴,向与本车中心线垂直的两侧分别移动第三距离得到的两条中心边界线。此时,所述车辆插入边界范围包括:由位于两条中心边界线范围内,且位于所述编队车辆间区域组成的第三车辆插入边界范围。
[0129]
一个实施例中,插入控制模块83包括:
[0130]
第一期望间距确定模块,用于通过第一变距函数确定本车的期望间距,所述期望间距在第一时长内逐渐增长至第一目标间距,并在所述第一时长之后的第二时长内逐渐减少至第二目标车距;
[0131]
纵向指令计算模块,用于基于所述期望间距计算车辆的纵向指令;
[0132]
控制模块,用于通过所述纵向指令控制本车的工作状态。
[0133]
一个实施例中,所述障碍物信息包括:所述自由行驶对象的自由对象位置、自由对象速度以及自由对象加速度。所述纵向指令计算模块,将传感器感知的所述自由对象位置作为所述前相邻编队车辆的前车位置以及所述车辆编队中的领航车的领航车位置;将传感器感知的所述自由对象速度作为所述前相邻编队车辆的前车车速以及所述领航车的领航车车速,将传感器感知的所述自由对象加速度作为所述前相邻编队车辆的前车加速度以及所述领航车的领航车加速度,基于所述期望间距,本车位置,所述前车位置,本车车速,所述前车车速,所述领航车车速,所述前车加速度,所述领航车加速度,计算车辆的纵向指令。
[0134]
一个实施例中,还包括离开控制模块,用于在确定所述自由行驶对象离开车辆编队时,对车辆行驶状态进行自动控制,以使得本车与所述前相邻编队车辆的间距在第三时长内逐渐减少至第三目标车距。
[0135]
一个实施例中,离开控制模块包括:
[0136]
距离确定模块,用于获取传感器感知的自由行驶对象与本车的第一距离,以及通过车载单元获得的与前相邻编队车辆之间的第二距离;
[0137]
离开判定模块,用于在所述第一距离与第二距离的差值在第一阈值范围内,且所述第一距离与上一时刻传感器感知的自由行驶对象与本车的第三距离之间的差值大于第二阈值时,确定所述自由行驶对象离开车辆编队。
[0138]
一个实施例中,离开控制模块通过第二变距函数确定本车的期望间距,所述期望间距在第三时长内逐渐减少至第三目标车距;基于所述期望间距计算车辆的纵向指令;通过所述纵向指令控制本车的工作状态。
[0139]
一个实施例中,纵向指令计算模块,还在在丢失车载单元的信号时,将所述传感器感知的自由行驶对象作为所述车辆编队中的领航车以及本车的前相邻编队车辆;将所述自由行驶对象的信息作为领航车的信息以及前相邻编队车辆的信息,结合本车的信息,计算车辆的纵向指令。
[0140]
具体地,在一些实施例中,纵向指令计算模块,在丢失车载单元的信号时,将所述传感器感知的自由对象位置作为所述前相邻编队车辆的前车位置以及所述车辆编队中的领航车的领航车位置;将传感器感知的所述自由对象速度作为所述前相邻编队车辆的前车车速以及所述领航车的领航车车速,将传感器感知的所述自由对象加速度作为所述前相邻编队车辆的前车加速度以及所述领航车的领航车加速度;并基于所述期望间距,本车位置,所述前车位置,本车车速,所述前车车速,所述领航车车速,所述前车加速度,所述领航车加速度,计算车辆的纵向指令。
[0141]
一个实施例中,插入确定模块82,还在确定有自由行驶对象插入车辆编队之后,还将所述传感器感知的自由行驶对象作为所述车辆编队中的领航车,并将所述自由行驶对象的信息发送给所述车辆编队中本车之后的编队车辆,以使得所述本车之后的编队车辆根据对应的前车以及所述自由行驶对象的信息计算车辆的纵向指令。
[0142]
关于编队车辆的控制装置的具体限定可以参见上文中对于编队车辆的控制方法的限定,在此不再赘述。上述编队车辆的控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件行驶内嵌于或独立于计算机设备中的处理器中,也可以以软件行驶存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0143]
在一个实施例中,提供了一种编队车辆控制设备,该编队车辆控制设备的内部结构图可以如图9所示。该设备包括通过系统总线连接的处理器、存储器和网络接口,还包括车载单元obu(图中未示出)和传感器(图中未示出)。其中,车载单元获得车辆编队中的编队车辆传输的信息,所述传感器感知车辆周围的障碍物信息,处理器用于提供计算和控制能力,存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该设备的网络接口用于与其他编队车辆的车载单元或者其他的外部设备通过网络连接通信。该计算机程序被处理器执行时以实现一种编队车辆的控制方法。
[0144]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0145]
在一个实施例中,还提供了一种编队车辆控制设备,包括车载单元,传感器,存储器和处理器,所述车载单元获得车辆编队中的编队车辆传输的信息,所述传感器感知车辆周围的障碍物信息,所述存储器存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0146]
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0147]
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
[0148]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种行驶,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0149]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0150]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。