Barometer Overview

The barometer measures the ambient air pressure around the camera in hectopascals (hPa). As the ambient air pressure decreases with the altitude, the barometer can be used to measure the altitude variations of the camera.

However, ambient air pressure is also modified by weather conditions. During sunny days the ambient pressure is higher than during rainy ones. This means that the barometer is affected by outdoor conditions and that it can’t be used to estimate the absolute altitude of the camera from the sea level. Therefore only relative altitude variations are provided by this sensor.

Output Data

The following information is accessible from the camera sensor stack:

Output Data Description Units
Barometer (25 Hz)
pressure Ambient air pressure. hPa
relative_altitude Relative altitude (altitude variation) from initial camera position. meters

Using the API

You can access the barometer data with:

SensorsData sensors_data;
SensorsData::BarometerData barometer_data;

// Grab new frames and retrieve sensors data
while(zed.grab() == SUCCESS){
  zed.getSensorsData(sensors_data, TIME_REFERENCE::IMAGE); // Retrieve only frame synchronized data

  // Extract barometer data
  barometer_data = sensors_data.barometer;

  // Retrieve pressure and relative altitude
  float pressure = barometer_data.pressure;
  float relative_altitude = barometer_data.relative_altitude;
}
sensors_data = sl.SensorsData()
barometer_data = sl.SensorsData.BarometerData()

# Grab new frames and retrieve sensors data
while zed.grab() == sl.ERROR_CODE.SUCCESS :
  zed.get_sensors_data(sensors_data, sl.TIME_REFERENCE.IMAGE) # Retrieve only frame synchronized data

  # Extract barometer data
  barometer_data = sensors_data.barometer

  # Retrieve pressure and relative altitude
  pressure = barometer_data.pressure
  relative_altitude = barometer_data.relative_altitude
SensorsData sensors_data = new SensorsData();
BarometerData barometer_data = new BarometerData();

RuntimeParameters runtimeParameters  = new RuntimeParameters();
// Grab new frames and retrieve sensors data
while(zed.Grab(ref runtimeParameters) == ERROR_CODE.SUCCESS){
  zed.GetInternalSensorsData(sensors_data, TIME_REFERENCE.IMAGE); // Retrieve only frame synchronized data

  // Extract barometer data
  barometer_data = sensors_data.barometer;

  // Retrieve pressure and relative altitude
  float pressure = barometer_data.pressure;
  float relative_altitude = barometer_data.relativeAltitude;
}

Code Example

For code example, check out the Getting Sensor Data tutorial.