1. Introduction
Autonomous underwater vehicles (AUVs) play a significant role in marine science surveys. One important application is using AUVs to find underwater hydrothermal vents. Hydrothermal vents, i.e., ocean volcanoes, are natural plumbing systems that transport heat and minerals from the interior of the Earth to the ocean [
1]. Studying hydrothermal vents can help scientists investigate the origin and evolution of life on Earth [
2]. Tracing the emitted hydrothermal plumes to find hydrothermal vents is the most effective method since the emitted chemical materials are distinct from the surrounding seawater and can disperse over a long distance driven by ocean currents [
3]. Therefore, it is possible to deploy an AUV equipped with chemical sensors to detect emitted chemical plumes and trace them back to the source. Several successful AUV-based hydrothermal vent surveys were conducted in the Pacific [
4] and Atlantic Oceans [
5], which verified the feasibility of using AUVs in finding hydrothermal vents in real-world environments. However, existing AUV-based hydrothermal vent localization methods relied on a simple and fixed search trajectory, e.g., the lawn mower trajectory. Designing an effective, efficient, and intelligent hydrothermal vent search strategy requires further investigation.
The key to successfully finding hydrothermal vents is the design of an effective chemical plume tracing (CPT) algorithm [
6]. CPT algorithms guide the search agent, i.e., an AUV, to detect chemical plumes as cues to find the source. A similar application is image-based navigation [
7], which directs the search agent using the information extracted from captured images. In CPT algorithms, estimating emitted chemical plumes is the most challenging task since the plume distribution varies in different flow environments [
8]. For instance, chemical plumes form a spatially coherent trajectory in laminar flow environments thanks to the stable flow advection, whereas in turbulent flow environments, the plume trajectory is an intermittent and patchy path since the turbulent flows stretch and twist chemical plumes in the environment.
Various CPT algorithms were developed for tracing chemical plumes and finding chemical sources. These CPT algorithms can be categorized into two groups, including bio-inspired and engineering-based methods. As suggested as its name, bio-inspired methods command a search agent to find the chemical source by mimicking animal olfactory behaviors. A typical example is the mate-seeking behaviors of male moths, which could locate a female moth by detecting emitted pheromone over a long distance. On the other hand, engineering-based methods (also called probabilistic methods) calculate the probability of a region containing the chemical source. These methods rely on mathematical plume propagation models to estimate the chemical source locations.
In recent years, thanks to the development of computational technologies, we have witnessed a surge in deep learning/machine learning technologies and applications. Among different deep learning algorithms, reinforcement learning (RL) [
9] is suitable for implementing on robotic applications. The core of RL algorithms is to model the interaction between the agent and the environment. The agent can choose actions (either continuous or discrete actions) in the environment. In return, the agent will receive rewards and be transmitted to a new state in the environment. The goal of the agent is to obtain a maximal cumulative reward. Available RL algorithms can be categorized into two groups: model-based and model-free RL algorithms [
10]. The difference between these two groups is whether the agent has access to a model of the environment. Having a model, e.g., model-based RL, allows the agent to plan and calculate future rewards. This ability enables the agent to predict what would happen when choosing an action. On the other hand, model-free RL (or deep RL) does not have access to the environment model. Instead, these RL algorithms focus on estimating the value functions directly from interactions with the environment. In practice, model-free RL has a broader application spectrum since the environment model is usually unavailable in many applications. Model-free RL algorithms have been implemented in many applications that require intelligent decision-making, such as playing Atari games [
11] and playing the game of Go [
12].
Considering the difficulty of modeling an unknown underwater environment, we leverage model-free RL algorithms (i.e., deep RL) to solve the problem of locating hydrothermal vents. The goal is to design an intelligent agent that can effectively fuse two traditional CPT algorithms from two categories, i.e., bio-inspired and engineering-based algorithms, to improve search efficiency. The core idea of our proposed method is to get a good search agent with a short training time and limited computational resources. Thus, instead of training a search agent from scratch, we pre-process sensor data using traditional CPT algorithms and let the RL models to choose a good search strategy during the search process. Compared to end-to-end training, this operation helps us reduce the training time and the querying time of neural networks [
13,
14]. The motivations for combining two traditional CPT methods are twofold. First, RL algorithms are notoriously in sample inefficiency [
15]. Training a functional end-to-end deep neural network (DNN), i.e., a DNN that takes sensor measurements as inputs and calculates robot commands directly, using RL algorithms is time-consuming and requires intensive computational resources. Taking Alpha Go Zero [
16] as an example, it takes 40 days on 4 Tensor Processing Units (TPUs) to train a superhuman level DNN to play the game of GO. Therefore, to accelerate the training process, we train a DNN to dynamically choose (or combine) provided CPT algorithms instead of training an end-to-end DNN that learns an effective navigation algorithm from scratch. Secondly, bio-inspired and engineering-based methods have distinct search performances in different flow environments. In laminar flow environments, a bio-inspired method is more efficient since it can command the robot to maintain inside plume trajectories, enabling the robot to quickly approach the odor source location. In turbulent flow environments, an engineering-based method is more effective since it can estimate possible odor source locations based on previous detection history. In contrast, a bio-inspired method must command the robot to perform a time-consuming cross-wind behavior to re-detect plumes, which has a very low success rate in turbulent flow environments.
Specifically, the moth-inspired method [
17] (i.e., a typical bio-inspired CPT method) and the Bayesian-inference method [
18] (i.e., an engineering-based CPT method) are selected in this work. Both methods were proven valid in real-world CPT experiments on an AUV. As for deep RL algorithms, we choose the double deep Q-network (DDQN) [
19] and deep deterministic policy gradient (DDPG) [
20] algorithms to train a deep neural network (DNN), respectively. Inputs of the DNN are AUV’s sensor measurements, and the output is a fusion coefficient that combines heading commands calculated from two traditional CPT methods. Depending on the implemented deep RL algorithm, the fusion coefficient could be a binary switch (for DDQN) or a variable between 0 to 1 (for DDPG). The training was conducted in a simulated plume tracing environment. After the training, we evaluated the search performance of two deep RL algorithms in repeated tests and compared them with traditional CPT methods.
The main contribution of this work can be listed as follows:
Fuse two traditional CPT algorithms using deep RL methods to improve the search efficiency;
Present two different fusion algorithms, including discrete and continuous fusion coefficients;
Verify the effectiveness of the proposed methods in a realistic simulation program in repeated tests and compare the search results with traditional CPT algorithms without the fusion.
In summary, the remaining paper is organized as below.
Section 2 reviews the recent related works.
Section 3 demonstrates the flow diagram of the proposed algorithms, two traditional CPT algorithms, and the basic knowledge in RL algorithms.
Section 4 presents the proposed deep RL-based CPT algorithm.
Section 5 presents the simulation program and statistic results in repeated tests.
2. Related Works
In the early phase of the CPT studying, the intuitive chemotaxis CPT algorithm [
21], i.e., the gradient following algorithm, was developed and implemented on robots to find chemical sources in a laminar flow environment. In chemotaxis CPT algorithms, the search agent was equipped with a pair of chemical sensors on two sides of the agent. The agent was commanded to move to the side with higher detected chemical concentration. This simple navigation algorithm performs well in laminar flow environments, as verified by these applications [
22,
23,
24,
25]. However, the plume trajectory becomes intermittent in turbulent flow environments, resulting in a discontinuous plume concentration distribution. Therefore, the search agent was always led in the wrong direction or trapped in a local maximal point with the chemotaxis CPT algorithms in turbulent flow environments.
A variant algorithm of chemotaxis is the lobster-inspired algorithm, which tries to solve the problem of tracing chemical plumes in turbulent flow environments. The lobster’s foraging behaviors inspired this kind of CPT algorithm: a lobster turns toward the side of higher odor concentration or goes straight forward if two antennules detect nearly the same concentration, and if neither of the antennules detects odor concentrations, the lobster moves backward. Compared to the original chemotaxis CPT algorithms, the lobster-inspired algorithms utilize both temporal and spatial information, hel** improve the success rate in finding chemical sources in turbulent flow environments. According to [
26], adding the second strategy, i.e., the search agent moves backward when neither chemical sensor detects chemical plume concentrations, improves the success rate by 33%. In addition, recent simulation studies [
27,
28] showed that the lobster-inspired algorithm achieves a higher success rate than the chemotaxis algorithm alone.
Another bio-inspired CPT algorithm is the moth-inspired algorithm. As suggested by its name, the moth-inspired method was derived based on the mate-seeking behaviors of moths. In nature, a male moth can locate a female moth over a long distance (several kilometers) by tracing the emitted pheromone plumes [
29]. This search strategy can be summarized as two behaviors: (1) the upwind search when pheromone plumes were detected and (2) a local search after losing the plume contact [
30]. Specifically, the male moth will fly upwind when it detects the emitted pheromone plumes and fly crosswind when it loses pheromone contact. The upwind search is also called the ‘surge’ behavior, and the crosswind search is called the ‘casting’ behavior. A male moth can find a female moth by iterating these two behaviors. There are many applications of moth-inspired methods on AUVs. For instance, Li et al. [
31] and Pang et al. [
32] applied the moth-inspired method on an AUV to find an underwater chemical source. In their methods, the traditional surge behavior was split into track-in and track-out behaviors, which helped the AUV maintain inside chemical plumes. Shigaki et al. [
33] improved the traditional moth-inspired method by dynamically changing the duration of surge behavior. Their method calculated the surge time based on the moth’s muscle activities under the stimulation of chemical plumes. They also devised a fuzzy inference system to adaptively transit different search behaviors based on current search readings [
34].
By contrast to bio-inspired methods, we can also use mathematical models of chemical plumes to estimate the possibility of plume distribution in the search area and use this probability distribution to direct the source search. Using mathematical models to direct the chemical source search is referred to as engineering-based algorithms (or probabilistic methods). The key in this kind of CPT algorithm is calculating a source probability map, which presents the probability of each region containing the chemical source in the search area. For instance, the Bayesian-inference method [
18] was devised to estimate possible chemical source locations. The core of this method was to model plume movements as a Gaussian random process and inversely calculate the probability of a region containing the chemical source via a series of plume detection and non-detection events. Besides, hidden Markov model [
35], particle filter [
36], occupancy grid [
37], and partially observable Markov decision process [
38] can also be employed to design the source probability map. Once the source probability map was obtained, the search agent can move to the region with the highest probability of containing the chemical source by directing with the path planners. Possible path planning algorithms include artificial potential field [
39] and A-star [
40] path planning algorithms. Vergassola et al. [
41] proposed a infotaxis algorithm, which employed the information entropy to direct the robot search for the chemical source. The agent will select the future movement that greatly reduces the information uncertainty of chemical source.
Multi-agent search is also popular in the recent CPT development. A heavily quoted method was particle swarm optimization (PSO) [
42]. The core idea is to optimize the problem via iteratively improving candidate solutions with a fitness function. To apply PSO to CPT problems, [
43,
44] modeled the measured chemical concentration as the fitness function, and [
45,
46] modeled the source probability map, generated from engineering-based methods, as the fitness function. The best candidate can be treated as the chemical source estimate, and this best candidate will be evaluated based on the fitness function. The search agents’ positions will be updated to approach the best candidate.
Thanks to the recent development of high performance computing technologies, we have witnessed a shift of using deep learning and machine learning methods to design effective CPT algorithms. In [
47], the plume tracing process is modeled as a model-based RL problem, where rewards are defined based on a combination of plume and odor source estimations. To dynamically combine plume and odor source estimations, a fuzzy inference system is designed to estimate the current search situation and balance the exploration and exploitation. In [
48], two types of deep neural networks, including a feedforward and convolutional neural networks, are trained via the supervised learning method. Training data was obtained by implementing traditional CPT methods in a simulation program. Hu et al. [
13] presents a deep RL-based CPT algorithm for using on an AUV for locating hydrothermal vents. In this work, a variant of deep deterministic policy gradient algorithm is adopted to train an end-to-end recurrent neural network (RNN), which takes AUV observations as inputs and calculates AUV heading commands. Chen et al. [
49] presents a deep Q-network based CPT algorithm that takes a sensor measurement heating map as an input and calculates robot commands. To the best of authors’ knowledge, there is no available applications that use deep RL to combine multiple CPT algorithms to achieve a higher search efficiency.
5. Simulation and Results
In this section, we evaluate the effectiveness of the proposed CPT algorithms and compare the search results with traditional moth-inspired [
17] and Bayesian-based [
18] methods (without the fusion) in a simulation program.
5.1. Simulation Setup
5.1.1. Simulated Environment
The simulation program used in this work was built based on [
8]. This simulation program can present graphical animation to show how chemical plumes develop and how the agent searches the chemical source in the search environment. The simulation includes a time-varying flow field, a coherent chemical plume trajectory, and a full six degree of freedom autonomous vehicle dynamics. This simulation program is also utilized by [
55,
56,
57,
58,
59] to study CPT algorithms.
Figure 8 shows the search area in the simulation. The size of the search area is
m
. A coordinate (
) is constructed to represent positions. Under the coordinate, the hydrothermal vent is located at
m and releases 10 filament packages (i.e., plumes) per second. Grey dots in the center represent released plumes and form a curvy plume trajectory. Arrows in the background represent flow vectors, where an arrow points to the flow direction and the length of an arrow indicates the strength of flow velocity. In this simulator, flow vectors are calculated from time-varying boundary conditions that are generated by a mean flow (
) and a Gaussian white noise (zero mean and
variance). By changing values of
and
, different amplitudes of airflow fields can be obtained.
Figure 9 shows examples of two different flow environments: a laminar airflow environment was created with
m/s and
in
Figure 9a, and in
Figure 9b, a turbulent airflow environment was generated with
m/s and
.
5.1.2. Vehicle Assumptions
In the simulation program, the vehicle dynamic is modeled based on a real-world AUV, i.e., the REMUS 100 AUV [
60]. Comparing to the large scale of the search area, the size of the AUV is negligible. Therefore, the AUV is approximated as a single point in the simulation program. It is assumed that the AUV is equipped with a chemical sensor, a flow sensor, and a positioning sensor, which measure chemical plume concentrations at the AUV position, water flow speeds and directions in the inertial frame, and AUV positions in the inertial frame, respectively. To mimic the real-world applications, all sensors’ measurements are corrupted with Gaussian white noises. The noise parameters are listed in
Table 1. The proposed CPT algorithms are implemented on an onboard computer to process sensor readings and calculate the heading commands, which is limited in a range of
. The AUV’s velocity set as a constant to simplify the control problem, i.e., 1 m/s.
5.2. Training Results
The proposed DDQN- and DDPG-based CPT algorithms were trained in the aforementioned simulation program. Specifically, each algorithm was trained 4000 episodes. For each training episode, the AUV initial position was randomly sampled at the downflow area of the hydrothermal vent (i.e., m and m), and the flow condition in the search environment varied. The training time for a single algorithm was around 4 h on a workstation computer with an Intel Core i9 CPU and Nvidia RTX 3090 GPU.
Figure 10 presents the averaged reward plots for the proposed DDQN- and DDPG-based CPT algorithms. We can see that both plots maintain at a high value after around 200 episodes, indicating the agent achieved a high success rate of finding hydrothermal vents. Besides, the averaged reward obtained by the agent trained by DDQN is higher than the DDPG counterpart. This is because the proposed DDQN-based CPT algorithm switches between moth-inspired and Bayesian-inference methods during the search, which is more instructive than the fusion of heading commands in the DDPG-based CPT algorithm. In the early training episodes, the fusion coefficient calculated by the DDPG’s actor network deteriorates the search efficiency since two traditional CPT methods may propose two opposite heading commands, and the fusion of two commands leads the AUV to an erroneous direction.
5.3. Simulation Results in Laminar Flow Environments
We first implement the proposed DDQN- and DDPG-based CPT algorithms in laminar flow environments where m/s and . We first present a sample search, performed by the proposed deep RL-based CPT algorithms. In the sample run, the AUV initial position is at m, and the source location is at m.
5.3.1. Sample Run of the Proposed DDQN-Based Algorithm
Figure 11 presents the snapshots of search trajectories generated by the DDQN-based CPT algorithm. As we can see in
Figure 11a, the AUV employed the ‘zigzag’ search trajectory to search plumes for the first time. Details of the ‘zigzag’ behavior can be found in [
52], which can be summarized as follows: the AUV will head in a crosswind direction and bounce inward the search area when it arrives at the boundaries of the search area. At
s, the AUV contacted plumes for the first time and switched to the proposed DDQN-based CPT algorithm. At this time, the DNN selected the Bayesian-inference method as the search algorithm. Thus, the AUV moves to the red region in the search area as presented in
Figure 11b, which is the region with the highest probability of containing the hydrothermal vent. From
s to
s, the AUV was directed by the Bayesian-inference method to move upflow since the DNN’s output is 1. After
s, the DNN’s output becomes
, commanding the AUV to follow the moth-inspired method to quickly approach the source location. As indicated in
Figure 11d, the AUV correctly find the hydrothermal vent’s location at
s.
5.3.2. Sample Run of the Proposed DDPG-Based Algorithm
Figure 12 presents the snapshots of search trajectories generated by the DDPG-based CPT algorithm. Similar to the DDQN-based CPT algorithm, the AUV successfully finds the hydrothermal vent’s location at the end of the search. Comparing to the DDQN counterpart, the DDPG commands the AUV to use moth-inspired CPT algorithm in the most of search time (i.e., the fusion coefficient is larger than 0.5). Specifically, the AUV first employed the ‘zigzag’ search trajectory to find the existence of plumes in the environment. At
s, the AUV detected plumes for the first time and switched to the DDPG-based CPT algorithm. As indicated in
Figure 12c, the AUV stayed inside plumes and moved upflow to approach the source location. At
s, the AUV correctly found the source location.
5.3.3. Repeated Tests in Laminar Flows
We also implemented the proposed deep RL-based CPT algorithms in repeated tests and compared the statistic results with traditional CPT algorithms. Four CPT algorithms, including DDQN, DDPG, moth-inspired, and Bayesian-inference methods were implemented in the simulation program, and each method was repeatedly performed 100 times. In repeated tests, the AUV initial position
was selected from four possible candidates, including
m,
m,
m. and
m. The AUV performed 25 trials at each initial position with four CPT algorithms, i.e., the proposed DDQN, DDPG, the traditional moth-inspired, and Bayesian-inference methods. The search time limit for a trial is 400 s. If the AUV cannot find the hydrothermal vent within the time limit, this trial will be considered as an unsuccessful trial in locating the hydrothermal vent.
Table 2 presents the results of repeated tests.
From
Table 2, we can see that the proposed DDQN-based CPT algorithm outperforms traditional moth-inspired and Bayesian-inference methods, where the success rate of the DDQN is 100 % versus 99% for the traditional moth-inspired and 90% for the Bayesian-inference method. The averaged search time for the DDQN is also shorter than two traditional methods. The proposed DDPG-based CPT algorithm achieves a better search performance than the Bayesian-inference method, where the success rate is 98% versus 90% for the Bayesian-inference method and the averaged search time is 3 s shorther than the Bayesian-inference counterpart. As for two traditional methods, we can see that the moth-inspired method achieves a shorter averaged search time than the Bayesian-inference method thanks to the effective ‘track-in’ behavior that can quickly lead the AUV to move upflow and approach the hydrothermal vent. The proposed DDQN-based CPT algorithm outperforms the moth-inspired method, indicating the effectiveness of the proposed DDQN-based CPT algorithm and the idea that combining bio-inspired and engineering-based methods benefits in improving the search performance.
5.4. Simulation Results in Turbulent Flow Environments
In this section, the proposed deep RL-based CPT algorithms will be implemented in turbulent flow environments, where m/s and . Similar to the previous group of tests, we first present sample runs of the proposed CPT algorithms in turbulent flow environments. The AUV initial position is at m, and the source location is at m.
5.4.1. Sample Run of the Proposed DDQN-Based Algorithm
Figure 13 presents the snapshots of search trajectory generated by the DDQN-based CPT algorithm. Specifically, the AUV adapted the ‘zigzag’ search trajectory to find chemical plumes in the search environment and detected chemical plumes for the first time at
s as indicated in
Figure 13a. At
s, the AUV adapted the Bayesian-inference method as commanded by the DDQN-based CPT algorithm and moved to the estimated source location (i.e., the red region in
Figure 13b). At
s, the AUV did not detect chemical plumes at the estimated source location and updated the source estimate as presented in
Figure 13c. At
s, i.e.,
Figure 13d, the AUV switched to the moth-inspired method and successfully detected the chemical plumes. At
s, the AUV switched back into the Bayesian-inference method and correctly found the hydrothermal vent’s location, as presented in
Figure 13e.
5.4.2. Sample Run of the Proposed DDPG-Based Algorithm
Figure 14 shows the snapshots of search trajectory produced by the DDPG-based CPT algorithm. From these diagrams, we can see that the plume trajectory (i.e., black particles) is very curvy due to the turbulent flows. Thus, it will be very inefficient if the AUV chooses the moth-inspired method since the AUV will spend a lot of time on the ‘casting’ behavior to re-detect plumes.
In this test, we observed that the DDPG’s output, i.e., the fusion coefficient, is 0 in most of the search time, indicating that the DDPG selected the Bayesian-inference method over the moth-inspired method, considering that the Bayesian-inference method is more effective than moth-inspired method in finding hydrothermal vents in turbulent flow environments. This observation indicates that the DDPG algorithm learns how to choose correct search strategy in different search environments. Specifically, the AUV detected the first plume at
s after the ‘zigzag’ search strategy as presented in
Figure 14a. From
s to
s, the AUV was directed by the Bayesian-inference method and detected chemical plumes several times in the nearby of the plume trajectory as indicated by
Figure 14b,c. At
s, the AUV was close to the source location thanks to the guidance of accurate source estimate as presented in
Figure 14d. In
Figure 14e, the AUV correctly found the source location at
s.
5.4.3. Repeated Tests in Turbulent Flows
To verify the effectiveness and robustness of the proposed deep RL-based algorithms in turbulent flow environments, we implemented the proposed algorithms in repeated tests. Similar to the tests in laminar flow environments, the AUV started at four different initial positions, i.e.,
m,
m,
m, and
m. Besides the proposed deep RL-based algorithms, the traditional moth-inspired and Bayesian-inference methods were also implemented in this group of tests.
Table 3 lists statistic results of the proposed deep RL-based CPT algorithms and traditional methods in repeated tests. As we can see, the DDQN-based CPT algorithm achieves the best performance in this group of tests, where the success rate is 94% in 100 tests and the averaged search time and standard deviation are 96.3 s and 68.5, respectively. The DDPG-based algorithm also outperforms traditional methods in turbulent flow environments, where the success rate is
, averaged search time is
s, and standard deviation is 115.3. Statistic results in repeated tests show the effectiveness of the proposed deep RL-based algorithms in turbulent flow environments.
5.5. Discussion
We compared our proposed methods with an end-to-end RL algorithm proposed in [
13]. According to the reported search performance (i.e., Table 1 in [
13]), our proposed method achieved a comparable search performance in terms of the success rate. The highest success rate in [
13] is 98.81% (the number of repeated tests is unspecified in [
13]), and our double deep Q-network method achieved a 100% success rate in 100 repeated tests (see
Table 2). It is also worth mentioning that our neural network structure is much simpler than the one proposed in [
13], which needs less calculation time to process the input data.
We also evaluated the search performance of proposed methods in different source locations.
Figure 15 shows snapshots of four trials with different source locations, including
m,
m,
m, and
m. We can see that the AUV successfully reached the hydrothermal vent location at the end of each trial. Simulation results reflect the effectiveness of the proposed CPT algorithms. In the future, we plan to implement the proposed CPT algorithms in real-world environments and study on more complicated search scenarios, such as searching with multiple AUVs and multiple odor sources.
6. Conclusions
In this paper, we present two deep RL-based CPT algorithms. Two deep RL algorithms, including DDQN and DDPG, are employed to design CPT algorithms for using on AUVs to locate underwater hydrothermal vents. Considering the low sample efficiency of deep RL algorithms, we employed deep RL algorithms to train DNNs that calculates a fusion coefficient to combine two traditional CPT algorithms, i.e., moth-inspired and Bayesian-inference methods. Specifically, the DDQN algorithm selects one search strategy from two traditional methods during the search process, while the DDPG algorithm calculates a fusion variable that combines two traditional methods in a superposition format. Based on simulation tests, we found that both deep RL-based algorithms are effective in finding hydrothermal vents in both laminar and turbulent flow environments. Besides, comparing to traditional CPT algorithms, i.e., without the fusion, the search performance is improved in terms of the averaged search time and success rate. In laminar flow environments, both DDQN- and DDPG-based CPT algorithms achieve a high success rate (>90%) in 100 repeated trials. In turbulent flow environments, our proposed DDQN achieved the best performance, which improves the search success rate by 67% compared to the moth-inspired method and 34% compared to the Bayesian-inference method. Simulation results indicate the effectiveness of the proposed CPT methods in both laminar and turbulent flow environments.