Propiedades del vehículo ADAS

Agregamos las siguientes propiedades ADAS nuevas a Android 14:

Estas nuevas funciones se ilustran en la siguiente figura.

Funciones de ADAS compatibles

Figura 1: Funciones de ADAS compatibles

Lista de propiedades

Para admitir estas nuevas funciones, se agrega una lista de propiedades a Android 14. Se enumeran a continuación.

Propiedades
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

Temas de diseño

Los siguientes temas de diseño se aplican a las propiedades que se agregaron recientemente.

Propiedad Descripción
HABILITADO
  • Son propiedades para indicar si una función está habilitada o inhabilitada.
  • Propiedades booleanas en las que true está habilitada y false está inhabilitada
  • Propiedades Read y Write que se pueden implementar como Read-only.
ESTADO
  • Son propiedades para comunicar el estado de la función a través de una lista de estados predefinidos.
  • Propiedades Int32 con enumeraciones definidas.
  • Campo OTHER para admitir la retrocompatibilidad.
  • Propiedades Read-only
  • Tipos de áreas globales o espejo.
  • Usa valores definidos en ErrorStates.aidl.
  • Usa la API de getSupportedEnumValues() en AreaIdConfig.java.
Varios
  • Propiedades COMMAND para funciones cuando se requiere la entrada del usuario
  • Propiedades WARNING para cuando el estado se puede representar por separado.
  • Otras propiedades compatibles:
    • Variaciones de componentes cuando corresponda
    • Ajusta la configuración de las funciones cuando corresponda.

Ejemplos de diagramas de estado

En esta sección, se proporcionan diagramas de estado para un subconjunto de las funciones de ADAS compatibles para demostrar cómo funcionan juntas las propiedades incluidas. Proporcionamos ejemplos de las siguientes funciones.

  • Frenado de emergencia automático (AEB)
  • Asistencia para centrar el carril (LCA)
  • Detección de uso (HOD)

Frenado automático de emergencia

Se definen dos propiedades para AEB, como se describe en esta tabla.

Propiedad Valores
AUTOMATIC_EMERGENCY_BRAKING_ENABLED VehiclePropertyType:BOOLEAN

AUTOMATIC_EMERGENCY_BRAKING_STATE

Se define en AutomaticEmergencyBrakingState.aidl.

VehiclePropertyType:INT32

  • OTHER
  • ENABLED
  • ACTIVATED
  • USER_OVERRIDE
  • ErrorState
  • En el siguiente diagrama de estado de ejemplo para AEB, se incluyen los estados admitidos definidos en AutomaticEmergencyBrakingState.aidl.

    Estados de la AEB definidos en AutomaticEmergencyBrakingState.aidl

    Figura 2: Estados de la AEB definidos en AutomaticEmergencyBrakingState.aidl.

    En esta figura, se proporciona un ejemplo de AEB cuando no se admite el estado USER_OVERRIDE. Los estados admitidos deben especificarse a través de la API de getSupportedEnumValues() en AreaIdConfig.java.

    AEB cuando no se admite el estado de anulación del usuario

    Figura 3: AEB cuando no se admite el estado USER_OVERRIDE.

    En el ejemplo de AEB ilustrado en la figura 4, se destaca el error que hace que el AEB no esté disponible. Esto demuestra cómo se deben usar los valores definidos en ErrorState.aidl. Estos errores no generan una excepción que arroja CarPropertyManager y, en su lugar, se comparten con las apps de la misma manera que cualquier otro cambio en CarPropertyValue.

    El error hace que la AEB deje de estar disponible.

    Figura 4: El error hace que la AEB deje de estar disponible.

    Asistencia para centrar el carril

    La asistencia para mantenerse en el carril (LCA) proporciona tres propiedades asociadas y definidas.

    Propiedad Valores
    LANE_CENTERING_ASSIST_ENABLED VehiclePropertyType:BOOLEAN

    LANE_CENTERING_ASSIST_STATE

    Se define en LaneCenteringAssistState.aidl.

    VehiclePropertyType:INT32

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

    LANE_CENTERING_ASSIST_COMMAND

    Se define en LaneCenteringAssistCommand.aidl

    VehiclePropertyType:INT32

    • ACTIVATE
    • DEACTIVATE

    En el siguiente diagrama de estado, se ilustra la LCA cuando se admiten todos los estados definidos en LaneCenteringAssistState.aidl. Las líneas verdes pueden ser un comando que se inicia desde LANE_CENTERING_ASSIST_COMMAND (cuando se implementa) o a través de otro mecanismo del vehículo y reflejan un cambio de estado en el SO Android Automotive (AAOS).

    Estados de LCA definidos en LaneCenteringAssistState.aidl

    Figura 5: estados de LCA definidos en LaneCenteringAssistState.aidl.

    Este ejemplo de LCA destaca un error que causa que no esté disponible. Esto muestra cómo usar los valores definidos en ErrorState.aidl. Estos errores no hacen que CarPropertyManager genere un error y, en su lugar, se comparten con las apps de la misma manera que se comparten otros cambios en CarPropertyValue.

     El error hace que el LCA deje de estar disponible.

    Figura 6: El error hace que el LCA deje de estar disponible.

    Detección manual

    Estas tres propiedades asociadas se definen para la detección manual (HOD).

    Propiedad Descripción
    HANDS_ON_DETECTION_ENABLED VehiclePropertyType:BOOLEAN

    HANDS_ON_DETECTION_STATE

    Se define en HandsOnDetectionDriverState.aidl.

    VehiclePropertyType:INT32

    • OTHER
    • HANDS_ON
    • HANDS_OFF
    • ErrorState

    HANDS_ON_DETECTION_WARNING

    Se define en HandsOnDetectionWarning.aidl.

    VehiclePropertyType:INT32

    • OTHER
    • NO_WARNING
    • WARNING
    • ErrorState

    A continuación, se ilustra un ejemplo de HOD, en el que se admiten todos los estados definidos en HandsOnDetectionDriverState.aidl.

    HOD cuando se admiten todos los estados definidos en HandsOnDetectionDriverState.aidl

    Figura 7: HOD cuando se admiten todos los estados definidos en HandsOnDetectionDriverState.aidl

    Además de la propiedad HANDS_ON_DETECTION_STATE, HOD también proporciona una propiedad de advertencia independiente, HANDS_ON_DETECTION_WARNING. El diagrama de estado de los valores de advertencia de HOD se ilustra en la Figura 8.

    Valores de advertencia de HOD

    Figura 8: HOD cuando se admiten todos los valores definidos en HandsOnDetectionWarning.aidl