车辆接口设计#
摘要#
Vehicle Interface 组件在 Autoware 和车辆之间提供一个接口,该接口将控制信号传递到车辆的线控系统,并接收传回 Autoware 的车辆信息.
1.要求#
目标:
- Vehicle Interface 组件将 Autoware 命令转换为特定于车辆的格式,并将特定于车辆格式的车辆状态转换为 Autoware 消息.
- Autoware 和 Vehicle 组件之间的接口是抽象的,独立于硬件.
- 该 Interface 是可扩展的,因此可以轻松添加其他特定于车辆的命令.例如,大灯控制.
非目标:
- 不会定义车辆响应的准确率,但会提供参考设计中的准确度要求示例作为示例.
- 响应速度将不被定义.
2.架构#
Vehicle Interface 组件由以下组件组成:
- Raw Vehicle Command Converter 组件,如果线控系统支持速度/加速度控制,它将传递来自 Control 组件的车辆命令.否则,将根据控制方法修改控制命令(例如:通过使用加速图将目标加速度从 Control 组件转换为车辆特定的加速度/制动踏板值)
- 车辆接口组件(特定于车辆),充当 Autoware 和车辆之间的接口,以传输控制信号并获取有关车辆的信息(转向输出、轮胎角度等)
每个组件都包含 Autoware 的静态节点,而每个模块都可以动态加载和卸载(对应于 C++ 类).Vehicle Interface 组件的机制如下图所示:


3.特征#
Vehicle Interface 组件可以在功能和能力方面提供以下特性:
- 基本功能
- 将 Autoware 控制命令转换为车辆特定命令
- 将车辆特定状态信息(速度、转向)转换为 Autoware 状态消息
-诊断 - 列出可用功能 - 如果 Control 组件尝试使用 Vehicle Interface 组件中不可用的功能,则提供警告
可能会添加其他功能和能力特性,具体取决于车辆硬件.下面列出了一些示例功能:
- 安全功能
- 通过人工干预脱离自动驾驶.
- 这可以通过使用紧急分离按钮,或者由安全驾驶员手动转动方向盘或踩下制动器来完成
- 通过人工干预脱离自动驾驶.
- 可选控件
- 转向指示灯 -手闸 -车头 灯
- 危险信号灯 -门 -角 -雨刷
4.接口和数据结构#
Vehicle Interface 组件的接口定义如下,供在同一进程空间中运行的其他组件访问 Vehicle Interface 组件的功能.
从控制
- 驱动命令
- 目标加速度、制动和转向角
来自 Planning
- 车辆特定命令(可选,每种类型都有单独的消息) -转变 -门 -雨刮器 -等
从车辆
- 车辆状态消息
- 车辆特定格式消息,可转换为 Autoware 特定格式消息
- 速度状态
- 转向状态(可选)
- 档位状态(可选)
- 转向信号状态(可选)
- 启动状态(可选)
- 车辆特定格式消息,可转换为 Autoware 特定格式消息
Vehicle Interface 组件的输出接口:
- 向车辆发送车辆控制消息
- 驾驶车辆的控制信号
- 取决于无人机类型/协议,但至少应包括转向和速度命令
- 向 Autoware 发送车辆状态消息
- 驱动状态
- 加速、制动、转向状态
- 车辆里程计(输出到 Localization)
- 车辆扭曲信息
- 控制模式
- 有关车辆是处于自主控制还是手动控制状态的信息
- 档位状态(可选)
- 车辆换挡状态
- 转向信号状态(可选)
- 车辆转向信号灯状态
Vehicle Interface 组件中使用的对象和轨迹的语义的内部表示的数据结构定义如下:
5.关注点、假设和限制#
关注
- 架构权衡和可扩展性
假设
-
局限性