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

多维传感器数据中的异常检测的制作方法

2022-03-01 22:49:12 来源:中国专利 TAG:


1.本公开总体上涉及车辆传感器,并且更具体地涉及检测车辆传感器的数据中的异常。


背景技术:

2.车辆可以是自主的或半自主的。车辆计算机可被编程为完全地或者或在较小程度上独立于人类驾驶员的介入而操作车辆。车辆计算机可被编程为基于来自安装在车辆上的传感器的数据来操作推进装置、制动系统、转向系统和/或其他车辆系统。出于本公开的目的,自主操作意指计算机在没有来自人类驾驶员的输入的情况下控制推进装置、制动系统和转向系统;半自主操作意指计算机控制推进装置、制动系统和转向系统中的一个或两个(或与人类驾驶员分开控制),而人类驾驶员控制其余部分;并且非自主操作意指人类驾驶员控制推进装置、制动系统和转向系统。
3.传感器为车辆计算机提供数据以自主或半自主地操作车辆。传感器可提供关于车辆的操作的数据,例如,车轮转速、车轮取向以及发动机和变速器数据(例如,温度、燃料消耗等)。传感器可检测车辆的位置和/或取向。例如,传感器可包括全球定位系统(gps)传感器;加速度计,诸如压电或微机电系统(mems);陀螺仪,诸如速率陀螺仪、环形激光陀螺仪或光纤陀螺仪;惯性测量单元(imu);以及磁力计。传感器可检测外部世界,例如,车辆的周围环境的对象和/或特性,诸如其他车辆、道路车道标记、交通灯和/或标志、行人等。例如,传感器可包括雷达传感器、扫描激光测距仪、光探测和测距(激光雷达)装置以及图像处理传感器(诸如相机)。传感器可包括通信装置,例如车辆对基础设施(v2i)或车辆对车辆(v2v)装置。
4.来自车辆传感器的数据可能包括错误或异常。未检测到的异常可能指示传感器故障和/或包括传感器的物理系统的突然变化(例如,车轮转速传感器的车轮打滑),这可能会不利地影响车辆操作。用于检测多维时间序列数据中的异常的方法是有限的,并且通常计算效率低下和/或可能滞后于数据。因此,在车辆计算机上实时实施这些方法可能是困难的或不切实际的。


技术实现要素:

5.传感器(诸如全球定位系统(gps)传感器、加速度计、陀螺仪、惯性测量单元(imu)、雷达、激光雷达和图像传感器)提供多维时间序列数据。本文公开了用于检测多维时间序列数据(即,作为矢量的时间序列的数据)中的异常的计算有效技术。本发明的技术特别增强了传感器数据融合,即,组合来自多个传感器的数据以创建环境和车辆相对于环境的统一模型。传感器数据融合在剔除而非包含异常数据的情况下更准确,并且自主或半自主车辆可通过更准确的传感器融合以更可靠的环境图片进行操作。现有的异常检测可能需要缓冲传感器数据才能实施,这意味着异常检测滞后于传感器数据,而本文描述的异常检测比用于检测多维时间序列数据中的异常的其他技术在计算上更有效,并且通过这种提高的效
率,车辆计算机可比使用其他技术更快地(通常并且有利地)实时检测异常。
6.一种计算机包括处理器和存储指令的存储器,所述指令能够由所述处理器执行以进行以下操作:从传感器接收矢量的时间序列;确定所述矢量的加权移动均值;确定所述矢量的逆协方差矩阵;从所述传感器接收当前矢量;确定所述当前矢量与所述加权移动均值之间的平方马哈拉诺比斯距离;以及响应于所述平方马哈拉诺比斯距离超过阈值而输出所述传感器异常的指示符。通过使用所述逆协方差矩阵来确定所述平方马哈拉诺比斯距离。
7.所述传感器可为第一传感器,并且所述指令还可以包括对来自包括所述第一传感器的多个传感器的矢量运行卡尔曼滤波器,并响应于输出所述异常的指示符而防止所述卡尔曼滤波器从所述第一传感器接收矢量。运行所述卡尔曼滤波器可包括当所述卡尔曼滤波器被阻止从所述第一传感器接收所述矢量时在具有预测步骤但没有测量步骤的情况下执行所述卡尔曼滤波器的迭代。
8.所述矢量可描述包括所述传感器的车辆相对于外部环境的运动、位置和取向中的至少一个。所述指令还可以包括基于所述卡尔曼滤波器的输出操作所述车辆的推进装置、制动系统和转向系统中的至少一个。
9.所述逆协方差矩阵可以被加权以有利于所述矢量的新近度(recency)。所述逆协方差矩阵可包含呈指数降低的权重(exponentially decreasing weight)。
10.所述加权移动均值可包含呈指数降低的权重。
11.所述传感器可以是全球定位系统传感器、加速度计、陀螺仪、雷达、相机或激光雷达中的一个。
12.所述阈值可以是从卡方分布中所选择的值。
13.一种方法包括:从传感器接收矢量的时间序列;确定所述矢量的加权移动均值;确定所述矢量的逆协方差矩阵;从所述传感器接收当前矢量;确定所述当前矢量与所述加权移动均值之间的平方马哈拉诺比斯距离;以及响应于所述平方马哈拉诺比斯距离超过阈值而输出所述传感器异常的指示符。可通过使用所述逆协方差矩阵来确定所述平方马哈拉诺比斯距离。
14.所述传感器可为第一传感器,并且所述方法还可以包括对来自包括所述第一传感器的多个传感器的矢量运行卡尔曼滤波器,并响应于输出所述异常的所述指示符而防止所述卡尔曼滤波器从所述第一传感器接收所述矢量。运行所述卡尔曼滤波器可包括当所述卡尔曼滤波器被阻止从所述第一传感器接收所述矢量时在具有预测步骤但没有测量步骤的情况下执行所述卡尔曼滤波器的迭代。
15.所述矢量可描述包括所述传感器的车辆相对于外部环境的运动、位置和取向中的至少一个。所述方法还可以包括基于所述卡尔曼滤波器的输出操作所述车辆的推进装置、制动系统和转向系统中的至少一个。
16.所述逆协方差矩阵被加权以有利于所述矢量的新近度。所述逆协方差矩阵可包含呈指数降低的权重。
17.所述加权移动均值可包含呈指数降低的权重。所述传感器可以是全球定位系统传感器、加速度计、陀螺仪、雷达、相机或激光雷达中的一个。所述阈值可以是从卡方分布中所选择的值。
附图说明
18.图1是示例性车辆的框图。
19.图2是车辆中的数据流的框图。
20.图3是用于检测来自车辆的传感器的数据中的异常的示例性过程的过程流程图。
21.图4是用于处理数据以通过卡尔曼滤波器以操作车辆的示例性过程的过程流程图。
具体实施方式
22.计算机32包括处理器和存储指令的存储器,所述指令能够由所述处理器执行以进行以下操作:从车辆30的多个多维传感器34中的一个多维传感器34接收矢量的时间序列;确定矢量的加权移动均值;确定矢量的逆协方差矩阵;从多维传感器34接收当前矢量;确定当前矢量与加权移动均值之间的平方马哈拉诺比斯距离;以及响应于平方马哈拉诺比斯距离超过阈值而输出多维传感器34异常的指示符。通过使用所述逆协方差矩阵来确定所述平方马哈拉诺比斯距离。
23.参考图1,车辆30可以是任何乘用车或商用车,诸如轿车、卡车、运动型多用途车、跨界车、货车、小型货车、出租车、公共汽车等。
24.车辆30可以是自主或半自主车辆。也就是说,计算机32可被编程为完全地或在较小程度上独立于人类驾驶员的干预来操作车辆30。计算机32可被编程为基于来自传感器34、44(包括多维传感器34)的数据而操作推进装置36、制动系统38、转向系统40和/或其他车辆系统。出于本公开的目的,自主操作意指计算机32在没有来自人类驾驶员的输入的情况下控制推进装置36、制动系统38和转向系统40;半自主操作意指计算机32控制推进装置36、制动系统38和转向系统40中的一个或两个(或与人类驾驶员分开控制),而人类驾驶员控制其余部分;并且非自主操作意指人类驾驶员控制推进装置36、制动系统38和转向系统40。
25.计算机32是基于微处理器的计算装置,例如,电子控制器等。计算机32可包括处理器、存储器等。计算机32的存储器包括介质,所述介质用于存储可由处理器执行的指令并且用于电子地存储数据和/或数据库。计算机32可以是联接在一起的多个计算机。此外,计算机32可包括一个或多个专用电子电路,所述一个或多个专用电子电路包括针对特定操作而制造的asic,例如,用于处理传感器数据和/或传送传感器数据的asic。在另一示例中,计算机32可包括fpga,所述fpga是被制造为可由用户配置的集成电路。通常,在电子设计自动化中使用诸如vhdl(超高速集成电路硬件描述语言)的硬件描述语言来描述诸如fpga和asic的数字和混合信号系统。例如,asic是基于制造前提供的vhdl编程而制造的,而fpga内部的逻辑部件可基于例如存储在电连接到fpga电路的存储器中的vhdl编程来配置。在一些示例中,处理器、asic和/或fpga电路的组合可包括在计算机32中。
26.计算机32可通过通信网络42(诸如控制器局域网(can)总线、以太网、wifi、局域互连网(lin)、车载诊断连接器(obd-ii))和/或通过任何其他有线或无线通信网络发送和接收数据。计算机32可经由通信网络42通信地联接到推进装置36、制动系统38、转向系统40、传感器34、44以及其他部件。
27.车辆30的推进装置36产生能量并将能量转换成车辆30的运动。推进装置36可为常
规的车辆推进子系统,例如,常规的动力传动系统,其包括联接到将旋转运动传递到车轮的变速器的内燃发动机;电动动力传动系统,其包括电池、电动马达和将旋转运动传递到车轮的变速器;混合动力传动系统,其包括常规的动力传动系统和电动动力传动系统的元件;或任何其他类型的推进装置。推进装置36可包括与计算机32和/或人类驾驶员通信并从其接收输入的电子控制单元(ecu)等。人类驾驶员可经由例如加速踏板和/或换挡杆来控制推进装置36。
28.制动系统38通常是常规的车辆制动子系统并且抵抗车辆30的运动,由此使车辆30减慢和/或停止。制动系统38可包括摩擦制动器,诸如盘式制动器、鼓式制动器、带式制动器等;再生制动器;任何其他合适类型的制动器;或者它们的组合。制动系统38可包括与计算机32和/或人类驾驶员通信并从其接收输入的电子控制单元(ecu)等。人类驾驶员可经由例如制动踏板来控制制动系统38。
29.转向系统40通常是常规的车辆转向子系统并且控制车轮的转弯。转向系统40可以是具有电动助力转向的齿条与小齿轮系统、线控转向系统(这两者是已知的),或者任何其他合适的系统。转向系统40可包括与计算机32和/或人类驾驶员通信并从其接收输入的电子控制单元(ecu)等。人类驾驶员可经由例如方向盘来控制转向系统40。
30.传感器34、44包括多维传感器34和其他传感器44。“多维传感器”是可能在预处理(下文描述)之后将数据作为矢量的时间序列返回的传感器。其他传感器44可将数据作为标量值的时间序列或以某种其他形式返回。例如,其他传感器44可提供关于车辆30的操作的数据,例如车轮转速、车轮取向以及发动机和变速器数据(例如,温度、燃料消耗等)。
31.参考图2,多维传感器34中的至少一些可提供与车辆姿态相关的数据。出于本公开的目的,“车辆姿态”是对车辆30在空间中的描述,例如,车辆30在六个自由度x、y、z、侧倾、俯仰、横摆上的位置和取向;又如,车辆30在六个自由度上的运动。用于下述过程400的多维传感器34可包括至少一个全球定位系统(gps)传感器34a、至少一个加速度计34b、至少一个陀螺仪34c、至少一个雷达34d、至少一个光探测和测距(激光雷达)34e和至少一个相机34f。多维传感器34可检测车辆30的位置和/或取向。例如,多维传感器34可包括gps传感器34a;加速度计34b,诸如压电或微机电系统(mems);陀螺仪34c,诸如速率陀螺仪、环形激光陀螺仪或光纤陀螺仪;惯性测量单元(imu);和/或磁力计。多维传感器34可检测外部世界,例如,车辆30周围环境的对象和/或特性,诸如其他车辆、道路车道标记、交通灯和/或标志、行人等。例如,多维传感器34可包括雷达34d、扫描激光测距仪、激光雷达34e以及至少一个图像处理传感器(诸如相机34f)。多维传感器34直接地或在预处理(下文描述)之后以矢量的时间序列的形式提供关于车辆姿态的数据。出于本公开的目的,“时间序列”是随时间顺序地发布的一组数据。每个多维传感器34的时间间隔可以不同。
[0032]“矢量”是一组有序的值。传感器数据中包括的矢量可描述车辆30相对于外部环境的运动、位置和取向中的至少一个。例如,每个gps传感器34a以每个时间间隔提供二维矢量(纬度,经度)。每个加速度计34b以每个时间间隔提供3维加速度矢量(a
x
,ay,az)。每个陀螺仪34c以每个时间间隔提供角速度矢量(r
x
,ry,rz)。在预处理之后,每个雷达34d、相机34f和激光雷达34e均提供位置和取向矢量(x,y,z,r,p,h)。
[0033]“预处理”来自传感器34、44的数据意味着对来自传感器34、44的原始数据应用变换或算法,以使该数据适合于某种目的。多维传感器34中的一些多维传感器可能需要预处
理,而多维传感器34中的其他传感器可能不需要预处理。例如,通常gps传感器34a、加速度计34b和陀螺仪34c不需要预处理,而雷达34d、相机34f和激光雷达34e确实需要预处理。例如,针对雷达34d的预处理可以是雷达测程(radar odometry)56,针对相机34f的预处理可以是视觉测程58,而针对激光雷达34e的预处理可以是激光雷达测程60。测程块56、58、60基于从多维传感器34所接收的数据来确定该多维传感器34的位置和/或取向。块56、58、60可根据常规测程技术来操作。例如,用于执行视觉测程58的一种技术是:对输入图像应用特征检测;使用来自连续图像的对应特征,诸如使用卢卡斯方法来构建光流场;以及使用例如卡尔曼滤波器或连续图像之间的重投影误差的成本函数来从光流场估计相机34f的运动。存在用于视觉测程58以及类似地用于雷达测程56和激光雷达测程60的其他技术,例如:d.scaramuzza和r.siegwart的appearance-guided monocular omnidirectional visual odometry for outdoor ground vehicles,《ieee机器人学汇刊》,2008年,第24卷第1015-26页;ji zhang和sanjiv singh的loam:lidar odometry and mapping in real-time,《机器人科学与系统(rss)》,2010年;e.b.quist、p.c.niedfeldt和r.w.beard的radar odometry with recursive-ransac,《ieee航空航天和电子系统汇刊》,2016年8月,第52卷第4期第1618-30页。
[0034]
继续参考图2,由计算机32执行卡尔曼滤波器62来输出车辆姿态,所述卡尔曼滤波器从多维传感器34接收矢量。图4示出了用于确定车辆姿态并相应地操作车辆30的过程400,并且图2示出了在过程400期间发生的数据流。每个多维传感器34输出矢量的时间序列,其中一些是在对来自该多维传感器34的数据执行测程之后输出的。对于每个多维传感器34,如果检测到异常,则异常检测64用于阻止来自多维传感器34的矢量,或者如果没有检测到异常,则传递来自多维传感器34的矢量。出于本公开的目的,传感器数据中的“异常”是与噪声相比,更可能由于多维传感器34出现的问题(即,传感器34的故障、缺陷或损坏)或传感器34正测量的物体的物理变化而引起的变化。以下描述用于异常检测64的过程300。因此,卡尔曼滤波器62仅使用来自未检测到异常的多维传感器34的数据来确定车辆姿态。
[0035]
图3是示出用于检测来自多维传感器34中的一个多维传感器的数据中的异常的示例性过程300的过程流程图。计算机32的存储器存储用于执行过程300的步骤的可执行指令。计算机32针对可执行过程300的每个传感器34独立地执行过程300。在过程300开始时,计算机32选择阈值或确定初始逆协方差矩阵从多维传感器34接收第一矢量z1,以及为矢量的加权移动均值和逆协方差矩阵设置初始先前值。然后,只要车辆30开启,计算机32就循环执行以下步骤:从多维传感器34接收当前矢量zk;确定当前矢量zk与先前矢量的加权移动均值之间的平方马哈拉诺比斯距离d2;如果平方马哈拉诺比斯距离d2大于阈值或则输出异常的指示符;将先前矢量的加权移动均值更新为包含当前矢量zk;以及用当前矢量zk更新加权逆协方差矩阵计算机32以多维传感器34的刷新速度循环执行这些步骤,不同类型的多维传感器34的刷新速度可以不同。
[0036]
过程300在判定框305中开始,其中计算机32确定矢量z是否呈正态分布(有时称为高斯分布)。例如,计算机32的存储器可针对多维传感器34中的每一个存储指示来自该多维
传感器34的数据是否呈正态分布的指示符。可通过实验的方式确定每个多维传感器34是否产生正态分布。如果来自多维传感器34的矢量z呈正态分布,则过程300前进到框310以选择阈值如果矢量zz不呈正态分布或具有未知分布,则过程300前进到框315以选择阈值
[0037]
在框310中,在矢量z呈正态分布的情况下,从具有n个自由度和β的p值的卡方分布选择阈值自由度的数量n等于由多维传感器34生成的矢量z的长度,即矢量z的元素数。例如,gps传感器34a的自由度n为2,并且相机34f的自由度n为6。基于以经验确定来自多维传感器34a的数据的可变性(即,噪声)来选择值β。对于具有更大噪声的传感器34,值β以及因此阈值将更高,这意味着需要更大的偏差来将偏差分类为异常。卡方分布是一种已知的统计分布,因此一旦自由度n和值β已知,则例如通过在统计表中查找来确定阈值在框310之后,过程300前进到框320。
[0038]
在框315中,在矢量z非正态或未知的情况下,阈值基于切比雪夫不等式。自由度n和值β具有与卡方分布相同的含义。切比雪夫不等式是一种已知的统计关系,因此一旦自由度n和值β已知,则例如通过在统计表中查找来确定阈值对于给定的n和β,阈值比阈值更严格,即更难以满足。例如,如果n=2且β=0.0455,则阈值等于6.18,并且阈值等于43.96。在框315之后,过程300前进到框320。
[0039]
接下来,在框320中,计算机32将逆协方差矩阵初始化为接下来,在框320中,计算机32将逆协方差矩阵初始化为其中s为协方差矩阵,i为n
×
n单位矩阵,n为矢量z的长度(元素数),并且γ为逆方差(即沿对角线的s
–1的元素)的初始值。值γ可被选择为足够大,使得下面的框340中的平方马哈拉诺比斯距离d2的第一计算必然大于阈值或使得测量值初始被拒绝,直到在它们中建立了置信度为止。替代地,值γ可被选择为足够大,使得下面的框340中的平方马哈拉诺比斯距离d2的第一计算必然小于阈值或使得测量值初始被接受。
[0040]
接下来,在框325中,计算机32从来自多维传感器34的矢量z的时间序列接收第一矢量z1。
[0041]
接下来,在框330中,计算机32为加权移动均值和逆协方差矩阵设置初始值。星号(*)指示变量是平均值。加权移动均值(weighted moving mean)的初始值为第一矢量z1,即先前逆协方差矩阵的初始值是逆协方差矩阵的初始值即即
[0042]
接下来,在框335中,计算机32从来自多维传感器34的矢量z的时间序列接收当前矢量zk。索引k在第一次执行框335时为2,并且之后每次增加1。
[0043]
接下来,在框340中,计算机32确定当前矢量zk与加权移动均值之间的平方马哈拉诺比斯距离d2。通过使用逆协方差矩阵来确定平方马哈拉诺比斯距离d2,所述逆协方差矩阵初始如上文在框330中所确定,并且之后如下方在框360中所确定。平方马哈拉诺比斯距离d2是当前矢量zk与加权移动均值之间的差值、逆协方差矩阵以及当前矢量zk与加权移动值之间的差值的转置的矩阵积,即
[0044][0045]
接下来,在判定框345中,计算机32确定来自框340的平方马哈拉诺比斯距离d2是否超过来自框310或315的阈值或如果平方马哈拉诺比斯距离d2大于阈值或则过程300前进到框350。如果平方马哈拉诺比斯距离d2小于阈值或则过程300前进到框355。
[0046]
在框350中,计算机32输出多维传感器34异常的指示符。例如,计算机32可在多维传感器34的存储器中设置标志,即,指定检测到异常的值。计算机32还可向车辆30的乘员显示警告。替代地或另外地,计算机32可在识别经历异常的多维传感器34的车载诊断系统中设置诊断故障代码(dtc)等。在框350之后,过程300前进到框355。
[0047]
在框355中,计算机32将先前加权移动均值更新为包含当前矢量zk的新的加权移动均值新的加权移动均值是由权重α《1加权的当前矢量zk与由1

α加权的先前加权移动均值的总和,即,
[0048][0049]
不同传感器34的权重α可以不同。对于每个传感器34,通过执行过程300多次,每次使用不同的权重α值,并选择为该传感器34提供最准确数据的权重α值,以实验的方式选择权重α。上述针对新的加权移动均值的公式相当于对矢量z的时间序列应用呈指数降低的权重w,即其中
[0050]
w=[(1-α)
k α(1-α)
k-1 α(1-α)
k-2
ꢀ…ꢀ
α]
[0051]
z=[z
1 z2ꢀ…ꢀzk-1 zk]
t
[0052]
接下来,在框360中,计算机32用当前矢量将先前逆协方差矩阵更新为新的逆协方差矩阵新的逆协方差矩阵遵循以下公式:
[0053][0054]
其中
[0055][0056]
该公式对于新的逆协方差矩阵进行加权以有利于矢量z的新近度,即,在计算新的逆协方差矩阵时,较新的矢量z被赋予更大的权重。具体地,所述公式包含呈指数降低的权重。所述公式是递归的,并且与其他技术(诸如计算协方差矩阵,然后取该协方差矩阵的逆)相比,计算强度要小得多。有利的是,过程300从不需要直接计算协方差矩阵s

,仅需要计算逆协方差矩阵
[0057]
接下来,在判定框365中,计算机32确定车辆30是否仍在运行。如果车辆30仍在运行,则过程300返回到框335,以针对传感器数据的时间序列中的下一个矢量z
k 1
进行另一循环。如果车辆30不再运行,则过程300结束。
[0058]
图4是示出用于处理数据以通过卡尔曼滤波器62以操作车辆30的示例性过程400的过程流程图。计算机32的存储器存储用于执行过程400的步骤的可执行指令。作为过程400的总体概述,计算机32循环执行以下步骤:从多维传感器34中具有新的(即,由多维传感器34生成但尚未处理或预处理)数据的一个多维传感器接收传感器数据;对来自雷达34d、相机34f和激光雷达34e的任何新数据执行预处理,以将传感器数据转换为矢量z;检查矢量z的异常检测结果;如果多维传感器34没有异常,则将矢量传递到卡尔曼滤波器62;如果多维传感器34有异常,则阻止矢量到达卡尔曼滤波器62;运行卡尔曼滤波器62以确定车辆姿态x;以及使用来自卡尔曼滤波器62的车辆姿态x自主地操作车辆30。过程400与最频繁更新的多维传感器34的速率一样快地循环进行。只要车辆30开启,过程400就会继续。以上过程300针对多维传感器34中的每一个与过程400的一个实例并行运行。
[0059]
过程400在框405中开始,其中计算机32从多维传感器34中具有与车辆姿态相关的新数据的一个多维传感器接收传感器数据。由于过程400与多维传感器34的最频繁更新速率一样快地循环进行,因此多维传感器34中的至少一个将具有新数据。如果多个多维传感器34具有新数据,则过程400将在当前循环上继续处理来自多维传感器34中的一个多维传感器的数据,并且在从判定块445返回到该框405之后的下一个循环上将继续处理来自多维传感器34中的另一多维传感器的数据。对于某些多维传感器34(例如,gps传感器34a、加速度计34b和陀螺仪34c),传感器数据是在矢量z的时间序列中的当前矢量zk,如上所述。对于其余的多维传感器34(即雷达34d、相机34f和激光雷达34e),传感器数据分别是雷达数据、图像数据和激光雷达数据。
[0060]
接下来,在框410中,计算机32预处理并非矢量的时间序列格式的传感器数据,以便将该传感器数据转换成矢量z的时间序列中的当前矢量zk。例如,计算机32对来自雷达34d的雷达数据应用雷达测程56,对来自相机34f的图像数据应用视觉测程58,并且对来自激光雷达34e的激光雷达数据应用激光雷达测程60。如果新的传感器数据来自不需要预处理的多维传感器34(例如,gps传感器34a、加速度计34b或陀螺仪34c),则数据已经是矢量zk的形式。
[0061]
接下来,在框415中,计算机32检查在上述过程300的框340中是否已针对在框405
中返回数据的多维传感器34指示或标记了异常。
[0062]
接下来,在判定框420中,如果在框415中发现异常,则过程400前进到框430。如果在框415中没有发现异常,则过程400前进到框425。
[0063]
在框425中,计算机32阻止卡尔曼滤波器62接收矢量zk。
[0064]
在框430中,计算机32将矢量zk传递到卡尔曼滤波器62。
[0065]
在框425或框430之后,过程400前进到框435。在框435中,计算机32运行卡尔曼滤波器62以进行一次迭代,即一个时间步。(该卡尔曼滤波器62与可被运行用于预处理传感器数据的卡尔曼滤波器分开,如上所述)。卡尔曼滤波器62通过在预测步骤(即,使用预测方程预测下一时间步的车辆姿态和误差估计)和测量步骤(即,使用测量方程调整利用来自多维传感器34的测量值的预测)之间形成反馈回路来工作。如将更详细地解释的,如果卡尔曼滤波器62在框425中接收到矢量,则运行卡尔曼滤波器62以进行迭代包括执行预测步骤和测量步骤,并且如果计算机32阻止矢量传递到卡尔曼滤波器62,则运行卡尔曼滤波器62进行迭代包括在没有测量步骤的情况下执行预测步骤。
[0066]
卡尔曼滤波器62可为扩展卡尔曼滤波器。扩展卡尔曼滤波器的预测方程为:
[0067][0068]
p
k|k-1
=fkp
k-1|k-1fkt
q
[0069]
其中x为长度m的矢量,表示车辆姿态,抑扬符(^)表示变量是估计值,下标i|j指示考虑到通过时间步j≤i给定的信息,时间步i处的变量,u为长度l的矢量,表示控制输入,f(
·
)为根据先前的车辆姿态和控制输入预测当前车辆姿态的函数,p为x的误差协方差的m
×
m矩阵,f为函数f(
·
)的m
×
m雅可比矩阵,上标t为转置运算符,并且q为过程噪声协方差的m
×
m矩阵。例如,矢量x可为m矩阵。例如,矢量x可为其中x表示空间或角位置;v表示空间或角速度;a表示空间或角加速度;下标x,y,z表示空间维度;并且下标分别表示俯仰、侧倾和横摆。函数f(
·
)可以是在不存在过程噪声的情况下将先前车辆姿态x和当前控制输入u与当前车辆姿态x相关联的模型。函数f(
·
)的输出是与车辆姿态x相同长度的矢量。矢量u包含控制输入(诸如所施加的加速度、制动力和转向角)的值。矩阵f为该雅可比矩阵:
[0070][0071]
以下是测量方程:
[0072][0073][0074]
p
k|k
=(i-k
khk
)p
k|k-1
[0075]
其中k为m
×
n矩阵,表示卡尔曼增益,h为函数h(
·
)的n
×
m雅可比矩阵,h(
·
)为根据车辆姿态x预测测量矢量z的函数,r为测量噪声协方差的n
×
n矩阵,z为在框425中传递到卡尔曼滤波器62的长度n的矢量,并且i为m
×
m单位矩阵。矢量z为来自在框425中传递到卡
尔曼滤波器62的多维传感器34中的一个多维传感器的矢量,例如,如果矢量来自gps传感器34a,则z=(纬度,经度),如果矢量来自激光雷达34e,则z=(x
l
,y
l
,z
l
,r
l
,p
l
,h
l
),其中变量x,y,z,r,p,h为空间维度以及侧倾、俯仰和横摆;并且下标l表示激光雷达34e。函数h(
·
)可以是基于车辆姿态x预测测量矢量z的基于物理的模型。函数h(
·
)的输出是与测量矢量z的长度相同的矢量。矩阵h为该雅可比矩阵:
[0076][0077]
多维传感器34中的每一个都有不同的函数h(
·
),例如,h
gps
(
·
)用于gps传感器34a,h
l
(
·
)用于激光雷达34e等。
[0078]
如果在框430中阻止了矢量传递到卡尔曼滤波器62,则运行卡尔曼滤波器62仅包括预测步骤而不包括测量步骤。卡尔曼滤波器62执行上述预测方程。卡尔曼滤波器62不执行测量方程,而是将预测的车辆姿态和预测的误差协方差p
k|k-1
不变地传递到下一个时间步,即变为并且p
k|k-1
变为p
k|k
,这将在下一时间步的预测步骤中使用。
[0079]
接下来,在框440中,计算机32基于来自卡尔曼滤波器62的车辆姿态x自主或半自主地操作车辆30,即操作推进装置36、制动系统38和转向系统40中的至少一个。例如,众所周知,车辆姿态x可以是路径规划算法的输入。车辆姿态x是车辆30的当前状态,并且路径规划算法使用车辆姿态x来确定车辆30将从该当前状态遵循什么路径。然后,使用路径规划算法来生成用于推进装置36、制动系统38和转向系统40的指令。对于另一示例,车辆姿态x可以是对防抱死制动系统(abs)、车道居中系统等的输入。abs在决定是否激活并由此操作制动系统38时,可使用车辆姿态x(或车辆姿态x的一部分,诸如速度)。车道居中系统在决定是否激活并由此控制转向系统40时,可使用车辆姿态x(或车辆姿态x的一部分,诸如位置)。由于本文描述的车辆姿态x是基于过滤掉异常的传感器数据,因此车辆姿态x更准确或者以更大的置信度(即,更少的不确定性)实时已知,这意味着路径规划算法、abs、车道居中系统也可以更高的准确度或置信度使用。
[0080]
接下来,在判定框445中,计算机32确定车辆30是否仍在运行。如果车辆30仍在运行,则过程400返回到框405,以针对新传感器数据的下一批次进行另一循环。如果车辆30不再运行,则过程400结束。
[0081]
一般来讲,所描述的计算系统和/或装置可采用多种计算机操作系统中的任一种,包括但决不限于以下版本和/或种类:ford应用程序;applink/智能装置连接中间件;microsoft操作系统;microsoft操作系统;unix操作系统(例如,由加利福尼亚州红木海岸的甲骨文公司发布的操作系统);由纽约州阿蒙克市的国际商业机器公司发布的aix unix操作系统;linux操作系统;由加利福尼亚州库比蒂诺市的苹果公司发布的mac osx和ios操作系统;由加拿大滑铁卢的黑莓有限公司发布的黑莓操作系统;以及由谷歌公司和开放手机联盟开发的安卓操作系统;或由qnx软件系统公司提供的车载娱乐信息平台。计算装置的示例包括但不限于车载计算机、计算机工作站、服务器、台式机、笔记本、膝上型计算机或手持计算机、或某一其他计算系统和/或装置。
[0082]
计算装置通常包括计算机可执行指令,其中所述指令可由诸如以上列出的那些的一个或多个计算装置执行。可以由使用多种编程语言和/或技术创建的计算机程序编译或解译计算机可执行指令,所述编程语言和/或技术单独地或者组合地包括但不限于java
tm
、c、c 、matlab、simulink、stateflow、visual basic、java script、python、perl、html等。这些应用中的一些可以在虚拟机(诸如java虚拟机、dalvik虚拟机等)上编译和执行。一般来说,处理器(例如,微处理器)例如从存储器、计算机可读介质等接收指令,并且执行这些指令,由此执行一个或多个过程,包括本文所描述的过程中的一者或多者。此类指令和其他数据可以使用各种计算机可读介质来存储和传输。计算装置中的文件通常是存储在诸如存储介质、随机存取存储器等计算机可读介质上的数据的集合。
[0083]
计算机可读介质(又被称为处理器可读介质)包括参与提供可以由计算机(例如,由计算机的处理器)读取的数据(例如,指令)的任何非暂时性(例如,有形)介质。此类介质可以采取许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质可以包括例如光盘或磁盘以及其他持久性存储器。易失性介质可以包括例如通常构成主存储器的动态随机存取存储器(dram)。此类指令可由一种或多种传输介质(包括同轴电缆、铜线和光纤(包括具有联接到ecu的处理器的系统总线的导线))传输。计算机可读介质的常见形式包括例如软盘、软磁盘、硬盘、磁带、任何其他磁性介质、cd-rom、dvd、任何其他光学介质、穿孔卡片、纸带、任何其他具有孔图案的物理介质、ram、prom、eprom、快闪eeprom、任何其他存储器芯片或盒式磁带,或计算机可从中读取的任何其他介质。
[0084]
本文所述的数据库、数据存储库或其他数据存储装置可以包括用于存储、存取/访问和检索各种数据的各种机制,包括分层数据库、文件系统中的文件集、专用格式的应用数据库、关系型数据库管理系统(rdbms)、非关系数据库(nosql)、图形数据库(gdb)等。每个这样的数据存储装置通常包括在采用诸如以上提及中的一种的计算机操作系统的计算装置内,并且以各种方式中的任何一种或多种来经由网络进行访问。文件系统可以从计算机操作系统访问,并且可以包括以各种格式存储的文件。除了用于创建、存储、编辑和执行已存储的程序的语言(诸如上述pl/sql语言)之外,rdbms还通常采用结构化查询语言(sql)。
[0085]
在一些示例中,系统元件可以被实施为一个或多个计算装置(例如,服务器、个人计算机等)上、存储在与其相关联的计算机可读介质(例如,磁盘、存储器等)上的计算机可读指令(例如,软件)。计算机程序产品可以包括存储在计算机可读介质上的用于执行本文所描述功能的此类指令。
[0086]
在附图中,相同的附图标记指示相同的元件。另外,可以改变这些元件中的一些或全部。关于本文描述的介质、过程、系统、方法、启发等,应当理解,虽然此类过程等的步骤已被描述为按照某一有序的顺序发生,但是可以通过以与本文所述顺序不同的顺序执行所述步骤来实践此类过程。还应当理解,可以同时执行某些步骤,可以添加其他步骤,或者可以省略本文描述的某些步骤。
[0087]
除非本文作出相反的明确指示,否则权利要求中使用的所有术语意图给出如本领域技术人员所理解的普通和通常的含义。特定地,除非权利要求相反地叙述明确限制,否则使用诸如“一个”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一个或多个。
[0088]
已经以说明性方式描述了本公开,并且应理解,已经使用的术语旨在具有描述而非限制性词语的性质。“响应于”和“在确定
……
时”的使用指示因果关系,而不仅是时间关
系。形容词“第一”贯穿本文档用作标识符,并且不意图表示重要性、顺序或数量。鉴于以上教示,本公开的许多修改和变化是可能的,并且本公开可以不同于具体描述的其他方式来实践。
[0089]
根据本发明,提供了一种计算机,所述计算机具有处理器和存储指令的存储器,所述指令能够由所述处理器执行以进行以下操作:从传感器接收矢量的时间序列;确定所述矢量的加权移动均值;确定所述矢量的逆协方差矩阵;从所述传感器接收当前矢量;确定所述当前矢量与所述加权移动均值之间的平方马哈拉诺比斯距离,其中通过使用所述逆协方差矩阵来确定所述平方马哈拉诺比斯距离;以及响应于所述平方马哈拉诺比斯距离超过阈值而输出所述传感器异常的指示符。
[0090]
根据实施例,所述传感器为第一传感器,并且所述指令还包括对来自包括所述第一传感器的多个传感器的矢量运行卡尔曼滤波器,并响应于输出所述异常的所述指示符而防止所述卡尔曼滤波器从所述第一传感器接收所述矢量。
[0091]
根据实施例,运行所述卡尔曼滤波器包括当所述卡尔曼滤波器被阻止从所述第一传感器接收所述矢量时在具有预测步骤但没有测量步骤的情况下执行所述卡尔曼滤波器的迭代。
[0092]
根据实施例,所述矢量描述包括所述传感器的车辆相对于外部环境的运动、位置和取向中的至少一个。
[0093]
根据实施例,所述指令还包括用于基于所述卡尔曼滤波器的输出操作所述车辆的推进装置、制动系统和转向系统中的至少一个的指令。
[0094]
根据实施例,所述逆协方差矩阵被加权以有利于所述矢量的新近度。
[0095]
根据实施例,所述逆协方差矩阵包含呈指数降低的权重。
[0096]
根据实施例,所述加权移动均值包含呈指数降低的权重。
[0097]
根据实施例,所述传感器是全球定位系统传感器、加速度计、陀螺仪、雷达、相机或激光雷达中的一个。
[0098]
根据实施例,所述阈值是从卡方分布中所选择的值。
[0099]
根据本发明,一种方法包括:从传感器接收矢量的时间序列;确定所述矢量的加权移动均值;确定所述矢量的逆协方差矩阵;从所述传感器接收当前矢量;确定所述当前矢量与所述加权移动均值之间的平方马哈拉诺比斯距离,其中通过使用所述逆协方差矩阵来确定所述平方马哈拉诺比斯距离;以及响应于所述平方马哈拉诺比斯距离超过阈值而输出所述传感器异常的指示符。
[0100]
根据实施例,所述传感器为第一传感器,所述方法还包括对来自包括所述第一传感器的多个传感器的矢量运行卡尔曼滤波器,并响应于输出所述异常的所述指示符而防止所述卡尔曼滤波器从所述第一传感器接收所述矢量。
[0101]
根据实施例,运行所述卡尔曼滤波器包括当所述卡尔曼滤波器被阻止从所述第一传感器接收所述矢量时在具有预测步骤但没有测量步骤的情况下执行所述卡尔曼滤波器的迭代。
[0102]
根据实施例,所述矢量描述包括所述传感器的车辆相对于外部环境的运动、位置和取向中的至少一个。
[0103]
根据实施例,上述发明的特征进一步在于基于所述卡尔曼滤波器的输出操作所述
车辆的推进装置、制动系统和转向系统中的至少一个。
[0104]
根据实施例,所述逆协方差矩阵被加权以有利于所述矢量的新近度。
[0105]
根据实施例,所述逆协方差矩阵包含呈指数降低的权重。
[0106]
根据实施例,所述加权移动均值包含呈指数降低的权重。
[0107]
根据实施例,所述传感器是全球定位系统传感器、加速度计、陀螺仪、雷达、相机或激光雷达中的一个。
[0108]
根据实施例,所述阈值是从卡方分布中所选择的值。
再多了解一些

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

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

相关文献