Coursera自动驾驶课程第22讲:Principles of Behaviour Planning

发布时间:2026/9/27 21:07:44
Coursera自动驾驶课程第22讲:Principles of Behaviour Planning 在第21讲《Coursera自动驾驶课程第21讲Dynamic Object Interactions》 我们学习了如何预测动态物体之间的交互如何计算碰撞时间。在本讲中我们将讨论讨论运动规划架构中一个非常重要的部分——行为规划。首先将介绍行为规划的概念以及如何使用状态机构建行为规划器。随后逐步创建一个基于状态机的行为规划器使其能够处理多种场景。最后通过探讨行为规划问题的替代方法来理解它们各自的优缺点。文章目录1. Behaviour Planning1.1 Define a Behaviour Planning System1.2 Input Output of a Behaviour Planner1.3 Finite State Machines2. Handling an Intersection Scenario Without Dynamic Objects2.1 Discretizing the Intersection2.2 State Machine Transitions3. Handling an Intersection Scenario with Dynamic Objects3.1 Review3.2 State Machine Transition4. Handling Multiple Scenarios4.1 Overview4.2 Hierarchical State Machine5. Advanced Methods for Behaviour Planning5.1 State Machine Behaviour Planning Issues5.2 Reinforcement Learning issue1. Behaviour Planning1.1 Define a Behaviour Planning System在本小节首先我们将定义行为规划系统的要求、探讨行为规划模块的典型输入与输出、最后介绍有限状态机的概念以及如何利用它来构建行为规划系统。行为规划系统负责规划一组高级驾驶动作或操作以在各种驾驶情况下安全地完成驾驶任务。所规划的操作集合应当考虑交通规则以及与环境中所有静态和动态物体的交互。规划器所做出的一系列高级决策必须确保车辆安全并高效地在环境中行驶。作为行为规划器角色的一个例子假设自动驾驶车辆到达一个繁忙的十字路口。行为规划器必须规划何时何地停车、停留多长时间以及何时通过路口。行为规划器必须以计算高效的方式执行这类决策以便能够快速响应环境变化并部署在自动驾驶车辆硬件上。行为规划器还应能够处理不准确的输入受测量噪声污染以及错误的输入受感知误差影响如误检和漏检。既然我们已经明确了行为规划器的定义让我们列出一组基本行为这些行为将在本讲的其余部分中使用。总的来说我们将考虑五种驾驶行为按限速行驶Track Speed这相当于在开阔道路上的无约束驾驶意味着向前行驶的唯一限制是必须遵守限速。跟随前车Follow Lead Vehicle应匹配自车前车的速度并保持安全的跟车距离。减速停车Decelerate to Stop在自车当前车道内的规划范围内存在一个停车点车辆应减速并在该停车点完全停下。每一个要求完全停车的交通法规元素都会触发此行为。保持停止Stay Stopped车辆应继续静止一段固定的时间。例如当车辆在停车标志处停下时应至少停留三秒钟。并道Merge车辆应在此时并入左侧或右侧车道。这个基本操作列表将有助于我们发展行为规划的原理。然而在实践中还应考虑更多的行为行为规划器的整体复杂度也会随之增长。1.2 Input Output of a Behaviour Planner行为规划器的主要输出是在当前环境中要执行的驾驶操作。除了驾驶操作外行为规划器还输出一组约束条件这些约束条件限制了局部规划问题。约束条件包括从车辆当前位置到目标目的地的默认路径对于许多行为来说这是自车当前车道的中心线。默认路径沿线的限速。当前车道的车道边界在正常驾驶条件下应予以保持。车辆需要到达的任何未来停车位置此约束仅在选择了相关操作时才被填充。局部规划器应关注的高关注度动态物体集合。这些动态物体可能由于距离近或估计的未来路径而显得重要。为了使行为规划器能够产生所需的输出它需要从自动驾驶软件栈中的许多其他系统获取大量信息。首先行为规划器依赖于对车辆附近道路网络的完整了解。这些知识来自高精地图HD Map。其次行为规划器必须知道为了到达目标位置应遵循哪些道路。这以道路网络图上的**任务路径Mission Path**形式提供。此外车辆的位置也至关重要以便能够在车辆周围的局部环境中正确定位高精地图元素。因此还需要来自定位系统的精确定位信息。最后行为规划器需要所有相关的感知信息以便充分理解需要采取哪些行动来安全地执行任务。这些信息包括(1)环境中所有观测到的动态物体如汽车、行人或自行车。对于每个动态物体其当前状态、预测路径、碰撞点和碰撞时间都是必需的。(2)所有观测到的静态物体及其各自的状态如停放车辆、施工锥桶和交通灯并标明其状态。(3) 定义执行操作的安全区域的局部占用栅格地图Occupancy Grid Map。1.3 Finite State Machines在拥有所有必要信息的情况下行为规划器必须选择合适的操作并定义必要的伴随约束条件以保持车辆安全并高效行驶。为此我们将构建一组规则显式或隐式考虑所有交通规则以及与其他动态物体的所有交互。传统上用于表示解决行为选择所需规则集合的一种方法是有限状态机。在本讲中我们将逐步介绍构建基于有限状态机的行为规划器的过程并讨论这种方法的一些局限性。为了更好地理解有限状态机方法让我们通过一个简单示例来走一遍一个用于处理无交通情况下的停车标志路口的有限状态机。有限状态机的第一组组成部分是状态集合。对于行为规划系统状态将代表可能遇到的每种驾驶操作。在我们的示例中我们只需要两种可能的操作或状态按限速行驶和减速停车。行为规划器所做出的操作决策由有限状态机的状态设定。每个状态都有一个与之关联的进入动作Entry Action即首次进入某个状态时要执行的动作。对于我们的行为规划器这些进入动作涉及设置必要的约束输出以伴随行为决策。例如一旦我们进入减速停车状态就必须同时定义路径上的停车点。同样按限速行驶状态的进入条件会设置要跟踪的限速。有限状态机的第二组组成部分是状态转移Transitions它定义了从一个状态到另一个状态的转换。在我们的双状态示例中我们可以从按限速行驶转移到减速停车也可以从减速停车转移回按限速行驶。请注意也可以存在返回当前状态的转移这会触发该状态的进入动作重复执行。每个状态转移都伴随着一组转移条件在转换到下一个状态之前必须满足这些条件。在某个状态中会持续监控这些转移条件以确定何时应发生状态转移。对于我们的简单示例从按限速行驶转移到减速停车的条件包括检查当前车道内是否有一个停车点位于阈值距离之内。同样如果我们在停车点处已达到零速度就可以从减速停车转移回按限速行驶。这个双状态示例突出了基于有限状态机的行为规划器最重要的方面。随着场景和行为的数量增加所需的有限状态机会变得显著更加复杂拥有更多的状态和转移条件。有限状态机可以成为行为规划的一个非常简单而有效的工具。我们可以将其视为行为规划定义的直接实现它要求我们定义操作或状态以及满足交通规则并检查与环境中其他动态和静态物体安全交互的局部规划约束或进入动作即转移条件。通过跟踪当前操作和驾驶环境的状态只需考虑从当前状态出发的相关转移从而大大减少了每次迭代需要检查的条件数量。由于将行为规划分解为一组具有相互转移的状态所需的各个规则保持相对简单。这导致了直接的实现方式不同行为之间有清晰的划分。然而随着状态数量的增加定义所有可能转移及其条件的复杂度会爆炸式增长。也没有显式的方法来处理输入数据中的不确定性和错误。这些挑战意味着随着我们接近完全的L5级自动驾驶有限状态机方法往往会遇到困难。但对于具有受限运行设计域Operational Design Domain, ODD、允许可管理数量状态的系统来说它是一个极佳的起点。我们将在本讲的最后一个视频中探讨这些局限性以及行为规划的替代方法。在本小节中我们明确了行为规划问题的定义及其在整个运动规划系统中的角色我们讨论了行为规划模块的标准输入和输出我们介绍了有限状态机及其组成部分并将其应用到了一个双状态行为规划问题中。2. Handling an Intersection Scenario Without Dynamic Objects2.1 Discretizing the Intersection在上一小节中我们介绍了行为规划器的概念并描述了实现行为规划的基础——有限状态机。在本小节中我们将看到如何构建系统以处理一个更完整的十字路口场景。我们将首先定义要处理的具体场景。然后我们将研究如何将十字路口地图离散化为若干区域以便在状态之间建立清晰的转换。接着我们将定义完成给定场景所需的状态和转换以确保安全高效地通过。最后我们将强调确认行为规划系统正确性和准确性所需的测试流程。我们将尝试处理的场景是一个四向十字路口每个方向都有两条车道和停车标志。这样的十字路口示意图如下所示其中红线代表车辆必须在其后方停车的停车线。我们现在已经为行为规划器定义了一个非常受限的运行设计域Operational Design Domain。现在是实现行为规划器的时候了。让我们先来看看如何对十字路口进行离散化以便我们能更简单地在这个环境中做出决策。车辆应开始安全制动的路口区域被定义为路口的接近区approaching zone以红色高亮显示。车辆必须停车并等待适当时机才能继续前行的路口区域被称为停止区at zone以绿色高亮显示。最后车辆实际穿越路口的区域被定义为在路口上on the intersection以橙色高亮显示。上述每个区域的大小根据两个主要因素动态变化自车速度和路口大小。速度越高我们需要更长的距离才能安全舒适地停车路口越大每个区域也必须越大。2.2 State Machine Transitions为了处理这个场景我们需要三个驾驶动作速度跟踪该动作仅受道路当前限速的限制。传统上这是在进入路口任何区域之前或在安全进入在路口上区域之后给出的动作。减速停车该动作强制物体的未来轨迹在到达停车点之前停止。停车该动作指示车辆停留在当前位置。现在我们将查看自车在此场景中遇到的不同情况并找出编码正确行为规划解决方案所需的有限状态机元素。让我们先看看自车进入路口区域之前的情况此时它只有一个约束即遵守道路的限速。当自车进入接近区红色区域时它必须开始减速至停车标志因此将转换到减速停车状态。从速度跟踪转换到减速停车的转换条件因此是进入接近区。然后一旦开始减速自动驾驶汽车必须执行的下一个动作是在停车线前或路口的停止区内完全停下来。为了确保这一点车辆保持在减速停车状态直到它同时满足零速度和位于停止区内的位置。减速停车状态中的进入动作是建立一个安全的停车位置。由于这个场景的简单性这是一个单一的停车位置即由高清地图提供给规划器的停车线。一旦完全停下汽车进入停车状态。作为进入动作启动一个计时器确保车辆在停车状态停留三秒钟然后再继续这符合典型的驾驶规则。一旦计时完成规划器自动转换到速度跟踪状态并按照任务规划器提供的路线通过路口无论是左转、右转还是直行。这就是使用有限状态机处理简单四向十字路口所需的全部计算。在整个过程中至关重要的是我们要理解作为人类专家如何分析该场景。这些需要在运行设计域定义中加以捕捉我们需要确保创建一个完整的状态机能够处理给定场景下可能出现的每一种情况。对我们的状态机性能有重大影响的一个特殊问题是输入噪声问题。上述定义的状态转换条件是精确的依赖于车辆到达停车点并精确达到零速度。即使没有其他动态物体需要检测车辆的定位估计也可能包含噪声无法精确满足这些条件。为了处理这种类型的输入噪声我们可以引入噪声阈值超参数。这是一个小的阈值允许接近零的速度被接受为已停车。现在我们已经完成了有限状态机的创建如何测试它是否有效呢传统上需要四个测试阶段来确认行为规划系统的功能这遵循我们在第一节课程中关于整车安全评估的讨论。首先我们进行基于代码的测试以确认代码逻辑是否正确。例如基于代码的测试可以告诉程序员地图中设置的限速是否会被有限状态机产生为限速。然而这些检查无法确认状态转换是否正确或者状态是否能够处理给定场景中的所有情况。为此我们必须查看程序代码是否按预期正确处理了所有情况。接下来我们进入仿真测试在 Carla 等仿真环境中进行状态机在其中执行其被设计处理的场景。这种类型的测试能够确认状态机的转换和状态覆盖是否正确。仿真中执行的测试数量应代表驾驶该场景时可能看到的所有情况以捕捉程序员可能遗漏的任何边缘情况。很多时候选择一组有代表性的测试并非易事尤其是随着场景复杂性的增加。一旦确信状态机在仿真中按预期运行我们就进入封闭场地测试。这种测试针对特定场景这些场景难以在仿真中精确确认例如参数调优、噪声以及真实环境中感知输出的误差。最后我们进行道路验证测试。 所有先前的测试都是在高度受控的环境中进行的道路测试可能高度不可预测并经常以工程师无法想象的方式破坏系统。然后可以将场景的新变体纳入测试过程的早期阶段。3. Handling an Intersection Scenario with Dynamic Objects3.1 Review本小节研究的场景仍然是一个十字路口。我们希望能够朝任意可能的方向穿过该交叉路口同时处理与其他车辆的交互。回想上一小节我们把交叉口划分为三个区域。红色高亮的接近区表示车辆应在此减速以便在交叉口停车。绿色高亮的到达区是车辆在进入交叉口前应停车的区域。橙色高亮的交叉口内区表示交叉口本身。这些区域的大小可以根据自车和动态对象的速度以及交叉口大小进行调整。在本小节中我们将重点关注与其他动态物体特别是其他车辆的交互。为了安全地处理这些车辆一个重要方面是测量与其他对象的各个交互点之间的距离。第一个要考虑的距离是到动态对象的距离。它定义为当前自车位置到环境中任意动态对象中心的欧几里得距离。第二个是到碰撞点的距离即到与其他动态物体潜在碰撞点的距离。最后碰撞时间是指到达给定碰撞点所需的时间。我们计算这些量的方法已在上一段视频中讨论过。3.2 State Machine Transition现在让我们扩展有限状态机以适应动态物体带来的额外复杂性。为了正确处理该场景中与车辆的所有交互我们需要把所需机动动作增加到四个。首先回顾一下第一版有限状态机中包含的机动动作。它们包括速度保持其唯一约束是给定道路的速度限制减速停车要求自车减速到环境中特定位置的停车点以及停止即保持在停车位置。我们需要新增的机动动作是跟随前车。该机动状态要求自车跟随前车的速度并与前车保持安全距离。前车是指自车所在车道中位于其正前方的任意车辆。安全距离取决于速度安全速度和安全距离都会在行为规划器每次迭代时作为进入动作进行更新。现在我们已经定义了扩展有限状态机的所有状态接下来填充状态转换。我们将采用与上一小节似的方式从给定状态开始先找出该状态的所有转换然后再继续处理下一个状态。我们会在左侧的场景图示中显示通过交叉口的进度同时在右侧构建有限状态机。我们将像上一课一样开始自车位于交叉口外处于保持速度状态。和上一课看到的情况类似只有当自车进入接近区后才会转移到减速停车状态。然而这里还有一个额外需要关注的情况另一辆车出现在自车前方或进入自车前方车道。在这种情况下我们会执行跟随检查尝试跟随该车辆。跟随前车检查可以分解为两个要素距离检查和同车道检查。距离检查确认车辆足够近因此应当被跟随。同车道检查确认该车辆确实与自车处于同一车道。这里我们可以使用到动态物体的距离即到该对象的欧几里得距离并将其与一个阈值进行比较。可以使用多种方法检查车辆是否与自车处于同一车道。不过为简单起见我们会检查前车是否位于车道边界内以及动态物体的航向是否与自车航向之差在给定阈值内从而表明它正在朝同一方向行驶。在跟随前车状态中我们只定义两个转换。第一前车可能在自车接近或到达交叉口之前驶出车道从而切换到保持速度状态。第二前车驶出当前车道通常是驶入交叉口而自车已经处于到达区或接近区此时直接转换到减速停车状态。我们添加的转换条件是当自车处于接近区或到达区时到碰撞点的距离大于到停车点的距离。在这种情况下自车应转换到减速停车并把停车点设置为交叉口停车线的正确位置。和之前一样在减速停车状态中自车继续减速直到在停车线停下这将导致切换到停止状态正如上一小节所讲。然而我们再次必须考虑一种情况车辆可能从车道或通过超车机动在交叉口插入自车前方。和之前一样当自车处于接近区或到达区时我们在整个减速停车状态中执行跟随检查如果检查返回真则转换到跟随前车状态。不过在这种情况下距离检查考虑的是前车的碰撞距离是否小于停车点距离以便让跟随前车模式优先。最后为了完成有限状态机的扩展让我们看看停车后可能遇到的情况。为保持简单我们假设一种非常保守的驾驶风格自车会等到所有车辆都清空接近区、到达区或交叉口内区之后才继续通过交叉口。我们把停车标志处优先通行权的实现留给你自行探索。此外我们会为交叉口定义一些简单检查用四个简单标签识别所有车辆的行进方向并且只考虑其他直行穿过交叉口的车辆。相对于自车车身坐标系相对航向在 -45 度到 45 度之间的车辆对象将被标记为与自车同向。相对航向在 -45 度到 135 度之间的车辆将被标记为向右行驶。相对航向在 -135 度到 135 度之间的车辆将被标记为朝向自车行驶。最后相对航向在 45 度到 135 度之间的车辆将被标记为向左行驶。这种简化可以使用动态对象的预测路径来改进尤其是在有额外感知信息可用时可以更好地预测车辆穿过交叉口的方向。现在我们可以定义停止状态的转换。我们将有两组转换要么跟随前车要么保持速度具体取决于交叉口内车道中是否存在满足跟随检查的车辆。在每种情况下转换条件都会根据任务规划所要求的交叉口路径而变化。当自车需要左转时任何从左方、右方接近的车辆以及任何对向来车都必须先清空交叉口内区自车才能继续前进。当自车需要直行时只有从左方或右方接近的车辆需要清空交叉口。最后当自车需要右转时只有从左方接近的车辆需要清空交叉口。通过停止状态转换的这个简单定义我们希望你能够想象出还需要哪些额外检查以处理因到达交叉口的顺序而产生的优先通行权问题以及其他车辆也可能左转或右转的可能性。到目前为止在创建状态机的整个过程中我们对动态物体的行为做了一个特别强的假设。也就是说所有动态物体都遵守交通规则。然而情况并非总是如此这一困难导致了许多也需要考虑的边缘情况。让我们快速讨论几个例子说明这个强假设可能出什么问题。第一个例子是驾驶员无意中转向冲入对向交通进入自车车道。这实际上在 2018 年发生在一辆 Waymo 厢式车上当时一名司机越过中央隔离带冲入对向车道。另一个例子是一名激进驾驶员在自车已经开始通过交叉口时仍然猛冲穿过交叉口。另一个常见例子是车辆未在交叉口停车。最后我要提到车辆停在交叉口附近的情况。如果这辆车没有被标记为停放车辆从而可能被当作静态物体而不是动态物体处理我们的行为规划器可能会卡在死锁状态等待这辆停放车辆移动。这绝不是所有可能情况的完整集合。行为安全评估与测试的主要目标之一就是尽可能多地发现异常行为的变体以便它们也能被检测、分类并纳入行为规划设计过程。然而仅仅发现边缘情况是不够的。我们还必须定义自动驾驶车辆应如何应对每一种情况。对于这些情况需要紧急机动例如避让转向或急刹车并需要定义更多转换和条件。4. Handling Multiple Scenarios4.1 Overview到目前为止在本模块中我们已经开发了一个有限状态机行为规划器可以处理带有动态物体的十字交叉路口场景。然而在驾驶中会遇到许多这样的场景。例如三向停车交叉口、交通灯控制的交叉口以及直道场景仅举几例。虽然这些场景中有许多由于处理它们所需的逻辑而具有一些相似之处但每个场景都可以被认为需要根本不同的驾驶行为。处理这些多个场景的一种方法是向单个状态机中添加额外的状态、转换和条件形成一个不断扩展的行为网络。然而这种方法有几个问题。第一个问题是我们需要开发额外的逻辑来区分当前场景以及单独处理每个场景所需的规则。这很快就会遇到一个称为“规则爆炸”的问题即为添加额外场景所需的规则数量会变得大得难以想象。单个状态机的第二个问题是由于每一步需要评估的额外规则和转换数量众多所需的计算时间会显著增加。最后这样的系统创建和维护起来很复杂因为必须考虑的情况数量会迅速增加。本质上随着复杂性增加我们会失去在第一课中强调的使用有限状态机的所有优势。4.2 Hierarchical State Machine然而还有另一种方法可以使用。我们可以将每个高层场景表示为一个单独的状态。这将允许我们在高层场景状态之间创建简单得多的转换。在这个例子中我们可以看到这些状态表示直道场景和我们之前处理过的十字路口场景。对于每一个这样的高层场景状态我们将存储一个低层状态机用它来独立处理该场景。例如对于十字路口场景低层状态机将是过去两个小节中构建的那个。这种表示方法称为分层状态机其中超状态表示每个场景子状态表示每个场景中要处理的机动动作。高层场景状态机之间的转换将是一条规则它根据高清路线图和动态车辆信息定义何时进入了一个新场景。假设我们有这样一个简单的分层状态机包含两个场景一个是带人行横道的直道场景另一个是基于停车标志的交叉口场景。要从直道场景切换到停车标志交叉口场景自车必须接近并遇到该交叉口。这通过检查到任务规划中下一个交叉口的距离来完成。我们这里讨论的所有动作/转换都发生在超级状态层面。接下来必须回答的问题是在处理子状态机动动作时我们如何在场景之间切换一种方法是从当前场景超级状态引入到关键机动子状态的转换。让我们继续以交叉口场景为例。首先确定哪个状态将是退出该场景的关键退出状态。我们能够退出交叉口的唯一方式是在通过交叉口之后处于保持速度或跟随前车状态。因此我们把退出转换放在那里。转换条件将是确认该场景确实已经完成。在这个例子中我们可以使用到下一个停车标志交叉口的距离。如果该距离大于给定阈值我们就可以退出交叉口场景。通过这种转换方法我们还能够在场景切换之间保持机动状态。在这种情况下交叉口超级状态中的保持速度状态将连接到我们进入的下一个场景的保持速度状态。向这个分层状态机添加一个额外的多车道场景可以通过创建一个新的超级状态场景节点来完成并为其配备能够处理该场景的子状态状态机。这类有限状态机有一些固有的优点和缺点。这种方法的优点来自其细分特性。通过在每个超级状态内创建单独的状态机该方法能够通过重构子状态空间限制任意单个时间步所需的计算时间。这种细分特性也使得分层状态机的测试和编程都显著更容易。然而分层状态机也并非没有问题。虽然它限制了所需规则的数量但这种方法仍然无法完全处理规则爆炸。规则数量庞大的一个原因是所有场景都有完全分离的状态机因此许多规则彼此重复以便在不同场景中处理相似行为。最终分层方法允许系统设计者处理比扁平单层有限状态机更大的复杂性。只要能够在每一层定义关键状态这个思想就可以扩展到多层。实际上有限状态机所强加的视角即任一给定时刻只有一个行为处于激活状态并且到其他行为的所有转换都可以被显式定义限制了它能够处理的场景集合规模。尽管如此它仍然为自动驾驶汽车中的典型行为规划提供了一个有用的工具。简单们总结一下本小讲讨论的内容。我们首先介绍了分层有限状态机它能够同时处理多个场景。我们还讨论了如何在超级状态和子状态层面在不同驾驶场景之间转换并讨论了使用分层有限状态机进行行为规划的能力和局限。5. Advanced Methods for Behaviour Planning5.1 State Machine Behaviour Planning Issues在本讲最开始我们发现的第一个问题是规则爆炸问题。这意味着当我们开发更完整的场景和机动动作集合来处理时所需规则的数量会非常迅速地增长。这一局限性意味着虽然开发一个有限状态机行为规划器来处理有限的运行设计域是可能的但要用有限状态机开发一个完整具备四级或五级能力的车辆几乎是不可能的。处理嘈杂环境是下一个问题。虽然可以通过添加超参数来处理一些噪声但这种噪声处理方式只能应对一些非常有限的情况。要处理所有类型的输入不确定性需要不同的方法。说到这里我想指出的下一个问题是超参数的实际调优。随着所需行为变得更加复杂用于离散化环境以及处理一些低层噪声的超参数数量会迅速增长。所有这些超参数都必须非常仔细地调优而这可能是一个漫长的过程。最后我们将讨论的最后一个问题是处理未遇到过的情况。由于这种方法的程序化性质很可能会出现某种情况使系统的程序化逻辑以错误或非预期的方式做出反应。基于状态机的方法被归类为专家系统即由人类专家设计和开发的系统。然而状态机并不是唯一被设计出来的此类专家系统。还有一些方法依赖于规则数据库这些规则在每个时间步被应用于输入数据。规则被组织成层次结构其中安全关键规则优先覆盖舒适性规则或防御性驾驶规则等。每条规则只有在适当条件出现、足以影响输出机动选择时才会被启用。这种规则数据库不会遇到我们在分层状态机中遇到的规则重复问题因为规则可以适用于整个运行设计域或其很大一部分。然而基于规则的系统必须非常仔细地制定规则以避免规则之间产生负面影响或避免多条规则同时激活时导致非预期结果。由于这两类专家系统通常都依赖专家用户为所有可能场景进行设计它们都会遭遇上述相同问题。针对我们已识别的部分问题一种可能的解决方案是扩展人类专家类型的规划器或者引入模糊逻辑。模糊逻辑是一种系统它使用一组清晰、明确定义的数值来创建一组更连续的模糊状态。举一个简单的例子说明基于模糊的系统如何工作让我们看看车辆跟随行为的例子。之前我们设置了一个参数化距离将空间划分为跟随车辆或不跟随车辆。使用模糊系统我们可以拥有一个连续空间并在其上应用不同规则。例如模糊系统在距离前车非常近时可能会对其做出强烈反应但在距离较远时则会较少关注速度匹配或距离跟随要求。虽然基于模糊的规则系统能够比传统离散系统在更大程度上处理系统环境噪声但规则爆炸和超参数调优在模糊系统中仍然是问题。事实上模糊系统可能导致更严重的规则爆炸因为处理模糊输入集合需要更多逻辑。伴随规则爆炸而来的还有超参数调优方面的巨大挑战。5.2 Reinforcement Learning issue接下来讨论的另一个令人兴奋的研究方法是使用强化学习进行行为规划。强化学习是机器学习的一种形式其中智能体通过采取行动并接收连续奖励学习如何与给定环境交互。智能体首先在模拟环境中进行尝试。这意味着开始时智能体不会擅长特定任务然而随着时间推移当智能体最大化其奖励时它最终会学会掌握该任务。通过在模拟环境中学习学习过程中经历的许多失败不会对现实世界产生后果。更具体地说我们可以说智能体试图学习一个策略记为p pp它将给定环境状态记为s ss映射到给定动作记为a aa。为了将强化学习概念与行为规划联系起来假设我们试图教会自动驾驶车辆如何跟随前车。在这种情况下我们的策略p pp将尝试完成车辆跟随。我们的动作可以显式定义为要执行的行为也可以通过选择期望加速度和转向速率来隐式定义行为。环境可以由一组连续变量表示告诉我们相关信息例如到所有对象的距离以及我们的任务路径。最后奖励函数可以基于最优跟随距离在首选距离处给予最高奖励并且对过近的惩罚比对过远的惩罚更重。由于自动驾驶车辆可能遇到的场景和输入种类极其繁多直接将强化学习用于行为规划不太可能成功。相反通常会应用一些进一步的调整。其中一种调整称为分层强化学习。在这种方法中我们将问题划分为机动空间中的低层策略和场景中的高层策略。这类似于分层有限状态机。然后每个低层策略被独立学习只有成功学会低层策略之后才能学习高层策略以完成一个场景。第二种常用的技术称为基于模型的强化学习。在基于模型的强化学习中智能体不仅试图学习策略p pp还试图学习智能体周围当前环境的模型。这种方法如何应用于自动驾驶汽车行为规划的一个例子是包含动态物体运动的模型。如果智能体理解动态物体的运动模式它就能在环境中创建更有效的规划。虽然强化学习是一个非常令人兴奋且极具前景的研究领域但它也并非没有自身局限性。许多用于学习自动驾驶所需策略的仿真环境过于简化。由于这些环境过于简单学到的策略可能无法迁移到真实世界环境。而过于逼真的模拟器又会导致严重的计算需求问题尤其是在为自动驾驶学习运行成千上万次、变化广泛的场景重复时。第二个问题是安全性问题。虽然强化学习中有一些技术试图确保由强化学习器生成的轨迹满足安全约束但仍然无法对学习到的系统进行严格的安全评估因为在决策方式上它们大多是黑箱。研究界目前还在探索许多其他有趣的想法其中许多尝试从人类驾驶行为中学习。例如在逆强化学习中不是给定奖励函数来尝试获得策略而是使用人类驾驶数据作为策略尝试学习人类所使用的奖励函数。一旦奖励函数被学到算法就可以像人类驾驶员一样执行驾驶机动。最后端到端方法以原始传感器数据作为输入并尝试输出油门、刹车和转向命令。它同样通过模仿学习方法从人类驾驶命令中学习。这种方法由 Nvidia 的研究人员在其论文《End to End Learning for Self-Driving Cars》中开创。虽然这并没有被明确归类为行为规划但端到端方法仍然在其输出选择过程中隐式执行了行为选择任务。这些简要说明仅仅触及了一个巨大且快速发展的研究领域的表面。行为规划仍然是自动驾驶研究中的热点领域之一也是实现全自动驾驶最艰难的瓶颈之一。让我们总结一下本讲讨论的内容我们介绍了基于有限状态机的规划的一些问题并介绍了多种解决行为规划问题的高级方法这些方法试图应对行为规划问题的全部复杂性。我们定义了使行为规划系统具备自动驾驶能力所需的要求。我们逐步构建了一个针对特定场景的系统即十字路口。接着我们加入了动态车辆交互并扩展到包含多个场景。最后我们简要回顾了行为规划研究界涌现出的一些令人兴奋的方法。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询