无人车转向灯控制方法、装置、无人车及存储介质与流程

文档序号:27831200发布日期:2021-12-07 22:19阅读:100来源:国知局
无人车转向灯控制方法、装置、无人车及存储介质与流程

1.本发明实施例涉及车辆控制领域,尤其涉及一种无人车转向灯控制方法、装置、无人车及存储介质。


背景技术:

2.现有技术中无人车的转向灯由其底盘接收的控制指令控制,该控制指令基于无人车的视觉系统采集的当前帧的环境图像生成,即该控制指令是基于当下的环境图像生成的,因此现有无人车的转向灯的开启较晚。而转向灯开启较晚容易导致后方车辆无法及时做出正确的行驶策略,进而导致交通事故的发生。
3.综上,在实现本发明的过程中,发明人发现现有技术至少存在以下技术问题:由于当前帧的环境图像仅包含无人车当前所在坐标的环境信息,因此基于该当前帧的环境图像确定的无人车的转向方向具有一定的局限性,准确性较低。


技术实现要素:

4.本发明实施例提供了一种无人车转向灯控制方法、装置、无人车及存储介质,解决了现有技术确定的无人车转向方向的准确性较低的问题。
5.第一方面,本发明实施例提供了一种无人车转向灯控制方法,包括:
6.获取当前局部路径,根据所述当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径;
7.根据所述当前局部路径的走势和所述当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿所述当前局部路径行驶。
8.第二方面,本发明实施例还提供了一种无人车转向灯控制装置,包括:
9.获取模块,用于获取当前局部路径,根据所述当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径;
10.转向模块,用于根据所述当前局部路径的走势和所述当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿所述当前局部路径行驶。
11.第三方面,本发明实施例还提供了一种无人车,所述无人车包括:
12.车体;
13.转向灯,设于车体上,用于输出转向信号;
14.行驶机构,设于车体上,用于带动车体行驶;
15.控制器,用于获取当前局部路径,根据所述当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径;根据所述当前局部路径的走势和所述当前全局路径的曲率变化确定无人车的转向方向,根据该转向方向开启无人车的相应转向灯,以及控制所述行驶机构带动所述车体沿所述当前局部路径行驶。
16.第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机控制器执行时用于执行如任意实施例所述的无人车转向灯控制方法。
17.本发明实施例提供的技术方案,包括:获取当前局部路径,根据当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径;根据当前局部路径的走势和当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿当前局部路径行驶。由于当前全局路径和局部路径不仅包含无人车当前的坐标信息,还包含无人车在未来一段时间内的坐标位置信息,因此结合当前全局路径的曲率变化和当前局部路径的走势,可以提前准确地确定出无人车的转向方向。
附图说明
18.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本发明实施例一提供的无人车转向灯控制方法的流程图;
20.图2是本发明实施例一提供的全局路径与局部路径的示意图;
21.图3是本发明实施例一提供的初始坐标系与目标坐标系示意图;
22.图4是本发明实施例一提供的无人车转向灯控制方法的流程图;
23.图5是本发明实施例二提供的无人车转向灯控制装置的结构框图;
24.图6是本发明实施例三提供的无人车的结构框图。
具体实施方式
25.为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.实施例一
27.图1是本发明实施例一提供的无人车转向灯控制方法的流程图。本实施例的技术方案适用于根据当前局部路径的走势和当前全局路径的曲率变化提前确定无人车在当前局部路径上的转向方向的情况。该方法可以由本发明实施例提供的无人车转向灯控制装置来执行,该装置可以采用软件和/或硬件的方式实现,并配置在无人车的控制器中应用。如图1所示,该方法具体包括如下步骤:
28.s101、获取当前局部路径,根据当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径。
29.在路况较好时,无人车行驶过程中仅需规划全局路径11(参见图2沿道路中心线的虚线路径),并沿该全局路径行驶即可;在路况较差时,比如道路上有障碍物时,无人车在规划出全局路径的同时,还会实时规划局部路径21(参见图2偏离道路中心线的实线路径),并沿实时规划的局部路径行驶,以使无人车安全地绕过道路上的障碍物。可以理解的是,对于
每组障碍物对应的局部路径,其末端均位于全局路径上,从而使无人车沿局部路径绕行经过障碍物之后,重新汇入全局路径,并沿全局路径继续行驶。其中,每组障碍物包括一个障碍物,或者多个相连或紧挨的障碍物。
30.其中,当前全局路径所在的坐标系为初始坐标系,比如笛卡尔坐标系。当前局部路径所在的坐标系为目标坐标系,该目标坐标系的纵轴沿道路中心线分布,该目标坐标系的横轴垂直于道路中心线。本实施例中,目标坐标系优选为frenet坐标系,即本实施例优选基于frenet坐标系进行局部路径的优化,参见图2所示。
31.在检测到无人车当前位于局部路径上时,以无人车当前位置为当前局部路径的起始位置(参见图2中的f0),并根据该起始位置确定当前局部路径对应的当前全局路径。该当前全局路径在初始坐标系中对应的里程数与当前局部路径在目标坐标系中的纵向坐标值相同;该当前全局路径的终点在初始坐标系中对应的里程数大于或等于当前局部路径的终点在目标坐标系中的纵向坐标值。本实施例中,该当前全局路径的终点在初始坐标系中对应的里程数优选大于当前局部路径的终点在目标坐标系中的纵向坐标值。
32.其中,当前局部路径的终点的确定方法包括:确定当前局部路径上的当前姿态点在纵轴上的坐标值是否大于或等于预设局部阈值,若是,则将当前姿态点的前一姿态点作为当前局部路径的终点。
33.其中,预设局部阈值为当前姿态点在纵轴坐标值与预设间隔阈值之和,而预设间隔阈值为预设观测长度与当前局部路径在纵轴上的投影总长度中的最小值,预设观测长度为实际观测长度与最小观测长度中的最大值。其中,实际观测长度为车辆在预设观测时间内的行驶路程在纵坐标轴上的分量,最小观测长度为最小观测路程在纵轴上的分量。
34.在一些实施例中,基于frenet坐标系生成的局部路径包括n个离散的姿态点,可表示为:f={f
i
(s
i
,l
i
)|i=0,1,...,n-1},其中,f0(s0,l0)为当前局部路径起始位置的姿态点,通过以下公式确定当前局部路径的终点,即f
n-1
(s
n-1
,l
n-1
)的纵坐标值:
35.max_s=min(max(v
·
t,min_d),d)+f0.s036.其中,v为无人车的在纵轴上的初始速度,t为预设观测时间,min_d为最小观测长度,d为当前局部路径在纵轴上的投影长度,f0.s0为当前局部路径的起始姿态点的横坐标。
37.其中,每个姿态点的位置坐标可以在初始坐标系与目标坐标系中间转换。如图3所示,笛卡尔坐标系为xmy,frenet坐标系为sol,在frenet坐标系中,s轴沿道路中心线方向,l轴沿垂直于道路中心线方向。道路中心线由一系列离散点组成,笛卡尔坐标系下点p的坐标可表示为p(x
p
,y
p
)。在道路中心线上找到距离点p距离最近的两个点,分别是点s和点e。如果点s在frenet坐标系中的坐标为(s
s
,0),点e在frenet坐标系下的坐标为(s
e
,0),那么根据点p在初始坐标系(笛卡尔坐标系)中的坐标值,确定点p在目标坐标系(frenet坐标系)中的坐标值的步骤如下:
38.点s指向点p的向量可表示为:
[0039][0040]
点e指向点p的向量可表示为:
[0041][0042]
通过以下公式计算向量与向量之间的转换系数;
[0043][0044][0045]
因此s
p
可表示为:
[0046][0047]
l
p
可表示为:
[0048][0049]
可以理解的是,在已知姿态点在目标坐标系中的坐标值也可以得到该已知姿态点在初始坐标系中的坐标值。
[0050]
s102、根据当前局部路径的走势和当前全局路径的曲率变化确定无人车的转向方向,根据该转向方向开启无人车的相应转向灯,以及在该相应转向灯开启后控制无人车沿当前路径行驶。
[0051]
为了提高无人车转向灯控制的准确性,本实施例以当前全局路径的曲率变化为主,以当前局部路径的走势为辅确定无人车的转向方向。参见图4所示,该步骤(s102)包括以下步骤:
[0052]
s1021、在根据当前全局路径的曲率变化确定当前全局路径对应有第一转向方向时,根据第一转向方向控制无人车在开启相应转向灯后沿当前局部路径行驶。
[0053]
如果当前全局路径不是直行路径段,而是对应有第一转向方向的转弯路径段,则无需检测当前局部路径是否对应有第二转向方向,直接根据该第一转向方向控制无人车开启相应转向灯,并沿当前局部路径行驶。
[0054]
其中,当前全局路径的第一转向方向可根据当前全局路径的曲率变化确定。优选地,在初始坐标系中,根据当前全局路径中的每个非起始姿态点对应的朝向角改变量确定无人车的转向评价角度;确定该转向评价角度对应的转向阈值区间,并将该转向阈值区间对应的行驶方向作为第一转向方向。
[0055]
其中,在确定无人车转向评价角度时,计算当前全局路径上的每个非起始姿态点带来的朝向角改变量;对所有非起始姿态点对应的朝向角改变量分别进行归一化;计算所有归一化后的朝向角改变量的累计和,并计算该累计和的均值,将该均值作为无人车的转向评价角度。
[0056]
具体地,在初始坐标系中,当前全局路径包括m个姿态点,可表示为r={r
i
(x
i
,y
i

i
,s
i
)|i=0,1,...,m-1},其中,(x
i
,y
i
)表示当前目标路径上的第i个姿态点的坐标位置,θ
i
表示当前目标路径的第i个姿态点的朝向角,s
i
表示当前目标路径上的第i个姿态点与第一个姿态点之间的里程。其中,姿态点的朝向角为当前目标路径上该姿态点处的切线与预设方向之间的夹角。实际使用时,该预设方向可选为x轴。通过以下公式计算当前全局路径上的每个非起始姿态点对应的朝向角改变量的累计和:
[0057]
a_dθ=a_dθ+normalize(r
i

i-r
i-1

i-1
)
[0058]
其中,(r
i

i-r
i-1

i-1
)表示当前非起始姿态点相对于前一姿态点的朝向角改变
量,函数normalize(r
i

i-r
i-1

i-1
)用于将该朝向角改变量归一化至[-π,π),通过以下公式计算平均朝向角改变量:
[0059]
m_dθ=a_dθ/n
[0060]
其中,n为当前局部路径所包含的姿态点的总数。
[0061]
如果m_dθ>δθ成立,则当前全局路径对应的转向方向为左,即第一转向方向为左,如果m_dθ<-δθ成立,则当前全局路径对应的转向方向为右,即第一转向方向为右。其中,大于δθ为左转向阈值区间,小于-δθ为转向阈值区间。如果转向评价角度没有落入左转向阈值区间或右转向阈值区间,则判定无人车无需转向,直行即可。其中,左转向阈值区间和右转向阈值区间均为经验阈值,实际使用时可以根据具体情况进行设定。
[0062]
s1022、在根据当前全局路径的曲率变化确定当前全局路径为直行路径段时,根据当前局部路径的走势确定当前局部路径对应的第二转向方向,以及根据第二转向方向控制无人车在开启相应转向灯后沿当前局部路径行驶。
[0063]
在初始坐标系中,根据当前全局路径的曲率变化确定当前全局路径是否为直行路径段;如果是,则在目标坐标系中,根据当前局部路径的走势确定当前局部路径对应的第二转向方向,将该第二转向方向作为无人车的转向方向,并控制无人车在开启相应转向灯后沿当前局部路径行驶。
[0064]
其中,根据当前局部路径的走势确定当前局部路径对应的第二转向方向的方法包括:在目标坐标系中确定当前局部路径的纵向左转累计长度和纵向右转累计长度;在纵向左转累计长度或纵向右转累计长度符合对应的预设局部转向条件时,将该预设局部转向条件对应的转向方向作为无人车在当前局部路径上的第二转向方向。
[0065]
其中,在确定纵向左转累计长度和纵向右转累计长度时:检测当前局部路径上的当前姿态点相较于该当前局部路径上的起始姿态点在目标坐标系中的横向改变量是否大于横向忽略阈值;如果是,则计算该当前姿态点相较于对应的前一姿态点的纵向改变量,以作为当前纵向改变量;在当前姿态点的横向改变量为正时,计算纵向左转累计长度与当前纵向改变量之和,以更新纵向左转累计长度;在当前姿态点的横向改变量为负时,计算纵向右转累计长度与当前纵向改变量之和,以更新纵向右转累计长度。
[0066]
在一个实施例中,在当前局部路径上的当前姿态点满足|f
i
.l
i-f0.l0|≥δl时,通过公式ds=f
i
.s
i-f
i-1
.s
i-1
计算当前姿态点相对于前一姿态点在纵向上的距离,其中,f
i
.s
i
为当前姿态点在纵向上的坐标值,δl为横向抖动忽略阈值,f
i-1
.s
i-1
为当前姿态点对应的前一姿态点在纵向上的坐标值。如果f
i
.l
i-f0.l0>0.0成立,则表示当前姿态点在横向上的分量相对于起始姿态点在横向上的分量有正向变化,因此执行left_as=left_as+ds,否则执行right_as=right_as+ds,其中,left_as为纵向左转累计长度,right_as为纵向右转累计长度。
[0067]
其中,基于纵向左转累计长度或纵向右转累计长度确定无人车的第二转向方向的方法包括:在检测到纵向左转累计长度大于纵向右转累计长度,同时大于纵向忽略阈值时,判定无人车在当前局部路径上的第二转向方向为左;在检测到纵向右转累计长度大于纵向左转累计长度,同时大于纵向忽略阈值时,判定无人车在当前局部路径上的第二转向方向为右。
[0068]
在一个实施例中,如果left_as>right_as&&left_as>δs成立,则当前局部路径对
应的第一转向方向为左,如果left_as<right_as&&right_as>δs成立,则当前局部路径对应的第二转向方向为右,否则,当前局部路径段为直行路径段。其中,δs为纵向忽略阈值。
[0069]
可以理解的是,如果纵向左转累计长度没有同时满足大于纵向右转累计长度和忽略阈值,以及纵向左转累计长度没有同时满足大于纵向左转累计长度和忽略阈值,则当前局部路径为直行路径,即无人车在当前局部路径上直行。
[0070]
其中,在目标坐标系中检测当前局部路径上的当前姿态点相较于该当前局部路径上的起始姿态点的横向改变量的前提是,当前姿态点在纵轴上的坐标值小于前述预设局部阈值。如果当前姿态点的纵向坐标值大于或等于前述预设局部阈值,则以当前姿态点为起始位置更新当前局部路径。可以理解的是,在更新当前局部路径的同时,须同时更新当前全局路径,以使更新后的当前全局路径与更新后的当前局部路径对应。
[0071]
本发明实施例提供的技术方案,包括:获取当前局部路径,根据当前局部路径的起始位置确定当前局部路径对应的当前全局路径;根据当前局部路径的走势和当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿当前局部路径行驶。由于当前全局路径和局部路径不仅包含无人车当前的坐标信息,还包含无人车在未来一段时间内的坐标位置信息,因此结合当前全局路径的曲率变化和当前局部路径的走势,可以提前准确地确定出无人车的转向方向。
[0072]
实施例二
[0073]
图5是本发明实施例提供的无人车转向灯控制装置的结构框图。该装置用于执行上述任意实施例所提供的无人车转向灯控制方法,该装置可选为软件或硬件实现。该装置包括:
[0074]
获取模块21,用于获取当前局部路径,根据当前局部路径的起始位置确定当前局部路径对应的当前全局路径;
[0075]
转向模块22,用于根据当前局部路径的走势和当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿当前局部路径行驶。
[0076]
可选地,在根据当前全局路径的曲率变化确定当前全局路径对应有第一转向方向时,根据第一转向方向控制无人车在开启相应转向灯后沿当前局部路径行驶;在根据当前全局路径的曲率变化确定当前全局路径为直行路径段时,根据当前局部路径的走势确定当前局部路径对应的第二转向方向,以及根据第二转向方向控制无人车在开启相应转向灯后沿当前局部路径行驶。
[0077]
可选地,转向模块具体用于:在目标坐标系中确定所述当前局部路径的纵向左转累计长度和纵向右转累计长度;在所述纵向左转累计长度或纵向右转累计长度符合对应的预设局部转向条件时,将该预设局部转向条件对应的转向方向作为无人车在当前局部路径上的第二转向方向。
[0078]
可选地,转向模块具体用于:在检测到当前局部路径上的当前姿态点相较于该当前局部路径上的起始姿态点在所述目标坐标系中的横向改变量大于横向忽略阈值时,计算该当前姿态点相较于对应的前一姿态点的纵向改变量,以作为当前纵向改变量;在当前姿态点的横向改变量为正时,计算纵向左转累计长度与当前纵向改变量之和,以更新所述纵向左转累计长度;在当前姿态点的横向改变量为负时,计算纵向右转累计长度与当前纵向
改变量之和,以更新所述纵向右转累计长度。
[0079]
可选地,转向模块在计算当前纵向改变量之前,还用于确定当前姿态点的纵向坐标值是否小于预设局部阈值,预设局部阈值为当前姿态点的纵向坐标值与预设间隔阈值之和,其中,预设间隔阈值为当前局部路径在纵轴上的预设观测长度与当前局部路径在纵轴上的投影总长度中的最小值,预设观测长度为实际观测长度与最小观测长度中的最大值;若是,则在目标坐标系中检测当前局部路径上的当前姿态点相较于该当前局部路径上的起始姿态点的横向改变量是否大于横向忽略阈值;若否,则以当前姿态点为起始位置更新当前局部路径。
[0080]
可选地,转向模块具体用于在检测到所述纵向左转累计长度大于所述纵向右转累计长度,同时大于纵向忽略阈值时,判定无人车在所述当前局部路径上的第二转向方向为左;在检测到所述纵向右转累计长度大于所述纵向左转累计长度,同时大于纵向忽略阈值时,判定无人车在所述当前局部路径上的第二转向方向为右。
[0081]
可选地,转向模块用于在初始坐标系中,根据当前全局路径中的每个非起始姿态点对应的朝向角改变量确定无人车的转向评价角度;确定所述转向评价角度对应的转向阈值区间,并将该转向阈值区间对应的行驶方向作为第一转向方向。
[0082]
可选地,转向模块用于确定当前全局路径上的每个非起始姿态点带来的朝向角改变量;对所有非起始姿态点对应的朝向角改变量分别进行归一化;计算所有归一化后的朝向角改变量的均值,以确定所述无人车的转向评价角度。
[0083]
本发明实施例提供的无人车转向灯控制装置的技术方案,通过获取模块获取当前局部路径,根据当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径;通过转向模块根据当前局部路径的走势和当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿当前局部路径行驶。由于当前全局路径和局部路径不仅包含无人车当前的坐标信息,还包含无人车在未来一段时间内的坐标位置信息,因此结合当前全局路径的曲率变化和当前局部路径的走势,可以提前准确地确定出无人车的转向方向。
[0084]
本发明实施例所提供的无人车转向灯控制装置可执行本发明任意实施例所提供的无人车转向灯控制方法,具备执行方法相应的功能模块和有益效果。
[0085]
实施例四
[0086]
图6为本发明实施例四提供的无人车的结构示意图,如图6所示,该无人车包括车体、设于车体上的转向灯31、行驶机构32和控制器33;转向灯用于根据输出转向信号;行驶机构32用于带动车体行驶,控制器33用于获取当前局部路径,根据当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径;根据当前局部路径的走势和当前全局路径的曲率变化确定无人车的转向方向,根据该转向方向开启无人车的相应转向灯31,以及在该相应转向灯31开启后控制无人车沿当前局部路径行驶。
[0087]
在路况较好时,无人车行驶过程中,其控制器仅需规划全局路径11(参见图2沿道路中心线的虚线路径),并沿该全局路径行驶即可;在路况较差时,比如道路上有障碍物时,控制器在规划出全局路径的同时,还会实时规划局部路径21(参见图2偏离道路中心线的实线路径),并控制无人车沿实时规划的局部路径行驶,以使无人车安全地绕过道路上的障碍物。可以理解的是,对于每组障碍物对应的局部路径,其末端均位于全局路径上,从而使无
人车沿局部路径绕行经过障碍物之后,重新汇入全局路径,并沿全局路径继续行驶。其中,每组障碍物包括一个障碍物,或者多个相连或紧挨的障碍物。
[0088]
其中,当前全局路径所在的坐标系为初始坐标系,比如笛卡尔坐标系。当前局部路径所在的坐标系为目标坐标系,该目标坐标系的纵轴沿道路中心线分布,该目标坐标系的横轴垂直于道路中心线。本实施例中,目标坐标系优选为frenet坐标系,即本实施例优选基于frenet坐标系进行局部路径的优化。
[0089]
控制器在检测到无人车当前位于局部路径上时,以无人车当前位置为当前局部路径的起始位置(参见图2中的f0),并根据该起始位置确定当前局部路径对应的当前全局路径。该当前全局路径在初始坐标系中对应的里程数与当前局部路径在目标坐标系中的纵向坐标值相同;该当前全局路径的终点在初始坐标系中对应的里程数大于或等于当前局部路径的终点在目标坐标系中的纵向坐标值。本实施例中,该当前全局路径的终点在初始坐标系中对应的里程数优选大于当前局部路径的终点在目标坐标系中的纵向坐标值。
[0090]
其中,控制器在确定当前局部路径的终点时,先确定当前局部路径上的当前姿态点在纵轴上的坐标值是否大于或等于预设局部阈值,若是,则将当前姿态点的前一姿态点作为当前局部路径的终点。
[0091]
其中,预设局部阈值为当前姿态点在纵轴坐标值与预设间隔阈值之和,而预设间隔阈值为预设观测长度与当前局部路径在纵轴上的投影总长度中的最小值,预设观测长度为实际观测长度与最小观测长度中的最大值。其中,实际观测长度为车辆在预设观测时间内的行驶路程在纵坐标轴上的分量,最小观测长度为最小观测路程在纵轴上的分量。
[0092]
在一些实施例中,控制器基于frenet坐标系生成的局部路径包括n个离散的姿态点,可表示为:f={f
i
(s
i
,l
i
)|i=0,1,...,n-1},其中,f0(s0,l0)为当前局部路径起始位置的姿态点,通过以下公式确定当前局部路径的终点,即f
n-1
(s
n-1
,l
n-1
)的纵坐标值:
[0093]
max_s=min(max(v
·
t,min_d),d)+f0.s0[0094]
其中,v为无人车的在纵轴上的初始速度,t为预设观测时间,min_d为最小观测长度,d为当前局部路径在纵轴上的投影长度,f0.s0为当前局部路径的起始姿态点的横坐标。
[0095]
为了提高无人车转向灯控制的准确性,控制器以当前全局路径的曲率变化为主,以当前局部路径的走势为辅确定无人车的转向方向。
[0096]
一方面,根据当前全局路径的曲率变化确定当前全局路径对应有第一转向方向,根据第一转向方向控制无人车在开启相应转向灯后沿当前局部路径行驶。
[0097]
如果当前全局路径不是直行路径段,而是对应有第一转向方向的转弯路径段,则无需检测当前局部路径是否对应有第二转向方向,直接根据该第一转向方向控制无人车开启相应转向灯,并沿当前局部路径行驶。
[0098]
其中,当前全局路径的第一转向方向可根据当前全局路径的曲率变化确定。优选地,在初始坐标系中,根据当前全局路径中的每个非起始姿态点对应的朝向角改变量确定无人车的转向评价角度;确定该转向评价角度对应的转向阈值区间,并将该转向阈值区间对应的行驶方向作为第一转向方向。
[0099]
其中,在确定无人车转向评价角度时,计算当前全局路径上的每个非起始姿态点带来的朝向角改变量;对所有非起始姿态点对应的朝向角改变量分别进行归一化;计算所有归一化后的朝向角改变量的累计和,并计算该累计和的均值,将该均值作为无人车的转
向评价角度。
[0100]
具体地,在初始坐标系中,当前全局路径包括m个姿态点,可表示为r={r
i
(x
i
,y
i

i
,s
i
)|i=0,1,...,m-1},其中,(x
i
,y
i
)表示当前目标路径上的第i个姿态点的坐标位置,θ
i
表示当前目标路径的第i个姿态点的朝向角,s
i
表示当前目标路径上的第i个姿态点与第一个姿态点之间的里程。其中,姿态点的朝向角为当前目标路径上该姿态点处的切线与预设方向之间的夹角。实际使用时,该预设方向可选为x轴。通过以下公式计算当前全局路径上的每个非起始姿态点对应的朝向角改变量的累计和:
[0101]
a_dθ=a_dθ+normalize(r
i

i-r
i-1

i-1
)
[0102]
其中,(r
i

i-r
i-1

i-1
)表示当前非起始姿态点相对于前一姿态点的朝向角改变量,函数normalize(r
i

i-r
i-1

i-1
)用于将该朝向角改变量归一化至[-π,π),通过以下公式计算平均朝向角改变量:
[0103]
m_dθ=a_dθ/n
[0104]
其中,n为当前局部路径所包含的姿态点的总数。
[0105]
如果m_dθ>δθ成立,则当前全局路径对应的转向方向为左,即第一转向方向为左,如果m_dθ<-δθ成立,则当前全局路径对应的转向方向为右,即第一转向方向为右。其中,大于δθ为左转向阈值区间,小于-δθ为转向阈值区间。如果转向评价角度没有落入左转向阈值区间或右转向阈值区间则判定无人车无需转向,直行即可。其中,左转向阈值区间和右转向阈值区间均为经验阈值,实际使用时可以根据具体情况进行设定。
[0106]
另一方面,在初始坐标系中,在根据当前全局路径的曲率变化确定当前全局路径为直行路径段时,根据当前局部路径的走势确定当前局部路径对应的第二转向方向,以及根据第二转向方向控制无人车在开启相应转向灯后沿当前局部路径行驶。
[0107]
其中,根据当前局部路径的走势确定当前局部路径对应的第二转向方向的方法包括:在目标坐标系中确定当前局部路径的纵向左转累计长度和纵向右转累计长度;在纵向左转累计长度或纵向右转累计长度符合对应的预设局部转向条件时,将该预设局部转向条件对应的转向方向作为无人车在当前局部路径上的第二转向方向。
[0108]
其中,在确定纵向左转累计长度和纵向右转累计长度时:检测到当前局部路径上的当前姿态点相较于该当前局部路径上的起始姿态点在目标坐标系中的横向改变量是否大于横向忽略阈值;如果是,则计算该当前姿态点相较于对应的前一姿态点的纵向改变量,以作为当前纵向改变量;在当前姿态点的横向改变量为正时,计算纵向左转累计长度与当前纵向改变量之和,以更新纵向左转累计长度;在当前姿态点的横向改变量为负时,计算纵向右转累计长度与当前纵向改变量之和,以更新纵向右转累计长度。
[0109]
在一个实施例中,在当前局部路径上的当前姿态点满足|f
i
.l
i-f0.l0|≥δl时,通过公式ds=f
i
.s
i-f
i-1
.s
i-1
计算当前姿态点相对于前一姿态点在纵向上的距离,其中,f
i
.s
i
为当前姿态点在纵向上的坐标值,δl为横向抖动忽略阈值,f
i-1
.s
i-1
为当前姿态点对应的前一姿态点在纵向上的坐标值。如果f
i
.l
i-f0.l0>0.0成立,则表示当前姿态点在横向上的分量相对于起始姿态点在横向上的分量有正向变化,因此执行left_as=left_as+ds,否则执行right_as=right_as+ds,其中,left_as为纵向左转累计长度,right_as为纵向右转累计长度。
[0110]
其中,基于纵向左转累计长度或纵向右转累计长度确定无人车的第二转向方向的
方法包括:在检测到纵向左转累计长度大于纵向右转累计长度,同时大于纵向忽略阈值时,判定无人车在当前局部路径上的第二转向方向为左;在检测到纵向右转累计长度大于纵向左转累计长度,同时大于纵向忽略阈值时,判定无人车在当前局部路径上的第二转向方向为右。
[0111]
在一个实施例中,如果left_as>right_as&&left_as>δs成立,则当前局部路径对应的第一转向方向为左,如果left_as<right_as&&right_as>δs成立,则当前局部路径对应的第二转向方向为右,否则,当前局部路径段为直行路径段。其中,δs为纵向忽略阈值。
[0112]
可以理解的是,如果纵向左转累计长度没有同时满足大于纵向右转累计长度和忽略阈值,以及纵向左转累计长度没有同时满足大于纵向左转累计长度和忽略阈值,则当前局部路径为直行路径,即无人车在当前局部路径上直行。
[0113]
其中,在目标坐标系中检测当前局部路径上的当前姿态点相较于该当前局部路径上的起始姿态点的横向改变量的前提是,当前姿态点在纵轴上的坐标值小于前述预设局部阈值。如果当前姿态点的纵向坐标值大于或等于前述预设局部阈值,则以当前姿态点为起始位置更新当前局部路径。可以理解的是,在更新当前局部路径的同时,须同时更新当前全局路径,以使更新后的当前全局路径与更新后的当前局部路径对应。
[0114]
本发明实施例提供的无人车的技术方案,包括:获取当前局部路径,根据当前局部路径的起始位置确定当前局部路径对应的当前全局路径;根据当前局部路径的走势和当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿当前局部路径行驶。由于当前全局路径和局部路径不仅包含无人车当前的坐标信息,还包含无人车在未来一段时间内的坐标位置信息,因此结合当前全局路径的曲率变化和当前局部路径的走势,可以提前准确地确定出无人车的转向方向。
[0115]
实施例四
[0116]
本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机控制器执行时用于执行一种无人车转向灯控制方法,该方法包括:
[0117]
获取当前局部路径,根据所述当前局部路径的起始位置和终止位置确定当前局部路径对应的当前全局路径;
[0118]
根据所述当前局部路径的走势和所述当前全局路径的曲率变化确定无人车的转向方向,并根据该转向方向开启无人车的相应转向灯以及控制无人车沿所述当前局部路径行驶。
[0119]
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的无人车转向灯控制方法中的相关操作。
[0120]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的无人
车转向灯控制方法。
[0121]
值得注意的是,上述无人车转向灯控制装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0122]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1