ADAS 车辆属性

我们为 Android 14 添加了以下新的 ADAS 属性:

下图展示了这些新功能。

支持的 ADAS 功能

图 1. 支持的 ADAS 功能。

属性列表

为了支持这些新功能,我们向 Android 14 添加了一系列属性,如下所列。

属性
ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP
ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_DISTANCE

AUTOMATIC_EMERGENCY_BRAKING_ENABLED
AUTOMATIC_EMERGENCY_BRAKING_STATE

BLIND_SPOT_WARNING_ENABLED
BLIND_SPOT_WARNING_STATE

CRUISE_CONTROL_ENABLED
CRUISE_CONTROL_TYPE
CRUISE_CONTROL_STATE
CRUISE_CONTROL_COMMAND
CRUISE_CONTROL_TARGET_SPEED

EMERGENCY_LANE_KEEP_ASSIST_ENABLED
EMERGENCY_LANE_KEEP_ASSIST_STATE
FORWARD_COLLISION_WARNING_ENABLED
FORWARD_COLLISION_WARNING_STATE

HANDS_ON_DETECTION_ENABLED
HANDS_ON_DETECTION_DRIVER_STATE
HANDS_ON_DETECTION_WARNING

LANE_DEPARTURE_WARNING_ENABLED
LANE_DEPARTURE_WARNING_STATE

LANE_KEEP_ASSIST_ENABLED
LANE_KEEP_ASSIST_STATE

LANE_CENTERING_ASSIST_ENABLED
LANE_CENTERING_ASSIST_COMMAND
LANE_CENTERING_ASSIST_STATE

设计主题

以下设计主题已应用于新添加的属性。

属性 说明
已启用
  • 用于指明某项功能是处于启用状态还是处于停用状态的属性。
  • 布尔值属性,true 表示处于启用状态,false 则表示处于停用状态。
  • 可实现为 Read-onlyReadWrite 属性。
状态
  • 通过一系列预定义状态传达功能状态的属性。
  • 具有已定义枚举的 Int32 属性。
  • OTHER 字段,用以支持向后兼容性。
  • Read-only 属性。
  • 车镜或全球区域类型。
  • 使用 ErrorStates.aidl 中定义的值。
  • AreaIdConfig.java 中使用 getSupportedEnumValues() API。
其他
  • 当需要用户输入时,功能所对应的 COMMAND 属性。
  • WARNING 属性,用于指明状态可被单独表示的情况。
  • 支持的其他属性:
    • 适用时的功能变体。
    • 适用时调整功能设置。

状态图示例

本部分提供了所支持 ADAS 功能的某个子集的状态图,以演示包含的属性如何协同工作。我们提供了以下功能的示例。

  • 自动紧急制动 (AEB)
  • 车道居中助手 (LCA)
  • 离手检测 (HOD)

自动紧急制动

如本表所述,为 AEB 定义了两个属性。

属性
AUTOMATIC_EMERGENCY_BRAKING_ENABLED VehiclePropertyType:BOOLEAN

AUTOMATIC_EMERGENCY_BRAKING_STATE

AutomaticEmergencyBrakingState.aidl 中定义。

VehiclePropertyType:INT32

  • OTHER
  • ENABLED
  • ACTIVATED
  • USER_OVERRIDE
  • ErrorState
  • 以下 AEB 状态图示例包含 AutomaticEmergencyBrakingState.aidl 中定义的受支持状态。

    在 AutomaticEmergencyBrakingState.aidl 中定义的 AEB 状态

    图 2. 在 AutomaticEmergencyBrakingState.aidl 中定义的 AEB 状态。

    此图提供了 USER_OVERRIDE 状态不受支持时的 AEB 示例。应通过 AreaIdConfig.java 中的 getSupportedEnumValues() API 指定受支持的状态。

    当 user override 状态不受支持时的 AEB

    图 3. 当 USER_OVERRIDE 状态不支持时的 AEB。

    在图 4 所示的 AEB 示例中,突出显示了导致 AEB 不可用的错误。此示例演示了应该如何使用 ErrorState.aidl 中定义的值。这些错误不会导致 CarPropertyManager 抛出异常,而是会分享给应用,具体方式与分享对 CarPropertyValue 进行的其他更改时相同。

    错误导致 AEB 不可用

    图 4. 错误导致 AEB 不可用。

    车道居中辅助

    车道居中辅助 (LCA) 提供了三个关联且已定义的属性。

    属性
    LANE_CENTERING_ASSIST_ENABLED VehiclePropertyType:BOOLEAN

    LANE_CENTERING_ASSIST_STATE

    LaneCenteringAssistState.aidl 中定义。

    VehiclePropertyType:INT32

    • OTHER
    • ENABLED
    • ACTIVATION_REQUESTED
    • ACTIVATED
    • USER_OVERRIDE
    • FORCED_DEACTIVATION_WARNING
    • ErrorState

    LANE_CENTERING_ASSIST_COMMAND

    LaneCenteringAssistCommand.aidl 中定义。

    VehiclePropertyType:INT32

    • ACTIVATE
    • DEACTIVATE

    下方状态图说明了当 LaneCenteringAssistState.aidl 中定义的所有状态都受支持时 LCA 的行为。绿色线条可以是从 LANE_CENTERING_ASSIST_COMMAND 发起的命令(如果已实现),也可以是通过车辆中的另一机制发起的命令,并反映 Android Automotive OS (AAOS) 上的状态变化。

    在 LaneCenteringAssistState.aidl 中定义的 LCA 状态

    图 5. 在 LaneCenteringAssistState.aidl 中定义的 LCA 状态。

    此 LCA 示例突出显示了导致 LCA 不可用的错误。此示例演示了如何使用 ErrorState.aidl 中定义的值。这些错误不会导致 CarPropertyManager 抛出异常,而是会分享给应用,具体方式与分享对 CarPropertyValue 进行的其他更改时相同。

     错误导致 LCA 不可用。

    图 6. 错误导致 LCA 不可用。

    离手检测

    这三个关联属性是为离手检测 (HOD) 定义的。

    属性 说明
    HANDS_ON_DETECTION_ENABLED VehiclePropertyType:BOOLEAN

    HANDS_ON_DETECTION_STATE

    HandsOnDetectionDriverState.aidl 中定义。

    VehiclePropertyType:INT32

    • OTHER
    • HANDS_ON
    • HANDS_OFF
    • ErrorState

    HANDS_ON_DETECTION_WARNING

    HandsOnDetectionWarning.aidl 中定义。

    VehiclePropertyType:INT32

    • OTHER
    • NO_WARNING
    • WARNING
    • ErrorState

    下图显示了 HOD 示例,此时 HandsOnDetectionDriverState.aidl 中定义的所有状态都受支持。

    当 HandsOnDetectionDriverState.aidl 中定义的所有状态都受支持时的 HOD。

    图 7. 当 HandsOnDetectionDriverState.aidl 中定义的所有状态都受支持时的 HOD。

    除了 HANDS_ON_DETECTION_STATE 属性之外,HOD 还提供单独的警告属性 HANDS_ON_DETECTION_WARNING。HOD 警告值的状态图如图 8 所示。

    HOD 警告值

    图 8. 当 HandsOnDetectionWarning.aidl 中定义的所有值都受支持时的 HOD。