查看: 579|回复: 0

自动驾驶之硬件配置和软件架构

[复制链接]

229

主题

260

帖子

717

积分

高级飞友

Rank: 4

积分
717
飞币
455
注册时间
2017-7-20
发表于 2022-10-27 13:46:32 | 显示全部楼层 |阅读模式
m1 w2 l2, l3, l4
Sensors(回顾)


  • CAMERA: 用于表面输入的相机
  • STEREO: 用于深度信息的立体相机
  • RADAR: 用于物体检测的雷达
  • LIDAR: 用于所有3D输入的激光雷达
  • ULTRASONIC: 用于短距离3D输入的超声波
  • GNSS/IMU and WHEEL ODOMETRY: 用于自我状态估计的GNSS / IMU数据和车辆里程
l3
Software architecture(软件层面)


  • Environment Perception(环境感知)
  • Environment Mapping(环境绘图)
  • Motion Planning(运动规划)
  • Controller(车辆控制)
  • System Supervisor(监控系统)
这不是唯一的实现方式,只是其中的一种软件架构的实现方法。
Software Architecture | high-level


自动驾驶之硬件配置和软件架构-1.jpg

  • Environment Perception(环境感知)

    • 环境感知模块具有两个关键功能,第一,识别在空间上无人驾驶车当前所处的位置,第二,分类和定位用于驾驶任务环境的重要元素。这些元素的例子包括:其他汽车,自行车,行人,道路,道路标记和道路标志以及任何直接影响驾驶行为的物体。

  • Environment Mapping(环境绘图)

    • 环境地图模块创建一组地图,其定位无人驾驶车周围环境中的对象,用于一系列不同用途, 用途包括从碰撞避免到运动跟踪和运动计划。

  • Motion Planning(运动规划)

    • 第三个模块称为运动规划。运动规划模块做出采取什么动作以及在何处驾驶的所有决定基于所有信息,由感知模块和绘图模块提供的。运动规划模块的主要输出是安全,高效和舒适规划路径,使车辆朝向其目标移动。然后,规划路径由第四模块即控制器执行。

  • Controller(车辆控制)

    • 控制器模块得到路径并确定最佳转向角,油门位置,制动踏板位置和档位设置,以精确地遵循规划路径。

  • System Supervisor(监控系统)

    • 第五个也是最后一个模块是系统监控。系统监控器监控软件堆栈的所有部分,以及硬件输出,以确保所有系统都能按预期工作。系统监控还负责向安全驾驶员通知驾驶系统中发现的任何问题。

Software Architecture | Environment Perception


自动驾驶之硬件配置和软件架构-2.jpg

  • 空间中自我定位

    • 定位模块接收多个信息流,如当前GPS位置,IMU测量单元和车轮测距。然后定位模块将它们组合起来输出准确的车辆位置。
    • 为了获得更高的准确性,一些定位模块还包含LIDAR和相机的数据。

  • 分类和定位环境的重要元素

    • 检测环境的动态对象:动态对象检测模块使用一组摄像机输入以及LIDAR点云来创建场景中动态对象周围的3D边界框。3D边界对物体编码类、类型以及物体的确切位置、方向和大小。一旦检测到,跟踪模块随时间跟踪动态对象。跟踪器模块不仅提供动态物体的当前位置,还提供其通过环境的路径的历史。路径的历史记录与路线图一起使用,以便预测所有动态物体的未来路径。这通常由预测模块处理,预测模块组合所有信息,关于动态物体和当前位置的,从而预测所有动态物体的路径。
    • 检测环境中的静态对象:静态对象检测模块还依赖于相机 输入和LIDAR数据的组合来识别场景中的重要静态对象。这些重要数据包括无人驾驶车辆的当前车道以及如信号和交通信号灯等监管要素的位置。

Software Architecture | Environment Maps


  • 占据栅格图(Occupancy Grid Map)
  • 定位图(Localization Map)
  • 细节道路图(Detailed Road Map)

自动驾驶之硬件配置和软件架构-3.jpg

  • Occupancy Grid Map(占据栅格图)

自动驾驶之硬件配置和软件架构-4.jpg
占据网格图是所有静态对象的地图,在车辆周围环境中。LIDAR主要用于构建占据栅格图。首先将一组过滤器应用于LIDAR数据,以使得可以用于占据栅格。例如,移除掉可以移动的表面点和动态对象点。占据栅格图将环境表示为一组网格单元并将每个单元被占用的概率相关联。这使我们可以处理测量数据中的不确定性并随时间改善地图。

  • Localization Map(定位图)

自动驾驶之硬件配置和软件架构-5.jpg
由LIDAR构建的定位图或相机数据由定位模块使用以改进状态估计。在驾驶中,将传感器数据与该地图进行比较以确定汽车相对于定位图的运动。然后将该运动与其他本体感受式传感器的信息组合以准确地定位车辆。

  • Detailed Road Map(细节道路图)

自动驾驶之硬件配置和软件架构-6.jpg
细节道路图提供了路段的地图,其表示无人驾驶车当前驾驶的驾驶环境。该地图捕捉信号和车道标记,可以用于运动规划中。该地图是传统结合了预先记录的数据和由感知栈收集到的从当前静态环境的输入的信息。
环境绘图(Environmental Map)和感知模块(Environment Perception)相互作用以显着提高这两个模块的性能。例如,感知模块提供静态环境信息,可以用于更新细节道路图,细节道路图也能用于给预测模块创建更加准确的动态物体预测。
Software Architecture | Motion Planning

无人驾驶车的运动规划是一项具有挑战性的任务,在单一的集成过程中很难解决。相反,如今大多数无人驾驶车都使用分解将问题分成若干抽象层.

  • Mission Planner(任务规划)
  • Behavior Planner(行为规划)
  • Local Planner(局部规划)


  • Mission Planner(任务规划)

自动驾驶之硬件配置和软件架构-7.jpg
在最高级别,任务规划部分处理长期计划,并在驾驶任务的整个范围内定义任务,从当前位置通过道路网络到达最终目的地。为了找到完整的线路,任务计划部分确定最佳路线序列,用于连接起点和终点之间,然后将其传递到下一层。

  • Behavior Planner(行为规划)

自动驾驶之硬件配置和软件架构-8.jpg
行为规划部分是这下一级,用以解决短期规划问题。行为规划部分负责建立一套安全行为行动和动作去执行,在任务路径行进过程中。行为规划部分决策的一个例子是,车辆是否应该合并到相邻车道中,在给定期望速度和附近车辆的行为预测下。除了决策的操作之外,行为规划部分还提供了一组约束来执行每一个动作,例如在切换之前保持在当前通道中的时间。

  • Local Planner(局部规划)

自动驾驶之硬件配置和软件架构-9.jpg
最后,局部规划部分执行即时或反应规划,并负责定义要驾驶的特定路径和速度曲线。局部规划部分必须是平稳、安全和有效地,在考虑环境和机动所施加的所有当前限制中。为了创建这样的规划,局部规划部分结合所有信息,如行为规划部分、占据栅格图、车辆操作限制以及环境中其他动态物体的信息。局部规划器的输出是一条规划的轨迹,其是在未来的小段时间内组合的期望路径和速度分布。
Software Architecture | Vehicle Controller


  • Velocity Controller(纵向控制)
  • Steering Controller(横向控制)

自动驾驶之硬件配置和软件架构-10.jpg
典型的车辆控制器如何采用给定的轨迹并将其转换为一组精确的驱动命令以供车辆应用。典型的控制器将控制问题分为纵向控制(Velocity Controller)和横向控制(Steering Controller)。横向控制器输出转角,用于计划轨迹,而纵向控制器调节油门、齿轮和驻车系统来获得准确速度。两个控制器计算当前误差并跟踪局部规划的性能,并调节当前驱动命令从而最小化前进误差。
Software Architecture | System Supervisor


  • Hardware Supervisor(硬件管理程序)
  • Software Supervisor(软件管理程序)

自动驾驶之硬件配置和软件架构-11.jpg
系统监控模块是用以持续监控各个方面在无人驾驶车内的,并在子系统发生故障给定适当适当警告。有两个部分,硬件管理程序和软件管理程序。硬件监控器持续监控所有硬件组件,以检查是否存在任何故障,如传感器损坏,测量丢失或信息质量下降。硬件监控器的另一个职责是连续分析任何与硬件输出,不能够匹配无人驾驶车编程范围内的输出。例如,其中一个摄像头传感器被纸袋挡住,下雪时对LIDAR点云数据破坏。软件监控器负责验证软件栈,以确保所有元素正常运行,按照正确的频率,并且提供完整的输出。软件监控器还负责分析所有模块的输出之间的不一致性。
l4
对于l3介绍的三种environment map的类型在进行更进一步详细的解释。

自动驾驶之硬件配置和软件架构-12.jpg

  • 定位图是使用 一组连续的激光雷达点或像机图像特征创建,当汽车在环境中移动。然后,该地图通过结合GPS、IMU和车轮测距使用,通过定位模块。以便始终准确地估计车辆的精确位置。
  • 占据栅格图也使用一组连续的LIDAR点来构建环境地图,该地图指示所有静态或静止障碍物的位置。该地图用于为无人驾驶车规划安全无碰撞路径。
  • 细节路线图包含详细的位置,所有监管要素, 监管属以及和车道标记。此地图用于规划从 当前位置到最终目标的路径。
Localization Map(定位图)


自动驾驶之硬件配置和软件架构-13.jpg
定位图使用 记录的LIDAR点或图像,这些点或图像被组合以形成环境的点云表示。当接收到新的LIDAR相机数据时,将其与定位图进行比较,并通过将新数据对齐来创建车身位置的测量,同与现有地图。然后将该测量与其他传感器结合以估计自我运动并最终用于控制车辆。

自动驾驶之硬件配置和软件架构-14.jpg
Occupancy Grid Map(占据栅格图)


自动驾驶之硬件配置和软件架构-15.jpg

自动驾驶之硬件配置和软件架构-16.jpg
占据栅格是围绕自我车辆的环境中静态物体的2D或3D离散化地图。创建此地图是为了识别所有 无人驾驶车周围的静态物体,再次使用点云作为输入。被分类为静态的物体包括树木、建筑物、 路缘石和所有其他不可移动物体。例如,在此栅格图中,如果所有被占用的网格都被着色,占据栅格图差不多就是这样的(上图红色区域)。由于占据栅格仅表示来自环境的静态物体,因此必须首先移除所有动态物体。这是通过找到的所有激光雷达点,在边界框内由感知栈检测到的动态物体。接下来,静态物体,那些不会干扰车辆的物体也将移除。如 和悬挂的树枝。通过这些步骤,仅保留来自环境的静态物体的相关雷达点。过滤过程并不是很完美,因此因此不可能盲目地相信剩下点是障碍。因此,占据栅格是通过可能性表示环境,通过跟踪网格单元随时间占用。然后依赖该地图来创建无碰撞的车辆路径。

自动驾驶之硬件配置和软件架构-17.jpg
在这里,我们看到占据栅格可视化为浅灰色方形区域,在自动驾驶汽车下。使用黑色方块更新环境中静态物体的位置。当无人驾驶车在环境中移动时,环境中的所有静止物体(如杆,建筑物和停放的汽车)被显示在占用的网格单元中。
Detailed Road Map(细节道路图)


自动驾驶之硬件配置和软件架构-18.jpg
细节路线图是完整道路网路地图,该地图包含有关道路车道的信息,以及可能影响道路的任何交通管制要素。细节路线图用来用来给无人驾驶车规划一条安全和有效地路径。细节路线图可以通过以下三种方法创建。完全在线,完全离线,或离线创建在线更新。

  • 完全在线创严重依赖在感知栈中静态物体比例,以便准确标记和正确定位所有相关的静态物体以创建地图。这包括当前驾驶环境中的所有车道边界,任何规章元件,例如交通灯或交通标志,车道的任何规章属性,例如右转标记或人行横道。很少使用这种方式来创建地图,因为实时创建这样的地图是十分复杂。
  • 完全离线的地图通常是通过收集数据来完成的, 通常通过多次收集。具有高精度传感器的专用车辆定期沿着道路行驶以构建离线地图。一旦收集完成,信息将会进行标记,通过使用自动标记的混合方法,通过静态物体感知和人工注释和矫正。这种地图创建方法在生成非常详细和准确的地图的同时,无法对变化的环境做出反应或适应。
  • 创建细节路线图的第三种方法是离线创建它们,然后使用新的相关信息在线更新它们。这种地图创建方法利用了这两种方法,创建了一个可以在驾驶时更新的高度准确的路线图。
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表