CN109417477B - 用于自动化车辆的安全架构 - Google Patents
用于自动化车辆的安全架构 Download PDFInfo
- Publication number
- CN109417477B CN109417477B CN201780015446.3A CN201780015446A CN109417477B CN 109417477 B CN109417477 B CN 109417477B CN 201780015446 A CN201780015446 A CN 201780015446A CN 109417477 B CN109417477 B CN 109417477B
- Authority
- CN
- China
- Prior art keywords
- data
- primary
- output
- determining
- security
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000004044 response Effects 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 26
- 230000002411 adverse Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000006399 behavior Effects 0.000 description 11
- 230000001960 triggered effect Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0055—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
- G05D1/0077—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements using redundant signals or controls
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Traffic Control Systems (AREA)
- Hardware Redundancy (AREA)
- Safety Devices In Control Systems (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
一种安全架构***,在一方面,所述安全架构***包括第一级,所述第一级包括:主单元,所述主单元生成用于执行正常***功能的主要数据;次单元,所述次单元生成用于执行替代***功能的次要数据;主安全门,所述主安全门耦接到所述主单元,响应于确定所述主要数据的有效性,所述主安全门提供所述主要数据作为主要输出;以及次安全门,所述次安全门耦接到所述次单元,响应于确定所述次要数据的有效性,所述次安全门提供所述次要数据作为次要输出。所述***还包括输出选择器,所述输出选择器耦接到所述第一级的主安全门和次安全门,响应于确定所述主要数据和次要数据的有效性,所述输出选择器提供***输出。
Description
相关申请的交叉引用
本申请要求2016年1月5日提交的美国临时专利申请No.62/387,804的优先权,该临时专利申请的全部内容通过引用并入本申请。
关于联邦科研或开发赞助的声明
本发明是在美国陆军许可No.W900KK-11-C-0025的政府支持下做出的。美国政府对本申请具有某些权利。
技术领域
本申请总体涉及自动驾驶技术,更具体地,涉及用于自动驾驶的安全架构***和技术。
背景技术
无人驾驶车辆软件的复杂程度超越了现今可用的软件安全工程技术。软件安全标准定义了在创建和验证软件时要采用的程序。虽然是必要的,但根据当前标准制定的程序可能不足以确保自动驾驶车辆内的自动化软件的安全。在一些情况下,用于高级自动化的方法(例如机器学习)不能简单地使用传统软件测试的方法来验证。因此,独立的运行时不变的监控器(runtime invariant monitors)已经被用于防火墙安全关键性(firewallsafety criticality),进入架构的小子集,从而将资源密集的软件-安全工程技术由复杂自动化软件转而集中到更简单的监视组件上。但迄今为止,这种技术大多被成功用于远程控制或遥控的无人驾驶车辆中。目前尚不清楚如何能最有效地将运行时不变的监控器用于减小由自动化功能(例如规划和控制)造成的安全风险。
发明内容
本申请描述了一种用于自动化车辆的架构,其将任意的自动化算法合并到保持严格安全要求的***中。在该架构中,自动化组件被允许任意地、甚至恶意地失效,同时更高完整性(例如,更高的安全完整性等级)的“安全门”组件支撑安全要求,其中安全门组件可以在不需要自动化技术的情况下被构建。一组架构级(stage)基于可重复使用的架构模式被创建,用于制图、规划和执行安全轨迹。每个级都包括主“执行器/检查器”对,并包括可选的次“执行器/检查器”对以在主执行器/检查器对失效的情况下提供降级模式运行。在本申请中,“执行”表示执行自动化控制,而“检查”表示确认控制信号是可以安全执行的。如果成功应用,则该执行器/检查器原则可以作为合适的选项被安全标准采用,用于构建可靠的***。在使用执行器/检查器架构模式的已知架构中,如果执行器运行错误,则检查器关闭整个功能(两个模块),这样的结果是失效-无反应(fail-silent)***(即,任何失效都导致组件无反应,有时也称为失效-停止(fail-stop),或在适当情况下称为失效-安全(fail-safe))。这可能会对自控***提出挑战,因为自控***通常要求失效后可运行(failoperational)的***行为(例如,即使存在自动化失效,飞行器也必须保持飞行)。本发明中描述的架构通过使用多通道方案来解决此问题,以确保在一个或潜在的多个组件失效时可以继续运行。
在一方面,本发明描述了一种安全架构***,所述安全架构***包括第一级(stage),所述第一级包括主单元,所述主单元生成用于执行正常***功能的主要数据;次单元,所述次单元生成用于执行替代***功能的次要数据;主安全门,所述主安全门耦接到所述主单元,响应于确定所述主要数据的有效性,所述主安全门提供所述主要数据作为主要输出;以及次安全门,所述次安全门耦接到所述次单元,响应于确定所述次要数据的有效性,所述次安全门提供所述次要数据作为次要输出。所述***还包括输出选择器,所述输出选择器耦接到所述第一级的主安全门和次安全门,响应于确定所述主要数据和次要数据的有效性,所述输出选择器提供***输出。
本发明的实施方案可包括以下一个或多个特征。响应于由所述次安全门提供的许可包线,所述主安全门可以确定所述主要数据的有效性。所述***可包括一个或多个额外的级,所述一个或多个额外的级包括第二级,其中所述第二级的主要数据输出提供至所述第一级的主单元的输入,所述第二级的次要数据输出提供至所述第一级的次单元的输入。所述次安全门可以确定所述次要数据是否在预设时间窗口内被接收,以确定所述次要数据是否有效。所述次安全门可包括缓冲器,响应于确定所述次要数据的有效性,所述缓冲器储存所述次要数据。响应于确定所述次要数据是无效的,所述次单元可以提供之前存储的次要数据作为所述次要输出。所述***输出可以包括控制数据,所述控制数据用于操控车辆。
在另一方面,本发明描述了一种方法,所述方法包括:利用一个或多个处理器生成主要数据,用于执行正常***功能;利用所述一个或多个处理器生成次要数据,用于执行替代***功能;响应于确定所述主要数据的有效性,利用所述一个或多个处理器提供所述主要数据作为第一级的主要输出;响应于确定所述次要数据的有效性,利用所述一个或多个处理器提供所述次要数据作为所述第一级的次要输出;以及响应于确定所述主要数据和次要数据的有效性,利用所述一个或多个处理器提供***输出。
本发明的实施方案可包括以下一个或多个特征。确定所述主要数据的有效性可响应于许可包线。生成所述主要数据可包括通过第二级的主要数据输出接收主要输入;生成所述次要数据可包括通过第二级的次要数据输出接收次要输入。确定所述次要数据的有效性可包括确定所述次要数据是在预设时间窗口内生成的。所述方法可包括响应于确定所述次要数据的有效性,存储所述次要数据。所述方法可包括响应于确定所述次要数据是无效的,提供之前存储的次要数据作为所述第一级的次要输出。所述***输出可包括控制数据,所述控制数据用于操控车辆。
在又一方面,本发明描述了一种***,所述***包括:主规划器单元,所述主规划器单元生成主要路径数据,用于将设备从第一位置移动到第二位置;安全规划器单元,所述安全规划器单元生成安全路径数据,用于在所述设备根据所述主要路径数据移动期间出现一个或多个不利情况时移动所述设备;主规划器安全门,所述主规划器安全门从所述主规划器单元接收所述主要路径数据,确定所述主要路径数据是否规定以安全的方式根据所述主要路径数据移动所述设备,以及响应于确定所述主要路径数据规定以安全的方式根据所述主要路径数据移动所述设备,提供所述主要路径数据作为验证的主要路径输出;安全规划器安全门,所述安全规划器安全门从所述安全规划器单元接收所述安全路径数据,确定所述安全路径数据是否规定移动所述设备以避免所述一个或多个不利情况,以及响应于确定所述安全路径数据规定移动所述设备以避免所述一个或多个不利情况,提供所述安全数据作为验证的安全路径输出;主轨迹执行器单元,所述主轨迹执行器单元接收所述验证的主要路径输出,并根据所述验证的主要路径输出,自所述设备的当前路径点生成主要轨迹数据;安全轨迹执行器单元,所述安全轨迹执行器单元接收所述验证的安全路径输出,并根据所述验证的安全路径输出,自所述设备的当前路径点生成安全轨迹数据;主轨迹安全门,所述主轨迹安全门从所述主轨迹执行器单元接收所述主要轨迹数据,确定所述主要轨迹数据是否与所述设备的当前状态一致,以及响应于确定所述主要轨迹数据与所述设备的当前状态一致,提供所述主要轨迹数据作为验证的主要轨迹输出;安全轨迹安全门,所述安全轨迹安全门从所述安全轨迹执行器单元接收所述安全轨迹数据,确定所述安全轨迹数据是否与所述设备的当前状态一致,以及响应于确定所述安全轨迹数据与所述设备的当前状态一致,提供所述安全轨迹数据作为验证的安全轨迹输出;优先级选择器,所述优先级选择器耦接到所述主轨迹安全门以接收所述验证的主要轨迹输出、耦接到所述安全轨迹安全门以接收所述验证的安全轨迹输出、以及耦接到控制器以提供控制数据,所述优先级选择器提供以下输出中的一个作为控制数据:所述验证的主要轨迹输出(如果接收到所述验证的主要轨迹输出)、所述验证的安全轨迹输出(如果仅接收到所述验证的安全轨迹输出)、或者默认输出(如果所述验证的主要轨迹输出和验证的安全轨迹输出都没被接收到)。
本发明的实施方案可包括以下一个或多个特征。所述安全轨迹执行器单元可生成许可包线,所述许可包线指定最小加速度、最大加速度、最小减速度、最大减速度、最小曲率变化率,以及最大曲率变化率;以及所述主要轨迹安全门可确定所述主要轨迹数据是否在所述许可包线指定的数值之内,以确定所述主要轨迹数据是否与所述设备的当前状态一致,并响应于确定所述主要轨迹数据在所述许可包线指定的数值之内,提供所述验证的主要轨迹输出。所述安全轨迹安全门可确定是否在预设时间窗口内接收到所述安全轨迹数据,以确定所述安全轨迹数据是否与所述设备的当前状态一致。所述安全轨迹安全门可包括缓冲器,响应于确定所述安全轨迹数据与所述设备的当前状态一致,所述缓冲器存储所述安全轨迹数据。响应于确定所述安全轨迹数据与所述设备的当前状态不一致,所述安全轨迹安全门可访问之前存储的安全轨迹数据,可确定所述之前存储的安全轨迹数据是否与所述设备的当前状态一致,并响应于确定所述之前存储的安全轨迹数据与所述设备的当前状态一致,提供所述之前存储的安全轨迹数据作为所述验证的安全轨迹输出。所述设备可包括车辆,所述一个或多个不利情况包括以下情况中的至少一个:阻碍所述车辆根据所述主要路径数据移动的情况,和车辆组件失效的情况,所述车辆组件失效的情况使得根据所述主要路径数据移动所述车辆无法实现。
前述的全部或部分可作为计算机程序产品被实施,所述计算机程序产品包括存储在一个或多个非暂时性机器可读存储介质上并且可在一个或多个处理设备上执行的指令。前述的全部或部分可作为装置、方法或电子***被实施,所述装置、方法或电子***可包括一个或多个处理设备以及存储器以存储实施所述功能的可执行指令。
可通过实施本说明书中描述的技术方案来实现以下一个或多个潜在优点。复杂自动化算法和可靠的软件***之间的缺口可以通过允许将自动化组件集成到高可信性的框架中来桥接。即使当个别组件(例如自动化组件)以任意不当的方式(例如,个别组件的意外故障和恶意不安全行为)失效时,此框架也可确保安全的***运行。另外,即使当单个组件失效或由于不安全的组件级行为而必须被关闭时,也可提供失效-运行***级行为。可提供多样化的功能模块以减少发生共模失效的可能,也可提供降级模式行为,例如,在主功能失效时执行安全任务。
附图和以下说明中阐述了一个或多个实施方案的细节。尽管描述了特定的实施方式,但仍存在其他的实施方式,这些其他的实施方式可以包括与以下示出和描述的运行方式和组件不同的运行方式和组件。通过说明书、附图和权利要求书,其它特征、目标及优点将显而易见。
附图说明
图1示出了一个流程图,该流程图高层次、多级地描述了用于自动化地面行驶车辆的自动化能力。
图2示出了一个***的框图,该***用于省去将自动化软件开发到安全关键(safecritical)标准的需要。
图3示出了基于栅格的二进制代价地图(cost map)。
图4示出了安全自动化架构的双通道版本的一般性示例的框图。
图5示出了安全自动化架构的***实例化的示例的框图。
图6示出了占据栅格(occupancy grid)的示例的图,该占据栅格用于移动规划。
图7示出了占据栅格的示例的图,该占据栅格用于移动规划以对倒下的树做出反应。
图8示出由自动化设备安全架构***执行的程序的示例的流程图。
具体实施方式
本申请描述了一种通用的架构,该架构允许具有任意不当失效模式的自动化组件集成到高可靠性的框架中。在该架构中,允许自动化组件失效,同时“安全门”(safetygate)组件支撑安全要求。虽然本申请在自动化地面行驶车辆(AGV)的背景下描述了该架构,但是该架构通用于任何自动化***中的应用,包括但不限于完全自动化地面行驶车辆、半自动化地面行驶车辆、空中交通工具以及完全或部分自动化的其他机器人***。
作为示例,图1是一个流程图100,其高度概括了应当在AGV中可靠实现的能力。在102,AGV构建周围环境的模型。该模型在某种程度上描述了检测安全风险所需的信息,包括前方车辆、其他交通情况、行人、道路上的物体等等。可以从来自多个传感器的数据中构建模型,也可以使用先前的地图。
在104,AGV规划能通过前述环境并满足安全要求的轨迹。这可通过使用路径规划算法来实现。例如,路径规划器可以寻找避开障碍物并维持稳定的轨迹。在106,AGV执行该轨迹。这些能力中的每一个能力都应当在AGV的软件架构中被可靠地实施,并且应被其安全状态中的要求支持。
这种自动化行为的分解使得每个算法解决多个级中的一个级,包括将传感器读数融合到地图中的模型、寻找至那些地图上的目标的路径的概率路线图规划器、以及执行该路径的路径跟踪算法。因为架构包含在控制输出上的“简单检查”,如果在单个控制算法的有限范围内可以完成,那么这些检查可以更简单。因此,可以通过对自动化***的每个级创建检查来简化检查。
本申请描述了可以在任何自动化处理级内被实例化的架构模式,以保证发送到下游级的输出。该模式适用于所有自动化功能和其它类似***结构和功能的一般范畴,并且允许在一个级中替换不同的自动化算法而不中断其他级的操作。根据该架构的***可以具有一个或多个级。作为该模式的示例,本申请描述了适合于规划和执行级的技术。该架构模式还适用于混有不太可靠的组件(例如,非专门设计的软件组件)和较可靠的组件(例如,安全关键组件)的非自动化应用。
应用可靠性模式
该技术涉及应用已经证实可靠的模式以可靠地规划和执行安全的轨迹。在减轻软件设计缺陷时,通过在两个不同的计算机上运行相同的软件来提供冗余可能是无效的,因为根据预期,如果一个缺陷被激活,软件的两个副本将因同样的软件缺陷而同时发生失效。这种不同软件的使用(也称为多版本编程)需要自动化软件的每个副本都是安全关键(safety critical)的,因此与单副本相比,开发软件的成本将翻倍(或更多)。对于自动化软件,如何创建甚至一个具有必要功能的高完整性(high integrity)软件副本都可能是未知的,这可能使得这种方法不可行。
图2示出了***200的框图,该***可省去将全功能自动化软件开发到安全关键标准的需求。图2所示的***200被称为单工架构(Simplex architecture)。该单工架构包括两个不同的控制组件:复杂子***202和安全子***204。复杂子***202可以是复杂的控制算法,其难以被开发到足够的完整性水平。安全子***204可提供与复杂子***202类似但简化的控制特性,但是通过使用高完整性的实施方式来提供。与复杂的实施方式相比,高完整性的实施方式可能更简单而因此优化程度较低。如果复杂子***202发生失效,则安全子***204可以具有可靠的回退能力。单工架构可以用于以安全的方式集成高性能但较少验证的技术。在单工架构中,如果复杂子***202的输出可能导致不安全的***状态,那么决策逻辑负责使设备206与复杂子***202断开。当预测到不安全状况时,安全子***204被置于控制中以避免事故。
正确地实施单工架构可以在同一架构中同时提供性能和可靠性,这将相当有价值。标称性能(nominal performance)由复杂、高性能的控制子***202确定,而最差性能由安全子***204限制。高成本的验证和核实的范围集中在安全子***204和决策逻辑208上,如果设计正确,那么安全子***204和决策逻辑208都是相对简单的组件。然而,实现这些益处可能需要仔细的设计分析并严格遵守要求。在单工架构中,存在两个执行器(安全子***204、复杂子***202)和一个检查器(决策逻辑208)。
单工架构对于AGV的可靠轨迹规划和执行具有一些作用。在AGV中,复杂子***202可以使用传统的机器人路径规划算法。安全子***204可以是安全关闭控制子***(例如,以可控方式使车辆停止)。然而,设计挑战仍然存在。
一个仍存在的设计挑战包括确定满足安全子***204的要求的“安全规划器”是否可以被可行地实施。一个用于领导/追随护航规划器的示例包括规划***,该规划***使用紧急策略库(maneuver library)来保证安全轨迹总是可用的。
另一仍存在的设计挑战包括设计逻辑,该设计逻辑可确定何时启用安全子***204(例如,决策逻辑208)。这可能是具有挑战性的,因为它需要评估由复杂子***202生成的轨迹安全性的能力。此外,决策逻辑208应当是高完整性的组件,因为其具有启用/禁用安全子***的车辆控制的能力。
决策逻辑208包括“轨迹评估”组件,该组件评估由复杂子***202产生的轨迹。如果该组件确定轨迹是不安全的,则它会阻止复杂子***202输出。该组件将复杂子***202包在安全门架构内,以使其在确定轨迹不安全时无反应地失效。实施该组件的可行性涉及轨迹评估算法是否可以以能够验证的方式实施。为此,可以利用“评估比规划更简单”的概念。路径规划是在车辆的控制空间上的搜索问题,其可能十分宽泛,以至于应当采用复杂和随机化算法来找到实际解决方案。通过比较,评估通过该控制空间的单个路径的安全性是以下事项的相对简单的操作:(i)在基于栅格的二进制代价地图(如图3中的代价300)上对齐命令轨迹;(ii)通过代价地图单元模拟通过路径(例如,路径302);以及(iii)如果一个单元不可穿越(例如,与图3中地图300的暗单元304相交)则拒绝该路径,否则就接受它。
为了该讨论,假定环境模型包含足够的信息来表示所有障碍物。模型表示的一个示例包括代价地图,其为一个常规的栅格,对穿过车辆前方的给定空间离散单元的“代价”编码。简单的代价度量可以是标称地平面上方的单元中的物体的高度,其可以与一般路面上的通行有关,因为通常平坦的道路表面使得物体高度成为可穿越性的直观分量。当在非常复杂的表面(诸如激进的越野通行)上行驶时,“标称地平面”的概念可能变得不太有用,车辆运动的前向模拟可以用于评估看起来直接的可穿越性特征,诸如有效的斜率。然而,即使在良好的一般路面条件下,误差源(例如传感器校准)也可以使简单的可穿越性分析混乱。
如果复杂子***202无反应地失效(通过决策逻辑208,在复杂子***202生成不安全轨迹时断开其连接),则决策逻辑208的要求被简化,如果在指定时间窗口内未从复杂子***202接收到命令,则安全子***204被置于车辆的控制中。强制安全规划器轨迹终止于安全和停止的状态可以确保轨迹在有限的规划范围内被生成。通过限制规划范围,安全轨迹的生成在计算上是可行的,并且可以完全存在于车辆本地的已知构型空间(CSPACE)区域内,从而在执行紧急轨迹控制时消除遇到超出传感器范围的障碍物的可能性。以停止状态终止安全规划器轨迹可能是必要的,以避免在执行安全操纵之后,车辆终止在不可避免碰撞的状态——无论未来采取什么控制动作,都将发生碰撞。
例如,假设生成安全操纵以紧急转向避开一棵树,在操纵结束时车辆已经返回到其原始速度。虽然安全操纵可能已经成功地避开了树,但是操纵的结束状态可能导致车辆不能及时停止,以避开在操纵开始时处于车辆的本地传感器半径之外的巨石。不以零速度结束的轨迹可能导致车辆与先前未知的巨石发生碰撞。
在单工架构中,决策逻辑208具有至少一个失效后运行的部件,因为复杂子***202提供优化的性能但不可信。决策逻辑208随时准备切换到运行安全子***204。因为决策逻辑208可能无法检测安全子***204是否是不安全的,所以安全子***204(其是执行器,而不是检查器)是高完整性且失效后运行的,而决策逻辑208也是高完整性的。决策逻辑208可以是失效-运行的或失效-安全的,其中“安全”行为导致至安全子***204的切换。相反,本申请中所描述的架构不要求任何执行器是失效后运行的,也不要求任何执行器具有高度完整性。
架构概览
本公开描述的安全架构包括可重复使用的设计模式,该可重复使用的设计模式可用作任何机器人或其他自动化或半自动化***的安全控制的基础,也可以用作必须构建为高可靠性和低可靠性组件的集合的任何***的安全控制的基础。此外,该模式提供失效-运行的***级行为,而不需要任何失效后运行的组件块,并且不需要任何高度完整性的执行器自动化块。通过定义控制***中的对象种类之间的关系,在较大的通用自动化***环境中,一般的车辆安全通行问题和和实施这些概念所必需的信息要求和可靠性是可以被理解的。这种形式化的结构不仅有助于更好地理解眼下的问题,而且还通过模块化提供益处,包括要求的明确沟通和改进的可维护性。
图4是示出安全自动化架构400的双通道版本的一般示例的框图。架构400的左边部分包括主单元402、主安全门404、安全单元406、安全安全门和缓冲器408。架构400的左边部分可以以流水线的方式重复一次或多次。架构400的右边部分包括用于最终驱动解决方法的可选优先级选择器410。
架构400包括“主”和“安全”通道,主通道和安全通道通过***的层链接在一起,直到在某些点处单个命令输出(诸如马达控制命令)被提供。优先级选择器410在所述通道之间进行裁决。如果从主通道和安全通道都可获得输出,则优先级选择器410发送主通道输出。如果只有安全通道的输出可用,则优先级选择器410发送安全通道输出。在任何其他情况下,优先级选择器410发送运动停止(MSTOP)命令,该命令是一个低级别后补手段,使车辆停止,比如踩制动器并切断节油器,或展开用于飞行器的降落伞。
架构400的益处源于以下事实:用于在两个通道(即,执行器)中生成输出的单元402、406可具有低的完整性级别,并且实际上每个单元都可以任意地失效。如果在主单元402或安全单元406中发生未处理的失效,则正确实例化的架构扔将保持运行并且仍将满足安全要求。如果主单元和次单元都发生失效,则***将仍然保持安全,但是下游级将被委派执行***恢复(例如,通过执行MSTOP)。这避免了从执行器单元认证或完全确保安全性的需要。换而言之,主单元402和安全单元406都不是安全关键的,因为安全由相应的检验器来保证。然而,值得注意的是,如果主单元或安全单元不可靠,则车辆可能遇到可用性问题,即架构400将超过预期地更频繁地切换到安全通道来使车辆停止或降低车辆性能。
架构400中的两个“安全门”单元404、408负责检查主单元402和安全单元406的输出,如果这些输出不安全,则安全门单元404、408将无反应地失效。这些是高完整性的组件,但可能无反应地失效。用于特定应用的安全门的实例化可能需要仔细的设计工作;然而,在大多数预期情况下,相比于将主单元402和安全单元406开发到高等级的精确度和完整性,这将花费更少的资源(特别是在验证和确认方面)。因此,该方案放宽了对执行器的完整性要求,并且允许使用失效-停止的检查器,同时还提供失效-运行的整体架构。
架构400对优先级选择器410提出更严格的要求。优先级选择器410必须在存在失效的情况下继续运行以传递主命令或安全命令。在失效触发MTSTOP时,优先级选择器410可以失效后无反应。该组件比安全门更简单,并且可花费大量的精力在验证上,以实现其所需的高等级完整性。
在一些实施方式中,架构400是由时间触发(time triggered)的。在时间触发的架构中,通过超时设定来检测失效。不允许下游组件使用超过消息周期数倍的(对于瞬态失效是稳健的)“过时”的值。例外是安全安全门&缓冲器408,其可以缓冲安全规划,但是重新检查该缓冲的安全规划以查看在每个时间级它都是可接受的。事件触发(event triggered)的方案也是可能的,包括但不限于通过事件的周期性发生来模仿时间触发方案的事件触发方法。
架构400的可选的第三通道(称为“覆盖”,包括覆盖单元412)允许将其它设备并入到安全架构400中。这可以包括临时“地面实况”组件,例如,报告在测试地点的人员位置,使得架构400可以在车辆变得太靠近时停止车辆。这些组件可以包括合适的传感器,诸如无线电信标传感器。它还可以包括其他发送MSTOP命令的设备(可能是临时的)。
图5是示出安全自动化架构的AGV***实例500的示例的框图。该架构已针对两个控制级(规划级504和轨迹执行级506)被实例化。这两个级中的每个级均包括主通道和安全通道。在车辆控制级508中,优先级选择器530负责在这些通道之间切换。所述架构可以选择性地包括覆盖通道,该覆盖通道允许诸如规划器覆盖534和轨迹覆盖536之类的其他设备合并到架构中。所述架构还可以包括对感知级502的可靠性概念,其生成地图,规划级504在所述地图上运行。在一些AGV相关的实施方式中,组件之间的通信是通过使用机器人操作***(ROS)来实现的,所述机器人操作***描述于Quigley和Morgan等人的“ROS:an open-source Robot Operating System”(ICRA workshop on open source software,第三卷,3.2号,公开于2009年),其中全部内容通过引用并入本申请。包括控制器局域网(ISO11898)、时间触发以太网(SAE AS6802)或FlexRay(ISO 17458)在内的其它通信网络可用于集成架构和具体的应用。
主规划器
主规划器512规划主轨迹,在正常运行条件下,地面车辆遵循该主轨迹。产生的每个轨迹都是无冲突的并且都在车辆的运动学范围内。此表述可扩展到各种现实限制中,如转向、加速、制动和弯曲,使得所呈现的框架可在未来以更多的动态复杂性来评估。所述架构的一些AGV相关的实施方式使用开放式运动规划库(OMPL),OMPL使用机器人操作***(ROS)。Sucan等人的“The Open Motion Planning Library”(PDF)(IEEE Robotics&Automation Magazine,发表于2011年12月)描述了OMLP,其全部内容通过引用并入本申请。在OMPL内,RRT*被用作规划算法。LaValle和Steven M.的“Rapidly-exploring randomtrees:A new tool for path planning”,Technical Report(Computer ScienceDepartment,Iowa State University)(TR98-11)(发表于1998年10月)描述了RRT*,其全部内容通过引用并入本申请。主规划器512从感知级502接收占据栅格,并且规划通过该栅格地图的路线。OMPL运动规划也可操作用于无人驾驶飞行器应用中。
处理主规划器中的任意的失效
主规划器512的输出(在一些AGV相关的实施方式中,该输出为由一系列路径点组成的轨迹)由主规划器安全门(PPSG)514来检查。通过使用特定应用检查,PPSG 514检查主规划器512的输出是否有效,并且进一步检查输出是否在安全规划器安全门(SPSG)518提供的许可包络(permissive envelope,PE)内。如果主规划器512的输出没有通过这些检查中的任何一个,则PPSG 514将简单地禁止该输出。基于架构定义,后续级通过禁止它们的主通道输出而响应,并且最终优先级选择器530将控制切换到安全通道。
AGV实施方式中的主规划器
虽然在一种运行场景中的起点和目标终点是由任务说明来定义的,但是一些AGV相关的实施方式配置定义了SE2状态空间中的目标,根据其在2D环境中的(x,y)位置(由占据栅格说明)及其前进方向(θ),SE2状态空间表示每个可能的车辆状态。在AGV相关的实施方式中的主规划器512在两个点之间产生运动学可行的路径,使得实际上类似于车的地面交通工具可以真实地遵循该路径。
任何生成的路径的运动可行性都可能是关键的,因为来自车辆控制532的最终输出不是几何路径或轨迹,而是控制序列,该控制序列可以应用于实际地面车辆以使其遵循方案轨迹。为了解决这个问题,***500将该问题分成两个独立的级:轨迹生成(产生车辆将遵循的路径)和控制生成(生成控制序列,该控制序列使车辆去遵循所生成的轨迹)。
在轨迹生成级,所产生的路径能够将车辆从起点转移到终点,而不违反碰撞限制(由占据栅格施加)或运动学限制(由车辆模型施加)。通过在生成级期间考虑这些限制,为车辆生成控制,使得车辆能够遵循方案轨迹。为生成控制,使用一种称为“Dubin’s car”的状态空间实施方式,所述“Dubin’s car”是汽车或卡车的简单运动学模型,其仅允许车辆以可能用于一般路面车辆的方式进行移动。该模型将车辆的运动限制为仅三种可能的方式:右转弯、左转弯和直行。通过使用这些运动基元的序列构建轨迹,在控制生成级产生遵循轨迹的控制,获得满足这些限制的路径(假设转弯半径匹配实体车辆)。利用基于占据栅格的有效性检查器和DuBins运动限制来实例化OMPL,通过实例化OMPL,可生成既可行又无冲突的轨迹。
图6是占据栅格600的示例的示意图,占据栅格600通过使用OMPL的Dubin’s car运动模型进行运动规划。在图6中,车辆602尝试从其当前位置606到达期望的目标状态604。车辆602在躲避障碍物608的同时到达期望的目标状态604。障碍物608的存在使得占据栅格600中的相关方形被标记为“被占用”,从而防止车辆602通过这些方形。如图6所示,尽管目标位置604更靠近障碍物608的右侧,在障碍物608处,车辆602仍然左转而不是右转。如果车辆602先右转后再左转,则其将面向错误的方向,因此将不满足目标描述的期望方向。由于右转后再转向绕过障碍物608比一开始就左转代价更高,所以车辆602将轨迹610规划向左。因为车辆602的转弯半径限制阻止构造过急的弧线,方案轨迹610不能沿障碍物608的被标记为占用的方形紧密相切。由于该转弯半径是可配置参数,所以潜在的轨迹生成方法可以利用不同的车辆类型来测试。如前所述,OMPL规划库可以用于产生运动计划。OMPL包括Dubin的状态空间表达式,这些表达式可以连同定制的“有效性检查器”一起用于初始化OMPL规划器类。
安全规划器
再次参考图5,鉴于当前环境和车辆状态,与AGV相关的实施方式中的安全规划器516产生可行的轨迹,这些可行的轨迹被设计成使得车辆能够在问题发生时快速且安全地停车。安全规划器516为车辆提供了紧急选项,并且在车辆穿过环境时以及在遇到动态或静态障碍时不断重新评估规划。
处理安全规划器中的任意的失效
尽管安全规划器516需要上述要求,但***并不依赖于安全规划器516来保证车辆安全。安全规划器516被标记为“任意的失效”块,就像主规划器512一样。***通过以下特征实现此目的:
1.利用安全规划器安全门518评估安全规划器516的输出,例如,如果安全规划会与障碍物碰撞,则禁止其输出。
2.安全规划器516还生成许可包线(PE),基于此来检查主规划器512的输出(下面将详细描述)。安全规划器安全门514还评估该包线本身是否合适。
3.在主规划器512失效后,安全规划器516被置于控制中;但是,安全规划器安全门518为安全规划器516提供了一个有限的时间窗口,在该有限的时间窗口内使车辆停下来。在时间窗口期到期后,安全规划器安全门5***止其输出。响应于缺失来自主通道或安全通道的输出,优先级选择器530触发MSTOP。
AGV实施方式中的安全规划器
如上面提到的关于主规划器512的内容,可能存在一些不利的情况或条件,使得地面车辆可能无法实现其期望的规划路径。这可能来源于无效的任务说明、使规划路径无法实现的硬件失效或原始规划中未考虑到各种其他动态情况(如障碍物、交通延误和施工延误)。为了在这些事件期间提供安全的车辆操控,***包括单独的路径规划组件(例如,安全规划器516),用于产生路径,该路径将车辆从其当前状态引导到车辆停止的安全目标状态。通过迫使车辆停止,失效车辆无限期地、安全地保持在其目标状态。飞机的类似操控是被转移到最近的着陆区域。由于安全规划器516的目标是安全停车,因此安全规划器516考虑了多种不同的目标配置以找到安全的停车路径。安全规划器516找到一条安全停车路径的步骤如下:
1.规划应用最大制动的轨迹,使车辆停在路边。
2.如果车辆不能沿着路边停车,则尝试以与原始轨迹最小偏差实现安全目标状态。
3.如果车辆仍然无法达到安全轨迹,则增加允许的方向偏差量并尝试重新规划。
4.重复操作,直到达到最大转向角,或者已生成安全轨迹。
由于安全规划器516应始终为潜在失效做好准备,因此每次更新地图或车辆状态信息时,安全规划器516均启动对安全停止轨迹的新搜索。在一些AGV实施方式中,安全规划器516在固定的一组轨迹上执行该搜索,同样是利用机器人操作***(ROS)完成。安全规划器516从感知级502接收占据栅格,并通过该栅格地图规划路线。如果安全规划器516无法生成新的安全规划,它会向***发出信号以启动最后生成的安全轨迹,因为没有紧急选项的行驶本质上是不安全的。
图7是占用栅格700的示例的示意图,占用栅格700用于应对倒下的树的移动规划。假设图6中的障碍物608是一棵大树。在创建如图6中所示的轨迹610之后,树倒在了预定的路径上。该改变更新了地图状态,如图7的栅格700中所示,并因此触发安全规划器516(图5中)以产生三个紧急轨迹(t0、t1和t2)。由于安全停止轨迹t0不与障碍物708相撞,因此选择并立即应用轨迹t0。然而,如果车辆702太大而不能在轨迹t0计算的时间内停止,轨迹t2因障碍物708而无效,因此不予考虑。在这种情况下,车辆702改为选择安全替代轨迹t1。因为车辆702已经开始左转弯,所以它能够自障碍物708构建更大的左转弯而不是右转弯。因此,考虑地面车辆702的状态对于生成这些安全路径可能是至关重要的。
许可包线
再次参考图5,许可包线PE1用于确认如果车辆开始执行主规划器512的输出,安全规划器516的输出仍然可以被实现。这是重要的,因为如果发生失效,***500将从主要输出切换到安全输出。PE1由安全规划器516生成,同时也生成安全规划。通过安全规划器安全门518检查PE1的安全性。如果PE1通过了该检查,则将其传递给主规划器安全门514。主规划器安全门514使用PE1作为接受或拒绝主规划器512的输出的部分标准。下面将进一步描述在AGV轨迹执行级的示例的一般环境或特定环境中的许可包线。
主安全门
参考图4,主安全门(PSG)404的目的是禁止来自主单元402的不安全输入。如下所述,检查主单元402的输出的内在安全性(例如,在图5的AGV规划级504的环境中,检查规划是否与障碍物相撞或违反动力学限制),然后还检查与安全单元406产生的许可包线的兼容性。如果PSG 404禁止主单元402的输出,则时间触发的优先级选择器410切换到从安全单元406向车辆致动器发送输出。
参考图5,在AGV规划级504的环境中,主规划器安全门514被用作机器人操作***中的节点,其从感知级502接收占据栅格以及主规划器512的输出和许可包线。主规划器安全门514重复通过主规划器512的输出中指定的路径点,并确定输出是否会导致车辆与栅格中的任何障碍物相撞,或者是否会违反许可包线。
安全安全门
参考图4,安全安全门(SSG)408对安全单元406的输出执行类似检查,其允许任意地失效。如果安全单元406的输出与障碍物相撞或违反动力学约束,则禁止该输出。SSG 408保持缓冲器,该缓冲器保持通过这些检查的安全单元406的最后的输出。当传入的规划安全时,SSG 408将该传入的规划写入缓冲器。但是如果传入的规划不安全,SSG 408会舍弃该传入的规划并继续执行缓冲的规划。除非从安全单元406接收到新的安全的规划,否则SSG408在时间窗口内禁止其输出。如果SSG408禁止其输出,则时间触发的优先级选择器410触发MSTOP。
参考在AGV规划级504的环境中的图5,安全规划器安全门518被用作机器人操作***中的节点,其从感知级502接收占据栅格以及安全规划器516的输出。安全规划器安全门518重复通过安全规划器516的输出中指定的路径点,并确定输出是否会导致车辆与栅格中的任何障碍物相撞。
优先级选择器
参考图4,优先级选择器410在主要输出和安全输出之间进行选择,典型地在架构的最终级。例如,优先级选择器410可以决定将哪些轨迹命令发送到车辆致动器。优先级选择器410的逻辑使得如果禁止主要输出,则发送安全输出。如果禁止安全输出,则触发MSTOP。优先级选择器410假设安全门404、408无反应地失效。
参考在AGV***实施方式的环境中的图5,优先级选择器530在轨迹执行级506的输出处被实例化。优先级选择器530被用作机器人操作***(ROS)中的节点,并且接收在轨迹执行级506内的主轨迹执行器安全门524和安全轨迹执行器安全门528的输出。优先级选择器530的输出包括车辆速度和曲率命令,其由另一个ROS节点(称为车辆控制器532)转换成对车辆的制动、转向和油门致动器的指令。
轨迹执行级
路径点Pi是具有方向的二维位置,即{xi,yi,thetai}。轨迹{Vi,Ci}是具有基于时间触发周期的隐含持续时间的速度-曲率对。当前***状态(例如,车辆姿势等)是Si。对于轨迹执行级506,许可包线PE2是对具有安全轨迹的加速度和偏航的范围限制。PE2被提供为一串最小和最大加速度和偏航率{ΔVmin i,ΔVmax i,ΔCmin i,ΔCmax i}。
主轨迹执行器522和安全轨迹执行器526是分别运行主轨迹算法(算法1)pta和安全轨迹算法(算法2)sta的节点。它们都采用路径点Pi和当前车辆状态Si,并从路径点的当前位置输出轨迹。
主轨迹执行器安全门524运行算法3,其针对当前状态和由安全轨迹执行器安全门528创建的PE2检查主轨迹。如果轨迹与当前状态一致并且在PE2的限制内,则主轨迹通过主轨迹执行器安全门524被传递。
安全轨迹执行器安全门528是运行算法4以检查来自安全轨迹执行器526的轨迹的节点,并传递新的传入的安全轨迹或旧的缓冲的安全轨迹。安全轨迹执行器安全门528还创建PE2,主轨迹执行器安全门524使用其来确保主要轨迹与当前安全轨迹一致。通过基于当前安全轨迹值和一组恒定可恢复性限制{ΔVminr,ΔVmaxr,ΔCminr,ΔCmaxr}创建许可加速度和曲率变化的“包线”来生成PE2。
通用化的算法
算法1到4在下面以通用的方式而不是在轨迹执行的环境中表达。主算法(算法5)产生一些输出Oi,其细节是层特异性的(layer-specific)。对主算法的正确性没有要求;它可能以任意方式失效。
安全算法(算法6)负责其自己的输出OS i以及许可包线Ei。
主安全门(算法7)负责两种类型的检查。首先,它运行特定于应用程序的函数psg_check,其确保在给定当前***状态Si的情况下,主算法的输出是可接受的。PSG还负责确保主算法的输出位于许可包线内。
安全安全门在算法8中示出,其定义了先前在“安全安全门”部分中描述的缓冲逻辑。请注意,ssg_check(…)函数还会检查安全轨迹和许可包线的年限;如果其中任何一个超过指定的超时设定周期,则ssg_check(…)返回错误(false)。
AGV实施方式的安全状况依赖于安全门,安全门评估与障碍物地图碰撞的车辆轨迹。给定地图和轨迹,安全门会报告给定的轨迹在给定的地图上是安全的还是不安全的。安全门使用连续先验的动力学相对于中等高维度的地图检查中等高维度的轨迹。基于一组动力学方程将轨迹转换成路径(一系列位置),并且相对于地图检查这些位置以确定轨迹是否安全。对于本申请的目的而言,安全轨迹的定义是使用运动学方程不与地图上的障碍物相交的轨迹。安全门基于轨迹计算位置至一定的准确度和分辨率,并在其中一个位置与障碍物重叠时报告安全问题。
本申请中描述的***包括避免碰撞的整个架构的混合模型。该混合***遵循主提供者的轨迹或安全轨迹,并提供安全的执行。通过遵循本领域已知的软件安全标准,例如ISO 26262、IEC 61508、MIL-STD 882E和其他相关标准,可以将架构的安全门“检查器”部分创建为高完整性的部件。可以使用超时设定机制来检查安全规划是否在需要的时间段内使车辆停止,因为安全单元可以任意地失效。
该架构还可以包括本发明中的一个或多个特定的级,该一个或多个特定的级需要来自较低级的反馈。例如,如果轨迹执行功能失效,则通知规划级。另外,尽管所描述的安全架构包括适合于该种架构的不同级,许多机器人架构将“感测”、“思考”和“行动”分成多个级,该安全架构采用类似的方法。
下表列出了***的条件和行为的示例,该***可以满足车辆不与障碍物碰撞的要求。
图8是由自动化设备安全架构***执行的程序800的示例的流程图。程序800可以由一个或多个计算机的***执行。程序800可以包括上面已经讨论的细节。
***接收用于在计划的路径(802)上移动设备的主要数据。该***可以包括主安全门,所述主安全门从主单元接收主要数据。***还接收次要数据,用于在所述设备在计划的路径(804)上移动期间出现一个或多个不利情况时移动所述设备。该***可以包括次安全门,所述次安全门从次单元接收次要数据。
***通过确定主要数据是否规定以安全的方式在规划的路径上移动设备来验证主要数据(806)。主安全门可以执行算法,该算法做出上述确定。***还通过确定次要数据是否规定移动所述设备以避免一个或多个不利情况来验证次要数据(808)。次安全门可以执行算法,该算法做出前述确定。如果***确定次要数据没有规定设备移动以避免一个或多个不利情况,则***访问之前存储的数据以在出现一个或多个不利情况时移动设备(810),并且通过确定之前存储的数据是否规定移动设备以避免一个或多个不利情况来验证之前存储的数据(812)。
***基于评估逻辑数据来选择主要数据、次要数据、之前存储的数据或默认数据(814)。所述***可以包括优先级选择器,所述优先级选择器评估逻辑数据以做出选择。逻辑数据特指规则,该规则定义在具体条件下选择哪些数据。在确定主要数据规定以安全的方式在规划的路径上移动所述设备之后,选择主要数据。在确定(i)主要数据没有规定以安全的方式在规划的路径上移动所述设备,以及(ii)次要数据规定移动所述设备以避免一个或多个不利情况之后,选择次要数据。在确定(i)主要数据没有规定以安全的方式在规划的路径上移动所述设备、(ii)次要数据没有规定移动所述设备以避免一个或多个不利情况,以及(iii)之前存储的数据规定移动所述设备以避免一个或多个不利情况之后,选择之前存储的数据。默认数据指定设备要执行的默认动作。在确定(i)主要数据没有规定以安全的方式在规划的路径上移动所述设备、(ii)次要数据没有规定移动所述设备以避免一个或多个不利情况,以及(iii)之前存储的数据没有规定移动所述设备以避免一个或多个不利情况之后,选择默认数据。
***将选择的主要、次要、之前存储的或默认数据提供给控制器,所述控制器控制设备的移动(816)。
使用该架构可以简化并实现失效后运行的自动化***的实施。不需要一个或多个高完整性的自动化算法的版本,可以使用低完整性的自动化算法(例如,“执行器”模块不必完美地工作以实现安全性)。安全门“检查器”模块用于确保每个执行器/检查器对的失效-无反应行为。安全门必须被开发成高完整性的,但通常这更简单,并且可以最小化或消除难以验证的高级自动算法,使其更容易被验证。此外,检查器本身可能会失效后无反应。通过在每个架构级中提供两组(或更多组)失效-无反应执行器/检查器配对功能块来实现失效-运行的***行为。没有任何单个部件需要是失效后运行的,只有检查器需要是高度完整性的。
可以在数字电子电路或在计算机硬件、固件、软件或其组合中实施实施例。装置可以在计算机程序产品中实现,该计算机程序产品有形地体现在或存储在机器可读存储设备中以由可编程处理器执行;并且可以由执行指令程序的可编程处理器执行方法动作,以通过对输入数据进行操作并产生输出来执行功能。本发明这里描述的实施方式和本发明的其他实施方式可以有利地在一个或多个计算机程序中实现,所述计算机程序可在可编程***上执行,所述可编程***包括至少一个可编程处理器,所述可编程处理器被耦接以从数据存储***、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到前述***或设备上。每个计算机程序可以用高等级的过程或面向对象的编程语言实现,或者如果需要可以用汇编语言或机器语言实现;并且在任何情况下,语言都可以是编译或解释语言。
举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个大容量存储设备,或可操作地被耦接以从一个或多个大容量存储设备(例如磁盘、磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或同时接受和传输,以便存储数据。用于承载计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CDROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或被并入专用逻辑电路中。任何前述内容都可以由ASIC(专用集成电路)补充或并入ASIC中。
为了实现与用户的交互,实施例可以在如下设备上实施:具有显示设备(例如LCD(液晶显示器)显示屏)、键盘和指示设备(例如鼠标或轨迹球)的计算机,其中显示设备用于向用户显示数据,用户可以通过键盘和指示设备向计算机提供输入。其他类型的设备也可用于实现与用户的交互,例如提供给用户的反馈可以是任何形式的感官反馈,比如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
其他实施方式也在说明书和权利要求书的范围和精神之内。此外,由于软件的性质,可以使用软件、硬件、固件、硬连线或这些中的任何组合来实现上述功能。实现功能的特征还可以物理地位于各种位置,包括被分布使得功能的各部分在不同的物理位置处实现。本文和整个申请中的术语“一个”不以限制方式使用,因此术语“一个”也可以表示“多个”的含义或者“一个或多个”的含义。另外,在要求临时专利申请的优先权范围内,应当理解,临时专利申请不是限制性的,而是包括如何实现本公开描述的技术的实例。
已经描述了本发明的许多示例性实施方式。然而,本领域普通技术人员将理解,在不背离本发明的精神和范围的情况下,可以进行各种修改。
Claims (14)
1.一种安全架构***,其特征在于,所述安全架构***包括:
第一级,所述第一级包括:
主单元,所述主单元生成用于执行正常***功能的主要数据;
次单元,所述次单元生成用于执行替代***功能的次要数据;
主安全门,所述主安全门耦接到所述主单元,响应于确定所述主要数据的有效性,所述主安全门提供所述主要数据作为主要输出;以及
次安全门,所述次安全门耦接到所述次单元,响应于确定所述次要数据的有效性,所述次安全门提供所述次要数据作为次要输出;以及
输出选择器,所述输出选择器耦接到所述第一级的主安全门和次安全门,响应于确定所述主要数据和次要数据的有效性,所述输出选择器提供***输出。
2.根据权利要求1所述的***,其特征在于,响应于由所述次安全门提供的许可包线,所述主安全门确定所述主要数据的有效性。
3.根据权利要求1所述的***,其特征在于,所述***还包括:
一个或多个额外的级,所述一个或多个额外的级包括第二级,其中所述第二级的主要数据输出提供至所述第一级的主单元的输入,所述第二级的次要数据输出提供至所述第一级的次单元的输入。
4.根据权利要求1所述的***,其特征在于,所述次安全门确定所述次要数据是否在预设时间窗口内被接收,以确定所述次要数据是否有效。
5.根据权利要求1所述的***,其特征在于,所述次安全门包括缓冲器,响应于确定所述次要数据的有效性,所述缓冲器储存所述次要数据。
6.根据权利要求1所述的***,其特征在于,响应于确定所述次要数据是无效的,所述次单元提供之前存储的次要数据作为所述次要输出。
7.根据权利要求1所述的***,其特征在于,所述***输出包括控制数据,所述控制数据用于操控车辆。
8.一种应用于权利要求1的安全架构***的方法,其特征在于,所述方法包括:
利用一个或多个处理器生成主要数据,用于执行正常***功能;
利用所述一个或多个处理器生成次要数据,用于执行替代***功能;
响应于确定所述主要数据的有效性,利用所述一个或多个处理器提供所述主要数据作为第一级的主要输出;
响应于确定所述次要数据的有效性,利用所述一个或多个处理器提供所述次要数据作为所述第一级的次要输出;以及
响应于确定所述主要数据和次要数据的有效性,利用所述一个或多个处理器提供***输出。
9.根据权利要求8所述的方法,其特征在于,确定所述主要数据的有效性响应于许可包线。
10.根据权利要求8所述的方法,其特征在于,其中:
生成所述主要数据包括通过第二级的主要数据输出接收主要输入;
生成所述次要数据包括通过第二级的次要数据输出接收次要输入。
11.根据权利要求8所述的方法,其特征在于,确定所述次要数据的有效性包括确定所述次要数据是在预设时间窗口内生成的。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括响应于确定所述次要数据的有效性,存储所述次要数据。
13.根据权利要求8所述的方法,其特征在于,所述方法还包括响应于确定所述次要数据是无效的,提供之前存储的次要数据作为所述第一级的次要输出。
14.根据权利要求8所述的方法,其特征在于,所述***输出包括控制数据,所述控制数据用于操控车辆。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662387804P | 2016-01-05 | 2016-01-05 | |
US62/387,804 | 2016-01-05 | ||
PCT/US2017/012321 WO2017155598A2 (en) | 2016-01-05 | 2017-01-05 | A safety architecture for autonomous vehicles |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109417477A CN109417477A (zh) | 2019-03-01 |
CN109417477B true CN109417477B (zh) | 2021-12-21 |
Family
ID=59790836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780015446.3A Active CN109417477B (zh) | 2016-01-05 | 2017-01-05 | 用于自动化车辆的安全架构 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10962972B2 (zh) |
EP (1) | EP3400676B1 (zh) |
JP (1) | JP2019509541A (zh) |
CN (1) | CN109417477B (zh) |
ES (1) | ES2800321T3 (zh) |
WO (1) | WO2017155598A2 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10962972B2 (en) | 2016-01-05 | 2021-03-30 | Carnegie Mellon University | Safety architecture for autonomous vehicles |
US10571908B2 (en) | 2016-08-15 | 2020-02-25 | Ford Global Technologies, Llc | Autonomous vehicle failure mode management |
US10611381B2 (en) * | 2017-10-24 | 2020-04-07 | Ford Global Technologies, Llc | Decentralized minimum risk condition vehicle control |
US11673586B2 (en) * | 2017-11-28 | 2023-06-13 | Elta Systems Ltd. | Failure detection in an autonomous vehicle |
WO2019147939A1 (en) * | 2018-01-26 | 2019-08-01 | Nvidia Corporation | Detection of hazardous driving using machine learning |
US10726645B2 (en) | 2018-02-16 | 2020-07-28 | Ford Global Technologies, Llc | Vehicle diagnostic operation |
DE102018205242A1 (de) * | 2018-04-09 | 2019-10-10 | Bayerische Motoren Werke Aktiengesellschaft | Bewegungsplanung mittels invariant sicherer Zustände eines Kraftfahrzeugs |
US10990096B2 (en) * | 2018-04-27 | 2021-04-27 | Honda Motor Co., Ltd. | Reinforcement learning on autonomous vehicles |
EP3588226B1 (en) * | 2018-06-29 | 2020-06-24 | Zenuity AB | Method and arrangement for generating control commands for an autonomous road vehicle |
US20180348771A1 (en) * | 2018-07-26 | 2018-12-06 | GM Global Technology Operations LLC | Stop contingency planning during autonomous vehicle operation |
CN109255181B (zh) * | 2018-09-07 | 2019-12-24 | 百度在线网络技术(北京)有限公司 | 一种基于多模型的障碍物分布仿真方法、装置以及终端 |
FR3086075B1 (fr) * | 2018-09-19 | 2021-09-10 | Transdev Group | Systeme electronique de supervision d'un vehicule autonome, procede et programme d'ordinateur associes |
DE102018222720B4 (de) | 2018-12-21 | 2022-01-05 | Continental Teves Ag & Co. Ohg | Überwachung von auf neuronalen Netzwerken basierten Fahrfunktionen |
EP3712720B1 (de) * | 2019-03-21 | 2021-10-27 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur ansteuerung einer technischen anlage mittels einer adaptiven simplex architektur |
US11142212B2 (en) | 2019-06-06 | 2021-10-12 | Nxp B.V. | Safety-aware comparator for redundant subsystems in autonomous vehicles |
US11875678B2 (en) | 2019-07-19 | 2024-01-16 | Zoox, Inc. | Unstructured vehicle path planner |
KR20210010761A (ko) | 2019-07-19 | 2021-01-28 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작 방법 |
US11378962B2 (en) * | 2019-07-22 | 2022-07-05 | Zoox, Inc. | System and method for effecting a safety stop release in an autonomous vehicle |
EP4003673A4 (en) * | 2019-07-26 | 2023-08-23 | Fort Robotics, Inc. | SYSTEMS AND PROCEDURES FOR SAFETY-READY CONTROL |
US11407409B2 (en) * | 2019-08-13 | 2022-08-09 | Zoox, Inc. | System and method for trajectory validation |
US11458965B2 (en) | 2019-08-13 | 2022-10-04 | Zoox, Inc. | Feasibility validation for vehicle trajectory selection |
US11914368B2 (en) * | 2019-08-13 | 2024-02-27 | Zoox, Inc. | Modifying limits on vehicle dynamics for trajectories |
WO2021030508A1 (en) | 2019-08-13 | 2021-02-18 | Zoox, Inc. | Modifying limits on vehicle dynamics for trajectories |
US11397434B2 (en) | 2019-08-13 | 2022-07-26 | Zoox, Inc. | Consistency validation for vehicle trajectory selection |
DE102020215778A1 (de) * | 2020-12-14 | 2022-06-15 | Continental Automotive Gmbh | Verfahren zur Planung eines zumindest teilweise automatisierten Fahrvorgangs mittels eines Fahrassistenzsystems |
US11451492B2 (en) * | 2020-12-22 | 2022-09-20 | Honeywell International Inc. | Methods, systems, and apparatuses for enhanced parallelism of time-triggered ethernet traffic using interference-cognizant network scheduling |
CN112947594B (zh) * | 2021-04-07 | 2023-08-04 | 东北大学 | 一种面向无人机的航迹规划方法 |
US20230132512A1 (en) * | 2021-10-29 | 2023-05-04 | Zoox, Inc. | Autonomous vehicle trajectory determination based on state transition model |
US12007774B2 (en) | 2022-03-25 | 2024-06-11 | Rockwell Collins, Inc. | System and method for guidance integrity monitoring for low-integrity modules |
DE102022203259A1 (de) | 2022-04-01 | 2023-10-05 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Absichern von automatischen Fahrfunktionen eines Kraftfahrzeugs |
DE102022203252A1 (de) | 2022-04-01 | 2023-10-05 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Absichern des autonomen Fahrens eines Kraftfahrzeugs |
WO2023205208A1 (en) | 2022-04-19 | 2023-10-26 | Fort Robotics, Inc. | Method for safety responses to security policy violations |
WO2024142040A1 (en) * | 2022-12-28 | 2024-07-04 | Elta Systems Ltd. | Autonomous path planning in deficient mapping conditions |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3829668A (en) * | 1971-12-02 | 1974-08-13 | Hitachi Ltd | Double unit control device |
JP2008052473A (ja) * | 2006-08-24 | 2008-03-06 | Nippon Telegr & Teleph Corp <Ntt> | 水中ロボットの動作制御方法、装置、プログラム及びその記録媒体 |
CN101770221A (zh) * | 2008-12-30 | 2010-07-07 | 中国科学院自动化研究所 | 基于现场总线的双臂巡线机器人控制*** |
CN104035438A (zh) * | 2013-11-14 | 2014-09-10 | 扬州西岐自动化科技有限公司 | 一种基于种群多样性的自适应多目标机器人避障算法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4861886A (zh) * | 1971-12-02 | 1973-08-29 | ||
JPH0654240B2 (ja) * | 1987-06-10 | 1994-07-20 | 建設省土木研究所長 | 車両の走行制御方法 |
US5613162A (en) * | 1995-01-04 | 1997-03-18 | Ast Research, Inc. | Method and apparatus for performing efficient direct memory access data transfers |
US8140358B1 (en) * | 1996-01-29 | 2012-03-20 | Progressive Casualty Insurance Company | Vehicle monitoring system |
US6647301B1 (en) * | 1999-04-22 | 2003-11-11 | Dow Global Technologies Inc. | Process control system with integrated safety control system |
DE60230488D1 (de) * | 2001-03-16 | 2009-02-05 | Haptica Ltd | Fahrzeugführungsverfahren und -system |
US7146260B2 (en) * | 2001-04-24 | 2006-12-05 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US7110881B2 (en) * | 2003-10-07 | 2006-09-19 | Deere & Company | Modular path planner |
SE0400091D0 (sv) * | 2004-01-16 | 2004-01-16 | Abb Ab | Control system, method and computer program |
FR2883998A1 (fr) * | 2005-04-05 | 2006-10-06 | St Microelectronics Sa | Coprocesseur securise comprenant un circuit de detection d'un evenement |
EP1977297A4 (en) | 2006-01-17 | 2010-02-24 | Gulfstream Aerospace Corp | APPARATUS AND METHOD FOR CONTROLLING RELIEF USED IN DISTRIBUTED FLIGHT CONTROL SYSTEM |
US8108092B2 (en) * | 2006-07-14 | 2012-01-31 | Irobot Corporation | Autonomous behaviors for a remote vehicle |
WO2008154747A1 (en) * | 2007-06-19 | 2008-12-24 | Magna Electronics Inc. | Mobile control node system and method for vehicles |
US7930082B2 (en) * | 2008-05-20 | 2011-04-19 | Autoliv Asp, Inc. | Fail-safe apparatus and method for disposal of automobile pyrotechnic safety devices |
JP5532684B2 (ja) * | 2009-06-01 | 2014-06-25 | 日産自動車株式会社 | 車両の走行制御装置および車両の走行制御方法 |
DE102010013349B4 (de) | 2010-03-30 | 2013-06-13 | Eads Deutschland Gmbh | Computersystem und Verfahren zum Vergleichen von Ausgangssignalen |
DE102011117113A1 (de) | 2011-10-27 | 2013-05-02 | Diehl Bgt Defence Gmbh & Co. Kg | Verfahren zum Betrieb einer Steuereinrichtung zum wenigstens teilweise autonomen Betrieb eines Fahrzeugs und Steuereinrichtung zur Durchführung solch eines Verfahrens |
DE102012212304A1 (de) | 2012-07-13 | 2014-01-16 | Siemens Aktiengesellschaft | Anordnung mit einem Mikroprozessorsystem |
US9935776B2 (en) * | 2012-10-25 | 2018-04-03 | Bae Systems Plc | Control systems for unmanned vehicles |
CN103888493B (zh) * | 2012-12-20 | 2018-03-23 | 腾讯科技(深圳)有限公司 | 信息推送方法及装置 |
EP2787401B1 (en) | 2013-04-04 | 2016-11-09 | ABB Schweiz AG | Method and apparatus for controlling a physical unit in an automation system |
JP6103716B2 (ja) * | 2014-06-17 | 2017-03-29 | 富士重工業株式会社 | 車両の走行制御装置 |
US9934377B2 (en) * | 2015-11-20 | 2018-04-03 | Atmel Corporation | Input/output parameter selection |
US10962972B2 (en) | 2016-01-05 | 2021-03-30 | Carnegie Mellon University | Safety architecture for autonomous vehicles |
-
2017
- 2017-01-05 US US16/068,320 patent/US10962972B2/en active Active
- 2017-01-05 EP EP17763681.8A patent/EP3400676B1/en active Active
- 2017-01-05 JP JP2018535143A patent/JP2019509541A/ja active Pending
- 2017-01-05 WO PCT/US2017/012321 patent/WO2017155598A2/en active Application Filing
- 2017-01-05 CN CN201780015446.3A patent/CN109417477B/zh active Active
- 2017-01-05 ES ES17763681T patent/ES2800321T3/es active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3829668A (en) * | 1971-12-02 | 1974-08-13 | Hitachi Ltd | Double unit control device |
JP2008052473A (ja) * | 2006-08-24 | 2008-03-06 | Nippon Telegr & Teleph Corp <Ntt> | 水中ロボットの動作制御方法、装置、プログラム及びその記録媒体 |
CN101770221A (zh) * | 2008-12-30 | 2010-07-07 | 中国科学院自动化研究所 | 基于现场总线的双臂巡线机器人控制*** |
CN104035438A (zh) * | 2013-11-14 | 2014-09-10 | 扬州西岐自动化科技有限公司 | 一种基于种群多样性的自适应多目标机器人避障算法 |
Also Published As
Publication number | Publication date |
---|---|
EP3400676B1 (en) | 2020-04-01 |
CN109417477A (zh) | 2019-03-01 |
EP3400676A2 (en) | 2018-11-14 |
US10962972B2 (en) | 2021-03-30 |
US20190056735A1 (en) | 2019-02-21 |
ES2800321T3 (es) | 2020-12-29 |
WO2017155598A2 (en) | 2017-09-14 |
JP2019509541A (ja) | 2019-04-04 |
WO2017155598A3 (en) | 2018-09-20 |
EP3400676A4 (en) | 2019-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109417477B (zh) | 用于自动化车辆的安全架构 | |
Chen et al. | Obstacle avoidance for low-speed autonomous vehicles with barrier function | |
Könighofer et al. | Shield synthesis | |
Heß et al. | Formal verification of maneuver automata for parameterized motion primitives | |
Althoff et al. | Online safety verification of trajectories for unmanned flight with offline computed robust invariant sets | |
Bohrer et al. | A formal safety net for waypoint-following in ground robots | |
Noh et al. | Co‐pilot agent for vehicle/driver cooperative and autonomous driving | |
US20210365596A1 (en) | Automated system for generating approximate safety conditions for monitoring and verification | |
Pek et al. | Efficient computation of invariably safe states for motion planning of self-driving vehicles | |
CN113511205A (zh) | 规划车辆的移动的方法和*** | |
Johnson et al. | Experimental Evaluation and Formal Analysis of High‐Level Tasks with Dynamic Obstacle Anticipation on a Full‐Sized Autonomous Vehicle | |
Mehmood et al. | The black-box simplex architecture for runtime assurance of autonomous CPS | |
Huang et al. | Control system design of an automated bus in revenue service | |
Salih et al. | Fault injection in model-based system failure analysis of highly automated vehicles | |
Sun et al. | REDriver: Runtime Enforcement for Autonomous Vehicles | |
Lin et al. | Safe and resilient practical waypoint-following for autonomous vehicles | |
Buerkle et al. | Towards online environment model verification | |
WO2023187121A1 (en) | Simulation-based testing for robotic systems | |
Weiskircher et al. | Predictive trajectory guidance for (semi-) autonomous vehicles in public traffic | |
Tong et al. | A search-based motion planner utilizing a monitoring functionality for initiating minimal risk maneuvers | |
US20230150547A1 (en) | Motion prediction | |
US20230027577A1 (en) | Safe Path Planning Method for Mechatronic Systems | |
Helsch et al. | Qualitative monitors based on the connected dependability cage approach | |
Sheikhi et al. | The black-box simplex architecture for runtime assurance of multi-agent CPS | |
Genin et al. | A Safety Fallback Controller for Improved Collision Avoidance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40005590 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |