AP_Baro Detailed Reference¶
Header¶
File: libraries/AP_Baro/AP_Baro.h
#include <AP_Baro.h>
Class Documentation¶
Detailed Description¶
AP_Baro is the core barometer (air pressure) sensor driver for ArduPilot. It provides altitude estimation based on atmospheric pressure readings, which is critical for maintaining altitude in fixed-wing aircraft and for altitude hold in multirotors.
Key Features:
Multiple barometer backend support (BMP280, MS5611, BMP388, etc.)
Altitude calculation using barometric formula
Pressure correction for temperature and wind effects
Ground pressure/temperature tracking
EAS (Equivalent Airspeed) to TAS (True Airspeed) conversion
Sensor fusion with GPS for improved accuracy
Inheritance¶
This class does not inherit from any other class. It is a top-level driver class.
Derived Classes:
:doxygen:`AP_Baro_BMP280` - Bosch BMP280 barometer
:doxygen:`AP_Baro_MS5611` - Measurement Specialties MS5611 barometer
:doxygen:`AP_Baro_BMP388` - Bosch BMP388 barometer
:doxygen:`AP_Baro_BMP581` - Bosch BMP581 barometer
Related Classes:
:doxygen:`AP_Baro_Backend` - Base class for barometer backends
Public Types¶
Public Member Variables¶
Public Member Functions¶
Singleton¶
Initialization & Update¶
Health & Status¶
-
bool AP_Baro::healthy(void) const¶
Check if primary barometer is healthy.
- Returns:
true if barometer is healthy
-
bool AP_Baro::healthy(uint8_t instance) const¶
Check if specific barometer instance is healthy.
- Parameters:
instance – Barometer instance index
- Returns:
true if healthy
Pressure Data¶
-
float AP_Baro::get_pressure(void) const¶
Get current pressure from primary barometer.
- Returns:
Pressure in Pa
-
float AP_Baro::get_pressure(uint8_t instance) const¶
Get pressure from specific barometer instance.
- Parameters:
instance – Barometer instance index
- Returns:
Pressure in Pa
Temperature Data¶
Altitude Data¶
-
float AP_Baro::get_altitude(void) const¶
Get altitude estimate from primary barometer.
- Returns:
Altitude in meters (relative to ground)
-
float AP_Baro::get_altitude(uint8_t instance) const¶
Get altitude from specific barometer instance.
- Parameters:
instance – Barometer instance index
- Returns:
Altitude in meters
Climb Rate¶
Ground Reference¶
Static Altitude Methods¶
-
static float AP_Baro::get_altitude_from_pressure(float pressure) const¶
Calculate altitude from pressure (barometric formula).
- Parameters:
pressure – Pressure in Pa
- Returns:
Altitude in meters
EAS/TAS Conversion¶
Usage Example¶
#include <AP_Baro.h>
AP_Baro *baro;
void setup() {
baro = AP_Baro::get_singleton();
if (baro == nullptr) {
Serial.println("Baro not available");
return;
}
// Calibrate barometer on startup
baro->calibrate(true);
}
void loop() {
// Update barometer
baro->update();
// Check health
if (baro->healthy()) {
// Get altitude
float altitude = baro->get_altitude();
Serial.printf("Altitude: %.2f m\n", altitude);
// Get pressure
float pressure = baro->get_pressure();
Serial.printf("Pressure: %.2f Pa\n", pressure);
// Get temperature
float temperature = baro->get_temperature();
Serial.printf("Temperature: %.2f C\n", temperature);
// Get climb rate
float climb_rate = baro->get_climb_rate();
Serial.printf("Climb Rate: %.2f m/s\n", climb_rate);
}
}
See Also¶
Sensor Libraries - Overview of sensor libraries
api/ap_gps - GPS sensor (often used with baro for altitude)
AP_Baro_Backend - Backend driver base class (see libraries/AP_Baro/)
AP_Baro_MS5611 - Common barometer sensor driver