Google definisce uno standard per i sensori ad alta qualità

Lorenzo Quiroli
Lorenzo Quiroli
Google definisce uno standard per i sensori ad alta qualità

Tutti gli smartphone Android hanno dei sensori incorporati, alcuni dei quali obbligatori, come l'accelerometro, e altri opzionali, come il pedometro. Il loro funzionamento però non è uguale, anzi, su alcuni modelli potrebbe essere tutt'altro che ideale.

Google ha aggiornato le norme del suo Documento di Definizione della Compatibilità (CDD) per Marshmallow, aggiungendo alcuni requisiti opzionali che un dispositivo deve rispettare per potersi vantare di avere "High Fidelity Sensor Support". In sostanza si tratta di una certificazione non obbligatoria che definisce i parametri per sensori ad alta qualità, non solo in termini di precisione ma anche di consumo energetico.

Ecco il testo completo:

Device implementations supporting a set of higher quality sensors that can meet all the requirements listed in this section MUST identify the support through the android.hardware.sensor.hifi_sensors feature flag.

A device declaring android.hardware.sensor.hifi_sensors MUST support all of the following sensor types meeting the quality requirements as below:

SENSOR_TYPE_ACCELEROMETER

  • MUST have a measurement range between at least -8g and +8g
  • MUST have a measurement resolution of at least 1024 LSB/G
  • MUST have a minimum measurement frequency of 12.5 Hz or lower
  • MUST have a maxmium measurement frequency of 200 Hz or higher
  • MUST have a measurement noise not above 400uG/√Hz
  • MUST implement a non-wake-up form of this sensor with a buffering capability of at least 3000 sensor events
  • MUST have a batching power consumption not worse than 3 mW

SENSOR_TYPE_GYROSCOPE

  • MUST have a measurement range between at least -1000 and +1000 dps
  • MUST have a measurement resolution of at least 16 LSB/dps
  • MUST have a minimum measurement frequency of 12.5 Hz or lower
  • MUST have a maxmium measurement frequency of 200 Hz or higher
  • MUST have a measurement noise not above 0.014°/s/√Hz

SENSOR_TYPE_GYROSCOPE_UNCALIBRATED with the same quality requirements as SENSOR_TYPE_GYROSCOPE

SENSOR_TYPE_GEOMAGNETIC_FIELD

  • MUST have a measurement range between at least -900 and +900 uT
  • MUST have a measurement resolution of at least 5 LSB/uT
  • MUST have a minimum measurement frequency of 5 Hz or lower
  • MUST have a maxmium measurement frequency of 50 Hz or higher
  • MUST have a measurement noise not above 0.5 uT

SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED with the same quality requirements as SENSOR_TYPE_GEOMAGNETIC_FIELD and in addition:

  • MUST implement a non-wake-up form of this sensor with a buffering capability of at least 600 sensor events

SENSOR_TYPE_PRESSURE

  • MUST have a measurement range between at least 300 and 1100 hPa
  • MUST have a measurement resolution of at least 80 LSB/hPa
  • MUST have a minimum measurement frequency of 1 Hz or lower
  • MUST have a maximum measurement frequency of 10 Hz or higher
  • MUST have a measurement noise not above 2 Pa/√Hz
  • MUST implement a non-wake-up form of this sensor with a buffering capability of at least 300 sensor events
  • MUST have a batching power consumption not worse than 2 mW

SENSOR_TYPE_ROTATION_VECTOR

  • MUST have a batching power consumption not worse than 4 mW

SENSOR_TYPE_GAME_ROTATION_VECTOR

  • MUST implement a non-wake-up form of this sensor with a buffering capability of at least 300 sensor events

SENSOR_TYPE_SIGNIFICANT_MOTION

  • MUST have a power consumption not worse than 0.5 mW when device is static and 1.5 mW when device is moving

SENSOR_TYPE_STEP_DETECTOR

  • MUST implement a non-wake-up form of this sensor with a buffering capability of at least 100 sensor events
  • MUST have a power consumption not worse than 0.5 mW when device is static and 1.5 mW when device is moving
  • MUST have a batching power consumption not worse than 4 mW

SENSOR_TYPE_STEP_COUNTER

  • MUST have a power consumption not worse than 0.5 mW when device is static and 1.5 mW when device is moving

SENSOR_TILT_DETECTOR

  • MUST have a power consumption not worse than 0.5 mW when device is staticand 1.5 mW when device is moving

Also such a device MUST meet the following sensor subsystem requirements:

  • The event timestamp of the same physical event reported by the Accelerometer, Gyroscope sensor and Magnetometer MUST be within 2.5 milliseconds of each other.
  • The Gyroscope sensor event timestamps MUST be on the same time base as the camera subsystem and within 1 millisconds of error.
  • The latency of delivery of samples to the HAL SHOULD be below 5 milliseconds from the instant the data is available on the physical sensor hardware.
  • The power consumption MUST not be higher than 0.5 mW when device is static and 2.0 mW when device is moving when any combination of the following sensors are enabled:
    SENSOR_TYPE_SIGNIFICANT_MOTION,
    SENSOR_TYPE_STEP_DETECTOR
    SENSOR_TYPE_STEP_COUNTER
    SENSOR_TILT_DETECTORS
    Note that all power consumption requirements in this section do not include the power consumption of the Application Processor. It is inclusive of the power drawn by the entire sensor chain - the sensor, any supporting circuitry, any dedicated sensor processing system, etc.

The following sensor types MAY also be supported on a device implementation declaring android.hardware.sensor.hifi_sensors, but if these sensor types are present they MUST meet the following minimum buffering capability requirement:

  • SENSOR_TYPE_PROXIMITY: 100 sensor events

Si tratta quindi di standardizzare le prestazioni a beneficio dell'esperienza utente e dello sviluppatore, che sarà così a conoscenza di quali dispositivi hanno sensori di qualità da poter sfruttare per le proprie app. Immaginiamo che i nuovi Nexus, con il loro Android Sensor Hub, soddisfino queste specifiche, ma al momento non ci sono certezze al riguardo.

Precisiamo ancora una volta che queste caratteristiche non sono requisiti necessari per un dispositivo Android, un po' come non lo è il supporto all'audio professionale.

Fonte: AndroidPolice