CN117999544A - 具有最少硬件的容错系统 - Google Patents
具有最少硬件的容错系统 Download PDFInfo
- Publication number
- CN117999544A CN117999544A CN202280061771.4A CN202280061771A CN117999544A CN 117999544 A CN117999544 A CN 117999544A CN 202280061771 A CN202280061771 A CN 202280061771A CN 117999544 A CN117999544 A CN 117999544A
- Authority
- CN
- China
- Prior art keywords
- computers
- fault
- machine
- sensors
- processing
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 15
- 230000015556 catabolic process Effects 0.000 claims description 13
- 238000006731 degradation reaction Methods 0.000 claims description 13
- 230000003334 potential effect Effects 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000011156 evaluation Methods 0.000 claims description 2
- 230000008901 benefit Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 238000013439 planning Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013316 zoning Methods 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 230000006378 damage Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- ATUOYWHBWRKTHZ-UHFFFAOYSA-N Propane Chemical compound CCC ATUOYWHBWRKTHZ-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- VNWKTOKETHGBQD-UHFFFAOYSA-N methane Chemical compound C VNWKTOKETHGBQD-UHFFFAOYSA-N 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000003502 gasoline Substances 0.000 description 1
- 239000000383 hazardous chemical Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000002044 microwave spectrum Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000003345 natural gas Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 239000001294 propane Substances 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Hardware Redundancy (AREA)
Abstract
提供了用于机器的自动化控制器的容错。自动化控制器的阶段的第一部分能够以故障操作保护来处理,其中用于第一部分的计算机中一者的故障仍允许机器中的完全操作功能性。以故障降级保护来处理阶段的其余部分,其中与故障操作部分相比,用于其余部分的计算机的故障允许继续操作,但具有一个或多个约束。
Description
背景技术
技术领域
本文描述的实施方案涉及容错计算,并且更具体地涉及最小化提供容错所需的硬件。
相关技术描述
一些类型的计算需要容错以成功地执行任务。例如,在机器人环境中,机器人运动的自动化控制可能需要容错以确保机器人可被操纵而不导致伤害或损坏。容错计算有用的其它情况涉及触及计算机以修复它将是危险的或不可能的环境(例如,外层空间、海底等)。另外,容错计算在其它环境中也是有用的,在这些环境中,功能的丧失可能导致显著的危害或损害(例如,在核电站的控制中或危险材料处理中)。通常,容错是指在存在故障的情况下继续正确操作的能力。在一些情况下,降低能力操作可以是可接受的。
容错可通过多种方式实现。例如,可使用对相同输入数据并行地操作几个计算机。例如,三重模块冗余(TMR)方案包括三个计算机并行操作。可比较计算机的输出以确定是否存在可能的错误,并且当一个输出与另外两个不一致时,那个计算机可被认为发生故障并且另外两个可继续操作。然而,在第三计算机被移除而不工作的情况下,可检测到错误,但是不能明确地确定正确的答案。TMR容错方案可检测并移除在计算通道中引入的导致不正确输出的任何错误。这不仅可包括计算逻辑,还可包括数据/地址总线、存储器等。另一机制是具有以并行“故障安全”配置操作的两个计算机,并且使并行系统冗余。例如,双锁步、双重冗余系统(“双重-双重”)涉及四个计算机。每对计算机并行运行(“锁步”)。每对计算机使用故障检测机制的组合来标识硬件故障。故障检测机制可包括例如存储器错误检测和校正、数据和地址总线错误检测、和/或经由冗余锁步计算和比较的计算逻辑错误检测。如果在一个“锁步”计算机中检测到故障,则可使用另一个“锁步”计算机输出。
容错允许在存在故障的情况下继续操作,但就执行任务所需的硬件而言也是昂贵的。TMR方案需要非容错系统将需要的计算硬件量的三倍。双重-双重方案需要非容错系统将需要的计算硬件量的四倍。此外,由于双重-双重配置要求每个“锁步”计算机检测内部安全关键硬件故障,因此需要对存储器、数据/地址总线等进行故障检测。
发明内容
在一个实施方案中,提供了一种用于自动化控制器(例如,用于机器人控制的移动机器)的成本降低的容错系统。已仔细研究了自动化的阶段以标识每个阶段所需的计算量、以及划分计算以有效地提供系统中的容错的方式。例如,可以故障操作保护来处理阶段的一部分,其中计算机之一的故障仍然允许机器人控制的移动机器中的完全操作功能性。阶段的其余部分可提供故障降级保护,其中计算机之一的故障允许继续操作,但与故障操作部分相比具有一个或多个约束(例如,以降低的速度操作、具有一个或多个操纵能力被停用的操作等)。与传统的TMR或双重-双重系统相比,可进行更有效的计算资源分配,而仍然提供容错。
附图说明
以下详细描述参考附图,现在对这些附图进行简要描述。
图1是自动化机器人操作的计算的阶段的一个实施方案的框图。
图2是以容错方式实施自动化机器人操作的硬件的一个实施方案的框图。
图3是示出将传感器映射到计算机的一个实施方案的表。
图4是示出计算机故障和机器响应于故障的操作的一个实施方案的表。
图5是示出容错操作的方法的流程图。
图6是计算机硬件的一个实施方案的更详细示图。
尽管本公开中所述的实施方案可受各种修改形式和另选形式的影响,但其具体实施方案在附图中以举例的方式示出并将在本文中详细描述。然而,应当理解,附图和对其的具体实施方式不旨在将实施方案限制为所公开的特定形式,而相反,本发明旨在涵盖落入所附权利要求书的实质和范围内的所有修改、等同物和另选方案。本文所使用的标题仅用于组织目的,并不旨在用于限制说明书的范围。
具体实施方式
在一个实施方案中,描述了一种用于机器人控制的移动机器的自动化控制器。一般来讲,移动机器可以是被设计为移动的任何机器,并且因此具有在期望的运动方向上推进该机器的至少一个马达。马达可具有任何能量源(例如,电、汽油、丙烷、天然气、蒸汽、压缩空气等)。该机器可被设计用于执行任何形式的工作。例如,机器可以是诸如真空吸尘器这类的家用设备、在仓库中操作以将物件从一个地方移动到另一地方的设备、在制造地点中执行物品制造的一部分或全部的设备、运送人员或货物的机器等。例如,机器可包括任何种类的陆基机器(例如,汽车、摩托车、卡车、诸如“半挂卡车”之类的长途卡车、诸如公共汽车、火车等之类的大规模运输机器、诸如反铲挖土机、推土机之类的建筑机器等等)、水上机器(例如,小艇、轮船、潜艇等)、飞行机器(例如,飞机、直升机等)等。陆基机器在道路上的自动化控制将在下文的一些示例中使用,但是相同的讨论一般性地可应用于任何机器人控制的移动机器。
图1是示出用于控制机器人控制的移动机器的运动的自动化控制器的计算结构10中各个阶段的一个实施方案的框图。自动化控制器可接收来自机器上各个传感器12的传感器输入和任务(例如,机器的目的地、机器要采取的动作等),并且可计算执行任务的各个致动器14的控制以使机器朝向完成其任务向前移动。例如,陆基机器的任务是将其乘客和/或货物安全地运输到指定目的地,并且在乘客的情况下,符合安全尽可能舒适地运输。
计算结构10一般可被划分成感测阶段16、计划阶段18和动作阶段20。在感测阶段16中,来自传感器12的数据被处理以生成机器周围环境的估计,也被称为世界视图、世界表示或世界估计。世界视图可标识整个周围环境,包括机器行进的途径,以及标记、标志、路径和对象的位置。对象可包括可能在附近的非移动对象(例如,树木或其他植物生命、建筑物、垃圾桶、雕像、灯杆等)。非移动对象也可被称为“静态对象”。世界视图中的其他对象可处于运动中,或者可以是“动态对象”。动态对象可包括其他机器、行人、自行车、动物等。动态对象可在世界视图中用位置和运动估计来表示。计划阶段18可接收世界视图和任务,并且可确定供机器遵循的轨迹。该轨迹可以是机器将遵循一段时间、使机器朝向任务的结束前进的路径。即,该轨迹可以不是完全到达任务结束的路径,而是整个任务的一段。例如,在一个实施方案中,轨迹可描述接下来N秒的运动,其中N是正值。例如,N可以在5秒-15秒的范围内,并且更具体地可以是大约8秒。动作阶段20可接收该轨迹,并且可生成致动器控制,如上所述。
如果要使所有计算结构10作为TMR或双重-双重以用于容错,则所需的计算能力将是在没有容错的情况下执行计算所需的计算能力量的3倍(对于TMR)或4倍(对于双重-双重)。这种计算机结构10的成本可能过高。然而,通过仔细分析数据和对数据的计算,可实施更加最小的硬件成本,而仍然提供系统级容错。计算结构10可在多个计算机上实施,如下文将更详细讨论的。例如,可实施至少三个计算机,但在其他实施方案中可以有更多计算机。然而,在给定阶段或子阶段中的故障可能导致可接受的降级操作性能水平的情况下,可避免TMR。例如,不能导致安全关键故障或结果的给定阶段或子阶段中的故障可以是可接受的降级操作性能水平。在这些阶段或子阶段中,可在非TMR配置中使用可用计算资源,从而与TMR配置相比允许有效地3倍计算能力。
在一个实施方案中,感测阶段16可被划分为分区带感测处理子阶段22和中央感测处理子阶段24。计划阶段18可被划分成生成子阶段26、求解子阶段28以及选择和检查子阶段30。在该实施方案中,动作阶段20可以不被分成子阶段。如下所述,分区带感测处理22可利用传感器16中的至少一些具有重叠视场的事实。即,如果两个传感器具有重叠的视场,则来自传感器之一的数据由一个计算机处理,来自另一传感器的数据由另一计算机处理。如果这两个计算机中一者发生故障,则由于未发生故障的计算机上来自另一传感器的重叠视场,对于丢失的视场仍然存在一定可见性。因此,分区带感测处理阶段不需要是TMR或双重-双重,而是每个传感器可使其数据由计算机之一处理。分区带感测处理子阶段22可具有故障降级操作,因为通过与当所有计算机都在操作时相比以某种方式限制机器的操作可容忍丢失一个计算机。除了丢失计算机之外,如果计算机产生不正确的结果(例如,由于计算路径中的故障或其他故障),则可使用故障降级操作。不正确的结果可经由诸如合理性检查、一致性检查、跨模态检查、次级传感器检查等这类的技术来检测。限制可能必须与哪些传感器不再被处理有关(例如,如果观察机器的左前侧的传感器不被处理,则可禁止左转,或者可禁止不受保护的左转)。其它限制可以是一般性的(例如,可降低机器的速度)。
分区带感测处理子阶段22可标识每个传感器的视场中的对象,并且可向中央感测处理子阶段24提供对象数据。中央感测处理子阶段24可解析来自具有重叠视场的不同传感器的对象数据。例如,如果在来自一个传感器的对象数据中存在对象,但在来自重叠的另一传感器的对象数据中不存在对象,或者如果对象被不同的传感器不同地标识,则中央感测处理子阶段24可确定如何解决该差异。中央感测处理子阶段24还可将对象数据组装到世界视图中。中央感测处理子阶段24可具有故障操作保护(例如,TMR)。计算机的丢失/计算机的故障仍可提供两个计算机产生世界视图,因此在一个计算机发生故障之后仍存在结果的冗余。
生成子阶段26可接收世界视图和任务,并且可生成针对轨迹的各种可能性或选项。可能性可以是假设的形式:如果机器采用特定轨迹(例如,留在当前路径上,向左或向右改变路径,进行右转或左转等)并且世界视图中的动态对象如运动估计中所指示的继续它们的运动,或者如果它们以特定方式改变它们的运动,结果将是什么?生成子阶段26也可具有故障操作保护。在一个实施方案中,分区带处理子阶段22可执行大量感测处理,并且因此可最小化使中央感测处理子阶段24具有故障操作保护的成本。即,与其他感测16子阶段相比,执行中央感测处理子阶段24所需的计算带宽可以是低的。类似地,生成子阶段26可具有相对低的计算带宽要求。
求解子阶段28可从生成子阶段26接收所生成的选项,并且可尝试基于选项生成轨迹。一些选项可能无法适当地求解(例如,给定选项将可能导致碰撞,或者给定选项不被认为足够安全)。对于其他选项,求解子阶段28可生成轨迹。求解子阶段28可能需要比其他计划18子阶段显著更多的计算带宽。如果求解子阶段28跨计算机划分,不提供冗余,则一个计算机的故障会导致可能轨迹的一部分的丢失,但在大多数情况下,可生成可接受的轨迹。如果期望特定选项始终可用(例如,留在路径上和维持速度),则该选项可被包括在由每个计算机处理的生成结果的子集中。因此,可针对求解子阶段28实现故障降级操作,且每个计算机仅需要具有足够的计算带宽来求解选项的1/N,其中N为计算机的数量(例如,如果存在三个计算机则为3)。如果一个或多个特定选项被包括在每个子集中,则每个计算机可具有足够的计算带宽来求解选项的1/N+M个选项,其中M是等于包括在每个子集中的所述一个或多个特定选项的数量的整数。
选择和检查子阶段30可将成本函数应用于各个轨迹(例如,安全性被加权为最重要、乘客舒适度被加权有较低重要性、完成任务的时间被加权有更低的重要性或者任选地被加权有比舒适度更高的重要性(如果存在完成任务的时间期限的话)等)。最小成本轨迹可被判断为“最佳”轨迹并且可被选择。最后,选择和检查子阶段30可针对不可接受的结果(例如,碰撞)检查所选择的轨迹,并且如果所选择的轨迹是不可接受的,则可拒绝所选择的轨迹并且提供默认轨迹(例如,安全地停止)。例如,如果不至少具有所指定的避免碰撞的最小概率,则所选择的轨迹可为不可接受的。选择和检查子阶段30可具有相对低的计算带宽,并且因此可被提供有故障操作保护。
动作阶段20可处理该轨迹并且控制致动器14遵循该轨迹。在一个实施方案中,动作阶段20可与感测和计划阶段16和18在不同的一组计算机上实施。在一个实施方案中,动作阶段20可具有双重-双重保护并且因此可以是故障可操作的。
在另一实施方案中,感测和/或计划阶段16和18可被实施有故障安全保护。例如,中央感测处理子阶段24、生成子阶段26和/或选择和检查子阶段30可具有故障安全保护,诸如双重模块冗余(DMR)保护。这样的保护可以是可接受的,例如,如果机器具有人员监视自动化系统的操作,并且其在存在故障的情况下能接管操作。在另一示例中,如果动作阶段20能够完全执行针对感测和/或计划阶段16和18中的错误的故障响应(例如,通过遵循最后已知的轨迹到停止),则可提供感测和/或计划阶段16和18的故障安全操作。由于分区带感测子阶段22和求解子阶段28不实施有DMR保护,因此相对于感测和计划阶段16和18的完全DMR实施,仍可实现所需计算能力的减少。
传感器12可包括任何一组被配置为感测机器周围区域、该区域中的对象等的设备。传感器可以是任何类型的传感器的任意组合。计算结构10的操作一般可以不知道传感器类型。例如,传感器12可包括一个或多个传感器12A、一个或多个传感器12B、一个或多个传感器12C、以及一个或多个传感器12D。传感器12可布置在机器周围的各个位置,以允许检测机器正在其中操作的环境。传感器12可具有重叠的视场,从而可将一个传感器的输出与重叠视场的另一传感器的输出进行比较,以进一步改善传感器12重叠的区域的估计,并且还使得一个传感器12的故障在多于一个传感器发生故障之前不会导致显著尺寸的“盲点”。因此,重叠的视场可提供容错的措施。可使用传感器的任何组合(例如,相机传感器、光检测与测距(激光雷达)传感器、短程传感器、无线电检测与测距(雷达)传感器、声波或超声波传感器等)。
相机传感器可包括捕获视场的可见光图像的任何类型的传感器。相机传感器输出可以是指示在由相机传感器捕获的帧(或图片)内该位置处的光的颜色/强度的像素的集合。可见光相机传感器可以是捕获可见光(可见光频谱中的电磁波)的被动传感器。其他类型的相机可以捕获其他波长的光(例如,红外相机)。如果感测波长在环境中是普遍的并且被环境中的对象反射(例如,可见光)或者由所感测对象主动发射,则相机传感器可以是被动传感器。如果相机传感器主动发射光并观察任何反射光(例如,红外光),则相机传感器也可以是主动传感器。
激光雷达传感器可包括主动传感器,其发射具有在光频谱中的波长的电磁波(光波)并观察发射波的反射。例如,激光雷达传感器可以从激光器发射红外波脉冲并检测反射脉冲。其他激光雷达传感器可以使用发射其他波长的光(诸如紫外光、可见光、近红外光等)的激光器。激光雷达传感器可以用于检测距离、运动等。
雷达传感器可包括主动传感器,其发射无线电频谱中的电磁波(无线电波)和/或微波频谱中的电磁波,并且观察无线电波/微波的反射以检测反射无线电波的对象。雷达可以用于检测对象的范围(例如,位置和距离)、对象的运动等。
短程传感器可包括被配置为检测比其它传感器检测的更靠近机器的机器环境的任何传感器。例如,短程传感器可包括被调谐到比其他雷达传感器更短程的雷达。
图1中所示各个传感器12的数量和布置可对于不同实施方案变化。在其它实施方案中,也可存在其它类型的传感器,诸如声波或超声波传感器。
在一个实施方案中,可提供任意集合的致动器16。例如,致动器16可包括控制机器的转向的转向致动器、控制机器的马达或机器的其它动力源以使机器向前或向后移动的推进致动器、施加制动以使机器减速的制动致动器、以及任选地还有控制机器的悬架的主动悬架致动器。
现在转到图2,示出了包括多个计算机40A-40C和多个动作计算机42A-42B的自动化控制器的一个实施方案的框图,其耦接到传感器12和致动器14。动作计算机42A-42B也耦接到计算机40A-40C。更具体地,计算机40A-40B中的每一者耦接到传感器12的不同子集(例如,传感器12x耦接到计算机40A;传感器12y耦接到计算机40B,传感器12z耦接到计算机40C)。传感器12x-12z可包括图1所示的传感器12A-12D,其中传感器12A-12D的不同实例分布在子集12x-12z中。更具体地,具有重叠视场的传感器12A-12D的实例可被包括在不同的子集12x-12z中。例如,相机传感器的实例可具有覆盖机器右前侧的视场,并且雷达传感器的实例可具有也覆盖机器右前侧的视场,但视场不需要完全共同延伸。相机传感器的实例可被包括在子集12x-12z中的一者(例如,传感器12z)中,并且雷达传感器的实例可被包括在子集12x-12z中另一者(例如,传感器12y)中。因此,如果计算机40C发生故障,则来自相机传感器的实例的输入可不被处理,但是来自雷达传感器的实例的输入仍可被处理。因此可保持对机器右前侧的至少一些可见性。虽然示出了三个计算机40A-40C,但是根据需要,其他实施方案可包括更多计算机。
利用如上所述划分的传感器12x-12z,每个计算机40A-40C可对来自相应传感器12x-12z(图2中的附图标记22A-22C)的传感器数据执行分区带感测处理。即,在计算机40A-40C上,可完成图1中的分区带感测处理22。如果计算机40A-40C中的一者发生故障,则分区带感测处理22可在故障降级模式中在剩余的计算机40A-40C上继续,在机器的所有侧上具有至少一些传感器覆盖但没有在所有计算机40A-40C在线时可用的完全覆盖。例如,如果一个计算机40A-40C发生故障,则分布在围绕机器的视场周围的总传感器数据的大约三分之一可能丢失。
计算机40A-40C可彼此通信分区带处理结果,使得每个计算机40A-40C具有所有分区带处理结果以执行中央处理24。因此,计算机40A-40C可为中央处理24提供TMR(故障操作)保护。即,计算机40A-40C中的每一者可产生中央感测处理结果(世界视图或世界估计),该中央感测处理结果可与来自其他计算机40A-40C的结果进行比较以检测错误,并且在不匹配的情况下,对结果投票,其中匹配的计算机40A-40C赢得投票。此外,如果一个计算机40A-40C始终不匹配,则这可能是故障的指示,并且可使该计算机离线并认为其发生故障。
每个计算机40A-40C可在生成子阶段26中处理世界视图和机器的任务,在该示例中,生成子阶段26也提供有TMR(故障操作)保护。生成结果可以与如上所述的中央感测处理结果类似的方式在计算机40A-40C之间进行比较。
所生成的选项可被提供给相应计算机40A-40C中的求解子阶段28A-28C。跨计算机40A-40C,可完成图1所示的求解子阶段28。每个求解子阶段28A-28C可接收生成子阶段26结果,并且可求解总体生成子阶段26结果的不同部分。例如,求解子阶段28A可求解生成子阶段26结果的前三分之一;求解子阶段28B可求解生成子阶段26结果的中间三分之一;并且求解子阶段28C可求解子阶段26生成结果的最后三分之一。在其他实施方案中,可进行生成子阶段26结果的任何其他划分。如果计算机40A-40C中的一者发生故障,则可提供生成子阶段26结果的三分之二的解答(故障降级保护)。如前所述,如果生成的特定选项是期望始终可用的选项(例如,留在当前路径上和维持速度),则该选项可被包括在结果的每个三分之一中,使得每个求解子阶段28A-28C可对该选项求解。
选择和检查子阶段30可在计算机40A-40C上并行执行,并且如上所述比较结果,从而提供TMR(故障操作)保护。结果轨迹被提供给动作计算机42A-42D,其为动作阶段提供双重-双重(故障操作)保护,从而控制致动器14。
计算机40A-40C可具有相同的计算带宽和性能参数(例如,计算机40A-40C可以是相同计算机系统设计的实例)。每个计算机40A-40C可包括处理器硬件、存储器和形成计算机系统的各个外围设备。示例在图6中示出并且在下文更详细地讨论。
通过在具有故障降级保护的情况下在计算机40A-40C之间划分更计算密集的阶段/子阶段中的一些,在计算机40A-40C中可需要比否则在为每个阶段/子阶段提供TMR(故障操作)保护的情况下可能需要的硬件更少的硬件。例如,给定计算机40A-40C的计算带宽/性能可以是为了提供三分之一的分区带感测处理子阶段22和求解子阶段28以及全部中央感测处理子阶段24、生成子阶段26及选择和检查子阶段30所需要的最小值。在一个实施方案中,例如,发明人已发现求解阶段28和分区带感测处理阶段22的计算带宽大于其他阶段/子阶段,并且可通过仔细选择每个计算机进行的传感器数据处理而以故障降级保护来实现。因此,可减少计算机40A-40C所需的最大计算带宽,从而降低计算机40A-40C的成本。
根据本公开,一种自动化控制器可包括第一多个计算机和第二多个计算机,第一多个计算机被配置为处理来自机器人控制的移动机器上多个传感器的传感器数据以生成机器人控制的移动机器将遵循的输出轨迹,第二多个计算机耦接到第一多个计算机并且被配置为控制机器人控制的移动机器中的多个致动器以使机器人控制的移动机器遵循输出轨迹。第一多个计算机可被配置为为处理的一部分提供故障降级保护,并为处理的其余部分提供故障操作保护。故障降级保护允许机器人控制的移动机器在第一多个计算机中一者发生故障之后以一个或多个约束操作。一个或多个约束不适用于在第一多个计算机中一者发生故障之后具有故障操作保护的机器人控制的移动机器操作。第二多个计算机可实施双锁步、双重冗余机制以提供故障操作保护。在一个实施方案中,第一多个计算机中的各个计算机可被配置为处理来自多个传感器的非重叠子集的传感器数据。第一多个计算机可被配置为针对来自子集的传感器数据的处理提供故障降级保护。在一个实施方案中,第一多个计算机可被配置为进一步处理非重叠子集的处理的结果,其中进一步处理是从结果作为整体对数据来执行。第一多个计算机可被配置为针对进一步处理提供故障操作保护。在一个实施方案中,第一多个计算机可被配置为处理描述围绕机器人控制的移动机器的多个对象的数据,以生成机器人控制的移动机器和多个对象进行的多个潜在动作。第一多个计算机可被配置为提供故障操作保护以生成多个潜在动作。在一个实施方案中,第一多个计算机中的各个计算机可被配置为从多个潜在动作的非重叠子集计算多个轨迹,其中第一多个计算机可被配置为提供故障降级操作保护以计算多个轨迹。在一个实施方案中,第一多个计算机可被配置为对照预定的成本函数评估多个轨迹以选择输出轨迹。第一多个计算机可被配置为检查输出轨迹以确保输出轨迹至少具有指定的避免碰撞的最小概率。第一多个计算机可被配置为提供故障操作保护以评估多个轨迹以选择输出轨迹且确保输出轨迹至少具有指定的避免碰撞的最小概率。在一个实施方案中,第一多个计算机可被配置为检测第一多个计算机中第一计算机的故障,并且基于故障以故障降级模式继续机器人控制的移动机器的操作。在一个实施方案中,第一多个计算机可被配置为检测第一多个计算机中至少两者的故障,并且基于故障使机器人控制的移动机器停止。在一个实施方案中,一个或多个约束包括以与故障操作模式相比降低的速度操作机器人控制的移动机器。在一个实施方案中,一个或多个约束包括操作机器人控制的移动机器,同时阻止机器人控制的移动机器在第一多个计算机操作时被允许执行的一个或多个动作。在一个实施方案中,一种机器可包括多个传感器和耦接到多个传感器的自动化控制器,其中自动化控制器包括第一多个计算机和第二多个计算机。
图3是对于陆基机器实施方案示出将传感器映射到计算机的一个实施方案的表50。在该实施方案中,可存在单独的相机和激光雷达传感器,其具有相对于机器的视场:左前侧(“FL”)、右前侧(“FR”)、左后侧(“RL”)、右后侧(“RR”)以及左侧和右侧。因此,在该示例中存在至少6对相机/激光雷达传感器。类似地,在该实施方案中可存在具有以下视场的6个单独的短程传感器:FL、FR、RL、RR、前方中央(例如,机器的正前方,“FC”)和后方中央(例如,机器的正后方,“RC”)。也可存在6个单独的雷达传感器,FR、FL、RR、RL以及左侧和右侧。
如表50中所示,RL和RR相机/激光雷达传感器、FC和RC短程传感器以及侧面雷达传感器可被分组为传感器12x的C0子集并且可由计算机40A处理。右侧和左侧相机/激光雷达传感器、FR和RL短程传感器以及FR和RL雷达传感器可被分组为传感器12y的C1子集,并且可由计算机40B处理。FR和RL相机/激光雷达传感器、FL和RR短程传感器以及FL和RR雷达传感器可被分组为传感器的C2子集并且可由计算机40C处理。
利用如图3所示的布置,任何一个计算机的丢失都不会在机器周围留下完全没有传感器覆盖的区域。例如,如果计算机40A发生故障,则FL和RR相机/激光雷达传感器将不可用,但是RL和RR短程传感器和雷达仍被计算机40C处理。FC和RC短程传感器将是可用的,但那些被仍由其它计算机40B和40C处理的FL、FR、RR和RL传感器重叠。侧面雷达传感器将不可用,但侧面上的相机/激光雷达传感器仍被计算机40B处理。
图4是示出计算机故障和机器响应于故障的操作的一个实施方案的表52,其基于如图3所示的由每个计算机处理的传感器的子集。如果计算机40A发生故障(表52中的C0故障列),则转弯受到侧面雷达丢失的影响,侧面雷达可检测快速接近的机器。例如,对于右路径(例如,车道)改变,计算机40A的故障的影响可能是缺少RR激光雷达,在陆基机器实施方案中,RR激光雷达可检测机器右侧的骑车人。为了确保向前和向后运动是清楚的,缺少短程传感器可能使靠近机器的小对象未被检测到。如果存在计算机40B的故障(表52中的C1故障列),则影响可包括缺少侧面上的相机/激光雷达覆盖,这在陆基实施方案中可使得骑车人的检测具有挑战性。另外,对于左路径(例如,车道)改变,缺少RL雷达可能使左路径(例如,车道)改变更危险。对于计算机40C的故障,右路径(例如,车道)并入可能受到缺少FR相机/激光雷达的影响,并且左路径(例如,车道)改变可能受到缺少FL雷达的影响。
可特定于给定计算机的丢失的一个约束可以是尽可能避免受影响的操纵。更一般地,可应用于任何计算机丢失的约束可包括降低速度、避免左路径(例如,车道)改变、避免未受保护的左转(其比受保护的左转更具挑战性)、以及抑制新任务的开始(例如,一旦机器到达其目的地,其可停止并且在故障被校正之前不开始新行程。例如,这些约束可作为因素被考虑到选择和检查子阶段30所使用的成本函数中。例如,转弯可能不是完全可避免的,但是轨迹的选择可尝试限制所执行的转弯的数量。
图5是示出容错操作的方法的流程图。一旦系统被初始化,所有计算机40A-40C就可处于操作中(框60)。如果没有任何计算机40A-40C被检测为发生故障(判定框62,“否”分支),则机器可继续正常操作(框64)。即,机器可在没有任何将在故障降级操作中应用的约束的情况下操作。如果计算机40A-40C中的一者被检测为发生故障,则机器也可继续操作(判定框62,“是”分支)。一旦一计算机40A-40C发生故障,机器就可继续故障降级操作(框66)。可应用与故障降级操作相关的约束。如果第二计算机40A-40C在初始故障有效时发生故障(判定框68,“是”分支),则可能不再保证安全操作,并且自动化控制器可尽可能快地使机器安全停止(框70)。如果第二计算机40A-40C没有发生故障(判定框68,“否”分支),则自动化控制器可继续操作(正常或故障降级,具体取决于初始计算机40A-40C是否保持在故障状态)。
当检测到计算机40A-40C的故障时,在一些实施方案中,自动化控制器可尝试排除该故障。例如,自动化控制器可重新初始化该计算机(或“重新引导”该计算机)并尝试使该计算机联机。
在故障降级操作中,具有故障降级保护的用于确定轨迹的阶段/子阶段以降级模式操作,而具有故障操作保护的那些阶段/子阶段以完全操作继续。因此,在一个实施方案中,一种方法可包括:在第一多个计算机的各个计算机中分区带处理来自多个传感器的传感器数据,在分区带处理期间提供故障降级保护;由第一多个计算机集中处理由分区带处理产生的数据,在集中处理期间提供故障操作保护;由第一多个计算机基于由分区带处理和集中处理标识的机器周围的多个对象来生成机器的多个潜在动作;由第一多个计算机基于多个潜在动作生成多个潜在轨迹,在多个潜在轨迹的生成期间提供故障降级保护;以及由第一多个计算机评估多个潜在轨迹以对输出轨迹进行选择,在评估期间提供故障操作保护。在一个实施方案中,方法还包括由第二多个计算机控制机器中的多个致动器以遵循输出轨迹,其中第二多个计算机提供双锁步、双重冗余故障操作保护。
图6是可实施自动化控制器的计算机硬件的一个实施方案的更详细示图。传感器12A-12D可耦接到传感器到计算机映射电路80,传感器到计算机映射电路80可耦接到计算机40A-40C。更具体地,传感器到计算机映射电路80可将传感器的子集映射到多个计算机40A-40C中的相应计算机。子集可以是不重叠的。在一个实施方案中,映射可固定在硬件中,并且传感器到计算机映射电路80可包括从传感器到相应计算机40A-40C的硬连线连接。在另一实施方案中,映射可以是部分或完全可编程的,并且传感器到计算机映射电路80可包括可编程寄存器和由寄存器控制的路由电路(例如,多路复用器和选择电路),以将传感器12A-12D连接到相应的计算机40A-40C。
每个计算机40A-40C可包括多个片上系统(SOC)82。每个SOC 82可至少包括集成在单个半导体衬底上的一个或多个处理器和一个或多个存储器控制器。各种外围组件和/或外围接口控制器,诸如外围组件互连(PCI、PCIe等)或通用串行总线(USB)接口控制器,用于连接到SOC外外围组件。每一SOC 82可耦接到一个或多个存储器(例如,静态随机存取存储器(SRAM)、动态RAM(DRAM)诸如同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR、DDR2、DDR3、DDR4、DDR5等,包括移动版本诸如LP3、LP4、LP5等)等)。存储器可在耦接到SOC 82的存储器模块上,或可在层叠式芯片(COC)、层叠式封装(POP)或多芯片模块(MCM)配置中与SOC 82一起封装。
给定计算机40A-40C中所包括的SOC 82的数量可基于上述各个阶段/子阶段的计算要求,如上所述对于每个阶段或子阶段具有故障操作或故障降级保护。即,SOC 82的数量可足以提供系统中给定计算机40A-40C对于以上阶段/子阶段中每一者的计算要求。虽然本实施方案使用SoC 82,但计算机40A-40C的其它实施方案可采用离散部件具体实施,其中处理器、存储器控制器等不集成到单个半导体衬底上。
如图6所示,计算机40A-40C也可彼此耦接。当采用冗余处理(例如,故障操作保护)时,耦接可允许计算机40A-40C比较结果。比较可允许计算机40A-40C检测故障。例如,如果两个计算机40A-40C从冗余处理生成匹配结果并且第三计算机40A-40C生成不匹配结果,则很可能第三计算机40A-40C已发生故障并且应当被忽略。一旦检测到故障,剩余的两个计算机40A-40C可针对一些阶段/子阶段在故障降级操作中继续,并且针对其他阶段/子阶段在故障可操作操作中继续。故障操作阶段/子阶段可继续比较结果,并且如果发生不匹配,则可检测到第二故障。不知道哪个计算机40A-40C是第二故障,但知道故障,并且当检测到第二故障时可采取适当动作。
计算机40A-40C可单独耦接到计算机42A-42B中的每一者以提供输入轨迹。计算机42A-42B可各自是双微控制器单元(MCU),从而为动作阶段20提供双重-双重保护。MCU可以是针对在陆基机器中可能存在的潜在恶劣条件而设计的“硬化”MCU。计算机42A-42B被并联耦接到致动器14以提供控制,并且可为了结果比较目的而彼此耦接以检测故障。每一计算机42A-42B中的双MCU可锁步执行并且也可本地地比较结果以检测故障。
结果的比较可以任何方式在计算机42A-42B之间(和之内)执行。在一些实施方案中,计算机40A-40C也可比较结果,但在其它实施方案中,不需要比较来自计算机40A-40C的结果。例如,计算机40A-40C可对每个结果计算散列函数并且可交换散列,或者散列或结果本身的比较可在计算机42A-42B中执行。类似地,计算机42A-42B可计算散列函数(其不需要与计算机40A-40C所使用的散列函数相同,但是如果期望的话可以相同)并且可交换散列。
***
本公开包括对“实施方案”或“实施方案”的组(例如,“一些实施方案”或“各种实施方案”)的引用。实施方案是所公开概念的不同具体实施或实例。对“实施方案”、“一个实施方案”、“特定实施方案”等的引用并不一定是指相同的实施方案。设想了大量可能的实施方案,包括具体公开的那些,以及落入本公开的实质或范围内的修改或替代。
本公开可讨论可由所公开的实施方案产生的潜在优点。并非所有这些实施方案的具体实施都将必然表现出任何或所有潜在优点。特定具体实施是否实现了优点取决于许多因素,其中一些因素在本公开的范围之外。事实上,存在许多原因导致落入权利要求范围内的具体实施可能不表现出任何所公开的优点中的一些或全部。例如,特定具体实施可包括在本公开的范围之外的其他电路,结合所公开的实施方案中的一个实施方案,该其他电路否定或减弱一个或多个所公开的优点。此外,特定具体实施(例如,具体实施技术或工具)的次优设计执行也可能否定或减弱所公开的优点。即使假设有技术的具体实施,优点的实现仍可取决于其他因素,诸如部署具体实施的环境情况。例如,提供给特定具体实施的输入可防止本公开中解决的一个或多个问题在特定场合发生,结果可能无法实现其解决方案的益处。考虑到本公开外部的可能因素的存在,本文所述的任何潜在优点都不应理解为是为了证明侵权行为而必须满足的权利要求限制。相反,此类潜在优点的标识旨在示出受益于本公开的设计者可用的一种或多种改进类型。永久性地描述此类优点(例如,陈述特定优点“可能出现”)并非旨在传达关于此类优点实际上是否可被实现的疑问,而是认识到此类优点的实现通常取决于附加因素的技术现实。
除非另行指出,否则实施方案是非限制性的。也就是说,所公开的实施方案并非旨在限制基于本公开起草的权利要求的范围,即使仅针对特定特征描述单个示例的情况下也是如此。本发明所公开的实施方案旨在为示例性的而非限制性的,而无需在本公开中进行任何相反的陈述。因此本申请意在允许涵盖所公开实施方案的权利要求、以及此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
例如,本申请中的特征可以任何合适的方式组合。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地讲,参照所附权利要求,从属权利要求的特征在适当的情况下可与其他从属权利要求的特征组合,包括从属于其他独立权利要求的权利要求。类似地,在适当的情况下,可组合来自相应独立权利要求的特征。
因此,虽然所附从属权利要求可撰写成使得每个从属权利要求从属于单个其他权利要求,但也可设想附加从属关系。可设想符合本公开的从属特征的任何组合,并且这些组合可在本专利申请或另一专利申请中受权利要求书保护。简而言之,组合不限于所附权利要求中具体列举的那些。
在适当的情况下,还预期以一种格式或法定类型(例如,装置)起草的权利要求旨在支持另一种格式或法定类型(例如,方法)的对应权利要求。
***
因为本公开是法律文件,所以各种术语和短语可受到管理和司法解释的约束。特此给出公告,以下段落以及贯穿本公开提供的定义将用于确定如何解释基于本公开起草的权利要求。
除非上下文另有明确规定,否则对单数形式的项目的引用(即,前面有“一个”、“一种”或“该”的名词或名词短语)旨在表示“一个或多个”。因此,在不伴随上下文的情况下,对权利要求中的“项目”的引用并不排除该项目的附加实例。“多个”项目是指两个或更多个项目的集合。
词语“可”在本文中在允许的意义上(即,具有潜在可能的,能够的)进行使用,而不是在强制意义上(即,必须)进行使用。
术语“包含”和“包括”及其形式是开放式的,并且意指“包括但不限于”。
当在本公开中相对于选项列表使用术语“或”时,除非上下文另有提供,否则一般将理解为以包含性意义使用。因此,表述“x或y”等同于“x或y,或两者”,因此涵盖1)x但不是y,2)y但不是x,以及3)x和y两者。另一方面,短语诸如“x或y中的任一者,但不是两者都”使得清楚“或”以排他性意义使用。
表述“w、x、y或z,或它们的任何组合”或“...w、x、y和z中的至少一者”旨在涵盖涉及最多至该集合中元件总数的单个元件的所有可能性。例如,给定集合[w,x,y,z],这些短语涵盖集合中的任何单个元素(例如,w但不是x、y或z)、任何两个元素(例如,w和x,但不是y或z)、任何三个元素(例如,w、x和y,但不是z)以及所有四个元素。短语“...w、x、y和z中的至少一者”因此是指集合[w,x,y,z]中的至少一个元素,从而涵盖该元素列表中的所有可能的组合。该短语不应被解释为要求存在w的至少一个实例、x的至少一个实例、y的至少一个实例和z的至少一个实例。
在本公开中,各种“标签”可先于名词或名词短语。除非上下文另有提供,否则用于特征(例如,“第一电路”、“第二电路”、“特定电路”、“给定电路”等)的不同标签是指特征的不同实例。除此之外,除非另有说明,否则标签“第一”、“第二”和“第三”在应用于特征时并不暗示任何类型的排序(例如,空间、时间、逻辑等)。
短语“基于”或用于描述影响确定的一个或多个因素。此术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。此短语指定B是用于确定A的因素或者B影响A的确定。此短语并不排除A的确定也可基于某个其他因素诸如C。此短语也旨在覆盖A仅基于B来确定的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”是同义的。
短语“响应于”和“响应”描述了触发效应的一个或多个因素。该短语不排除附加因素可影响或以其他方式触发效应的可能性,这些因素与指定因素联合使用或独立于指定因素。也就是说,效果可以仅仅响应于这些因素,或者可以响应于指定的因素以及其他未指定的因素。考虑短语“响应于B执行A”。该短语指定B是触发A的执行或触发A的特定结果的因素。该短语不排除执行A也可能响应于某些其他因素,诸如C。该短语也不排除执行A可响应于B和C而联合执行。此短语也旨在覆盖A仅响应于B而执行的实施方案。如本文所用,短语“响应”与短语“至少部分地响应于”是同义的。类似地,短语“响应于”与短语“至少部分地响应于”是同义的。
***
在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被说成“被配置为”执行某个任务,即使该结构当前并非正被操作。因此,被描述或表述为“被配置为”执行某个任务的实体指代用于实施该任务的物理的事物,诸如设备、电路、具有处理器单元的系统和存储有可执行程序指令的存储器等。此短语在本文中不被用于指代无形的事物。
在一些情况下,各种单元/电路/部件在本文中可被描述为执行一组任务或操作。应当理解,这些实体“被配置为”执行那些任务/操作,即使没有具体指出。
术语“被配置为”并不旨在意指“可配置为”。例如,未编程的FPGA不会被认为是“被配置为”执行特定功能。然而,该未编程的FPGA可以“可配置为”执行该功能。在适当编程之后,FPGA然后可认为“被配置为”执行特定功能。
出于基于本公开的美国专利申请的目的,在权利要求中陈述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素不援引35U.S.C.§112(f)。如果申请人在基于本公开的美国专利申请的申请过程中想要援引112(f)部分,则其将使用“用于[执行功能]的装置”结构来表述权利要求的要素。
在本公开中可描述不同的“电路”。这些电路或“电路(circuitry)”构成硬件,该硬件包括各种类型的电路元件,诸如组合逻辑、时钟存储设备(例如,触发器、寄存器、锁存器等)、有限状态机、存储器(例如,随机存取存储器、嵌入式动态随机存取存储器)、可编程逻辑阵列等。电路可以是定制设计的,或取自标准库。在各种具体实施中,电路可以视情况包括数字部件、模拟部件或两者的组合。某些类型的电路可通常被称为“单元”(例如,解码单元、算术逻辑单元(ALU)、功能单元、存储器管理单元(MMU)等)。此类单元也指电路或电路(circuitry)。
因此,在附图中示出并在本文中描述的所公开的电路/单元/部件和其他元件包括硬件元件,诸如前面段落中描述的那些硬件元件。在许多情况下,硬件元件在特定电路中的内部布置可通过描述该电路的功能来指定。例如,特定的“解码单元”可被描述为执行“处理指令的操作码并将该指令路由到多个功能单元中的一个或多个”的功能,这意味着解码单元“被配置为”执行该功能。对于计算机领域的技术人员而言,该功能规范足以暗示用于电路的一组可能的结构。
在各种实施方案中,如前述段落中所讨论的,电路、单元和由其被配置为实施的功能或操作定义的其他元件。相对于彼此的此类电路/单元/部件的布置以及它们进行交互的方式形成硬件的微架构定义,该硬件最终在集成电路中制造或被编程到FPGA中以形成微架构定义的物理具体实施。因此,微架构定义被本领域的技术人员认为是可导出许多物理具体实施的结构,所有这些物理具体实施均落入由微架构定义所描述的更广泛的结构中。即,具有根据本公开提供的微架构定义的技术人员可在没有过度实验的情况下并且利用普通技术人员的应用,通过以硬件描述语言(HDL)诸如Verilog或VHDL编码电路/单元/部件的描述来实现该结构。HDL描述常常以可显现为功能性的方式来表达。但是对于本领域的技术人员而言,该HDL描述是用于将电路、单元或部件的结构转换为下一级具体实施细节的方式。此类HDL描述可采用以下形式:行为代码(其通常为不可合成的)、寄存器传输语言(RTL)代码(其与行为代码相比通常为可合成的)、或结构代码(例如,指定逻辑门及其连接性的网表)。可针对为给定集成电路制造技术设计的单元库来顺序地合成HDL描述,并可出于定时、功率和其他原因而被修改,以获得被传输到工厂以生成掩模并最终产生集成电路的最终的设计数据库。一些硬件电路或其部分也可在示意图编辑器中被定制设计并且与合成电路一起被捕获到集成电路设计中。该集成电路可包括晶体管和其他电路元件(例如,无源元件,诸如电容器、电阻器、电感器等),以及晶体管和电路元件之间的互连件。一些实施方案可实现耦接在一起的多个集成电路,以实现硬件电路,和/或可在一些实施方案中使用离散元件。另选地,HDL设计可被合成为可编程逻辑阵列诸如现场可编程门阵列(FPGA),并且可在FPGA中实现。一组电路的设计与这些电路的后续低级具体实施之间的这种解耦通常导致这样的情形:其中电路或逻辑设计者从来不指定超出对电路被配置为做什么的描述的用于低级具体实施的一组特定结构,因为该过程是在电路实施过程的不同阶段执行的。
可使用电路元件的许多不同低级组合来实现电路的相同规格的事实导致该电路的大量等效结构。如所指出的那样,这些低级电路具体实施可根据制造技术、被选择用于制造集成电路的代工厂、为特定项目提供的单元库等的变化而变化。在许多情况下,通过不同设计工具或方法进行的产生这些不同具体实施的选择可以是任意的。
此外,对于给定实施方案,电路的特定功能规范的单个具体实施通常包括大量设备(例如,数百万个晶体管)。因此,该信息的剪切体积使得提供用于实现单个实施方案的低级结构的完整叙述是不切实际的,更不用说大量等同的可能具体实施。为此,本公开描述了使用工业中常用的功能简写的电路的结构。
一旦充分了解了上面的公开,许多变型和修改对于本领域的技术人员而言将变得显而易见。本公开旨在使以下权利要求书被阐释为包含所有此类变型和修改。
Claims (13)
1.一种自动化控制器,所述自动化控制器包括:
第一多个计算机,所述第一多个计算机被配置为处理来自机器人控制的移动机器上多个传感器的传感器数据以生成所述机器人控制的移动机器将遵循的输出轨迹,其中所述第一多个计算机被配置为针对所述处理的一部分提供故障降级保护并且针对所述处理的其余部分提供故障操作保护,其中所述故障降级保护允许所述机器人控制的移动机器在所述第一多个计算机中的一者发生故障之后以一个或多个约束操作,其中所述故障操作保护允许所述机器人控制的移动机器在故障之后继续操作而不应用所述一个或多个约束;和
第二多个计算机,所述第二多个计算机耦接到所述第一多个计算机并且被配置为控制所述机器人控制的移动机器中的多个致动器以使所述机器人控制的移动机器遵循所述输出轨迹,其中所述第二多个计算机实施双锁步、双重冗余机制以提供故障操作保护。
2.根据权利要求1所述的自动化控制器,其中所述第一多个计算机中的各个计算机被配置为处理来自所述多个传感器的非重叠子集的传感器数据,并且其中所述第一多个计算机被配置为针对来自所述子集的所述传感器数据的处理提供故障降级保护。
3.根据权利要求2所述的自动化控制器,其中所述第一多个计算机被配置为进一步处理所述非重叠子集的所述处理的结果,其中从所述结果作为整体对所述数据执行所述进一步处理,并且其中所述第一多个计算机被配置为针对所述进一步处理提供故障操作保护。
4.根据权利要求1至3中任一项所述的自动化控制器,其中所述第一多个计算机被配置为处理描述围绕所述机器人控制的移动机器的多个对象的数据,以生成所述机器人控制的移动机器和所述多个对象的多个潜在动作,其中所述第一多个计算机被配置为提供故障操作保护以生成所述多个潜在动作。
5.根据权利要求4所述的自动化控制器,其中所述第一多个计算机中的各个计算机被配置为根据所述多个潜在动作的非完全重叠子集计算多个轨迹,其中所述第一多个计算机被配置为提供故障降级操作保护以计算所述多个轨迹。
6.根据权利要求1至5中任一项所述的自动化控制器,其中所述第一多个计算机被配置为对照预定的成本函数评估多个轨迹以选择所述输出轨迹,其中所述第一多个计算机被配置为检查所述输出轨迹以确保所述输出轨迹至少具有避免碰撞的指定的最小概率,并且其中所述第一多个计算机被配置为提供故障操作保护以评估所述多个轨迹以选择所述输出轨迹并且确保所述输出轨迹至少具有所述指定的最小概率。
7.根据权利要求1至6中任一项所述的自动化控制器,其中所述第一多个计算机被配置为检测所述第一多个计算机中第一计算机的故障并且基于所述故障以故障降级模式继续所述机器人控制的移动机器的操作。
8.根据权利要求1至7中任一项所述的自动化控制器,其中所述第一多个计算机被配置为检测所述第一多个计算机中至少两者的故障并且基于所述故障使所述机器人控制的移动机器停止。
9.根据权利要求1至8中任一项所述的自动化控制器,其中所述一个或多个约束包括以与故障操作模式相比降低的速度操作所述机器人控制的移动机器。
10.根据权利要求1至9中任一项所述的自动化控制器,其中所述一个或多个约束包括操作所述机器人控制的移动机器,同时阻止所述机器人控制的移动机器在所述第一多个计算机操作时被允许执行的一个或多个动作。
11.一种机器,所述机器包括:
多个传感器;和
耦接到所述多个传感器的根据权利要求1至10中任一项所述的自动化控制器。
12.一种方法,所述方法包括:
在第一多个计算机的各个计算机中分区带处理来自多个传感器的传感器数据,在所述分区带处理期间提供故障降级保护;
由所述第一多个计算机集中处理由所述分区带处理产生的数据,在所述集中处理期间提供故障操作保护;
由所述第一多个计算机基于由所述分区带处理和集中处理标识的机器周围的多个对象来生成所述机器的多个潜在动作;
由所述第一多个计算机基于所述多个潜在动作生成多个潜在轨迹,在所述生成所述多个潜在轨迹期间提供故障降级保护;以及
由所述第一多个计算机评估所述多个潜在轨迹以对输出轨迹进行选择,在所述评估期间提供故障操作保护。
13.根据权利要求12所述的方法,所述方法还包括由第二多个计算机控制所述机器中的多个致动器以遵循所述输出轨迹,其中所述第二多个计算机提供双锁步、双重冗余故障操作保护。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/247,388 | 2021-09-23 | ||
US17/932,177 | 2022-09-14 | ||
US17/932,177 US20230088591A1 (en) | 2021-09-23 | 2022-09-14 | Fault Tolerant System with Minimal Hardware |
PCT/US2022/043650 WO2023049015A1 (en) | 2021-09-23 | 2022-09-15 | Fault tolerant system with minimal hardware |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117999544A true CN117999544A (zh) | 2024-05-07 |
Family
ID=90892959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280061771.4A Pending CN117999544A (zh) | 2021-09-23 | 2022-09-15 | 具有最少硬件的容错系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117999544A (zh) |
-
2022
- 2022-09-15 CN CN202280061771.4A patent/CN117999544A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3400676B1 (en) | A safety architecture for autonomous vehicles | |
Iturbe et al. | A triple core lock-step (tcls) arm® cortex®-r5 processor for safety-critical and ultra-reliable applications | |
US11144027B2 (en) | Functional safety controls based on soft error information | |
Iturbe et al. | Addressing functional safety challenges in autonomous vehicles with the arm TCL S architecture | |
US11269742B2 (en) | Integrated circuit chip with cores asymmetrically oriented with respect to each other | |
Vivekanandan et al. | A simplex architecture for intelligent and safe unmanned aerial vehicles | |
Munir | Safety Assessment and Design of Dependable Cybercars: For today and the future | |
Han et al. | 40‐TFLOPS artificial intelligence processor with function‐safe programmable many‐cores for ISO26262 ASIL‐D | |
de Oliveira et al. | Applying lockstep in dual-core ARM Cortex-A9 to mitigate radiation-induced soft errors | |
Sari et al. | Fail-operational safety architecture for ADAS systems considering domain ECUs | |
Altby et al. | Design and implementation of a fault-tolerant drive-by-wire system | |
CN117999544A (zh) | 具有最少硬件的容错系统 | |
US20230088591A1 (en) | Fault Tolerant System with Minimal Hardware | |
EP4113306A1 (en) | Verifying processing logic of a graphics processing unit | |
WO2023049015A1 (en) | Fault tolerant system with minimal hardware | |
Frtunikj et al. | Adaptive error and sensor management for autonomous vehicles: model-based approach and run-time system | |
Fouad et al. | Context-aware resources placement for SRAM-based FPGA to minimize checkpoint/recovery overhead | |
Rinaldo et al. | Hybrid modeling for the assessment of complex autonomous systems-a safety and security case study | |
JP7449193B2 (ja) | 演算装置および車両制御装置 | |
US9772897B1 (en) | Methods and systems for improving safety of processor system | |
US20240231981A1 (en) | Verifying processing logic of a graphics processing unit | |
WO2023015919A1 (zh) | Ai计算的校验方法和装置 | |
Doran et al. | Hybrid Convolutional Neural Networks with Reliability Guarantee | |
CN117425881A (zh) | 用于车辆的控制装置以及辅助系统 | |
Houben et al. | Endowing advanced driver assistance systems with fault tolerance |
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 |