Open Access
This article is

- freely available
- re-usable

*Sensors*
**2016**,
*16*(7),
1034;
https://doi.org/10.3390/s16071034

Article

Multi-Sensor Integration to Map Odor Distribution for the Detection of Chemical Sources

Department of Electrical and Computer Engineering, Missouri University of Science and Technology, 301 West 16th Street, Rolla, MO 65409, USA

^{*}

Author to whom correspondence should be addressed.

Academic Editors:
Xue-Bo Jin,
Feng-Bao Yang,
Shuli Sun
and
Hong Wei

Received: 14 March 2016 / Accepted: 25 May 2016 / Published: 4 July 2016

## Abstract

**:**

This paper addresses the problem of mapping odor distribution derived from a chemical source using multi-sensor integration and reasoning system design. Odor localization is the problem of finding the source of an odor or other volatile chemical. Most localization methods require a mobile vehicle to follow an odor plume along its entire path, which is time consuming and may be especially difficult in a cluttered environment. To solve both of the above challenges, this paper proposes a novel algorithm that combines data from odor and anemometer sensors, and combine sensors’ data at different positions. Initially, a multi-sensor integration method, together with the path of airflow was used to map the pattern of odor particle movement. Then, more sensors are introduced at specific regions to determine the probable location of the odor source. Finally, the results of odor source location simulation and a real experiment are presented.

Keywords:

sensor integration; odor source detection; odor distribution map## 1. Introduction

#### 1.1. Detection of Odor Source

The detection of airborne chemicals presents a different type of challenge than more traditional detection efforts, such as visual-based detection [1,2] or propagating signal detection [3,4,5]. Chemicals that are airborne tend to drift in various directions due to wind, up-draft, and obstacles. As a result, isolation of the source of such particles becomes considerably difficult and dependent on topography and environment.

There has been some previous research on the detection and modeling of airborne particles, plume location and tracking [6,7,8]. However, most of such research is based on sensor information on moving robots that are guided by the detectors. In [9], the author developed the model using naive physics airflow mapping. In [10], the odor localization used a bi-modal search with the complementary sensing of olfaction and vision. In [11], the author set up a mobile sensing system for localization of an odor source using gas and anemometric sensors. These types of sensing robots are assumed to move about freely following the trail of a chemical signature, while continuously searching for the particles. Both of these assumptions may be invalid in inaccessible and hostile environments with sensors that can either function one time or need long rejuvenation time cycles. To solve these problems, we proposed a novel algorithm of mapping continuous particle paths using discrete sensors for odor source localization, an application of a radial basis function neural network for chemical source detection, and odor source localization using spline interpolation with the complementary Hermite spline function neural network.

In our approach to the problem of chemical particle detection and source location, we use a small number of chemical sensors that are sparsely scattered around an area only known by a two-dimensional map. In real-world problems, we anticipate that an aircraft would drop some of these sensors on the area of interest while taking some aerial pictures. We assume that the sensor data along with the map are transmitted to a nearby location, perhaps to a vehicle that will be traveling through the area of interest. We would like to use the maximum available information content to generate first a model of the chemical particle distribution, and then locate the source of the particles based on the model. Because we obtain the mapping of airflow by utilizing interpolation methods instead of finite element analysis, our approach saves time and computer processing. Finally, through a reasoning system, we localize the area where the chemical source is located.

#### 1.2. Odor Sensor and Anemometer Sensor

The important aspects of detecting and tracking chemical sources are odor sensors and anemometer sensors. The odor sensors are for measuring the concentration of chemical particles, and the anemometer sensors are used for the direction of the airflow carrying chemical particles.

Over the last decade, “electronic sensing” or “e-sensing” technologies have undergone important developments from a technical and commercial point of view. The expression “electronic sensing” refers to the capability of reproducing human senses using sensor arrays and pattern recognition systems. Recent research has been conducted to develop technologies, commonly referred to as electronic noses that could detect and recognize odors and flavors [12]. The stages of the recognition process are similar to human olfaction and are performed for identification, comparison, quantification and other applications, including data storage and retrieval. These devices have undergone much development and are now used to fulfill industrial needs. The most commonly available odor sensors detect the presence of airborne substances through changes in the electrical resistances of chemically sensitive carbon-doped polymer films.

An anemometer mounted on the sensor can provide relative velocity between the airflow and the anemometer. Wind speed and wind direction can be measured with a variety of tools. The most common, included with complete home weather stations, is the anemometer, which typically consists of a rotating vane to measure direction and a shaft with cups attached that spins with the wind to measure its speed. An anemometer looks like a weather vane, but instead of measuring which direction the wind is blowing with pointers, it has four cups so that it can more accurately measure wind speed. Each cup is attached to the end of a horizontal arm, each of which is mounted on a central axis, similar to the spokes on a wheel.

## 2. Particle Path Algorithms Using Interpolation and Extrapolation

Using sensors that can collect the sensor’s position, wind velocity, chemical concentration, we can identify the particle paths that describe the pollutant’s propagation in the environment. This particle path map is the first step for detecting the chemical source [13,14,15].

In this paper, we start with the interpolation of two nodes points $({x}_{0},{y}_{0})$ and $({x}_{1},{y}_{1})$, where the points are the locations of two sensors with odor particle values of ${s}_{0}$ and ${s}_{1}$, respectively. Since a direct interpolation of a path between the two points would be inconsistent with the odor propagation and the air flow, we generate two more localizations, denoted by $({x}_{0}^{+},{y}_{0}^{+})$ and $({x}_{1}^{+},{y}_{1}^{+})$ a propagation parameter “t” where $0\le t\le 1$, and consistent interpolation functions ${H}_{x}$ and ${H}_{y}$, such that
where ${x}_{0}={H}_{x}(0),$ ${x}_{1}={H}_{x}(1),$ ${y}_{0}={H}_{y}(0),$ ${y}_{1}={H}_{y}(1).$

$$(x(t),y(t))\approx ({H}_{x}(t),{H}_{y}(t))$$

In this approximation, we use Hermite polynomials. In Equation (1), we match the boundary values of the location; however we also need to match the velocities $d{x}_{0}/dt,d{x}_{1}/dt,d{y}_{0}/dt,d{y}_{1}/dt.$

From the sensor data, we can only collect the derivatives of y with respect to x, but we need the derivatives of x and y with respect to t. However, these derivatives are easy to determine from using the relationship

$$\raisebox{1ex}{$\partial y$}\!\left/ \!\raisebox{-1ex}{$\partial x$}\right.=\frac{\raisebox{1ex}{$dy$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.}{\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.}$$

Consequentially, we chose
and,

$$\begin{array}{l}\frac{\partial x}{\partial t}{|}_{t=0}=\frac{d{x}_{0}}{dt}=\delta {x}_{0}\\ \frac{\partial y}{\partial t}{|}_{t=0}=\frac{d{y}_{0}}{dt}=\delta {y}_{0}\end{array}$$

$$\begin{array}{l}\frac{\partial x}{\partial t}{|}_{t=0}=\frac{d{x}_{1}}{dt}=\delta {x}_{1}\\ \frac{\partial y}{\partial t}{|}_{t=0}=\frac{d{y}_{1}}{dt}=\delta {y}_{1}\end{array}$$

We, then, proceed to construct the two Hermite polynomials in the usual way, such that
where ${L}_{n,j}$ denotes that the jth Lagrange coefficient is the (2n + 1)st order polynomial.

$$\begin{array}{lll}{H}_{x}(t)& =& ([1-2(t-0){L}_{1,0}^{\prime}(0)]{L}_{1,0}(t{)}^{2}){x}_{0}+((t-0){L}_{1,0}(t{)}^{2})\text{\hspace{0.05em}}\delta {x}_{0}\\ & & +([1-2(t-1){L}_{1,1}^{\prime}(1)]{L}_{1,1}(t{)}^{2}){x}_{1}+\text{\hspace{0.05em}}((t-1){L}_{1,1}(t{)}^{2})\delta {x}_{1}\\ & =& ([1-2(t-0)(-1)(\frac{t-1}{0-1}{)}^{2}){x}_{0}\text{\hspace{0.05em}}+((t-0)\text{\hspace{0.05em}}(\frac{t-1}{0-1}{)}^{2})\text{\hspace{0.05em}}\delta {x}_{0}\text{\hspace{0.05em}}\\ & & +([1-2(t-1)(1)]\text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}(\frac{t-0}{1-0}{)}^{2}){x}_{1}+\text{\hspace{0.05em}}((t-1)(\frac{t-0}{1-0}{)}^{2})\delta {x}_{1}\\ & =& (1+2t)(t-1{)}^{2}{x}_{0}+t(t-1{)}^{2}\delta {x}_{0}+\text{\hspace{0.05em}\hspace{0.05em}}(3-2t){t}^{2}{x}_{1}\text{\hspace{0.05em}}+(t-1){t}^{2}\delta {x}_{1}\end{array}$$

Similarly, we have

$${H}_{y}(t)\text{\hspace{0.05em}\hspace{0.05em}}=(1+2t){(t-1)}^{2}{y}_{0}+t{(t-1)}^{2}\delta {y}_{0}+\text{\hspace{0.05em}}(3-2t){t}^{2}{y}_{1}\text{\hspace{0.05em}}+(t-1){t}^{2}\delta {y}_{1}$$

As a test case, we consider a three sensor configuration system as shown in Figure 1. In the figure, the thick black lines are the boundaries of the area of interest, the red dots are the sensor locations, and the dotted lines designate the particle path lines.

Some chemical sensors are designed to simply detect the existence of a chemical particle and trigger a positive result when the concentration amounts are above a preset threshold level. In our design, instead of the threshold, we make use of the actual concentration levels that are detected. This approach along with some other data enables us to model the flow of the particles and the location of the source. Each sensor provides the co-located sensory information of the wind velocity, the concentration of the particles, and the concentration differential preferably perpendicular to the wind direction. The concentration differential information is obtained not by an additional sensory device but by an off-centered multi-orifice detection hardware configuration. In our derivations, we assume that the differential information is perpendicular to the wind direction, but we can accommodate any non-zero known angular orientation simply by a coordinate transformation. Designating the location of the sensors by (x, y), we represent the flow of air with (δ

_{x}, δ_{y}). Similarly, we represent the sensed particle concentration with s and the concentration gradient with δ_{s}.Once we obtain the sensory information, we start with an approximation of the particle path. In order to avoid multiple solutions, we make a number of assumptions. One assumption is that air-borne particles travel the most direct route. Thus, we configure paths that go through the sensor locations, such that the paths satisfy the locations as well as the differentials. This approach leads to a parametric cubic-polynomial representation of the path in terms of a variable t. We use the cubic Hermite splines with the end point differentials weighted three times, such that
where the parametric curve starts at one sensor location at (x(0), y(0)) and ends at the other sensor location at (x(1), y(1)) as t goes from 0 to 1. Figure 2 shows the spline approximation of a particle path from one sensor to another with matching initial and final velocities, but not necessarily matching the sensed values.

$$\begin{array}{l}x(t)=(2(x(0)-x(1))+3(\delta x(0)+\delta x(1))){t}^{3}+3(x(1)-x(0))-3(\delta x(1)+2\delta x(0))){t}^{2}+3\delta x(0)t+x(0)\\ y(t)=(2(y(0)-y(1))+3(\delta y(0)+\delta y(1))){t}^{3}+3(y(1)-y(0))-3(\delta y(1)+2\delta y(0))){t}^{2}+3\delta y(0)t+y(0)\end{array}$$

## 3. The Framework of Multi-Sensor Integration

#### 3.1. The Integration of the Odor Sensor & Anemometer Sensor

Particle-laden flow refers to a class of two phase fluid flow, in which one of phase is continuously connected (referred to as the continuous or carrier phase) and the other phase is made of small, immiscible and typically dilute particles (referred to as the dispersed or particle phase). The problem of detecting an odor source is typically about particle-laden flow. The chemical particle is the dispersed phase, and the air is the carrier phase.

If the mass fraction of the dispersed phase is small, one-way coupling between the two phases is a reasonable assumption; that is, the dynamics of particle phases are affected by the carrier phase, but the reverse is not the case. In our case, the particles are very small and occur in low concentrations; hence the dynamics are governed by the carrier phase. The particle phase is typically treated in a Gaussian distribution [16] along the flow direction
where ${d}_{s}=\sqrt{{({x}_{s}-x)}^{2}+{({y}_{s}-y)}^{2}}$, $\Delta d=({x}_{s}-x)\mathrm{cos}\theta +({y}_{s}-y)\mathrm{sin}\theta $.

$$C(x,y)=\frac{q}{2\pi k{d}_{s}}\mathrm{exp}[-\frac{u}{2K}{({d}_{s}-\Delta d)}^{2}]$$

C is the concentration (ppm), q is the emitted rate (mL/s), u is the wind speed (m/s), K is turbulent diffusion coefficient (m

^{2}/s), and θ is the angle from the x-axis to the upwind direction.Even though we now have a path from one sensor to another, there are still several issues to be resolved. The first issue is related to the underlying presumption that a particle would somehow travel from one sensor to the other even though the sensors are at arbitrary locations. To correct this problem, we rely on the dissipation property of the particles. We compute the expected concentration value along the computed path and compare it with the actual sensed concentration value. Based on the error and the measured gradient concentration, we determine a new location perpendicular to the initial path where the expected and sensed concentration values match. We then compute the corrected path going through one of the sensors and the new location. When we repeat the process forwards from one sensor and backwards from another one, we end up getting two consistent paths with correct concentration values. Figure 3 shows the two paths generated by matching the expected and sensed concentration values, as well as the initial and final velocities.

The second issue is related to the choice of the parameter t. In our parametrization, we chose t to start at 0 at one of the sensors and end at 1 at another sensor. We would like to have the parameter be a good representation of actual travel time, since we also would like to obtain connected paths. To correct this problem, we compute the speed at every point along the path as a linear function of the distance from one sensor to the other one while matching the sensed speed values at the two end points. Figure 4 shows the two paths with equally timed distances.

#### 3.2. The Integration of the History Sensors & New Sensors

When more sensors are introduced to the region, we need to incorporate the new data and update the particle flow paths. We can integrate the data from the newly added sensors by processing the complete set of sensor data, or we can update the existing air flow paths in the neighborhoods of the new sensors. In this paper, we utilize a novel approach to update the particle paths described by the interpolation functions.

In the original particle path calculations, we generated some primary paths that go through each of the original sensor location and match the sensed values of the particle concentrations. When new sensors are added in between theses primary paths, we need to interpolate and determine secondary paths that go through the new sensors. Since the particle concentration values on these interpolated secondary paths don’t necessary match the observed values from the new sensors, we need to update the primary path data as well.

As a test case, we initially place 3 sensors and obtain the primary paths from the sensed values. Using the primary paths, we can get secondary paths that map the whole considered area, as shown in Figure 5. We then place another sensor inside the region of interest. Naturally, the sensed values at the new sensor doesn’t match the extrapolated values based on the perpendicular extensions from the primary paths exactly.

When the new sensor is placed at $({x}_{\ast},{y}_{\ast})$, we only need to update the relevant primary paths. The location of the new sensors in relation to the neighboring primary paths determines the paths to be changed. The region where is needed to be changed is defined by the closest primary paths and the perpendicular lines through the sensors on the primary paths. We denote the two sensors on these primary paths as $({x}_{i},{y}_{i})$ and $({x}_{j}{y}_{j})$. We model the odor propagation between two primary sensors as two connected particle paths that relate the two primary sensors and the additional sensor. We then use our method to update the parameters of the primary paths to join the piecewise particle paths.

The updated path equations are modeled by two pieces of particle paths.

The first path, denoted by ${L}_{1}$, is from $({x}_{i},{y}_{i})$ to $({x}_{\ast},{y}_{\ast})$, such that

$$\begin{array}{l}x(t)=(2({x}_{i}-{x}_{\ast})+3(\delta {x}_{i}+\delta {x}_{\ast})){t}^{3}+3({x}_{\ast}-{x}_{i})-3(\delta {x}_{\ast}+2\delta {x}_{i})){t}^{2}+3\delta {x}_{i}t+{x}_{i}\\ y(t)=(2({y}_{i}-{y}_{\ast})+3(\delta {y}_{i}+\delta {y}_{\ast})){t}^{3}+3({y}_{\ast}-{y}_{i})-3(\delta {y}_{\ast}+2\delta {y}_{i})){t}^{2}+3\delta {y}_{i}t+{y}_{i}\end{array}$$

The piecewise connected second path, denoted by ${L}_{2}$, is from $({x}_{\ast},{y}_{\ast})$ to $({x}_{j},{y}_{j})$, such that

$$\begin{array}{l}x(t)=(2({x}_{\ast}-{x}_{j})+3(\delta {x}_{\ast}+\delta {x}_{j})){t}^{3}+3({x}_{j}-{x}_{\ast})-3(\delta {x}_{j}+2\delta {x}_{\ast})){t}^{2}+3\delta {x}_{\ast}t+{x}_{\ast}\\ y(t)=(2({y}_{\ast}-{y}_{j})+3(\delta {y}_{\ast}+\delta {y}_{j})){t}^{3}+3({y}_{j}-{y}_{\ast})-3(\delta {y}_{j}+2\delta {y}_{\ast})){t}^{2}+3\delta {y}_{\ast}t+{y}_{\ast}\end{array}$$

Comparing the particle paths between the updated path and two pieces of particle paths, we define the error term as
where $\stackrel{\mathrm{\Lambda}}{L}$ indicates it’s the path without the additional sensor.

$$E(x,y)=\frac{1}{2}\sqrt{({\displaystyle {\int}_{{L}_{1}}y\cdot}\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.dt+{\displaystyle {\int}_{{L}_{2}}y\cdot}\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.dt-{\displaystyle {\int}_{\stackrel{\mathrm{\Lambda}}{L}}y\cdot}\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.dt{)}^{2}}$$

In Equation (11),
where (${\widehat{x}}_{j}$, ${\widehat{y}}_{j}$) represents the updated location for the jth sensor (${x}_{j}$, ${y}_{j}$), and the path $\stackrel{\mathrm{\Lambda}}{L}$ is from $({x}_{i},{y}_{i})$ to (${\widehat{x}}_{j}$, ${\widehat{y}}_{j}$).

$$\begin{array}{l}{\displaystyle {\int}_{\stackrel{\mathrm{\Lambda}}{L}}y\cdot}\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.dt={\displaystyle {\int}_{i}^{j}((2({y}_{i}-{\widehat{y}}_{j})+3(\delta {y}_{i}+\delta {\widehat{y}}_{j})){t}^{3}+3({\widehat{y}}_{j}-{y}_{i})-3(\delta {\widehat{y}}_{j}+2\delta {y}_{i})){t}^{2}+3\delta {y}_{i}t+{y}_{i}})\cdot \\ \text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{1em}}((2({x}_{i}-{\widehat{x}}_{j})+3(\delta {x}_{i}+\delta {\widehat{x}}_{j})){t}^{3}+3({\widehat{x}}_{j}-{x}_{i})-3(\delta {\widehat{x}}_{j}+2\delta {x}_{i})){t}^{2}+3\delta {x}_{i}t+{x}_{i}{)}^{\prime}dt\\ \text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}\end{array}$$

When we substitute Equations (9), (10) and (12) into Equation (11), we get an equation in terms of the unknown parameters ${\widehat{x}}_{j}$, ${\widehat{y}}_{j}$, $\delta {\widehat{x}}_{j}$, and $\delta {\widehat{y}}_{j}$. We assume that the velocity variables $\delta {\widehat{x}}_{j}$ and $\delta {\widehat{y}}_{j}$ are preserved, and the updated endpoint (${\widehat{x}}_{j}$, ${\widehat{y}}_{j}$) is on the perpendicular line to the primary path going through the jth sensor.

Based on Equation (11), the minimization of the error can be determined by $\underset{{\widehat{x}}_{j},\text{\hspace{0.05em}}{\widehat{y}}_{j}}{\mathrm{arg}\text{\hspace{0.05em}}\mathrm{min}}E({\widehat{x}}_{j},\text{\hspace{0.05em}}{\widehat{y}}_{j})$, the arguments of the minimum is the point at which the error term E attains its smallest value. The most ideal situation is when ${\int}_{{L}_{1}}y\cdot}\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.dt+{\displaystyle {\int}_{{L}_{2}}y\cdot}\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.dt={\displaystyle {\int}_{L}y\cdot}\raisebox{1ex}{$dx$}\!\left/ \!\raisebox{-1ex}{$dt$}\right.dt$, where the error becomes zero. The expression of $\underset{{\widehat{x}}_{j},\text{\hspace{0.05em}}{\widehat{y}}_{j}}{\mathrm{arg}\text{\hspace{0.05em}}\mathrm{min}}E({\widehat{x}}_{j},\text{\hspace{0.05em}}{\widehat{y}}_{j})$ is

$$\underset{{\widehat{x}}_{j},\text{\hspace{0.05em}}{\widehat{y}}_{j}}{\mathrm{arg}\text{\hspace{0.05em}}\mathrm{min}}E({\widehat{x}}_{j},\text{\hspace{0.05em}}{\widehat{y}}_{j})=\text{\hspace{0.05em}}\left\{({\overline{x}}_{j},\text{\hspace{0.05em}}{\overline{y}}_{j})|E({\overline{x}}_{j},\text{\hspace{0.05em}}{\overline{y}}_{j})\le E({\widehat{x}}_{j},\text{\hspace{0.05em}}{\widehat{y}}_{j})\right\}$$

We use (${\overline{x}}_{j},{\overline{y}}_{j}$) to denote the optimal parameters. Since (${\overline{x}}_{j},{\overline{y}}_{j}$) is on the perpendicular line to the primary path going through the sensor, (${\overline{x}}_{j},{\overline{y}}_{j}$) satisfies

$${\overline{y}}_{j}=\frac{\delta {y}_{j}-{y}_{j}}{\delta {x}_{j}-{x}_{j}}({\overline{x}}_{j}-{x}_{j})+{y}_{j}$$

Therefore, the updated law is such that

$$\begin{array}{l}{\overline{x}}_{j}=\underset{{x}_{j},\text{\hspace{0.05em}}{y}_{j}}{\mathrm{arg}\text{\hspace{0.05em}}\mathrm{min}}E({x}_{j},\text{\hspace{0.05em}}{y}_{j})\\ {\overline{y}}_{j}=\frac{\delta {y}_{j}-{y}_{j}}{\delta {x}_{j}-{x}_{j}}({\overline{x}}_{j}-{x}_{j})+{y}_{j}\\ \delta {\overline{x}}_{j}=\delta {x}_{j}\\ \delta {\overline{y}}_{j}=\delta {y}_{j}\end{array}$$

Using (${\overline{x}}_{j},{\overline{y}}_{j}$) to substitute (${\widehat{x}}_{j}$, $\widehat{y}{}_{j}$), we can get the updated forward particle path as

$$\begin{array}{l}x(t)=(2({x}_{i}-{\overline{x}}_{j})+3(\delta {x}_{i}+\delta {\overline{x}}_{j})){t}^{3}+(3({\overline{x}}_{j}-{x}_{i})-3(\delta {\overline{x}}_{j}+2\delta {x}_{i})){t}^{2}+3\delta {x}_{i}t+{x}_{i}\\ y(t)=(2({y}_{i}-{\overline{y}}_{j})+3(\delta {y}_{i}+\delta {\overline{y}}_{j})){t}^{3}+(3({\overline{y}}_{j}-{y}_{i})-3(\delta {\overline{y}}_{j}+2\delta {y}_{i})){t}^{2}+3\delta {y}_{i}t+{y}_{i}\end{array}$$

Similarly, we can get the backward particle paths using the same method to update the variables for the ith sensor. Figure 6 shows the updated map of the particle paths.

## 4. Compare and Validate Our Approach Using Computational Fluid Dynamics

To compare and validate our approach, we use exact analytical methods for simpler cases and use finite-element method based business software (such as COMSOL) for more complicated cases.

The analysis of airborne particle motion is identical to fluid motion analysis in physics. The fluid motion is governed by the Navier–Stokes nonlinear partial differential Equations (17) and (18), such that motion in the two dimensional space satisfies
where u and v are the components of the velocity in the x and y directions, ρ is the fluid density, and P is the pressure.The analytical solutions to the Navier-Stokes equations depend on the initial and the boundary conditions, and exact solutions exist only for simple cases.

$$\begin{array}{l}\frac{\partial u}{\partial x}+\frac{\partial v}{\partial y}=0\\ u\frac{\partial u}{\partial x}+v\frac{\partial u}{\partial y}=-\frac{1}{\rho}\frac{\partial P}{\partial x}+\nu (\frac{{\partial}^{2}u}{\partial {x}^{2}}+\frac{{\partial}^{2}u}{\partial {y}^{2}})\\ u\frac{\partial v}{\partial x}+v\frac{\partial v}{\partial y}=-\frac{1}{\rho}\frac{\partial P}{\partial y}+\nu (\frac{{\partial}^{2}v}{\partial {x}^{2}}+\frac{{\partial}^{2}v}{\partial {y}^{2}})\end{array}$$

In this paper, we assume that the particle flow dynamic is two dimensional, and is uncompressible, inviscid, and irrotational. If D is a simply connected domain in 2 demensions and the flow is irrotational, the integral ${\int}_{(a,b)}^{(x,y)}ud\xi +vd\zeta$ is independent of the path in D. If we integrate from a fixed point (a, b) to a variable point (x, y), then the integral becomes a functions of the point (x, y).

$$\mathrm{\Phi}(x,y)={\displaystyle {\int}_{(a,b)}^{(x,y)}(ud\xi +vd\zeta )}$$

We define the function $\mathrm{\Phi}(x,y)$ as velocity potential of the motion. Since the integral is independent of the path, and $udx+vdy$ is an exact differential, the differential of function $\mathrm{\Phi}(x,y)$satisfies

$$udx+vdy=\frac{\partial \mathrm{\Phi}}{\partial x}dx+\frac{\partial \mathrm{\Phi}}{\partial y}dy$$

From Equation (19), we get

$$u=\frac{\partial \mathrm{\Phi}}{\partial x},\text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}v=\frac{\partial \mathrm{\Phi}}{\partial y}$$

By substituting u and v in Equation (20) into Equation (17), we observe that $\mathrm{\Phi}(x,y)$ satisfies the Laplace’s equation

In other words, we can use the Laplace’s equation to model fluid motion.

$${\nabla}^{2}\mathrm{\Phi}=\frac{{\partial}^{2}\mathrm{\Phi}}{\partial {x}^{2}}+\frac{{\partial}^{2}\mathrm{\Phi}}{\partial {y}^{2}}=0$$

Let $\mathrm{\Psi}(x,y)$ be a conjugate function of $\mathrm{\Phi}(x,y)$. The function $\mathrm{\Psi}(x,y)$ is called the stream function of the flow. The curves where $\mathrm{\Psi}(x,y)$ is constant are called the streamlines of the fluid. We know that both $\mathrm{\Psi}(x,y)$ and $\mathrm{\Phi}(x,y)$ have continuous second derivatives as shown in [13]. Consequentially the complex function
is analytic in the region of the flow. This function is called the complex potential of the flow.

$$F(x,y)=\mathrm{\Phi}(x,y)+i\mathrm{\Psi}(x,y)$$

We can determine the velocity of the flow by differentiating Equation (22) and using the Cauchy-Riemann Equation (19); such that

$${F}_{x}(x,y)=\frac{\partial \mathrm{\Phi}}{\partial x}+i\frac{\partial \mathrm{\Psi}}{\partial x}=\frac{\partial \mathrm{\Phi}}{\partial x}-i\frac{\partial \mathrm{\Phi}}{\partial y}=u-iv$$

A general solution to Equation (23) can be complicated and unnecessary for the simple cases that we are considering. Indeed, we can assume the form of the function F from the initial flow and determine specifics by substituting the functions into the differential equations. Because of the uniqueness of the solution under initial and boundary conditions, if the function F satisfies Equation (21) and the boundary conditions, then it is the unique solution.

- Case 1.
- Fluid flow with free boundary conditions

As the first case, we choose the no boundary case with a uniform infinite width flow of particles at a certain angle α, as shown in Figure 7. By choosing $F(x,y)={k}_{1}x+i{k}_{2}y$, where ${k}_{1},{k}_{2}$ are real numbers, we describe a uniform flow in the $x-y$ plane.

If the flow is irrotational, then the equation$\nabla \times F=0$ is automatically satisfied by $F=-\nabla \varphi $, where φ is the velocity potential, hence ${F}_{y}=-\frac{\partial \psi}{\partial y}$ and ${F}_{y}=-\frac{\partial \varphi}{\partial y}$. On the other hand, if the flow is incompressible then ${F}_{x}=-\frac{\partial \psi}{\partial y}$ and ${F}_{y}=\frac{\partial \psi}{\partial x}$, where ψ is the stream function.

Consequentially, by substituting $F(x,y)={k}_{1}x+i{k}_{2}y$ into the differential equations, we can determine that the velocity potential is $\mathrm{\Phi}(x,y)={k}_{1}x-{k}_{2}y$ and the stream function is $\psi (x,y)={k}_{2}x+{k}_{1}y$, such that the streamlines and the potential lines are orthogonal. The velocity of the flow can be obtained from $V(x,y)={({F}^{\prime}(x,y))}^{*}={({k}_{1}x+i{k}_{2}y)}^{*}={k}_{1}x-i{k}_{2}y,$ where ${(\mathbf{\xb7})}^{*}$ is the complex conjugate.

The streamlines are the parallel lines described by the equation ${k}_{2}x+{k}_{1}y=\text{constant}$ and are inclined at an angle $\alpha =-\mathrm{arctan}({k}_{2}/{k}_{1})$.

For two arbitrary locations of sensors in the $x-y$ plane $({x}_{1},{y}_{1})$ and, we use our method to determine the fluid propagation path between the two points. However, to satisfy the sensed chemical concentration values, we need to modify the paths. In this case, when the two locations are on the same streamline, the streamlines become ${k}_{2}x+{k}_{1}y=\alpha \mathrm{tan}(t)$, where $\alpha $ is a constant. In this case, we get zero error between the two methods, because the two methods give the same result.

Figure 8a shows the map of particle paths obtained by our method, Figure 8b shows the error between our method and the computational fluid dynamics.

- Case 2.
- Fluid flow with infinite wall

In this case, the complex potential function is $F(x,y)=\frac{A}{2}({x}^{2}-{y}^{2})+iAxy$, as shown in Figure 9, where A is a positive real number. The velocity potential and the stream functions are given by $\mathrm{\Phi}(x,y)=\frac{A}{2}({x}^{2}-{y}^{2})$ and $\psi (x,y)=Axy$.

The streamlines, where $\psi (x,y)$ is constant, are from a family of hyperbolic functions with asymptotes along the coordinate axes. The velocity vector $V(x,y)={({F}^{\prime}(x,y))}^{*}=A({k}_{1}x-{k}_{2}y)$ indicates that in the upper half-plane, the fluid flows down along the streamlines and spreads out along the x axis, as against the wall.

Similarly, we choose two arbitrary points in the $x-y$ plane $({x}_{1},{y}_{1})$ and $({x}_{2},{y}_{2})$ as the two sensor’s locations, and use the interpolation method to get the propagation path between the two points. However, to be consistent with the chemical concentrations, we need to modify the endpoints of the path. When we choose the two points on a same streamline, the streamline can be described as a cubic function $y=a{x}^{3}+b{x}^{2}+cx+d$. The error term becomes ${\int}_{({x}_{1},{y}_{1})}^{({x}_{2},{y}_{2})}(k/x}-a{x}^{3}-b{x}^{2}-cx-d{)}^{2}dx$, where the K is a real number and (a, b, c, d) are four parameters related with the coordinates of the two points and their derivatives. In this case, substituting the (a, b, c, d), we get the error term between our method and the computational fluid dynamics is ${k}^{2}(\frac{1}{5}({x}_{2}^{5}-{x}_{1}^{5})-\frac{({x}_{1}+{x}_{2})}{2}({x}_{2}^{4}-{x}_{1}^{4})+\frac{1}{3}({x}_{1}^{2}+{x}_{2}^{2}+4{x}_{1}{x}_{2})({x}_{2}^{3}-{x}_{1}^{3})-{x}_{1}{x}_{2}({x}_{1}+{x}_{2})({x}_{2}^{2}-{x}_{1}^{2})+{x}_{1}^{2}{x}_{2}^{2}({x}_{2}-{x}_{1}).$

Figure 10 shows the error curve between the fluid dynamic method and our proposed method. Figure 10a shows the particle path map by using our method, and Figure 10b shows the error. From the figures, we can conclude that the error increases as the distance between two sensors increases.

- Case 3.
- Inviscid flow past a cylindrical obstacle

In this case, we consider a circular obstacle in the direction of the flow, as shown in Figure 11. We can use polar coordinates to express the complex potential function F(z) as

$$\begin{array}{l}F(r{e}^{i\theta})=A(r{e}^{i\theta}+\frac{1}{r{e}^{i\theta}})\\ \text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}=A(rcos\theta +irsin\theta +\frac{1}{rcos\theta +irsin\theta})\\ \text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}=A(rcos\theta +irsin\theta +\frac{r(\mathrm{cos}\theta -ir\mathrm{sin}\theta )}{{r}^{2}})\\ \text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}=A(r+\frac{1}{r})\mathrm{cos}\theta +iA(r-\frac{1}{r})\mathrm{sin}\theta \end{array}$$

The streamline is ${\psi}_{\rho}(r,\theta )=A(r-\frac{1}{r})\mathrm{sin}\theta =\mathrm{constant}$, where A is a positive real number. When the constant is zero, it consists of the paths $r>1,\text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}\theta =0\text{\hspace{0.05em}\hspace{0.05em}\hspace{0.05em}}and\text{\hspace{0.05em}\hspace{0.05em}}r>1,\text{\hspace{0.05em}\hspace{0.05em}}\theta =\pi $ along the x axis and the curve $r-\frac{1}{r}=0$, which is the unit circle $\left|z\right|=r=1$. In the other words, the unit circle can be considered a boundary curve for the particle flow. The approximation is valid for large values of r, so we can approximate the flow with a uniform horizontal flow having speed $\left|V(x,y)\right|=A$ at points that are distant from the origin.

Similarly, we chose two arbitrary points in the $x-y$ plane ($({x}_{1},{y}_{1})$ and $({x}_{2},{y}_{2})$) as the two sensor’s locations, and we use the interpolation method to get the particle propagation path between the two points. Figure 10a shows the fluid path map by using our method. And Figure 12b shows the error between the fluid dynamic method and our method.

From the error analysis, we observe that the error can be considerably large when the sensors are placed wide apart. In the other words, the more sensors we use, the better result are expected to obtain. Further analyzing the three examples, we conclude that when the Hermite polynomials can interpolate the stream function perfectly, we can get zero error as in the first example. On the other hand, when the streamline functions cannot be interpolated by using the 3rd order polynomials, we get the larger errors as in the third example.

## 5. Examples and Numerical Results

In this section, we apply our method to a real world region. We choose a section of the real map of Missouri University of Science and Technology (Missouri S&T) campus, and use an edge detection technology to generate a boundary and open area map as shown in Figure 13.

In the experiment, we first scatter ten sensors in the considered area, then using our method, we determine the primary particle paths based on the data from the early two sensors. When we incorporate the other sensors’ information, we modify the particle paths. Finally, we use the COMSOL program to simulation the chemical particle’s propagation under the same conditions.

In Figure 14, we use only two sensors within the considered area to map the particle paths. In Figure 15 and Figure 16, we include two and four more sensors in the same area, and update the parameters. Figure 17 shows that the more sensor we use, the better our approximation gets closer to the real particle paths.

## 6. Conclusions

There are many useful and humanitarian purposes in locating the source of a chemical source. Currently, the majority of work in this area uses reactive control schemes that track an odor plume along its entire length, which is slow and difficult in cluttered environments. This paper presents a high-level control scheme that uses an interpolation and extrapolation method to model the particle path. It also presents a reasoning system that uses path modeling to obtain the velocity and chemical concentrations and to predict the most probable locations of the odor source. This approach has been shown to be effective for odor localization in a known environment, without the need for a robot to travel to the source.

With further development there is great potential for this approach to lead to many valuable applications by generalization to a wider range of environmental configurations. The paper presents developments to solve the problem of obstacles and pathways in the environment In addition, this paper is the first example of using interpolation and extrapolation methods to model the particle path applied in a real environment.

The results of simulating particle paths in the real map of campus approximate the results from the fluid dynamic analysis software, COMSOL.

## Author Contributions

Levent Acar proposed the model and the algorithm; Xiang Gao and Levent Acar conceived and designed the experiments; Xiang Gao performed the mathematical proof; Xiang Gao and Levent Acar analyzed the data; Xiang Gao wrote the paper.

## Conflicts of Interest

The authors declare no conflict of interest.

## References

- Poor, H. An Introduction to Signal Detection and Estimation; Springer-Verlag: New York, NY, USA, 1985. [Google Scholar]
- Pisano, W.J.; Lawrence, D.A. Data Dependant Motion Planning for UAV Plume Localization. In Proceedings of the AIAA Guidance, Navigation and Control Conference, Hilton Head, SC, USA, 20–23 August 2007.
- Kowadlo, G.; Russell, R. Naive physics for effective odor localization. In Proceedings of the Australasian Conference on Robotics and Automation, Brisbane, Australia, 1–3 December 2003.
- Kowadlo, G.; Russell, R. Advanced airflow modelling using naive physics for odour localization. In Proceedings of the Australasian Conference on Robotics and Automation, Sydney, Australia, 5–7 December 2005.
- Kowadlo, G.; Russell, R. Using naive physics for odor localization in a cluttered indoor environment. Auton. Robots
**2006**, 20, 215–230. [Google Scholar] [CrossRef] - Kowadlo, G.; Russell, R. Improving the robustness of naive physics airflow mapping, using bayesian reasoning on a multiple hypothesis tree. In Proceedings of the IEEE International Conference on Robotics and Biomimetics, Kunming, China, 17–20 December 2006.
- Kowadlo, G.; Rawlinson, D.; Russell, R.; Jarvis, R. Bi-modal search using complementary sensing (olfaction/vision) for odour source localization. In Proceedings of the IEEE International Conference on Robotics and Automation, Orlando, FL, USA, 15–19 May 2006.
- Ishida, H. Study of autonomous mobile sensing system for localization of odor source using gas sensors and anemometric sensors. Sens. Actuators A Phys.
**1994**, 45, 153–157. [Google Scholar] [CrossRef] - Duckett, T.; Axelsson, M.; Saffiotti, A. Learning to locate an odour source with a mobile robot. In Proceedings of the IEEE International Conference on Robotics and Automation, Seoul, Korea, 21–26 May 2001.
- Li, J.; Meng, Q. Odor source localization using mobile robot in outdoor airflow environments with a particle filter algorithm. Auton. Robots
**2011**, 30, 281–292. [Google Scholar] [CrossRef] - Haves, A.T. Distributed odour source localization. IEEE Sens. J.
**2002**, 2, 260–271. [Google Scholar] - Gao, X.; Acar, L. Detection and Tracking of Odor source in Sensor Networks Using Reasoning System. J. Autom. Control Eng.
**2016**. accepted. [Google Scholar] - Gao, X.; Acar, L. A novel algorithm of mapping continuous particle paths using discrete sensors for odor source localization. In Proceedings of the 2016 World Congress on Unmanned Systems Engineering, Las Vegas, NV, USA, 28–29 July 2016.
- Gao, X.; Acar, L. An application of radial basis function neural network for chemical sources detection. In Proceedings of the 2016 World Congress on Unmanned Systems Engineering, Las Vegas, NV, USA, 28–29 July 2016.
- Gao, X.; Acar, L. Odor source localization using spline interpolation with the complementary Hermite spline function neural network. In Proceedings of the 2016 World Congress on Unmanned Systems Engineering, Las Vegas, NV, USA, 28–29 July 2016.
- Thompson, J.F.; Warsi, Z.U.; Mastin, C.W. Numerical Grid Generation: Foundations and Applications; Elsevier Science Ltd.: North-Holland, Amsterdam, 1985; Chapter 11. [Google Scholar]

**Figure 8.**The performance of interpolation and extrapolation for a uniform parallel flow. (

**a**) Particle paths obtained by our method, (

**b**) The error curve.

**Figure 10.**The performance of interpolation and extrapolation for the fluid flow around an infinite wall. (

**a**) Particle paths obtained by our method, (

**b**) The error curve.

**Figure 12.**The performance of interpolation and extrapolation for the fluid flow around a circular obstacle. (

**a**) Particle paths obtained by our method, (

**b**) The error curve.

**Figure 13.**A portion of the Missouri University of Science and Technology campus after an edge detection algorithm.

© 2016 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC-BY) license (http://creativecommons.org/licenses/by/4.0/).