控制组件设计#
摘要#
本文档介绍了 Control Component 的设计概念.内容如下:
- 自动控制设计
- 概述了 Autoware 的控制策略,该策略仅处理自动驾驶系统的一般信息,并为车辆提供通用控制命令.
- 车辆适配设计
- 描述车辆适配策略,该策略利用适配器机制来标准化车辆驱动系统的特性,并将其与 Autoware 集成.
- 控制功能设计
- 演示 Autoware 控件提供的功能.
- 介绍安装在车辆中的功能(如 ABS)的方法.
Autoware Control 设计#
Control Component 生成 Vehicle Component 订阅的控制信号.生成的控制信号是根据 Planning Component 的参考轨迹计算的.
Control Component 由两个模块组成. trajectory_follower 模块生成车辆控制命令,以遵循从规划模块接收到的参考轨迹.例如,该命令包括所需的转向角和目标速度. vehicle_command_gate 负责过滤控制命令以防止异常值,然后将其发送给车辆.除了轨迹跟踪器外,该门还允许在多个源之间切换,例如 MRM(最小风险机动)模块或一些远程控制模块.
Autoware 控制系统设计为自动驾驶系统的平台,可与各种车辆兼容.
Autoware 中的控制过程使用一般信息 (例如目标加速和减速),而不使用特定于车辆的信息 (例如制动压力).因此,它可以独立于车辆的驱动接口进行调整,从而轻松集成或调整性能.
此外,通过切换控制车辆模型,可以解决影响车辆运动约束的显著差异,例如两轮转向或四轮转向,实现针对每个特性的专用控制.
Autoware 的控制模块输出必要的信息,以代替人类驾驶员控制车辆.例如,来自控制模块的 control 命令如下所示:
- Target steering angle
- Target steering torque
- Target speed
- Target acceleration
请注意,特定于车辆的值 (例如踏板位置) 和低级信息 (例如单个车轮的转速) 不包括在命令中.
车辆适配设计#
车辆接口适配器#
Autoware 旨在成为一个自动驾驶平台,能够容纳具有各种传动系统类型的车辆.
这是对 Autoware 如何处理具有不同车辆传动系统的标准化系统的说明.车辆传动系统的接口多种多样,包括转向角、转向角速度、转向扭矩、速度、加速/制动踏板和制动压力.为了适应这些差异,Autoware 在控制组件和车辆接口之间添加了一个适配器模块.此模块执行车辆使用的专有消息类型(例如制动压力)与 Autoware 使用的通用类型(例如期望加速)之间的转换.通过提供此转换信息,可以容纳车辆动力传动系统的差异.
如果事先不知道信息,可以使用自动校准工具.校准将在有限的自由度内进行,自动生成传动系统转换所需的信息.
下图总结了此配置.
几种车辆接口的例子#
这是车辆界面中几种动力传动系统类型的一个示例.
| 车辆 | 横向接口 | 纵向界面 | 注意 |
|---|---|---|---|
| Lexus | Steering angle | Accel/brake pedal position | Acceleration lookup table conversion for longitudinal |
| JPN TAXI | Steering angle | Accel/brake pedal position | Acceleration lookup table conversion for longitudinal |
| GSM8 | Steering EPS voltage | Acceleration motor voltage, Deceleration brake hydraulic pressure | lookup table and PID conversion for lateral and longitudinal |
| YMC Golfcart | Steering angle | Velocity | |
| Logiee | yaw rate | Velocity | |
| F1 TENTH | Steering angle | Motor RPM | interface code |
| 车辆 | 横向接口 | 纵向接口 | 注意事项 |
|---|---|---|---|
| 雷克萨斯(Lexus) | 转向角(Steering angle) | 油门/刹车踏板位置(Accel/brake pedal position) | 纵向控制需通过加速度查找表(Acceleration lookup table)进行转换 |
| 日本出租车(JPN TAXI) | 转向角(Steering angle) | 油门/刹车踏板位置(Accel/brake pedal position) | 纵向控制需通过加速度查找表(Acceleration lookup table)进行转换 |
| GSM8 | 转向电动助力电压(Steering EPS voltage) | 加速电机电压(Acceleration motor voltage)、减速刹车液压(Deceleration brake hydraulic pressure) | 横向与纵向控制均需通过查找表(lookup table)及PID(比例-积分-微分)进行转换 |
| YMC 高尔夫球车(YMC Golfcart) | 转向角(Steering angle) | 速度(Velocity) | - |
| Logiee | 横摆率(yaw rate) | 速度(Velocity) | - |
| F1 TENTH | 转向角(Steering angle) | 电机转速(Motor RPM) | 接口代码参考:interface code |
控制功能设计#
下面列出了 Autoware 的 Control/Vehicle 组件提供的功能,以及有效利用这些功能所需的条件和假设.
ODD 的正常运行受到功能是否启用、延迟时间、校准精度和退化率以及传感器精度等因素的限制.
| 特征 | 描述 | 要求/假设 | 注意 | 目前的限制 |
|---|---|---|---|---|
| Lateral Control | Control the drivetrain system related to lateral vehicle motion | Trying to increase the number of vehicle types that can be supported in the future. | Only front-steering type is supported. | |
| Longitudinal Control | Control the drivetrain system related to longitudinal vehicle motion | |||
| Slope Compensation | Supports precise vehicle motion control on slopes | Gradient information can be obtained from maps or sensors attached to the chassis | If gradient information is not available, the gradient is estimated from the vehicle`s pitch angle. | |
| Delay Compensation | Controls the drivetrain system appropriately in the presence of time delays | The drivetrain delay information is provided in advance | If there is no delay information, the drivetrain delay is estimated automatically (automatic calibration). However, the effect of delay cannot be completely eliminated, especially in scenarios with sudden changes in speed. | Only fixed delay times can be set for longitudinal and lateral drivetrain systems separately. It does not accommodate different delay times for the accelerator and brake. |
| Drivetrain IF Conversion (Lateral Control) | Converts the drivetrain-specific information of the vehicle into the drivetrain information used by Autoware (e.g., target steering angular velocity → steering torque) | The conversion information is provided in advance | If there is no conversion information, the conversion map is estimated automatically (automatic calibration). | The degree of freedom for conversion is limited (2D lookup table + PID FB). |
| Drivetrain IF Conversion (Longitudinal Control) | Converts the drivetrain-specific information of the vehicle into the drivetrain information used by Autoware (e.g., target acceleration → accelerator/brake pedal value) | The conversion information is provided in advance | If there is no conversion information, the conversion map is estimated automatically (automatic calibration). | The degree of freedom for conversion is limited (2D lookup table + PID FB). |
| Automatic Calibration | Automatically estimates and applies values such as drivetrain IF conversion map and delay time. | The drivetrain status can be obtained (must) | ||
| Anomaly Detection | Notifies when there is a discrepancy in the calibration or unexpected drivetrain behavior | The drivetrain status can be obtained (must) | ||
| Steering Zero Point Correction | Corrects the midpoint of the steering to achieve appropriate steering control | The drivetrain status can be obtained (must) | ||
| Steering Deadzone Correction | Corrects the deadzone of the steering to achieve appropriate steering control | The steering deadzone parameter is provided in advance | If the parameter is unknown, the deadzone parameter is estimated from driving information | Not available now |
| Steering Deadzone Estimation | Dynamically estimates the steering deadzone from driving data | Not available now | ||
| Weight Compensation | Performs appropriate vehicle control according to weight | Weight information can be obtained from sensors | If there is no weight sensor, estimate the weight from driving information. | Currently not available |
| Weight Estimation | Dynamically estimates weight from driving data | Currently not available |
| 特征 | 描述 | 要求/假设 | 注意 | 目前的限制 |
|---|---|---|---|---|
| 横向控制(Lateral Control) | 对与车辆横向运动相关的传动系统进行控制 | - | 未来力争支持更多车型。 | 仅支持前轮转向类型。 |
| 纵向控制(Longitudinal Control) | 对与车辆纵向运动相关的传动系统进行控制 | - | - | - |
| 坡度补偿(Slope Compensation) | 支持车辆在坡道上实现精准的运动控制 | 可从地图或底盘搭载的传感器获取坡度信息 | 若无法获取坡度信息,则通过车辆俯仰角估算坡度。 | - |
| 延迟补偿(Delay Compensation) | 在存在时间延迟的情况下,对传动系统进行合理控制 | 需提前提供传动系统延迟信息 | 若未提供延迟信息,传动系统延迟将自动估算(自动校准)。但延迟影响无法完全消除,在车速突然变化的场景下尤为明显。 | 纵向和横向传动系统仅能分别设置固定延迟时间,无法适应油门和刹车各自不同的延迟时间。 |
| 传动系统接口转换(横向控制)(Drivetrain IF Conversion - Lateral Control) | 将车辆特定的传动系统信息转换为Autoware(自动驾驶软件)所使用的传动系统信息(例如:目标转向角速度→转向扭矩) | 需提前提供转换信息 | 若未提供转换信息,转换映射表将自动估算(自动校准)。 | 转换自由度受限(仅支持二维查找表+PID反馈)。 |
| 传动系统接口转换(纵向控制)(Drivetrain IF Conversion - Longitudinal Control) | 将车辆特定的传动系统信息转换为Autoware所使用的传动系统信息(例如:目标加速度→油门/刹车踏板开度值) | 需提前提供转换信息 | 若未提供转换信息,转换映射表将自动估算(自动校准)。 | 转换自由度受限(仅支持二维查找表+PID反馈)。 |
| 自动校准(Automatic Calibration) | 自动估算并应用传动系统接口转换映射表、延迟时间等参数值 | (必需)可获取传动系统状态 | - | - |
| 异常检测(Anomaly Detection) | 在校准存在偏差或传动系统出现意外行为时发出通知 | (必需)可获取传动系统状态 | - | - |
| 转向零点修正(Steering Zero Point Correction) | 修正转向中点,以实现合理的转向控制 | (必需)可获取传动系统状态 | - | - |
| 转向死区修正(Steering Deadzone Correction) | 修正转向死区,以实现合理的转向控制 | 需提前提供转向死区参数 | 若参数未知,将通过行驶信息估算死区参数。 | 目前暂不可用 |
| 转向死区估算(Steering Deadzone Estimation) | 通过行驶数据动态估算转向死区 | - | - | 目前暂不可用 |
| 重量补偿(Weight Compensation) | 根据车辆重量进行合理的控制 | 可从传感器获取重量信息 | 若未配备重量传感器,将通过行驶信息估算重量。 | 目前暂不可用 |
| 重量估算(Weight Estimation) | 通过行驶数据动态估算车辆重量 | - | - | 目前暂不可用 |
以上列表不包括车轮控制系统,例如车辆中常用的 ABS.关于这些功能,请考虑以下注意事项.
与车辆侧功能集成#
ABS(防抱死制动系统)和 ESC(电动稳定控制)是可能预装在车辆上的两个功能,直接影响其可控性. Autoware 的控制模块假设车辆上同时安装了 ABS 和 ESC,没有它们可能会导致控制不可靠,具体取决于目标 ODD.例如,在受控环境中进行低速行驶时,这些功能不是必需的.
另请注意,此声明并不否定自动驾驶系统中 ABS 功能的开发.
Autoware 功能和车辆要求#
作为人类驾驶的替代方案,自动驾驶系统本质上旨在处理人类可以执行的任务.这不仅包括控制方向盘、加速和制动,还包括自动检测制动响应不良或转向角度错位等问题.然而,这是一种权衡,因为更好的车辆性能将导致卓越的系统行为,最终影响 ODD 的设计.
另一方面,对于人类驾驶员通常无法预料或无法处理的任务,预计会在车辆 ECU 中进行处理.此类情况的示例包括制动响应明显延迟或车辆由于单侧轮胎打滑而旋转的情况.这些任务通常由 ABS 或 ESC 处理.