Propiedades del vehículo ADAS

Agregamos las siguientes propiedades nuevas de ADAS a Android 14:

Estas nuevas capacidades 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 agregó una lista de propiedades a Android 14. A continuación, se enumeran.

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 recién agregadas.

Propiedad Descripción
ENABLED
  • Propiedades para indicar si una función está habilitada o inhabilitada
  • Propiedades booleanas en las que true está habilitado y false está inhabilitado.
  • Propiedades Read y Write que se pueden implementar como Read-only.
ESTADO
  • Propiedades para comunicar el estado de la función a través de una lista de estados predefinidos
  • Propiedades Int32 con enums definidos
  • Campo OTHER para admitir la retrocompatibilidad
  • Propiedades Read-only
  • Tipos de área de espejo o global
  • Usa valores definidos en ErrorStates.aidl.
  • Usa la getSupportedEnumValues() API 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 para admitir:
    • Variaciones de funciones cuando corresponda
    • Ajustar la configuración de 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 automático de emergencia (AEB)
  • Asistencia de centrado de carril (LCA)
  • Detección de manos en el volante (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

Definido en AutomaticEmergencyBrakingState.aidl.

VehiclePropertyType:INT32

  • OTHER
  • ENABLED
  • ACTIVATED
  • USER_OVERRIDE
  • ErrorState
  • El siguiente diagrama de estado de muestra para AEB incluye los estados compatibles definidos en AutomaticEmergencyBrakingState.aidl.

    Estados de AEB definidos en AutomaticEmergencyBrakingState.aidl

    Figura 2: Estados de AEB definidos en AutomaticEmergencyBrakingState.aidl

    En esta figura, se proporciona un ejemplo de AEB cuando no se admite el USER_OVERRIDE estado. Los estados compatibles se deben especificar a través de la getSupportedEnumValues() API 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 que se ilustra en la Figura 4, se destaca el error que hace que AEB deje de estar disponible. Esto demuestra cómo se deben usar los valores definidos en ErrorState.aidl. Estos errores no generan una excepción arrojada por CarPropertyManager y, en cambio, se comparten con las apps de la misma manera que cualquier otro cambio en CarPropertyValue.

    El error provoca que el AEB deje de estar disponible

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

    Asistencia de centrado de carril

    La asistencia de centrado de carril (LCA) proporciona tres propiedades asociadas y definidas.

    Propiedad Valores
    LANE_CENTERING_ASSIST_ENABLED VehiclePropertyType:BOOLEAN

    LANE_CENTERING_ASSIST_STATE

    Definido en LaneCenteringAssistState.aidl

    VehiclePropertyType:INT32

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

    LANE_CENTERING_ASSIST_COMMAND

    Definido en LaneCenteringAssistCommand.aidl

    VehiclePropertyType:INT32

    • ACTIVATE
    • DEACTIVATE

    En el siguiente diagrama de estado, se ilustra LCA cuando se admiten todos los estados definidos en LaneCenteringAssistState.aidl. Las líneas verdes pueden ser un comando iniciado desde el LANE_CENTERING_ASSIST_COMMAND (cuando se implementa) o iniciado a través de otro mecanismo en el vehículo y reflejar 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

    En este ejemplo de LCA, se destaca un error que hace que LCA deje de estar disponible. Esto demuestra cómo usar los valores definidos en ErrorState.aidl. Estos errores no generan que CarPropertyManager arroje un error y, en cambio, se comparten con las apps de la misma manera que se comparten otros cambios en CarPropertyValue change.

     El error hace que la LCA deje de estar disponible.

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

    Detección de manos en el volante

    Estas tres propiedades asociadas se definen para la detección de manos en el volante (HOD).

    Propiedad Descripción
    HANDS_ON_DETECTION_ENABLED VehiclePropertyType:BOOLEAN

    HANDS_ON_DETECTION_STATE

    Definido en HandsOnDetectionDriverState.aidl

    VehiclePropertyType:INT32

    • OTHER
    • HANDS_ON
    • HANDS_OFF
    • ErrorState

    HANDS_ON_DETECTION_WARNING

    Definido 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 para 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