一种自动驾驶故障仿真系统及方法与流程

文档序号:33713179发布日期:2023-04-01 01:16阅读:120来源:国知局
一种自动驾驶故障仿真系统及方法与流程

1.本技术涉及自动驾驶仿真领域,具体而言,涉及一种自动驾驶故障仿真系统及方法。


背景技术:

2.自动驾驶仿真测试主要是以数学建模的方式将自动驾驶的应用场景进行数字化,建立尽可能接近真实世界的系统模型,通过软件仿真实现对自动驾驶系统的测试验证。仿真测试一定程度上可以取代实车路测。自动驾驶的原理是通过传感器实时感知到车辆及周边环境的情况,再通过智能系统进行规划决策,最后通过控制系统执行驾驶操作。硬件方面包含传感器,芯片,控制单元等模块。软件方面包含定位,感知,规划,控制等模块。外界的输入就是整个驾驶环境,包含道路基础设施,车流,天气,光照,风雪,周边建筑物等等。自动驾驶系统对安全性和可靠性的要求很高,不仅要针对正常功能需求进行设计,还需要进行容错设计,确保在故障发生后有相应的应急措施可供执行,来提高安全性和可靠性。然而,车辆使用较长时间后,关键传感器(imu、摄像头)的紧固件因老化会导致标定失效问题,imu内部电气特性的变化会导致零偏,尺度因子误差问题,关键执行机构转向系统因磨损移位,也会产生零偏问题。而且这些问题均因老化等因素引起,大概率会同时发生。而现有仿真及故障注入技术并没有解决上述问题。
3.因此,精确了解故障发生可能造成的后果、创造场景和条件来测试容错设计是否满足要求,对自动驾驶系统来说很重要。


技术实现要素:

1.有鉴于此,本技术提供一种自动驾驶故障仿真系统和方法,能够模拟自动驾驶车辆中一个或多个关键传感器、执行机构,在长时间使用后因老化磨损导致的故障情形,并通过高效、安全、低成本的仿真途径进行故障测试。
2.为了解决上述技术问题,本技术第一方面提供一种自动驾驶故障仿真系统,包括仿真环境,用于对自动驾驶车辆进行仿真,其特征在于,还包括:仿真模块,包括传感器模块及执行模块,所述传感器模块和所述执行模块被设置于所述自动驾驶车辆上,并分别用于生成原始传感数据和执行执行指令;传感故障注入模块,用于接收所述仿真模块传输的所述原始传感数据,还用于注入传感故障,生成实际传感数据;控制器模块,用于基于所述实际传感数据,生成原始执行指令;执行故障注入模块,用于接收所述控制模块传输的所述原始执行指令,还用于注入执行故障,生成实际执行指令;其中,所述执行模块执行所述实际执行指令以使得所述自动驾驶车辆运动,所述传感器模块基于所述运动和所述仿真环境来生成所述原始传感数据。
3.根据本技术的一种优选实施方式,所述传感器模块包括imu模块,所述原始传感数据包括原始加速度和原始角速度;所述传感故障包括尺度因子和imu零偏。
4.根据本技术的一种优选实施方式,所述注入传感故障,生成实际传感数据,包括:
按照如下方法注入所述尺度因子和所述imu零偏:[a
x
,ay,az]1=[f
ax
·ax
+baise
ax
,f
ay
·ay
+baise
ay
,f
az
·az
+baise
az
][ω
x
,ωy,ωz]1=[f
ωx
·
ω
x
+baise
ωx
,f
ωx
·
ωy+baise
ωy
,f
ωx
·
ωz+baise
ωz
]其中,[a
x
,ay,az]为所述原始加速度,[ω
x
,ωy,ωz]为所述原始角速度;所述实际传感数据包括实际加速度[a
x
,ay,az]1和实际角速度[ω
x
,ωy,ωz]1;f
*
为所述尺度因子,baise
*
为所述imu零偏。
[0005]
根据本技术的一种优选实施方式,所述传感故障还包括标定故障;所述注入传感故障,生成实际传感数据,还包括:按照如下方法注入所述标定故障:按照如下方法注入所述标定故障:其中,所述实际传感数据还包括实际加速度和实际角速度δθ
imu
、δψ
imu
、δφ
imu
分别为所述imu模块在俯仰方向、偏航方向、横滚方向上注入的标定故障;r
*
为绕相应坐标轴旋转的转换矩阵。
[0006]
根据本技术的一种优选实施方式,所述传感器模块包括摄像头模块,所述原始传感数据包括原始位置和原始朝向;所述传感故障包括姿态角故障。
[0007]
根据本技术的一种优选实施方式,所述注入传感故障,生成实际传感数据,包括:按照如下方法注入所述姿态角故障:方法注入所述姿态角故障:其中,(xi,yi)为所述原始位置,ψi为所述原始朝向;所述实际传感数据包括实际位置和实际朝向为δθc、δψc、δφc为所述摄像头模块在俯仰方向、偏航方向、横滚方向上注入的标定故障;r
*
为绕相应坐标轴旋转的转换矩阵。
[0008]
根据本技术的一种优选实施方式,所述执行模块包括方向盘模块,所述原始执行指令包括原始方向盘指令;所述执行故障包括方向盘零偏。
[0009]
根据本技术的一种优选实施方式,所述注入执行故障,生成实际执行指令,包括:按照如下方法注入所述方向盘零偏:其中,steer
cmd
为所述原始方向盘指令,所述实际执行指令包括实际方向盘指令baise
steer
为所述方向盘零偏。
[0010]
根据本技术的一种优选实施方式,所述仿真系统为虚拟仿真系统,所述各个模块通过进程通信实现消息交互。
[0011]
根据本技术的一种优选实施方式,所述传感器模块、所述执行模块或所述控制器模块的至少之一为硬件设备;所述硬件设备与所述传感故障注入模块和/或所述执行故障
注入模块之间通过物理接口实现通信。
[0012]
根据本技术的一种优选实施方式,所述传感器模块为硬件传感器;所述注入传感故障,还包括:获取用户输入的传感故障,并基于所述传感故障实时进行仿真。
[0013]
根据本技术的一种优选实施方式,使用第一用户传感器,获取用户手动对所述硬件传感器进行的第一调整;基于所述第一调整,提供所述传感故障,以及进行所述实时仿真。
[0014]
根据本技术的一种优选实施方式,所述执行模块为硬件执行机构;所述注入执行故障,还包括:获取用户输入的执行故障,并基于所述执行故障实时进行仿真。
[0015]
根据本技术的一种优选实施方式,使用第二用户传感器,获取用户手动对所述硬件执行机构进行的第二调整;基于所述第二调整,提供所述执行故障,以及进行所述实时仿真。
[0016]
根据本技术的一种优选实施方式,所述传感故障注入模块还包括第一开关,用于开启或关闭所述传感故障注入模块;当所述第一开关处于关闭时,使用所述原始传感数据进行仿真;当所述第一开关处于开启时,使用所述实际传感数据进行仿真。
[0017]
根据本技术的一种优选实施方式,所述执行故障注入模块还包括第二开关,用于开启或关闭所述执行故障注入模块;当所述第二开关处于关闭时,使用所述原始执行指令进行仿真;当所述第二开关处于开启时,使用所述实际执行指令进行仿真。
[0018]
为了解决上述技术问题,本技术第二方面提供一种自动驾驶故障仿真方法,应用于仿真系统中,所述仿真系统包括仿真环境,用于对自动驾驶车辆进行仿真,其特征在于,包括:生成原始传感数据;接收所述原始传感数据,并注入传感故障,生成实际传感数据;基于所述实际传感数据,生成原始执行指令;接收所述原始执行指令,并注入执行故障,生成实际执行指令;基于所述实际执行指令控制所述自动驾驶车辆运动,并基于所述运动和所述仿真环境来生成所述原始传感数据。
[0019]
根据本技术的一种优选实施方式,所述原始传感数据包括imu模块的原始加速度和原始角速度;所述传感故障包括尺度因子和imu零偏。
[0020]
根据本技术的一种优选实施方式,所述注入传感故障,生成实际传感数据,包括:按照如下方法注入所述尺度因子和所述imu零偏:[a
x
,ay,az]1=[f
ax
·ax
+baise
ax
,f
ay
·ay
+baise
ay
,f
az
·az
+baise
az
][ω
x
,ωy,ωz]1=[f
ωx
·
ω
x
+baise
ωx
,f
ωx
·
ωy+baise
ωy
,f
ωx
·
ωz+baise
ωz
]其中,[a
x
,ay,az]为所述原始加速度,[ω
x
,ωy,ωz]为所述原始角速度;所述实际传感数据包括实际加速度[a
x
,ay,az]1和实际角速度[ω
x
,ωy,ωz]1;f
*
为所述尺度因子,baise
*
为所述imu零偏。
[0021]
根据本技术的一种优选实施方式,所述传感故障还包括标定故障;所述注入传感故障,生成实际传感数据,还包括:按照如下方法注入所述标定故障:按照如下方法注入所述标定故障:
其中,所述实际传感数据还包括实际加速度和实际角速度δθ
imu
、δψ
imu
、δφ
imu
分别为所述imu模块在俯仰方向、偏航方向、横滚方向上注入的标定故障;r
*
为绕相应坐标轴旋转的转换矩阵。
[0022]
根据本技术的一种优选实施方式,所述原始传感数据包括摄像头模块的原始位置和原始朝向;所述传感故障包括姿态角故障。
[0023]
根据本技术的一种优选实施方式,所述注入传感故障,生成实际传感数据,包括:按照如下方法注入所述姿态角故障:按照如下方法注入所述姿态角故障:其中,(xi,yi)为所述原始位置,ψi为所述原始朝向;所述实际传感数据包括实际位置和实际朝向为δθc、δψc、δφc为所述摄像头模块在俯仰方向、偏航方向、横滚方向上注入的标定故障;r
*
为绕相应坐标轴旋转的转换矩阵。
[0024]
根据本技术的一种优选实施方式,所述原始执行指令包括方向盘模块的原始方向盘指令;所述执行故障包括方向盘零偏。
[0025]
根据本技术的一种优选实施方式,所述注入执行故障,生成实际执行指令,包括:按照如下方法注入所述方向盘零偏:其中,steer
cmd
为所述原始方向盘指令,所述实际执行指令包括实际方向盘指令baise
steer
为所述方向盘零偏。
[0026]
根据本技术的一种优选实施方式,所述注入传感故障,还包括:获取用户输入的传感故障,并基于所述传感故障实时进行仿真。
[0027]
根据本技术的一种优选实施方式,使用第一用户传感器,获取用户手动对硬件传感器进行的第一调整;基于所述第一调整,提供所述传感故障,以及进行所述实时仿真。
[0028]
根据本技术的一种优选实施方式,所述注入执行故障,还包括:获取用户输入的执行故障,并基于所述执行故障实时进行仿真。
[0029]
根据本技术的一种优选实施方式,使用第二用户传感器,获取用户手动对硬件执行机构进行的第二调整;基于所述第二调整,提供所述执行故障,以及进行所述实时仿真。
[0030]
根据本技术的自动驾驶故障仿真系统和方法,通过在自动驾驶车辆的仿真中对传感器和/或执行机构进行故障注入,进而基于注入的故障重新使用传感器进行感知以及使用执行机构进行执行,能够模拟自动驾驶车辆中一个或多个关键传感器和/或执行机构,在长时间使用后因老化磨损导致的故障之后,自动驾驶车辆可能出现何种感知或行驶上的改变,从而通过高效、安全、低成本的仿真途径进行故障测试。
附图说明
[0031]
为了使本技术实施例所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本技术实施例的具体实施例。但需声明的是,下面描述的附
图仅仅是本技术实施例本技术实施例示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
[0032]
图1是本技术提供的一种自动驾驶故障仿真系统的框架示意图。
[0033]
图2是本技术提供的一种自动驾驶故障仿真方法的流程步骤图。
具体实施方式
[0034]
现在将参考附图更全面地描述本技术实施例的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本技术实施例仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本技术实施例更加全面和完整,更加便于将发明构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
[0035]
在符合本技术实施例的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
[0036]
在对于具体实施例的描述中,本技术实施例描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本技术实施例的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
[0037]
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0038]
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0039]
应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但这不应受这些定语限制。这些定语乃是用以区分一者与另一者。例如,第一器件亦可称为第二器件而不偏离本技术实施例实质的技术方案。
[0040]
术语“和/或”或者“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
[0041]
本技术所提供的自动驾驶故障仿真系统,可以包括软件形式的系统、硬件形式的系统或软硬件结合的系统。例如,仿真系统可以是运行于如个人计算机或服务器等计算设备上的包括有虚拟仿真环境、虚拟自动驾驶车辆、虚拟传感器等虚拟模块的仿真软件,此时,仿真系统所提供的仿真环境可以是完全运行于计算设备中的虚拟环境,该虚拟环境可以支持添加、删除、修改各种环境因素;也可以是包括有待测试的车辆动力机构、制动机构、硬件传感器等硬件设备的仿真系统,此时仿真系统所提供的仿真环境可以包括搭载的实验场地、实验道路等实际环境。本技术提供的自动驾驶故障仿真方法可以有前述的自动驾驶故障仿真系统实现。
[0042]
仿真系统用于对自动驾驶车辆进行仿真。自动驾驶车辆可以为虚拟仿真环境中的虚拟自动驾驶车辆,也可以为实际仿真环境中的实际自动驾驶车辆。不论自动驾驶车辆为虚拟的或实际的,其均可以为完整车辆,即包括完整感知、决策和执行系统的车辆,也可以仅为车辆的一部分,例如仅包括车载感知、车载决策或车载执行的部件。例如,当仿真系统
为仿真软件时,自动驾驶车辆可以是仿真软件所提供的虚拟自动驾驶车辆,该虚拟自动驾驶车辆包括有设置在车辆上的虚拟传感器、以及用于控制车辆运动的虚拟控制系统及车载动力学模型等;也可以是被搭载在实际仿真环境下的实际自动驾驶车辆,例如放置于实验场地中的车辆,该自动驾驶车辆可以为完整的一辆车,也可以仅为车上的传感器部件、车辆域控制器或运动执行机构等。不同实施例中自动驾驶车辆所包含部件的范围可以基于该实施例下所实现方法的需要进行配置,本技术对此不作限制。
[0043]
下面结合图1,具体地说明本技术所提供的自动驾驶故障仿真系统,用于对自动驾驶车辆进行仿真。如图1所示,仿真系统10包括仿真模块100,传感故障注入模块200,控制器模块300,执行故障注入模块400以及仿真环境500。其中,仿真模块100包括传感器模块110和执行模块120,二者被设置于自动驾驶车辆上,并分别用于生成原始传感数据和执行执行指令。传感器模块110将原始传感数据传输至传感故障注入模块200,传感故障注入模块对其注入传感故障,生成实际传感数据,并传输至控制器模块300。控制器模块300基于实际传感数据,生成原始执行指令,并传输至执行故障注入模块400。执行故障注入模块400接收该原始执行指令,并注入执行故障,生成实际执行指令,并传输至执行模块120。进而,执行模块120执行该实际执行指令,控制自动驾驶车辆运动。当车辆运动时,车辆状态会发生改变,也即车辆在仿真环境500中的状态会发生改变。传感器模块110可以基于此运动以及仿真环境500,生成原始传感数据,并重新发生至传感故障注入模块200,实现了闭环的仿真。
[0044]
传感器模块110可以包括自动驾驶车辆上搭载的各类型的传感器,例如imu、摄像头或是激光雷达等,执行模块可以包括自动驾驶车辆上搭载的各类型执行机构,包括方向盘、转向助力机构或是制动系统等。
[0045]
可以理解的是,仿真系统在仿真开始运行后实现闭环仿真。当仿真启动,自动驾驶车辆还未运动处于初始状态时,此时传感器模块110基于自动驾驶车辆的运动和仿真环境500来生成原始传感数据,即包括了传感器模块110直接基于自动驾驶车辆的初始状态和仿真环境500来生成原始传感数据。
[0046]
本技术提供的自动驾驶故障仿真系统,能够在自动驾驶车辆的传感侧和执行侧注入相应的故障数据,并实时地在仿真系统中进行仿真,能够模拟自动驾驶车辆中关键传感器和执行机构的故障问题,实现高效、安全、低成本的故障测试。并且,该仿真系统提供了一个完整闭环的仿真,能够完全耦合车辆上所出现的传感故障和执行故障,传感故障会影响执行效果并且执行故障也会影响传感效果,从而更加贴近于车辆的实际情况,实现了更好的仿真效果。
[0047]
在一个实施例中,传感器模块110包括imu模块。imu模块可以为虚拟的imu模块或实际的imu部件,例如,当自动驾驶车辆为虚拟车辆时,imu模块为设置于车辆上的虚拟imu,而当自动驾驶车辆为实际车辆时,imu模块为待测试的imu部件。imu模块生成原始传感数据,包括原始加速度和原始角速度。为了实现对imu更接近于实际情况的仿真,imu的传感故障可以包括尺度因子和imu零偏。尺度因子表示了imu的数据与真值的比例,而imu零偏为imu的数据偏离真值的大小。此两种传感故障时imu运行中所常见的故障。例如,由于imu的零偏会导致imu感知数据误差的累计,逐渐影响imu的实际使用,因此有必要对此进行故障测试。
[0048]
进一步地,可以按照如下方法注入尺度因子和imu零偏:
[a
x
,ay,az]1=[f
ax
·ax
+baise
ax
,f
ay
·ay
+baise
ay
,f
az
·az
+baise
az
]
ꢀꢀꢀꢀꢀꢀ
(1)[ω
x
,ωy,ωz]1=[f
ωx
·
ω
x
+baise
ωx
,f
ωx
·
ωy+baise
ωy
,f
ωx
·
ωz+baise
ωz
]
ꢀꢀꢀꢀ
(2)其中,[a
x
,ay,az]为原始加速度,[ω
x
,ωy,ωz]为原始角速度;实际传感数据包括实际加速度[a
x
,ay,az]1和实际角速度[ω
x
,ωy,ωz]1;f
*
为所述尺度因子,包括上述计算公式(1)的f
ax
,f
ay
,f
az
和计算公式(2)的f
ωx
,f
ωy
,f
ωz
;baise
*
为所述imu零偏,包括上述计算公式(1)的baise
ax
,baise
ay
,baise
az
和计算公式(2)的baise
ωx
,baise
ωy
,baise
ωz

[0049]
此时,实际加速度[a
x
,ay,az]1和实际角速度[ω
x
,ωy,ωz]1作为实际传感数据被传输至后续的控制器模块300。
[0050]
在实际故障注入中,尺度因子f
*
正常值为1,为所述imu零偏baise
*
的正常值为0,用户可以在此基础上上下调节尺度因子和/或imu零偏以实现故障注入。
[0051]
在一种实施方式中,进一步地还可以对imu的标定故障进行仿真。此时,传感故障还包括标定故障。具体地,可以按照如下方法注入标定故障:还包括标定故障。具体地,可以按照如下方法注入标定故障:其中,所述实际传感数据还包括实际加速度和实际角速度δθ
imu
、δψ
imu
、δφ
imu
分别为所述imu模块在俯仰方向、偏航方向、横滚方向上注入的标定故障;r
*
为绕相应坐标轴旋转的转换矩阵,包括上述计算公式(3)和(4)的r
x
,ry,rz,其具体计算方式如下:式如下:式如下:
[0052]
此时,实际加速度和实际角速度作为实际传感数据被传输至后续的控制器模块300。
[0053]
在实际故障注入中,δθ
imu
、δψ
imu
、δφ
imu
的正常值为0,用户可以在此基础上上下调节标定故障以实现故障注入。
[0054]
据此,本实施例提供的仿真系统能够对车辆上imu的多个类型的故障进行仿真,模拟在imu出现故障时对后续控制器等车辆其他模块以及车辆整体运动的影响,安全、高效地获取出现故障可能导致的后果。
[0055]
在一个实施例中,传感器模块110包括摄像头模块。摄像头模块可以为虚拟的摄像头模块或实际的摄像头部件,例如,当自动驾驶车辆为虚拟车辆时,摄像头模块为设置于车辆上的虚拟摄像头,而当自动驾驶车辆为实际车辆时,摄像头模块为待测试的摄像头部件。摄像头模块生成原始传感数据,包括仿真场景中物体的原始位置和原始朝向。为了实现对
摄像头更接近于实际情况的仿真,摄像头的传感故障可以包括姿态角故障。姿态角故障表示了摄像头所被安装的位置出现了偏差,进而导致其探测的物体的位置和朝向会出现偏差,影响摄像头实际感知的准确性,因此有必要对此进行故障测试。
[0056]
进一步地,可以按照如下方法注入姿态角故障:进一步地,可以按照如下方法注入姿态角故障:其中,(xi,yi)为所述原始位置,ψi为所述原始朝向;所述实际传感数据包括实际位置和实际朝向为δθc、δψc、δφc为所述摄像头模块在俯仰方向、偏航方向、横滚方向上注入的标定故障;r
*
为绕相应坐标轴旋转的转换矩阵,包括上述计算公式(8)的r
x
,ry,rz,r
*
的具体计算方式参照计算公式(5)-(7)。
[0057]
据此,本实施例提供的仿真系统能够对车辆上摄像头的重要故障进行仿真,模拟在摄像头出现故障时对后续控制器等车辆其他模块以及车辆整体运动的影响,安全、高效地获取出现故障可能导致的后果。
[0058]
在一个实施例中,执行模块120包括方向盘模块。方向盘模块可以为虚拟的方向盘模块或实际的方向盘部件,例如,当自动驾驶车辆为虚拟车辆时,方向盘模块为设置于车辆上的虚拟方向盘,而当自动驾驶车辆为实际车辆时,摄像头模块为待测试的方向盘部件,如搭载在测试台架上的方向盘。方向盘模块执行的原始执行指令包括原始方向盘指令。为了实现对方向盘更接近于实际情况的仿真,方向盘的执行故障可以包括方向盘零偏。方向盘零偏表示了方向盘实际转动的角度与所需要转动的角度之间出现了偏差,影响后续车辆运动朝向的准确性,因此有必要对此进行故障测试。
[0059]
进一步地,可以按照如下方法注入方向盘零偏:其中,steer
cmd
为所述原始方向盘指令,所述实际执行指令包括实际方向盘指令baise
steer
为所述方向盘零偏。
[0060]
在实际故障注入中,baise
steer
的正常值为0,用户可以在此基础上上下调节方向盘零偏以实现故障注入。
[0061]
据此,本实施例提供的仿真系统能够对车辆上方向盘的重要故障进行仿真,模拟在方向盘出现故障时对车辆实际运动的影响,安全、高效地获取出现故障可能导致的后果。
[0062]
可以理解的是,前述各个实施例和实施方式所提供的不同的传感器模块110和执行模块120的具体形式可以互相组合,从而实现更多的故障仿真功能,模拟更多传感器或执行机构同时出现故障的情形。
[0063]
本技术所提供的仿真系统10可以为虚拟仿真系统,其所包括的各个模块,包括传感器模块110、传感故障注入模块200、控制器模块300、执行故障注入模块400、执行模块120以及仿真环境500之间,通过进程通信实现消息交互或数据传输。传感故障或执行故障也通过进程通信被注入。因此,此仿真系统可以实现软件在环仿真,能够有效地通过虚拟仿真模拟自动驾驶车辆出现的故障,实现对自动驾驶算法或软件的调试与开发。
[0064]
本技术所提供的仿真系统10还可以包括部分硬件设备,例如,可以是传感器模块
为实际的摄像头、imu等硬件设备,和/或执行模块为实际的方向盘、转向助力机构或制动系统等硬件设备,和/或控制器模块为实际的车辆域控制器,等。因此,此仿真系统可以实现硬件在环仿真。当仿真系统包括了硬件设备时,该硬件设备将会被搭载在实验场地中,并通过can总线、以太网等物理接口实现与其他模块之间的通信,例如与传感故障注入模块和/或执行故障注入模块之间的通信。可以理解的是,此处的物理接口实现通信包括有线连接或无线连接的方式。
[0065]
进一步地,当传感器模块110为硬件传感器时,可以通过用户输入传感故障来实现传感故障仿真。也即,仿真系统10获取用户输入的传感故障,并基于该输入的传感故障实时进行仿真。仿真系统可以使用第一用户传感器来获取用户手动对硬件传感器进行的第一调整,并基于该第一调整,提供传感故障,并进行实时仿真。例如,当硬件传感器为摄像头时,用户进行的第一调整可以为手动调整摄像头的位置和/或朝向,来模拟摄像头出现了故障;此时仿真系统10通过第一用户传感器来感知获取用户进行的位置和/或朝向调整,并计算得到具体的调整数据作为传感故障,进而将该故障输入作为故障仿真中的传感故障,进行实时仿真。
[0066]
进一步地,当执行模块120为硬件执行机构时,同样可以通过用户输入执行故障来实现执行故障仿真。也即,仿真系统10获取用户输入的执行故障,并基于该输入的执行故障实时进行仿真。仿真系统可以使用第二用户传感器来获取用户手动对硬件传感器进行的第二调整,并基于该第二调整,提供执行故障,并进行实时仿真。例如,当硬件执行机构为方向盘时,用户进行的第二调整可以为手动调整方向盘的基准转角来模拟方向盘出现了故障;此时仿真系统10通过第二用户传感器来感知获取用户进行的转角调整,并计算得到具体的调整数据作为执行故障,进而将该故障输入作为故障仿真中的执行故障,进行实时仿真。
[0067]
因此,当仿真系统10包括部分硬件设备,实现了硬件在环仿真时,本实施例提供的仿真系统10能够直接通过用户的手动输入来注入传感故障或执行故障,或同时注入传感故障和执行故障,并实时进行仿真,即能够在用户手动调整的同时,直观地提供该调整对仿真会带来何种影响。由于用户手动对硬件设备进行调整,相对于在虚拟界面中输入故障或调整参数,能够让用户更直接地感知到硬件设备出现的故障,故本实施例还能够为用户提供一种更直观地进行故障仿真的仿真系统10。
[0068]
在一个实施例中,本技术提供的仿真系统10的传感故障注入模块200还包括第一开关,用于开启或关闭所述传感故障注入模块200。当第一开关处于关闭时,传感故障注入模块200被关闭,即此时不注入传感故障,使用原始传感数据进行仿真;当第一开关处于开启时,传感故障注入模块200被开启,即此时注入传感故障,使用实际传感数据进行仿真。
[0069]
在一个实施例中,本技术提供的仿真系统10的执行故障注入模400还包括第二开关,用于开启或关闭所述执行故障注入模块400。当第二开关处于关闭时,执行故障注入模块400被关闭,即此时不注入执行故障,使用原始指令执行控制车辆运动并进行仿真;当第一开关处于开启时,执行故障注入模块400被开启,即此时注入执行故障,使用实际执行指令控制车辆运动并进行仿真。
[0070]
可以理解的是,前述实施例所提供的第一开关和第二开关可以单独使用,也可以同时使用,从而实现对传感故障注入模块200和/或执行故障注入模块400的灵活控制。
[0071]
本技术提供的自动驾驶故障仿真系统,实现了故障注入模块和仿真模块的分离设
计,仿真模块只负责真值的仿真,标准化了仿真模块接口;进而仿真模块可以自研,也可集成第三方仿真软件,系统构建灵活度提高。并且仿真系统从结果的角度进行故障注入,不用模拟故障机理,实现更简单,可以覆盖的更多故障机理。
[0072]
下面结合图2,对本技术提供的自动驾驶故障仿真方法进行说明,该方法应用于仿真系统中,所述仿真系统包括仿真环境,用于对自动驾驶车辆进行仿真。仿真系统、自动驾驶车辆可以参见前述本技术提供的仿真系统中的说明。本技术提供的自动驾驶故障仿真方法包括以下步骤:
[0073]
步骤s100:生成原始传感数据。
[0074]
此步骤通过传感器模块进行。仿真系统中的仿真模块包含有该传感器模块。
[0075]
步骤s200:注入传感故障,生成实际传感数据。
[0076]
此步骤通过仿真系统中的传感故障注入模块进行。传感故障注入模块接收传感器模块生成的原始传感数据,并注入传感故障而生成实际传感数据。
[0077]
步骤s300:基于所述实际传感数据,生成原始执行指令。
[0078]
此步骤通过仿真系统中的控制器模块进行。
[0079]
步骤s400:并注入执行故障,生成实际执行指令。
[0080]
此步骤通过仿真系统中的执行故障注入模块进行。执行故障注入模块接收控制器模块生成的原始执行指令,并注入执行故障而生成实际执行指令。
[0081]
步骤s500:执行实际执行指令。
[0082]
此步骤通过执行模块进行。仿真系统中的仿真模块包含有该执行模块。执行实际执行指令,也即基于实际执行指令控制自动驾驶车辆运动;同时,基于该车辆的运动和仿真系统提供的仿真环境,生成原始传感数据,从而实现了闭环的仿真。
[0083]
可以理解的是,仿真系统在仿真开始运行后实现闭环仿真。当仿真启动,自动驾驶车辆还未运动处于初始状态时,此时基于自动驾驶车辆的运动和仿真环境来生成原始传感数据,具体地表现为直接基于自动驾驶车辆的初始状态和仿真环境来生成原始传感数据。
[0084]
本技术提供的自动驾驶故障仿真方法,能够在自动驾驶车辆的传感侧和执行侧注入相应的故障数据,并实时地在仿真系统中进行仿真,能够模拟自动驾驶车辆中关键传感器和执行机构的故障问题,实现高效、安全、低成本的故障测试。并且,该仿真方法提供了一个完整闭环的仿真,能够完全耦合车辆上所出现的传感故障和执行故障,传感故障会影响执行效果并且执行故障也会影响传感效果,从而更加贴近于车辆的实际情况,实现了更好的仿真效果。
[0085]
在一个实施例中,原始传感数据包括imu模块生成的原始加速度和原始角速度,传感故障包括imu模块的尺度因子和imu零偏。进一步地,可以按照前述计算公式(1)和(2)注入尺度因子和imu零偏。此时,实际加速度[a
x
,ay,az]1和实际角速度[ω
x
,ωy,ωz]1为生成的实际传感数据。
[0086]
进一步地,传感故障还可以包括imu的标定故障,并按照计算公式(3)-(7)注入标定故障。此时,实际加速度和实际角速度为生成的实际传感数据。
[0087]
据此,本实施例提供的仿真方法能够对车辆上imu的多个类型的故障进行仿真,模拟在imu出现故障时对后续控制器等车辆其他模块以及车辆整体运动的影响,安全、高效地获取出现故障可能导致的后果。
[0088]
在一个实施例中,原始传感数据包括摄像头模块生成的仿真场景中物体的原始位置和原始朝向,传感故障包括摄像头模块的姿态角故障。进一步地,可以按照前述计算公式(8)和(9)注入姿态角故障。
[0089]
据此,本实施例提供的仿真方法能够对车辆上摄像头的重要故障进行仿真,模拟在摄像头出现故障时对后续控制器等车辆其他模块以及车辆整体运动的影响,安全、高效地获取出现故障可能导致的后果。
[0090]
在一个实施例中,原始执行指令包括方向盘模块的原始方向盘指令,执行故障包括方向盘零偏。进一步地,可以按照前述计算公式(10)注入方向盘零偏。
[0091]
据此,本实施例提供的仿真方法能够对车辆上方向盘的重要故障进行仿真,模拟在方向盘出现故障时对车辆实际运动的影响,安全、高效地获取出现故障可能导致的后果。
[0092]
可以理解的是,前述各个实施例和实施方式所提供的对不同的传感器模块和执行模块所实现的仿真方法可以互相组合,从而实现更多的故障仿真功能,模拟更多传感器或执行机构同时出现故障的情形。
[0093]
在一个实施例中,可以通过用户输入传感故障来实现传感故障仿真。也即,仿真系统获取用户输入的传感故障,并基于该输入的传感故障实时进行仿真。一个实施方式中,仿真系统的传感器模块可以是硬件传感器;仿真系统获取用户手动对硬件传感器进行的第一调整,并基于该第一调整,提供传感故障,并进行实时仿真。示例性地,基于第一用户传感器来获取用户的第一调整。
[0094]
在一个实施例中,可以通过用户输入执行故障来实现执行故障仿真。也即,仿真系统获取用户输入的执行故障,并基于该输入的执行故障实时进行仿真。一个实施方式中,仿真系统的执行模块可以是硬件执行机构;仿真系统获取用户手动对硬件传感器进行的第二调整,并基于该第二调整,提供执行故障,并进行实时仿真。示例性地,基于第一用户传感器来获取用户的第一调整。
[0095]
因此,当仿真系统包括部分硬件设备,实现了硬件在环仿真时,以上仿真方法能够直接通过用户的手动输入来注入传感故障或执行故障,或同时注入传感故障和执行故障,并实时进行仿真,即能够在用户手动调整的同时,直观地提供该调整对仿真会带来何种影响。由于用户手动对硬件设备进行调整,相对于在虚拟界面中输入故障或调整参数,能够让用户更直接地感知到硬件设备出现的故障。
[0096]
本技术提供的以上各仿真方法的实施例或实施方式中的具体实现方式可以进一步参照前文本技术提供的仿真系统,此处不再赘述。
[0097]
本技术的自动驾驶故障仿真系统及方法,能够同时模拟一个或多个关键传感器或执行机构在长时间使用后因老化磨损导致的故障情形,与自动驾驶算法模块软件闭环后,可以高效、安全、低成本获取故障发生后对自动驾驶系统的影响和测试自动驾驶系统针对故障设计的容错措施。
[0098]
本领域技术人员可以理解,实现上述实施例的全部或部分步骤被实现为由数据处理设备(包括计算机)执行的程序,即计算机程序。在该计算机程序被执行时,可以实现本技术提供的上述方法步骤。而且,所述的计算机程序可以存储于计算机可读存储介质即计算可读存储介质中,该存储介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组
合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、磁盘、光盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合比如多个存储介质组成的存储阵列,例如磁盘或磁带存储阵列。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读存储介质能够实现本技术的上述方法。进一步,所述的存储介质不限于集中式存储,其也可以是分布式存储,例如基于云计算的云存储。应当理解,为了精简本技术并帮助本领域的技术人员理解本技术的各个方面,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时在单个实施例中进行描述,或者参照单个图进行描述。并且,不应将本技术解释成示例性实施例中包括的特征均为本专利权利要求的必要技术特征。
[0099]
应当理解,可以对本技术的实施例中包括的模块等进行自适应性地改变以把它们设置在与该实施例不同的系统中。可以把实施例的系统包括的不同模块组合成一个模块,也可以把它们分成多个子模块、子单元或子组件。本技术的实施例中的模块可以以硬件方式实现,也可以以一个或者多个处理器上运行的软件方式实现,或者以它们的组合实现。
[0100]
以上所述的具体实施例,对本技术的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本技术的具体实施例而已,并不用于限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1