一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自动驾驶车辆画龙行为的检测方法、装置、设备及存储介质与流程

2022-06-22 14:33:20 来源:中国专利 TAG:


1.本公开涉及数据处理技术领域,尤其涉及自动驾驶技术领域。


背景技术:

2.在自动驾驶过程中,由于自动驾驶车辆系统异常或者决策模块异常,可能导致规划的路径与自动驾驶车辆真实的位置及姿态有一定的偏差,这样会导致自动驾驶车辆的画龙行为,即自动驾驶车辆会在道路上来回摆动前进。


技术实现要素:

3.本公开提供了一种自动驾驶车辆画龙行为的检测方法、装置、设备及存储介质,来检测自动驾驶车辆画龙行为。
4.根据本公开的一方面,提供了一种自动驾驶车辆画龙行为的检测方法,包括:
5.获取自动驾驶车辆当前角速度;
6.基于所述自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定自动驾驶车辆角速度波峰或波谷;
7.确定所述自动驾驶车辆角速度波峰或波谷是否满足预设画龙条件;
8.若所述角速度波峰或波谷满足所述预设画龙条件,则确定所述自动驾驶车辆出现画龙行为。
9.根据本公开的另一方面,提供了一种自动驾驶车辆画龙行为的检测装置,包括:
10.当前角速度获取模块,用于获取自动驾驶车辆当前角速度;
11.波峰或波谷确定模块,用于基于所述自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定自动驾驶车辆角速度波峰或波谷;
12.波峰或波谷判断模块,用于确定所述自动驾驶车辆角速度波峰或波谷是否满足预设画龙条件;
13.画龙行为确定模块,用于若所述角速度波峰或波谷满足所述预设画龙条件,则确定所述自动驾驶车辆出现画龙行为。
14.根据本公开的另一方面,提供了一种电子设备,包括:
15.至少一个处理器;以及
16.与所述至少一个处理器通信连接的存储器;其中,
17.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一所述的自动驾驶车辆画龙行为的检测方法。
18.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述任一所述的自动驾驶车辆画龙行为的检测方法。
19.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算
机程序在被处理器执行时实现上述任一所述的自动驾驶车辆画龙行为的检测方法。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是根据本公开提供的自动驾驶车辆画龙行为的检测方法的第一实施例的示意图;
23.图2是本公开中自动驾驶车辆角速度的一种示意图;
24.图3是根据本公开提供的自动驾驶车辆画龙行为的检测方法的第二实施例的示意图;
25.图4是本公开中确定潜在角速度波峰或波谷的一种流程示意图;
26.图5是本公开中确定真正角速度波峰或波谷的一种流程示意图;
27.图6a是本公开中检测自动驾驶车辆画龙行为的一种具体示例的流程图;
28.图6b是本公开中检测自动驾驶车辆画龙行为的一种示意图;
29.图7是根据本公开提供的自动驾驶车辆画龙行为的检测装置的第一实施例的示意图;
30.图8是用来实现本公开实施例的自动驾驶车辆画龙行为的检测方法的电子设备的框图。
具体实施方式
31.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
32.出于各种原因,如在系统异常或者规划模块出现不合理的规划情况下,自动驾驶车辆将会出现画龙行为,这种行为单从规划模块很难进行规避。当自动驾驶车辆发生画龙行为时,非常容易发生碰撞或驶出正常道路,导致风险较高。而目前,并没有能够检测自动驾驶车辆画龙行为的装置,导致无法及时检测自动驾驶车辆的画龙行为,从而及时采取应对措施以降低风险。
33.基于此,本公开提供了一种自动驾驶车辆画龙行为的检测方法、装置、电子设备以及存储介质。下面首先对本公开提供的自动驾驶车辆画龙行为的检测方法进行示例性说明。
34.本公开提供的自动驾驶车辆画龙行为检测方法可以应用于自动驾驶车辆系统等。参见图1,图1是根据本公开提供的自动驾驶车辆画龙行为的检测方法的第一实施例的示意图。该方法可以包括以下步骤:
35.步骤s110,获取自动驾驶车辆当前角速度。
36.本公开实施例中,可以通过自动驾驶车辆内置的角速度测量模块来获取自动驾驶车辆的角速度,也可以通过外置于自动驾驶车辆且具备角速度测量功能的路边单元获取自
动驾驶车辆的角速度。
37.本公开实施例中,上述自动驾驶车辆当前角速度可以实时获取,也可按照预设采集时间间隔周期性获取,如可以每隔0.2s获取自动驾驶车辆当前角速度。本公开中对此不做具体限定。
38.本公开实施例中,在获取自动驾驶车辆当前角速度时,可以获取自动驾驶车辆当前角速度的具体值avcur以及自动驾驶车辆当前角速度的采集时间戳tcur,tcur用于表示采集到avcur的时间。本公开实施例中,可以预先定义角速度的正负方向,相应的,上述角速度的具体值就可以是带正负符号的值。
39.步骤s120,基于所述自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定自动驾驶车辆角速度波峰或波谷。
40.作为本公开的一种实施例,如图2所示,可以以采集时间为横轴(单位为秒),以角速度的值为纵轴(单位为弧度每秒),对采集的自动驾驶车辆角速度进行可视化。图2中所示的角速度波峰就是角速度极大值,图2所示的角速度波谷就是角速度极小值。
41.由图2可见,在角速度波峰处,角速度由上升趋势变为下降趋势;在角速度波谷处,角速度由下降趋势变为上升趋势。因此,本公开实施例中,可以基于自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定自动驾驶车辆角速度变化趋势的变化,进而确定角速度波峰或波谷。
42.步骤s130,确定所述自动驾驶车辆角速度波峰或波谷是否满足预设画龙条件。
43.本公开实施例中,上述预设画龙条件可以是:两个角速度波峰或波谷的时间差小于预设时长,且角速度符号相反。
44.如上所述,自动驾驶车辆画龙行为即指自动驾驶车辆在道路上来回摆动行驶。因此,若车辆出现画龙行为,那么车辆的角速度会在数值上出现较大变化。如上所述,角速度波峰或波谷是角速度极大值或极小值,即在角速度波峰或波谷处,角速度的值可能会发生较大变化。因此,本公开实施例中,可以判断上述角速度波峰或波谷是否满足上述预设画龙条件,来更加快速地对自动驾驶车辆画龙行为进行检测。
45.本公开实施例中,上述预设时长可以人为预设。例如,上述预设时长可以是10s、8s、7s等等。
46.步骤s140,若所述角速度波峰或波谷满足所述预设画龙条件,则确定所述自动驾驶车辆出现画龙行为。
47.本公开实施例中,若判断车辆出现画龙行为,则可上报异常,并对自动驾驶车辆进行紧急接管刹停,避免事故的发生。也可控制自动驾驶车辆发出警告声,以提醒自动驾驶车辆周边人员进行避让。
48.本公开实施例中,在获取到自动驾驶车辆当前的角速度后,基于自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定自动驾驶车辆角速度波峰或波谷,之后判断自动驾驶车辆角速度波峰或波谷是否满足预设画龙条件,若满足,则确定自动驾驶车辆出现画龙行为。应用本公开实施例中,通过自动驾驶车辆角速度波峰或波谷,判断自动驾驶车辆是否出现画龙行为,可以及时发现自动驾驶车辆的画龙行为,进而可有效地对自动驾驶车辆进行紧急接管,避免事故的发生,保证人车安全。
49.基于图1,如图3所示,在本公开的一种实施例中,上述步骤s120,可以细化为:
50.步骤s121,基于所述自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定新出现的角速度波峰或波谷,作为新的潜在角速度波峰或波谷。
51.本公开实施例中,可以对潜在角速度波峰或波谷进行记录,并可对已经记录的历史潜在角速度波峰或波谷进行更新。作为一种具体实施方式,可以在有潜在角速度波峰或波谷出现时,对以下数据进行记录存储:该潜在角速度波峰的波峰值或潜在角速度波谷的波谷值、该潜在角速度波峰或波谷的采集时间。同时还可标记出现的潜在角速度波峰或波谷具体是潜在角速度波峰还是潜在角速度波谷。上述波峰值、波谷值均可以是带正负符号的值。
52.步骤s122,基于所述新的潜在角速度波峰或波谷,以及历史潜在角速度波峰或波谷,确定符合预设波峰或波谷条件的历史潜在角速度波峰或波谷,作为新的真正角速度波峰或波谷。
53.可以理解的是,虽然自动驾驶车辆摆动时将产生角速度波峰或波谷,但是在其他情况下也可能产生角速度波峰或波谷,如受到噪声信号干扰导致自动驾驶车辆角速度出现涨落、自动驾驶车辆小幅度调整方向等,因此并非每个角速度波峰或波谷都是由自动驾驶车辆摆动产生的。
54.上述预设波峰或波谷条件可以由人工基于实际应用场景和/或需求进行设定,本公开对此不做限定。下文将在步骤s1221-步骤s1222中,对上述预设波峰或波谷条件进行示例性说明,在此不进行赘述。
55.本文中为区别自动驾驶车辆摆动时产生的角速度波峰或波谷,将由自动驾驶车辆摆动时产生的角速度波峰或波谷作为真正角速度波峰或波谷。当检测到一个角速度波峰或波谷时,该角速度波峰或波谷可能是由于自动驾驶车辆摆动产生的真正角速度波峰波谷,也可能是由于受到噪声信号干扰导致自动驾驶车辆角速度出现涨落、自动驾驶车辆小幅度调整方向产生的角速度波峰或波谷。因此,在将检测到的角速度波峰或波谷确定为真正波峰或波谷之前,可以将该检测到的波峰或波谷暂时作为潜在角速度波峰或波谷。
56.本公开实施例中,可以对真正角速度波峰以及波谷进行记录。并可对记录的历史真正角速度波峰波谷进行更新。作为一种具体实施方式,可以记录真正角速度波峰值或波谷值以及该角速度的采集时间。还可以标记出现的是真正角速度波峰还是真正角速度波谷。上述真正角速度波峰值和波谷值,也可以是带正负符号的值。
57.在本公开的一种实施例中,如图3所示,上述图1中的步骤s130,确定角速度波峰或波谷是否满足预设画龙条件,则可以细化为:
58.步骤s131,确定所述新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,是否满足预设画龙条件。
59.如图3所示,上述图1中的步骤s140,确定自动驾驶车辆出现画龙行为,则可以细化为:
60.步骤s141,若所述真正角速度波峰或波谷满足所述预设画龙条件,则确定所述自动驾驶车辆出现画龙行为。
61.在本公开的一种实施例中,上述预设画龙条件还可以包括:两个角速度波峰或波谷的落差高度大于预设落差高度阈值,可以理解的是,即使没有发生画龙行为,自动驾驶车辆也可能在短时间内来回摆动,例如沿直线行进的自动驾驶车辆受到道路颠簸的影响进行
方向可能小幅度的来回摆动,而选用该实施例,通过在预设画龙条件中增加落差高度的判据,避免将车辆小幅度来回摆动错误地识别为画龙行为,从而更加准确地判断自动驾驶车辆画龙行为,减少误判。上述落差高度阈值可以由人工根据实际需求进行预先设置。如可以是20弧度每秒、也可以是10弧度每秒等,本公开中对此不做具体限定。
62.相应的,本实施例中,可以判断上述新的真正角速度以及历史真正角速度波峰或波谷之间的时间差是否小于上述预设时长、角速度符号相反且落差高度大于上述预设落差高度阈值。
63.如上所述,上述角速度的正负方向可以人为预先确定。因此,上述预设画龙条件中可以不对角速度的方向进行限定。即上述预设画龙条件还可以是:两角速度波峰或波谷之间的时间差小于上述预设时长且落差高度大于上述预设落差高度阈值。
64.由上可见,本公开实施例中,仅需判断两真正角速度波峰或波谷之间是否满足预设画龙条件,就可判断自动驾驶车辆是否出现画龙行为。同时,在确定真正角速度波峰或波谷时,仅需通过当前潜在角速度波峰或波谷以及记录的潜在角速度波峰或波谷进行判断,无需对每个历史角速度进行查询比较。数据处理量较小,且实施较为便利。
65.如上所述,本公开实施例中,可以对自动驾驶车辆角速度、潜在角速度波峰或波谷以及真正角速度波峰或波谷进行记录。在本公开的一种实施例中,上述历史自动驾驶车辆角速度具体可以是上一个获取的自动驾驶车辆角速度。
66.本公开实施例中,各自动驾驶车辆角速度的采集时间可以是一系列离散的时间点。上述上一个获取的自动驾驶车辆角速度可以为:在当前角速度之前获取、且获取时间距当前角速度获取时间最近的角速度。示例性的,假设在t=0s获取角速度1,在t=0.05s获取角速度2,在t=0.1获取角速度3,在t=0.15获取角速度4,且当前角速度为角速度4,则上一个获取的自动驾驶车辆角速度为角速度3。
67.当然,上述上一个获取的自动驾驶车辆角速度也可以是在当前角速度之前获取的、且获取时间在预设时间段内(如,0.15s)的任一角速度。仍以上述角速度1-4的示例为例,则当前角速度可以为角速度1-3中的任一角速度。
68.作为本公开的一种实施例,在对上述上一个获取的自动驾驶车辆角速度进行记录时,可以记录上一个获取的自动驾驶车辆角速度的值avlast以及对应的时间戳tlast。
69.在本公开的一种实施例中,上述历史潜在角速度波峰或波谷具体可以是上一个潜在角速度波峰或波谷。本公开实施例中,上述上一个潜在角速度波峰或波谷可以是在上一轮自动驾驶车辆画龙行为检测中记录的潜在角速度波峰或波谷。作为本公开实施例的一种具体实施方式,在记录上述上一个潜在角速度波峰或波谷p(v,t)时,具体可以记录上述上一个潜在角速度波峰或波谷的峰值或谷值pv以及对应时间戳pt。
70.在本公开的一种实施例中,上述历史真正角速度波峰或波谷则可以指上一个真正角速度波峰或波谷。如,可以是在上一轮自动驾驶车辆画龙行为检测中得到真正波峰或波谷。作为本公开实施例的一种具体实施方式,在记录上述上一个潜在角速度波峰或波谷p’(v,t)时,具体可以记录上一个真正角速度波峰或波谷的峰值或谷值p’v以及对应时间戳p’t。
71.在本公开的一种实施例中,基于图1,如图3所示,上述方法还可以包括:
72.步骤s350,更新所述历史自动驾驶车辆角速度、历史潜在角速度波峰或波谷以及
所述历史真正角速度波峰或波谷。
73.作为一种具体实施方式,可以是若未出现新的角速度波峰或波谷,且所述自动驾驶车辆当前角速度大于所述历史潜在角速度波峰或波谷,则用自动驾驶车辆当前角速度更新所述上一个潜在角速度波峰或波谷以及上一个获取的自动驾驶车辆角速度;
74.若不存在符合所述预设波峰或波谷条件的历史潜在角速度波峰或波谷,则用所述新的潜在角速度波峰或波谷更新所述上一个潜在角速度波峰或波谷,并用所述自动驾驶车辆当前角速度更新所述上一个获取的自动驾驶车辆角速度。
75.在一些实施例中,新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,满足所述预设画龙条件,则可确定自动驾驶车辆出现画龙行为。而在另一些实施例中,新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,不满足所述预设画龙条件,对于这些实施例,可以确定自动驾驶车辆未出现画龙行为,也可以继续对自动驾驶车辆进行画龙行为检测。
76.例如,若所述新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,不满足所述预设画龙条件,则用所述新的真正角速度波峰或波谷更新所述上一个真正角速度波峰或波谷,用所述新的潜在角速度波峰或波谷更新所述上一个潜在角速度波峰或波谷,并用所述自动驾驶车辆当前角速度更新所述上一个获取的自动驾驶车辆角速度。
77.关于更新上述上一个获取的自动驾驶车辆角速度、上一个潜在角速度波峰或波谷以及上一个真正角速度波峰或波谷的具体过程,可以参见下方说明,此处暂不详述。
78.本公开实施例中,仅需对上一个获取的自动驾驶车辆角速度、上一个潜在角速度波峰或波谷以及上一个真正角速度波峰或波谷进行记录存储,并不需要对获取的所有数据进行存储。极大减少需存储的数据量,节省存储空间。
79.在本公开的一种实施例中,如图4所示,上述步骤s121可以细化为:
80.步骤s1211,基于所述自动驾驶车辆当前角速度以及所述上一个获取的自动驾驶车辆角速度,计算当前自动驾驶车辆角速度变化趋势。
81.本实施例中,可以基于当前角速度avcur以及上一个获取的角速度avlast,计算当前自动驾驶车辆角速度变化趋势trendcur。作为一种具体实施方式,若当前角速度avcur>上一个获取的角速度avlast,则当前自动驾驶车辆角速度变化趋势为上升,可以将trendcur赋值为1。若当前角速度avcur<上一个获取的角速度avlast,则当前自动驾驶车辆角速度变化趋势为下降,此时,可以将trendcur赋值为0。
82.步骤s1212,判断所述当前自动驾驶车辆角速度变化趋势与上一次自动驾驶车辆角速度变化趋势是否一致。
83.本公开实施例中,可以对上一次自动驾驶车辆角速度变化趋势trendlast进行记录。在计算得到当前自动驾驶车辆角速度变化趋势trendcur的值后,就可将trendcur与上一次角速度变化趋势trendlast进行比较。
84.本公开实施例中,可以对上述记录的上一次自动驾驶车辆角速度变化趋势trendlast进行更新。作为一种具体实施方式,若基于当前自动驾驶车辆角速度,确定自动驾驶车辆并未出现画龙行为,则可以将上一次自动驾驶车辆角速度变化趋势trendlast更新为当前自动驾驶车辆角速度变化趋势trendcur的值。之后,可以进行下一轮的自动驾驶车辆画龙行为检测。
85.本公开实施例中,上述上一时刻自动驾驶车辆角速度avlast及对应采集时间tlast、当前自动驾驶车辆角速度avcur及对应采集时间tcur、上一次自动驾驶车辆角速度变化趋势trendlast以及当前自动驾驶车辆角速度变化趋势trendcur的初值均可人为预设。作为一种具体实施方式,可以设置avlast、tlast、avcur、tcur初值为0,设置trendlast以及trendcur初值为1。
86.如图4所示,步骤s1213,基于所述自动驾驶车辆角速度变化趋势是否一致的判断结果,确定是否出现新的角速度波峰或波谷。
87.本公开实施例中,若当前自动驾驶车辆角速度变化趋势trendcur的值与上一次自动驾驶车辆角速度变化趋势trendlast的值不同,即当前自动驾驶车辆角速度变化趋势与上一次自动驾驶车辆角速度变化趋势不同(如,上一次自动驾驶车辆角速度变化趋势为上升/下降,当前自动驾驶车辆角速度变化趋势为下降/上升)。那么就可以确定出现新的角速度波峰或波谷。
88.步骤s1214,将所述新出现的角速度波峰或波谷作为新的潜在角速度波峰或波谷。
89.本公开实施例中,若确定出现新的角速度波峰或波谷,则可将该新的角速度波峰或波谷作为潜在角速度波峰或波谷,进行下一步判断。这样,通过当前角自动驾驶车辆、上一个获取的自动驾驶车辆角速度以及记录的上一次自动驾驶车辆角速度变化趋势,确定是否出现新的角速度波峰或波谷,而无需查询所有历史数据进行确定,可以较快确定潜在角速度波峰或波谷,且数据查询量较小。
90.在本公开的一种实施例中,在确定出现新的角速度波峰或波谷后,还可再对该角速度波峰或波谷的峰值或谷值进行判断,再确定是否将该新的角速度波峰或波谷作为潜在角速度波峰或波谷。
91.由于本公开实施例中各角速度值均是带正负符号的值,因此,可以确定上述新的角速度峰值或谷值的绝对值是否大于预设角速度阈值avdt。若大于,则可将上述新的角速度波峰或波谷作为潜在角速度波峰或波谷。若小于,则上述新的角速度波峰或波谷的峰值或谷值在正常范围内,因此,可以不将该新出现的角速度波峰或波谷作为潜在波峰或波谷。
92.本公开实施例中,若新出现的角速度波峰或波谷不能作为潜在波峰或波谷,则可判断自动驾驶车辆当前角速度是否大于历史记录的潜在角速度波峰或波谷(即判断自动驾驶车辆当前角速度是否大于上一个潜在角速度波峰,或小于上一个潜在角速度波谷)。若自动驾驶车辆当前角速度大于上一个潜在角速度波峰或波谷,则可利用自动驾驶车辆当前角速度更新上述上一个潜在角速度波峰或波谷。即用avcur的值更新pv,用tcur的值更新pt。若自动驾驶车辆当前角速度小于上一个潜在角速度波峰或波谷,则可利用自动驾驶车辆当前角速度更新上一个获取的自动驾驶车辆角速度。即用avcur的值更新avlast,用tcur的值更新tlast。之后,则可进行下一轮自动驾驶车辆画龙行为的检测。
93.在本公开的一种实施例中,若当前自动驾驶车辆角速度变化趋势trendcur的值与上一次自动驾驶车辆角速度变化趋势trendlast的值相同,即确定未出现新的角速度波峰或波谷。那么,就可以确定历史潜在角速度波峰或波谷是否为空。若历史潜在角速度波峰或波谷为空(之前未出现潜在角速度波峰或波谷),则可以用avcur的值更新avlast,用tcur的值更新tlast。之后进行下一轮自动驾驶车辆画龙行为的检测。
94.若历史潜在角速度波峰或波谷不为空,则可判断当前自动驾驶车辆角速度avcur
与该历史潜在角速度波峰或波谷pv的大小。具体的,由于本公开实施例中记录的各角速度值均为带正负符号的值。因此,可以确定当前自动驾驶车辆角速度是否大于该潜在角速度波峰,或当前自动驾驶车辆角速度是否小于该潜在角速度波谷。
95.本公开实施例中,若确定上述当前自动驾驶车辆角速度大于上述潜在角速度波峰或小于上述潜在角速度波谷,即未出现新的角速度波峰或波谷,且自动驾驶车辆当前角速度大于所述历史潜在角速度波峰或波谷,则可以用自动驾驶车辆当前角速度avcur更新上一个潜在角速度波峰或波谷pv以及上一个获取的自动驾驶车辆角速度avlast,并用自动驾驶车辆当前角速度的采集时间tcur更新上一个潜在角速度波峰或波谷的时间pt以及上一个获取的自动驾驶车辆角速度的时间tlast。
96.若自动驾驶车辆当前角速度小于上述角速度潜在波峰或大于上述潜在角速度波谷,则仅用自动驾驶车辆当前角速度avcur的值以及tcur得值更新上一个获取的自动驾驶车辆avlast以及tlast即可。并不需要更新上一个潜在角速度波峰或波谷。
97.在本公开的一种实施例中,上述步骤s122,确定符合预设波峰或波谷条件的历史潜在角速度波峰或波谷,作为新的真正角速度波峰或波谷,可以细化为以下步骤,如图5所示:
98.步骤s1221,基于所述历史潜在角速度波峰或波谷,确定所述新的潜在角速度波峰或波谷与上一个潜在角速度波峰或波谷是否同为波峰或波谷。
99.步骤s1222,若所述新的潜在角速度波峰或波谷与上一个潜在角速度波峰或波谷不同为波峰或波谷,则将所述上一个潜在角速度波峰或波谷作为真正角速度波峰或波谷。
100.即本公开实施例中,上述预设波峰或波谷条件可以是新的潜在角速度波峰或波谷与上一个潜在角速度波峰或波谷不同为波峰或波谷。
101.本公开实施例中,若上一个潜在角速度波峰或波谷与上述新的潜在波峰或波谷同为波峰或同为波谷,那就说明,在对应的时长内,自动驾驶车辆角速度并未发生方向上大的改变。因此,不能判断自动驾驶车辆出现画龙行为。
102.作为本公开实施例的一种具体实施方式,若上一个潜在角速度波峰或波谷,与新的潜在角速度波峰或波谷同为波峰或同为波谷,即不存在符合所述预设波峰或波谷条件的历史潜在角速度波峰或波谷。那么就可用新的潜在角速度波峰或波谷更新所述上一个潜在角速度波峰或波谷,并用所述自动驾驶车辆当前角速度更新所述上一个获取的自动驾驶车辆角速度。
103.本公开实施例中,若上述新的潜在角速度波峰或波谷与上一个潜在角速度波峰或波谷的不同为波峰或波谷,也就是说上一个为潜在角速度波峰/波谷,新出现的是潜在角速度波谷/波峰,就可确定存在符合所述预设波峰或波谷条件的历史潜在角速度波峰或波谷。那么,就可以将上一个潜在角速度波峰或波谷p(v,t)作为真正角速度波峰或波谷。这样,可以较快确定真正角速度波峰或波谷,数据查询量较小。
104.在本公开的一种实施例中,在确定存在符合所述预设波峰或波谷条件的历史潜在角速度波峰或波谷后,还可确定该历史潜在角速度波峰值或波谷值的高度/深度是否大于预设峰值阈值pat(peak absolute threshold)。该峰值阈值可以由人工基于实际需要预先设置。本公开中对此不做具体限定。
105.若上述历史潜在角速度波峰值或波谷值的高度/深度不大于上述预设峰值阈值,
就说明车辆的角速度值在正常范围内,可以不将该历史潜在角速度波峰或波谷作为真正角速度波峰或波谷。此时,可以将上一个真正波峰或波谷p’(v,t)更新为该历史潜在波峰或波谷p(v,t)的值。并可将上一个获取的角速度avlast与tlast更新为当前角速度avcur与tcur的值。并进行下一轮自动驾驶车辆画龙行为的检测。
106.若上述历史潜在角速度波峰值或波谷值的高度/深度大于上述预设峰值阈值,则可将上述历史潜在角速度波峰或波谷作为真正角速度波峰或波谷。
107.本公开实施例中,在确定出现新的真正角速度波峰或波谷后,就可执行上述步骤s131,确定所述新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,是否满足预设画龙条件。
108.本公开实施例中,若历史真正角速度波峰或波谷为空,即可确定新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,不满足预设画龙条件。那么就可以用新的真正角速度波峰或波谷更新所述上一个真正角速度波峰或波谷,并用所述自动驾驶车辆当前角速度更新所述上一个获取的自动驾驶车辆角速度。即将上述上一个真正波峰或波谷p’(v,t)更新为新的真正波峰或波谷p(v,t)的值,将avlast以及tlast分别更新为avcur以及tcur的值。
109.在本公开的一种实施例中,若上述上一个真正角速度波峰或波谷不为空。则可确定上一个真正角速度波峰或波谷p’(v,t)与新的真正角速度波峰或波谷p(v,t)是否符合预设画龙条件。
110.在本公开的一种实施例中,可以计算两真正角速度波峰或波谷之间的时间差tdiff=pt-p’t,并计算s=pv*p’v,以及计算两真正角速度波峰值或波谷值之间的落差高度vdiff=math.abs(pv-p’v)。若tdiff《tw(time window,上述预设时长)并且s《0(两真正角速度符号正负相反,即一个为真正角速度波峰,另一个为真正角速度波谷),并且vdiff》avg(angular velocity gap,上述预设落差高度),则可判定此时出现画龙行为。
111.本公开实施例中,若上述新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,不满足上述预设画龙条件,则可将上一个真正角速度波峰或波谷p’(v,t)更新为上述新的真正角速度波峰或波谷p(v,t)的值,并将上一个潜在波峰或波谷p(v,t)更新为上述新的潜在角速度波峰或波谷,并将上一个获取的自动驾驶车辆角速度avlast和tlast更新为当前自动驾驶车辆角速度avcur和tcur的值。之后,可以重新获取当前自动驾驶车辆角速度,进行新一轮的自动驾驶车辆画龙行为检测。
112.为了更清楚的对本公开提供的自动驾驶车辆画龙行为的检测方法进行说明,下面将结合具体实施例进行示例性说明:
113.在该示例中执行主体维护有以下变量:avcur、avlast、tcur、tlast、trendcur、trendlast。执行主体通过如图6a所示的流程实现自动驾驶车辆画龙行为的检测:
114.s601,初始化avcur、avlast、tcur、tlast、trendcur、trendlast。
115.其中,其中,avcur、avlast初始时为0,tcur、tlast初始时为0,trendcur、trendlast初始时为1。
116.s602,实时获取自动驾驶车辆的角速度,将获取到的角速度记录于avcur,将获取到角速度的时间记录于tcur。
117.s603,比较avcur与avlast,若avcur<avlast,则令trendcur=1,若avcur>
avlast,则令trendcur=0。判断trendcur是否不等于trendlast,若是则执行s604,若否则执行s613。
118.s604,确定出现潜在角速度波峰或波谷,判断avcur是否大于预设角速度阈值avdt,若是则执行s605,若否则执行s612。
119.s605,判断是否存在上一个潜在角速度波峰或波谷,若是则执行s606,若否则执行s611。
120.s606,判断本次出现的潜在角速度波峰或波谷与上一个潜在角速度波峰或波谷是否同为波峰或同为波谷,若否则执行s607,若否则执行s612。
121.s607,判断pv是否大于预设峰值阈值pat,若是则执行s608,若否则执行s611。
122.其中,pv为记录于p(v,t)中的角速度。
123.s608,是否记录有p’(v,t),若是则执行s609,若否则执行s610。
124.s609,确定是否满足条件:tdiff<tw,且vdiff>avg,且s<0。若是则确定出现画龙行为,若否则执行s610。
125.其中,tdiff=pt-p’t,vdiff=math.abs(pv-p’v),s=pv*p’v,pt为记录于p(v,t)中的时间,p’v为记录于p’(v,t)中的角速度,p’t为记录于p’(v,t)中的时间。
126.s610,令p’(v,t)=p(v,t)。
127.s611,确定出现潜在角速度波峰或波谷,并且记录的波峰值或波谷值。
128.s612,令trendlast=1-trendcur。
129.s613,判断是否存在上一个潜在角速度波峰或波谷,若是则执行s614,否则执行s616。
130.s614,判断avcur是否大于上一个潜在角速度波峰或波谷的波峰值或波谷值,若是则执行s615,若否则执行s616。
131.s615,将avcur和avlast记录于p(v,t)。
132.s616,令avlast=avcur,tlast=tcur,并返回执行s601。
133.作为本公开的一种具体实施例,如图6b所示,若当前自动驾驶车辆角速度为a,基于上一个获取的自动驾驶车辆角速度以及当前自动驾驶车辆角速度得到的当前角速度变化趋势为下降,即trendcur=0。而上一次的自动驾驶车辆角速度变化趋势trendlast为1。即变化趋势不同,因此,发生角速度变化趋势变化的b点就是一个新的角速度波峰。若该角速度波峰大于上述预设角速度阈值avdt,则b点就是一个潜在角速度波峰。之后,就可判断在该潜在角速度波峰b之前是否出现潜在角速度波峰或波谷,即历史潜在角速度波峰或波谷是否为空。
134.如图6b所示,在f点处发生角速度变化趋势的变化,但由于f处角速度值较小,因此,f不是一个潜在角速度波峰。因此,在新的潜在角速度波峰b之前,历史角速度潜在波峰或波谷为c点,且c点为潜在角速度波谷。由于新的潜在角速度波峰b,与历史潜在角速度波谷c一个为潜在波峰,一个为潜在波谷,即b、c满足预设波峰或波谷条件。若c处角速度谷值的深度大于预设峰值阈值pat,则可以将历史潜在角速度波谷c作为真正的角速度波谷。
135.如图6b所示,在真正角速度波谷c之前,历史真正角速度波峰或波谷d,且d为一真正角速度波峰。此时就可判断真正角速度波谷c、真正角速度波峰d是否满足预设画龙条件。若c、d的时间间隔小于预设时长,符号相反,且落差高度大于预设落差高度阈值,那么就可
以判断自动驾驶车辆出现画龙行为。可以对自动驾驶车辆进行紧急接管。
136.根据本公开实施例,本公开还提供了一种自动驾驶车辆画龙行为的检测装置,如图7所示,该装置可以包括:
137.当前角速度获取模块710,用于获取自动驾驶车辆当前角速度;
138.波峰或波谷确定模块720,用于基于所述自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定自动驾驶车辆角速度波峰或波谷;
139.波峰或波谷判断模块730,用于确定所述自动驾驶车辆角速度波峰或波谷是否满足预设画龙条件;其中,所述预设画龙条件为:两个角速度波峰或波谷的时间差小于预设时长,且角速度符号相反;
140.画龙行为确定模块740,用于若所述角速度波峰或波谷满足所述预设画龙条件,则确定所述自动驾驶车辆出现画龙行为。
141.本公开实施例中,在获取到自动驾驶车辆当前的角速度后,基于自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定自动驾驶车辆角速度波峰或波谷,之后判断角速度波峰或波谷是否满足预设画龙条件,若满足,则确定自动驾驶车辆出现画龙行为。应用本公开实施例中,通过自动驾驶车辆角速度波峰或波谷,判断自动驾驶车辆是否出现画龙行为,可以及时发现自动驾驶车辆的画龙行为,进而可有效地对自动驾驶车辆进行紧急接管,避免事故的发生,保证人车安全。
142.在本公开的一种实施例中,所述波峰或波谷确定模块720,用于基于所述自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定新出现的角速度波峰或波谷,作为新的潜在角速度波峰或波谷;
143.基于所述新的潜在角速度波峰或波谷,以及历史潜在角速度波峰或波谷,确定符合预设波峰或波谷条件的历史潜在角速度波峰或波谷,作为新的真正角速度波峰或波谷;
144.所述波峰或波谷判断模块730,用于确定所述新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,是否满足预设画龙条件。
145.在本公开的一种实施例中,上述装置还可以包括角速度更新模块(图中未示出),用于更新所述历史自动驾驶车辆角速度、历史潜在角速度波峰或波谷以及所述历史真正角速度波峰或波谷。
146.在本公开的一种实施例中,所述历史自动驾驶车辆角速度为上一个获取的自动驾驶车辆角速度;所述历史潜在角速度波峰或波谷为上一个潜在角速度波峰或波谷;
147.所述角速度更新模块,用于若未出现新的角速度波峰或波谷,且所述自动驾驶车辆当前角速度大于所述历史潜在角速度波峰或波谷,则用自动驾驶车辆当前角速度更新所述上一个潜在角速度波峰或波谷以及上一个获取的自动驾驶车辆角速度;
148.若不存在符合所述预设波峰或波谷条件的历史潜在角速度波峰或波谷,则用所述新的潜在角速度波峰或波谷更新所述上一个潜在角速度波峰或波谷,并用所述自动驾驶车辆当前角速度更新所述上一个获取的自动驾驶车辆角速度。
149.在本公开的一种实施例中,所述历史真正角速度波峰或波谷为上一个真正角速度波峰或波谷;
150.所述角速度更新模块,还可用于若所述新的真正角速度波峰或波谷,以及历史真正角速度波峰或波谷,不满足所述预设画龙条件,则用所述新的真正角速度波峰或波谷更
新所述上一个真正角速度波峰或波谷,用所述新的潜在角速度波峰或波谷更新所述上一个潜在角速度波峰或波谷,并用所述自动驾驶车辆当前角速度更新所述上一个获取的自动驾驶车辆角速度。
151.在本公开的一种实施例中,所述基于所述自动驾驶车辆当前角速度以及历史自动驾驶车辆角速度,确定新出现的角速度波峰或波谷,作为新的潜在角速度波峰或波谷,包括:
152.基于所述自动驾驶车辆当前角速度以及所述上一个获取的自动驾驶车辆角速度,计算当前自动驾驶车辆角速度变化趋势;
153.判断所述当前自动驾驶车辆角速度变化趋势与上一次自动驾驶车辆角速度变化趋势是否一致;
154.基于所述自动驾驶车辆角速度变化趋势是否一致的判断结果,确定是否出现新的角速度波峰或波谷;
155.将所述新出现的角速度波峰或波谷作为新的潜在角速度波峰或波谷。
156.在本公开的一种实施例中,所述基于所述新的潜在角速度波峰或波谷,以及历史潜在角速度波峰或波谷,确定符合预设波峰或波谷条件的历史潜在角速度波峰或波谷,作为新的真正角速度波峰或波谷,包括:
157.基于所述历史潜在角速度波峰或波谷,确定所述新的潜在角速度波峰或波谷与上一个潜在角速度波峰或波谷是否同为波峰或波谷;
158.若所述新的潜在角速度波峰或波谷与上一个潜在角速度波峰或波谷不同为波峰或波谷,则将所述上一个潜在角速度波峰或波谷作为真正角速度波峰或波谷。
159.在本公开的一种实施例中,所述预设画龙条件为:
160.两个角速度波峰或波谷的时间差小于预设时长、角速度符号相反,且落差高度大于预设落差高度阈值。
161.本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
162.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
163.图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
164.如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
165.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;
输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
166.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如自动驾驶车辆画龙行为的检测方法。例如,在一些实施例中,自动驾驶车辆画龙行为的检测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的自动驾驶车辆画龙行为的检测方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行自动驾驶车辆画龙行为的检测方法。
167.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
168.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
169.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
170.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的
反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
171.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
172.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
173.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
174.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献