1. Introduction
Improving air quality requires new technologies to better identify and characterize distributed pollutant sources and assess human exposure. Air pollution has been identified as a leading risk factor for the global disease burden [
1,
2]. In response, air monitoring networks have been established to monitor concentrations of air pollutants in the ambient air. However, the current networks are often considered insufficient to cover large areas, account for new source regimes, or implement effective pollution control strategies. The Internet of Things (IoT), defined as the network of connected air pollution sensors, has been commercialized to gather air quality data by consumers worldwide [
3,
4]. The latest IoT solutions need to deploy massive sensors on city infrastructures [
5]. As sensors are fixed, they are only able to capture data with low spatial resolutions and cannot easily track the change of air pollution in the spatial dimension. Dedicated vehicle-based sampling systems have improved spatial coverage and demonstrated source-characterization capabilities; however, these applications can be limited by site access, proper orientation to the source (e.g., upwind vs. downwind), complex topography, or public road networks, and require extremely sensitive and expensive instrumentation. Furthermore, vertical atmospheric measurements are critically necessary for air pollution forecasting and evaluation, particularly in mega-cities with high-rise buildings. Capturing the spatial and temporal variability of aerosol particles and gases between the surface and 300 m is currently limited by the fixed sampling platforms. This situation significantly limits the understanding and management of air pollution and increases the need for the on-site fast analysis of field samples.
The unmanned aerial vehicle (UAV) is becoming an attractive experimental platform for high-spatial-resolution, near-surface vertical profiling of atmospheric pollution in recent years [
6]. Previous technologies used balloons, aircraft, and satellite remote sensing, which are unmaneuverable or expensive [
7,
8]. Recent advancements in consumer UAV technology present a low-cost solution for sampling the lower troposphere, taking advantage of their abilities to maneuver in both the horizontal and vertical dimensions and to hold a fixed position in the air even under high-wind conditions [
9,
10]. Mobile real-time low-cost commercial micro-sensors equipped with new technologies of consumer UAVs offer numerous advantages for capturing the spatial and temporal variability of air pollutants and provide the ability to measure important air pollutants with high sensitivities and temporal resolutions [
11]. While the potential of UAVs for air quality monitoring is promising, adoption of them has been limited by proper UAV designs, adequate sensor technologies, and regulatory uncertainty [
12].
UAVs have demonstrated their applications in a few air pollution monitoring studies [
13,
14,
15,
16,
17]; however, seldom has a study adequately addressed the technological challenges frequently encountered in the real-world monitoring. Specifically, a UAV-based air monitoring platform should address these challenges: (1) Low-cost consumer UAVs. Previous applications used proprietary professional UAVs that do not allow the general users to customize their needs. These UAV platforms are expensive and require specialized design and maintenance. (2) Synchronization of monitoring sensor data and GPS data. For real-time monitoring and geospatial data modeling, air pollutant data and GPS data need to be synchronized, as they come from two separate components. However, the internal clocks of the sensor and the UAV are not synchronized at all. Worse, they do not have the built-in ability to implement network timing protocols. Rather than synchronizing the devices, we study and develop mechanisms to produce synchronized data within an error tolerance. (3) Multiple air pollutants. Air pollutants are present as mixtures in all the air environments. Both the scientific community and regulatory agencies have been shifting from the traditional single-pollutant approach toward a multi-pollutant approach to quantify the health consequences of air pollution mixtures [
18]. This trend requires a platform that can house and integrate multiple sensors with different operating principles [
19]. (4) Energy efficiency and flight time. A typical consumer UAV in the price range of
$500 to
$2000 can fly for about 15 to 30 min on one fully charged battery. Carrying additional devices may reduce the UAV flight time, as the onboard devices add weights to the UAV and the devices themselves consume electricity. A typical USB-powered micro-controller device consumes power in the range of 1 W to 10 W. It is necessary to study and find a design with hardware and software to reduce the weight and energy consumption of the UAV system. (5) Safety and restrictions in cities. Importantly, the UAV’s flight paths need safe airspace to avoid many obstacles in a city environment, such as buildings, lights, power distribution lines, trees, no-fly zones and so on. Also, UAVs cannot be deployed without restrictions. Under current aviation safety operating regulations, restrictions are placed on their use in commercial, research, and private applications.
To address these challenges, we designed and developed a consumer UAV-based air monitoring system. Rather than designing a customized UAV system, we targeted the building of a system with all off-the-shelf consumer components, including both hardware and software. Our contribution is a modular design that enables a consumer UAV platform to carry multiple sensors and be capable of real-time monitoring multiple air pollutants. This UAV system features a stable and high precision spatial-temporal platform for air sample collection. We also tested the feasibility and capability of current consumer UAVs for air quality monitoring applications in the field.
2. Design of the Platform and Field Tests
2.1. The Modular Design
A UAV system typically consists of the UAV itself, a ground station, and a few onboard gadgets, such as a first-person view camera. In many applications, a UAV is simply used as a carrying platform and does not intervene with the operations of the onboard gadgets. The controls of the UAV and the gadgets are often separated as well. For air quality monitoring, however, the UAV must function beyond a simple platform that carries multiple air pollutant sensors. It is more important for the UAV to integrate the data from all onboard sensors and tag the data with geolocation information in real time. Hence, a modular design is highly desired to build a UAV system that can be easily deployed and managed in field uses.
In the modular design of
Figure 1, the system comprises five modules: the UAV, the ground station, the sensors, the data acquisition (DA) module, and the data fusion (DF) module. The operations of the UAV are controlled by the ground station. The UAV has a flight controller that directs the UAV to accomplish specific tasks according to a flight plan. The UAV reports its status to the ground station through its communication module. Our work was mainly focused on developing software components that synergize the existing products, as we used off-the-shelf products to build the system.
Figure 1 shows the software components that are existing (in white boxes) and that need to be developed (in gray boxes) in the system.
2.2. Air Pollutant Sensors
Air pollutant sensors vary greatly in their working mechanisms. Each sensor is made for one specific air pollutant, such as particulate matter or nitrogen dioxide, and produces different kinds of signals. The signals are in response to the concentrations of the pollutants and typically need to be calibrated before use. Therefore, we needed to develop an individual data acquisition module that is bound to each sensor to gather the signal and produces sensor-specific data for later processing in the data fusion module. Each data acquisition module runs its own program customized for each sensor. To save battery, the data acquisition module is built into a low cost and energy efficient micro-controller. As a prototype, our UAV carried two air pollutant sensors:
(1) The particulate matter (PM) sensor (OPC-N2, Alphasense Inc., Essex, UK) counts particles optically and converts the number concentrations to mass concentrations of PM
1, PM
2.5, and PM
10. It has a built-in data acquisition module and transfers data through a USB emulated serial port to external devices. The sampling period is set at 1.5 s per sample but can be adjusted in the range of 1 s to 30 s per sample. Each sample contains 62 bytes of data. This OPC sensor has been specifically tested for UAV applications [
20].
(2) The nitrogen dioxide (NO2) sensor (NO2-B43F, Alphasense Inc., Essex, UK) is a 4-electrode gas sensor that produces current signals proportionate to the concentration of NO2. The NO2 sensor only produces analog signals. Hence, we developed a data acquisition module that converts its analog signals to digital data. The sampling period is set at 0.25 s per sample but can be adjusted in the range of 0.01 s to 100 s per sample. Each sample contains 8 bytes of data. The data acquisition module transfers data through a USB emulated serial port as well.
They are both lightweight and compact sensors and suitable to be carried on a UAV. These sensors have been field tested and recommended by the U.S. Environmental Protection Agency (EPA)’s Office of Research and Development [
21].
In the modular design, the sensors do not send data directly to the ground station. Rather, we used the data fusion module to aggregate data from the sensors. Then, we used the UAV’s communication module to send the aggregated sensor data to the ground station. Thereby, we could share one communication channel with all sensors to reduce the energy and cost of the system. Depending on the data throughput required by the applications, we had two kinds of communication modules. One was the telemetry radio communication between the UAV and the ground station, which is suitable for low rate data communication but has a long-distance coverage. For high throughput data, we deployed WiFi as the communication mechanism, although the WiFi communication distance is limited in comparison to the telemetry radio communication. Because the sensor data is transmitted to the ground station in real time, we also added new software components in the ground station to receive, store, and analyze data.
2.3. Data Fusion
The data fusion module is the core component of this modular design. It is responsible for integrating the UAV’s geo-location data, time data, and sensor data. The UAV’s flight controller provides the geo-location data to the data fusion module. The geo-location data often come from a GPS device to which the flight controller connects. Because the GPS data carry time information, the flight controller provides time data as well. Furthermore, the flight controller can provide the UAV’s attitude data, such as orientation, velocity, acceleration, and so on, to the data fusion module. Such information, accompanying the air pollutant data from the sensors, can show how the sensor data are collected by the UAV, and will help us understand the context of the measurements.
Because all sensors and the flight controller provide data in different formats and at different rates, the data fusion module needed to accommodate heterogeneous data sources. Furthermore, we may need to add or remove multiple different sensors in the UAV system. To support these needs, we adopted the servlet’s programming model (A servlet is a small program that is used to extend the capabilities of servers that host applications accessed by means of a request-response programming model) for the data fusion module shown in
Figure 2. The data fusion module runs two types of servlets (data source servlet and fusion servlet) to obtain data from the air pollutant sensors and the flight controller.
For each data source, a small data source servlet runs inside the data fusion module. Each data source servlet has a read thread and a serve thread. The read thread periodically reads from the data sources. One data source servlet reads the GPS data from the flight controller with a period of 0.5 s. The other data source servlets read data from the air pollutant sensors at the rates specified by the sensors. Then, the read thread stores the data and the timestamps into a circular buffer (A data structure that uses a single, fixed-size buffer as if it were connected end-to-end). Upon a request from the downstream fusion servlet, the serve thread reads the most recent data from the circular buffer pointed by the read thread. The serve thread can access the data in the circular buffer at a different rate than the read thread, which is necessary for the later fusion servlet to unify the data time from all the data sources.
A fusion servlet is placed at the downstream of the data source servlets. The fusion servlet has a similar structure to the data source servlets and includes a fusion thread and a serve thread. The serve thread provides data to the downstream applications. The fusion thread periodically reads from all data source servlets with a period of one second. When the fusion thread obtains the most recent data and the timestamps from all the data source servlets, the fusion thread checks the differences of the sensor data timestamps and the GPS data timestamp. If the time difference is smaller than a threshold, the fusion thread stores the sensor data, the GPS data, and the GPS data timestamp in a circular buffer. Otherwise, the sensor data that has a large time difference is discarded, because the sensor data was not acquired in a close time proximity of the GPS data. In our implementation, the threshold is set at 0.5 s, which is the period of GPS data. In this way, the time of stored sensor data is aligned with the time of GPS data. The alignment error is bound to 0.5 s. When the UAV flies at a maximum speed of 10 m/s, the alignment error is equivalent to a maximum location error of 5 m, and the standard deviation of the equivalent location error is 1.4 m. Such location error satisfies the spatial resolution requirement of many air quality monitoring applications.
Running these servlets decouples the fusion process from individual data sources, improves the applicability of sensors, and enables quick and easy diagnostics on failed sensors. The data fusion module is implemented in a UAV’s companion computer. With this modular design, we were able to use a variety of consumer UAVs to carry air pollutant sensors and obtain spatial-temporal data in real time.
We used a NanoPI Neo Air board as the onboard companion computer to implement the data fusion module (
Figure 3). The NanoPI Neo Air board is a low cost embedded computer that has a powerful 1.2 GHz quad-core CPU and 512 MB memory. It has a built-in WiFi component and multiple USB ports and serial ports. We connected these ports to the data acquisition modules and the flight controller to obtain data. The NanoPI Neo Air board runs Armbian Linux and thus can import a vast pool of supporting tools and libraries. It is very suitable for developing and testing a variety of functions in data acquisition, fusion and communication modules for air monitoring applications.
Three data source servlet programs run in the onboard companion computer to collect data from the PM sensor, the NO2 sensor, and the flight controller. The fusion servlet program runs as well to gather data from the three data source servlets and provide the aggregated data as a service to applications. The aggregated data includes the sensor data and the UAV data (such as GPS, attitude and so on) with synchronized time stamps.
2.4. Data Format and Interface
Because all sensors produce different kinds of data in their formats and interfaces, unifying data specifics is another important aspect of the design. All data source servlets read raw data from the data sources in the data formats specified in their datasheets. Then, the data source servlets convert the raw data into the packed binary data format, where the values of the data (e.g., integers, floating-point numbers, and strings) are converted to bytes and then concatenated in a byte array. Such packed binary data is concise in that only the values of data are included. Meanwhile, the packet binary data is compatible with all programs, because the byte representations of the data values follow the same standards. For example, floating-point numbers are represented according to IEEE 754. The fusion servlet processes and provides data in the packed binary data format as well.
We also included a few different types of data interfaces between the modules in the system. Because many consumer UAVs have USB interfaces and run with some variants of Linux, we built a few common data interfaces into the data acquisition module and the data fusion module, such as serial RS232, USB communications device class (CDC), or human interface device class (HID), to accommodate most UAVs.
2.5. The Prototype UAV System
We built a prototype of the UAV system, shown in
Figure 4, to test its feasibility and perform some preliminary experiments on air quality monitoring. The prototype was composed of three major components: a UAV, two air pollutant sensors, and a data fusion module. The prototype UAV was built on the S550 frame and the Pixhawk 2.1 flight controller. We also adopted open source software Ardupilot for flight and mission control.
The hardware included: (i) S550, a lightweight hexacopter frame. It is based on an upgraded design of DJI F550 hexacopter and has sufficient load space under the frame. (ii) Pixhawk 2.1, the latest flight controller from the open hardware Pixhawk project in collaboration with 3D Robotics and the Ardupilot group. It has a rich set of sensors, including a GPS, magnet sensor, barometer and so on. With these sensors, it provides geolocation and attitude data in real time through serial ports to the onboard companion computer. The maximum load of the UAV (excluding the UAV and battery) is above 1 km, which is enough to carry all the sensors. The sensors and the companion computer are very lightweight and only take 4.5% of the system’s total weight.
In terms of the software: (i) We deployed Ardupilot (version 3.4.6, GitHub, San Francisco, CA, USA) as the UAV’s autopilot software in its flight controller. Ardupilot is an open source autopilot software, designed and adopted for a variety of copters, planes, rovers, and submarines. It has APIs to transmit UAV data and control commands. (ii) The ground station used the open source QGroundControl version 3.3.2. It provides full flight control and mission planning for MAVLink enabled UAVs. (iii) We developed the data fusion module in the onboard companion computer. The module was implemented in C and Python and used the SDKs provided by Ardupilot and the sensors to control and communicate with the UAV flight controller and the sensors.
We developed two applications in Python for data collection and visualization. The data collection application obtains data from the data fusion module and then saves the data into CVS files in the onboard companion computer. Later, users can download the files from the companion computer to other computers for offline analysis. The visualization application is a web application built on the Flask web framework. It obtains data from the data fusion module and then provides real-time data on a web page. We set up a WiFi access point and ran the web application with the Apache web service in the companion computer. Thereby, users can access the web application through WiFi to browse the real-time air pollutant data and UAV data with their smartphones and computers. In our prototype, the data collection application saves all data, while the visualization application mainly shows the critical data in order for users to track the status of the drone and the sensors.
We adopted the off-the-shelf consumer UAV for the purpose of affordability and programmability of this platform. The cost of this UAV is only 1/3 or less of that of an industrial grade drone with a similar payload. The open source software allows the modular design to house multiple heterogeneous sensors together. In contrast, commercial drones often have close software that allows limited programmability.
2.6. Field Tests of the Performance
The prototype UAV was tested in different field settings to collect flight data and sensor data for feasibility checking. The goals of the tests were to find: (1) whether the sensors and the data fusion module consume a significant amount of battery power and (2) whether the accuracy of sensor data is influenced by operations of the UAV. The following four specific environmental settings were selected for the field tests. These settings were selected as they presumably had strong air pollution sources. The tests were performed on non-rainy days with wind speeds below 5 m/s. We set up the prototype UAV system with a 16,200 mAh battery to support a maximum flight time of around 30 min.
Test 1: Air pollution gradient in proximity to a busy highway. This highway had an Annual Average Daily Traffic (AADT) count of 55,000 (TN Department of Transportation). The UAV departed at 100 m away from the highway and flew an 800 m path perpendicular to the highway.
Test 2: Air pollution gradient in proximity to a busy highway intersection. This site was near an intersection of two busy highways (AADT = 157,000 and 137,000). The UAV departed from 10 m away from one highway and flew a 500 m path perpendicular to the highway.
Test 3: Air pollution gradient in proximity to a truck stop. This site was the largest local truck stop in this region and was near an interstate highway (AADT = 36,000). The UAV departed at 200 m away from the board of the stop and flew a 1000 m path.
Test 4: Vertical air pollution gradient over a restaurant chimney. The UAV flew upward from the ground and hovered for 10 s at 10, 15, 20, and 25 m.