*Article* **Simulation and Characterization of Wind Impacts on sUAS Flight Performance for Crash Scene Reconstruction**

**Tianxing Chu 1,2, Michael J. Starek 1,2,\*, Jacob Berryhill 1, Cesar Quiroga <sup>3</sup> and Mohammad Pashaei 1,2**


**Abstract:** Small unmanned aircraft systems (sUASs) have emerged as promising platforms for the purpose of crash scene reconstruction through structure-from-motion (SfM) photogrammetry. However, auto crashes tend to occur under adverse weather conditions that usually pose increased risks of sUAS operation in the sky. Wind is a typical environmental factor that can cause adverse weather, and sUAS responses to various wind conditions have been understudied in the past. To bridge this gap, commercial and open source sUAS flight simulation software is employed in this study to analyze the impacts of wind speed, direction, and turbulence on the ability of sUAS to track the pre-planned path and endurance of the flight mission. This simulation uses typical flight capabilities of quadcopter sUAS platforms that have been increasingly used for traffic incident management. Incremental increases in wind speed, direction, and turbulence are conducted. Average 3D error, standard deviation, battery use, and flight time are used as statistical metrics to characterize the wind impacts on flight stability and endurance. Both statistical and visual analytics are performed. Simulation results suggest operating the simulated quadcopter type when wind speed is less than 11 m/s under light to moderate turbulence levels for optimal flight performance in crash scene reconstruction missions, measured in terms of positional accuracy, required flight time, and battery use. Major lessons learned for real-world quadcopter sUAS flight design in windy conditions for crash scene mapping are also documented.

**Keywords:** small unmanned aircraft systems; photogrammetry; structure-from-motion; wind impact; turbulence; crash scene reconstruction; traffic incident management

#### **1. Introduction**

A motor vehicle crash can cause considerable economic loss, serious bodily injuries and loss of human life. Crash scene investigation and reconstruction are considered crucial being part of the major concerns in traffic incident management (TIM) [1]. Traditional coordinate and triangulation methods have long been adopted by investigators at a crash scene. They use mechanical measurement tools such as tape measures and roller wheels to acquire baseline measurements and delineate crash scene diagrams [2]. While relatively low cost, these methods have limited efficiency to document measurements and pose safety risks to investigators due to possible exposure to traffic. In order to automate accurate documentation of distance and angle measurements, total stations have started to play a key role at crash scenes since the early 1990s [3]. The ability to collect digital data off the roadway eases investigators' exposure risk to traffic and reduces entire surveying time. Close-range photogrammetry, which emerged around the same time in accident investigation, is able to recover accurate two-dimensional (2D) and three-dimensional (3D) measurements and diagrams by taking overlapping photographs from different viewpoints around crash scenes [4]. Over the past two decades, the potential of terrestrial

**Citation:** Chu, T.; Starek, M.J.; Berryhill, J.; Quiroga, C.; Pashaei, M. Simulation and Characterization of Wind Impacts on sUAS Flight Performance for Crash Scene Reconstruction. *Drones* **2021**, *5*, 67. https://doi.org/10.3390/ drones5030067

Academic Editor: Diego González-Aguilera

Received: 14 June 2021 Accepted: 17 July 2021 Published: 23 July 2021

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

**Copyright:** © 2021 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 (https:// creativecommons.org/licenses/by/ 4.0/).

laser scanning (TLS) has been validated in various crash scene scenarios [5–7]. Enormous scene details can be scanned and captured in a relatively short period of time. However, the costs of TLS equipment are usually high, and multiple scan locations may be needed to minimize scan occlusions in scenes where terrain and crash are complex.

With rapid advances in microelectronics, radio communication, miniaturized imaging lenses and positioning modules, small unmanned aircraft systems (sUASs) have pioneered a series of TIM applications, such as traffic monitoring, flow analysis, crash detection and response, and situational awareness [8–10]. Advantages of using sUAS platforms for TIM include: (1) allowing for customization of onboard sensing systems and observing parameters, (2) offering adequate flexibility in data collection above the scene to be investigated, (3) reducing the exposure of investigators to the dangers of traffic in the roadway, and (4) providing detailed 2D and/or 3D measurement documentation and imagery for post-crash scene investigation conducted in the office. Nowadays, the potential of multirotor sUASs being low-cost and robust crash scene recovery platforms has been manifested via structure-from-motion (SfM) photogrammetry. SfM converts overlapped image sequences taken by a consumer-grade digital camera into 2D orthorectified image products and reconstructed 3D scenes (dense 3D point cloud data and textured 3D meshes). SfM photogrammetry with an octocopter platform was reported to save up to 90% of data collection time compared with traditional coordinate method [11]. Measurements obtained from the point cloud were in accordance with sketches drawn by the investigators, and centimeter-level differences were found in the entire scene. Above the accident scene, orthophotos can be generated using a sequence of individual photos converted from the 4 K-resolution video taken by the quadcopter camera [12]. The results demonstrated a horizontal accuracy of 5–8 cm in scene documentation compared with a real time kinematic (RTK) global navigation satellite system (GNSS) survey.

While growing attention has been paid to SfM photogrammetric surveys with sUAS platforms in crash scene investigation and recovery, it is important to realize that nearly 21% of the crashes are weather-related every year in the United States [13] and performing flight missions under hazardous weather conditions remains a difficult task due to safety and data quality concerns. For example, wind is a frequent natural phenomenon, but high winds tend to increase the risks of freight truck crashes on the roadway [14,15]. In such a scenario, before an sUAS is dispatched to conduct the crash scene reconstruction mission, it is essential to ensure that the wind speed does not exceed the aircraft's operation limit specified by the vendor. Some sUASs are less susceptible to the wind disturbance, but their battery life and flight time is reduced as wind speeds increase [16,17]. High wind speed can also negatively affect the SfM photogrammetry and derived mapping products due to disturbed waypoint targeting and image orientation. Wind direction and turbulence are also important variables to consider as they affect the flight path geometry, energy consumption and overall flight safety [18–21].

Some studies have documented preliminary findings on the variations of sUAS flight stability due to wind forces. Wang conducted an in-house simulation to assess the wind impacts on sUAS flight stability at low altitudes [22]. The differences in flight speed and attitude were summarized when various types of wind were examined. Siqueira mathematically created a wind model and evaluated its effects on sUAS trajectory tracking by looking into 2D/3D error and control activities [23]. The results suggested rapid trajectory tracking degradation as a response to the increased magnitude of wind dynamics.

Initial research efforts have been made in recent years to use open-source mission planning tools such as Mission Planner to conduct sUAS simulation runs in windy conditions [24]. However, comprehensively characterizing sUAS responses to various wind conditions has been understudied but is considered crucial before planning flight operations for crash scene reconstruction. While there are multiple types of suboptimal weather conditions that raise safety and data quality concerns for flying sUASs, the main aim of this study is to set wind as an exclusive factor to parameterize its impacts on flight performance of a representative quadcopter sUAS platform type via realistic flight simulations using a

standard gridded flight design for SfM image acquisition. Simulation results are applied to document and generalize lessons learned for platform-independent quadcopter sUAS flight design under windy conditions for crash scene mapping. A series of quadcopter simulations with incremental increases in wind speed, direction, and turbulence are performed to model suboptimal weather conditions. Positional error, battery use, and flight time are used as statistical metrics to characterize the wind impacts on flight performance.

#### **2. Materials and Methods**

#### *2.1. Test Environment Setup*

As the most popular open-source autopilot software suite adopted by a variety of autonomous vehicles, ArduPilot was employed as the underlying simulation framework in this study [25–27]. ArduPilot enables modeling a wide range of unmanned vehicle characteristics with regard to mission planning, remote control, communication and navigation. To realistically characterize wind impacts on sUAS behavior in a simulated environment, the software-in-the-loop (SITL) simulator was run on a host computer without risking an actual aircraft platform. ArduPilot on SITL can compile source code based on a sophisticated sUAS flight dynamics model and perform code execution in software environment for development and testing purposes. In such a simulation framework, ArduPilot supports the MAVLink protocol for real-time telemetry between the simulated sUAS and the ground control station (GCS) such as Mission Planner. Mission Planner as an open-source GCS includes major flight planning functions similar to that in commercial software packages such as Pix4Dcapture and Map Pilot Pro. In this work, Mission Planner along with ArduPilot on SITL was used for flight simulation, which enabled: (1) editing various parameters regarding changes in environment type, sensor failure and vehicle platform, (2) simulating an sUAS as a virtual flight control unit (FCU) to conduct pre-defined simulation runs on a computer without any special hardware, and (3) storing and downloading the log files of a mission for post-flight analysis.

In the United States, quadcopter sUAS platforms have been widely chosen and increasingly used for TIM and crash scene reconstruction by law enforcement agencies [9,28–32]. Compared with other frame types, such as hexacopters and octocopters, quadcopters can be designed and developed relatively cheap and small in size for carrying positioning and non-metric camera payloads to perform SfM photogrammetric tasks. This study, therefore, selected a quadcopter frame type to run realistic simulations in ArduPilot SITL to characterize wind impacts on flight performance for crash scene reconstruction. This quadcopter frame type has been employed by some commercial platforms including 3DR Solo and Parrot Bebop 2 [33,34]. It is possible to edit a list of behavior controlling parameters through the MAVLink protocol. A complete set of such parameters is available in [35].

A rectangular area at the Texas A&M Flight Test Station Airport in Bryan, Texas, USA, was identified to define the boundary of the simulated crash scene. The rectangular area was 105 × 70 m and centered over an airfield intersection at 30◦38 16.50 N, 96◦28 54.70 W. In this work, a DJI Mavic 2 Pro camera model was selected in Mission Planner due to its current popularity in use by law enforcement and transportation agencies for crash scene mapping [28–30]. In this study, two flight paths were planned in simulation as follows:


in flight path I, then it descended and continued the mission at 10 m AGL (Figure 2). At this lower altitude, the flight courses were kept the same, and 80% frontal and 80% side overlap settings remained. At 10 m AGL, an additional 48 photos were acquired along four flight lines that were scaled down. At 10 m AGL, the spacing between waypoints was 2.5 m and the spacing between flight lines was 3.7 m.

**Figure 1.** Overview of flight lines and waypoints of the simulated crash scene within Mission Planner.

**Figure 2.** Flight path for dual altitudes of 80 m and 10 m AGL. The simulated flight started the mission at 80 m AGL and then descended to continue the mission at 10 m AGL. The red arrows indicate flight courses. 80% frontal and 80% side overlap settings remained at both 80 m and 10 m AGL. There were 48 images taken at each AGL level.

It is worth noting that in an SfM photogrammetric survey mission, the flight height relates closely to the length of a mission and waypoint locations given specific overlap and camera model settings. However, the flight height is independent to simulated wind effects to be defined in Section 2.2. In other words, the choice of flight height is generic in this study and another flight altitude will not vary wind impacts compared with that of 80 m or 10 m AGL.

Mission Planner placed the simulated aircraft at the home position near the mission scene. The SITL ran a simulated FCU within the virtual aircraft and the planned actions were then uploaded into the aircraft via the simulated GCS link the same way it would be done in a real flight with an actual aircraft. The interface then allowed setting environmental factors for each simulation run such as wind speed, direction, and turbulence. In this article, these three wind parameters were the primary variables to study the sUAS responses.

#### *2.2. Creation of Simulation Runs*

#### 2.2.1. Wind Speed

For single-altitude flight path at 80 m AGL (Figure 1), five values were evaluated with regard to wind speed, which were 0 m/s, 3.5 m/s, 7.0 m/s, 10.5 m/s, and 14 m/s. The value of 14 m/s was chosen as the upper bound because after this level, the respective quadcopter frame selected in Mission Planner's SITL would not be able to maintain its position and started to drift off of the simulated crash scene. For dual-altitude flight path (Figure 2), wind speeds of 10.5 m/s and 3.5 m/s were employed at 80 m and 10 m AGL, respectively.

#### 2.2.2. Wind Direction

Wind direction is defined as the direction from which the wind is coming with respect to North in a clockwise fashion. For example, 0◦ represents North wind blowing from North to South and 90◦ represents East wind blowing from East to West. As described in Figures 1 and 2, the flight lines were oriented in the East-West direction, therefore, without loss of generality, simulating wind directions in the first quadrant (i.e., from 0◦ to 90◦) was sufficient to depict distinct aircraft-wind angular relationships. This angular relationship is defined as α angle, which refers to the included angle from wind direction to flight course moving in a clockwise motion. In this work, the wind directions of 0◦, 22.5◦, 45◦, 67.5◦, and 90◦ were chosen for singlealtitude flight path at 80 m AGL (Figure 1), the wind directions of 0◦, 45◦, and 90◦ were chosen for dual-altitude flight path at 80 m and 10 m AGL (Figure 2). The α angle and its relation to the wind direction and flight course are summarized in Table 1. In the case of wind direction of 90◦, wind blew in or against the direction of aircraft travel, yielding pure tailwind or headwind, respectively. A 0◦ wind direction generated pure crosswind scenarios where the wind blew perpendicular to the flight path. All the other wind directions were able to decompose the force into both crosswind and headwind/tailwind components, and the corresponding α angles are illustrated in Figure 3.

**Table 1.** α angle and its relation to the wind direction and flight course.


**Figure 3.** Examples of α angles when an aircraft does not fly in headwind, tailwind or crosswind. (**a**) α = 67.5◦ when wind direction is 22.5◦ and flight course is East. (**b**) α = 247.5◦ when wind direction is 22.5◦ and flight course is West. (**c**) α = 45◦ when wind direction is 45◦ and flight course is East. (**d**) α = 225◦ when wind direction is 45◦ and flight course is West. (**e**) α = 22.5◦ when wind direction is 67.5◦ and flight course is East. (**f**) α = 202.5◦ when wind direction is 67.5◦ and flight course is West.

2.2.3. Turbulence

Turbulence takes place by adding 3D random vectors and magnitudes to the existing wind conditions. According to the National Weather Service, turbulence for operating aircraft is classified as [38]:


Within ArduPilot on SITL, turbulence is modeled as a combination of high pass and low pass filters in both horizontal and vertical directions satisfying the following conditions [39]

$$t\_h^n = 0.98 \, t\_h^{n-1} + 10 \cdot (1 - 0.98) t\_i r\_\% \tag{1}$$

$$t\_v^n = 0.98 \, t\_v^{n-1} + 10 \cdot (1 - 0.98) t\_i r\_\% \tag{2}$$

where *th* and *tv* represent horizontal and vertical turbulences in the unit of m/s, respectively, *n* and *n* − 1 denote current and previous time instances, *rg* is a random number following a N (0, 1) Gaussian distribution, and *ti* is a turbulence index value set to 0, 5, 10, or 20 in this work. As the turbulence index increased, the turbulence magnitude increased. More specifically, a turbulence index of five (i.e., *ti* = 5 in Equations (1) and (2)) involved randomized horizontal and vertical air speed fluctuations as great as 5 m/s. Likewise, turbulence indices of 10 and 20 (i.e., *ti* = 10 and 20 in Equations (1) and (2)) involved randomized horizontal and vertical air fluctuations as great as 10 m/s and 20 m/s, respectively. For single-altitude flight path at 80 m AGL as shown in Figure 1, light (i.e., turbulence indices of 0 and 5), moderate (i.e., turbulence index of 10), and extreme (i.e., turbulence index of 20) turbulence conditions were simulated. It was not necessary to simulate severe turbulence because the only difference between severe and extreme turbulences was the vertical turbulence component. For dual-altitude flight path at 80 m and 10 m AGL as

shown in Figure 2, light (i.e., turbulence index of 0) and moderate (i.e., turbulence index of 10) turbulence conditions were simulated.

It is worth noting that turbulence does not equate to wind gust. Gust denotes a local maximum above a certain threshold above the mean wind speed within a certain amount of time such as one or two minutes [40].

#### 2.2.4. Overview of Simulation Runs

The incrementally increased wind speed, direction, and turbulence values resulted in 58 simulation runs at single altitude of 80 m AGL to evaluate flight stability and endurance (Table 2). A wind speed of 14 m/s was only used under no turbulence conditions because adding turbulence at this level would have resulted in failed flight missions for the quadcopter frame selected in Mission Planner's SITL. Simulation runs for a turbulence index of five only included wind speeds of 10.5 m/s because the results for turbulence indices of 0 and 5 were similar.

**Table 2.** A total of 58 simulation runs with incrementally increased wind speed, direction and turbulence values at single altitude of 80 m AGL.



**Table 2.** *Cont.*

In addition, a total of six simulation runs were generated for dual altitudes of 80 m and 10 m AGL (Table 3). At 10 m AGL, the simulation included a wind speed of 3.5 m/s and a turbulence index of 0. At 80 m AGL, the simulation included a wind speed of 10.5 m/s and two possible turbulence index values: 0 and 10.


**Table 3.** A total of six simulation runs for dual altitudes of 80 m and 10 m AGL.

After setting up wind parameters in each individual run, the simulated aircraft was then armed and flown in autopilot mode. Once the simulated aircraft landed and disarmed its motors within Mission Planner, the flight log was downloaded from the flight controller via the simulated radio link. Each flight log was stored in a folder for dissemination.

#### *2.3. Flight Log Dissemination and Parsing*

When a simulation run completed the mission, the flight log downloaded contained the status of the FCU recorded at 5 Hz throughout the flight. This led to a log containing 150,000 to 200,000 lines of information in each simulation run. For this study, the position and attitude of the craft at the time of image acquisition and the battery power consumed at the end of the mission were of particular interest. To meet the needs, a Python script

that read the flight log and output a text file containing the desired information was written. The script looked for flight log messages beginning with the "CAM" tag (i.e., camera shutter information) and wrote them to a text file in a designated format. Then the script found the last flight log message containing a "BAT" tag (i.e., gathered battery data) and wrote it to a separate text file. The "CAM" messages contained the attitude and positional information of the airframe when the camera was triggered during the mission (Figure 4a). The position coordinates were recorded in the World Geodetic System 1984 (WGS-84) ellipsoidal model, and they were converted to the Universal Transverse Mercator (UTM) projected coordinate system to facilitate statistical analysis (Figure 4b) [41]. All altitudes were left in their original AGL format. The "BAT" message contained information on the total power consumed during the mission.

**Figure 4.** A section of flight log downloaded in a simulation run. (**a**) Original flight log; (**b**) Flight log after coordinate conversion to the UTM system.

#### *2.4. Data Aggregation and Statistical Metrics*

The "CAM" and "BAT" files were imported into a master file in Microsoft Excel format to determine the wind impacts. The metrics used included average 3D error, standard deviation, flight time, and battery use.

The average 3D error and the standard deviation of 3D error provided metrics for the differences between intended waypoints and the corresponding camera trigger locations. The average 3D error in each individual simulation run is defined as

$$\overline{d} = \frac{\sum\_{n=1}^{m} ||p\_n - q\_n||}{m} \tag{3}$$

where *d* is the average 3D error between intended waypoints and actual camera trigger locations, *m* is the number of waypoints where the camera was supposed to be triggered (*m* = 48 and 96 in the single-altitude and dual-altitude cases, respectively), *p* and *q* are the intended waypoint location vector and corresponding actual camera trigger location vector, respectively, and *p* − *q* is the 3D Euclidean distance.

The standard deviation in each individual simulation run can be expressed as

$$
\sigma = \sqrt{\frac{\sum\_{m=1}^{m} \left(d\_m - \overline{d}\right)^2}{m-1}} \tag{4}
$$

where *σ* is standard deviation of 3D errors between intended waypoints and actual camera trigger locations, *m* is the number of waypoints where the camera is supposed to be triggered, and *dm* is the 3D error between an intended waypoint and its associated camera trigger location.

Flight time provided a metric for the total time needed to complete a mission (i.e., from the first to the last image taken). Battery use provided a metric for the cumulative use of battery power.

#### **3. Results**

*3.1. Simulation Runs for Single Altitude at 80 m AGL* 3.1.1. Average 3D Error and Standard Deviation

As shown in Table 4, the average 3D error between intended waypoints and actual camera trigger locations increased as the wind speed increased. The magnitude of the impacts varied significantly as a function of the turbulence level. Specifically, as the turbulence level increased, the impact on the average 3D error became more noticeable. This observation is not surprising because the sUAS tried to compensate for the wind and stabilize its platform to where the waypoints were intended.

**Table 4.** Average 3D errors (m) between intended waypoints and actual camera trigger locations for 58 simulation runs at single altitude of 80 m AGL.


For low turbulence levels (i.e., turbulence indices of 0 and 5), the average 3D error did not increase significantly if the wind speed was up to 10.5 m/s. If the speed increased to 14 m/s, the 3D error was at least 26% higher compared to the average 3D error for the speed up to 10.5 m/s. For a turbulence index of 10, the average 3D error began to vary significantly at lower speeds. For instance, compared to the reference zero-speed with no-turbulence wind scenario, a 42% higher average 3D error was observed for a wind speed of 3.5 m/s. 89% and 189% higher values were observed for wind speeds of 7.0 m/s and 10.5 m/s, respectively. For a turbulence index of 20, the average 3D error began to vary at even lower speeds. For instance, compared to the reference zero-speed with no-turbulence wind scenario, the average 3D errors were found to be 253%, 311%, and 558% higher for wind speeds of 3.5 m/s, 7.0 m/s, and 10.5 m/s, respectively.

Based on the simulation runs, maximum average 3D error reached up to 1.36 m when wind speed was set to 10.5 m/s with a turbulence index of 20. This was the worst (i.e., most extreme) wind condition evaluated in the study that still allowed the simulated quadcopter to maintain travel along the planned mission route. Greater wind disturbance could be programmed in Mission Planner's SITL. However, that would result in failed flight missions for the selected quadcopter model and divergent 3D errors.

In addition to displaying wind direction as shown in Table 4, Table 5 further investigates average 3D errors with respect to aircraft-wind angular relationship (i.e., α value) for all 58 simulation runs at single altitude of 80 m AGL and divides each run up into two separate segments that correspond to the East and West flight lines. For instance, the columns of "α = 180◦ (Tailwind)" and "α = 0◦ (Headwind)" together correspond to that of wind direction of 90◦ in Table 1. The columns of "α = 90◦ (Crosswind)" and "α = 270◦ (Crosswind)" together correspond to that of wind direction of 0◦ in Table 1. It is worth reiterating that the crosswind refers to the wind movement occurring perpendicular to the flight path. The columns of "α = 202.5◦" and "α = 22.5◦" together reflect the scenario where wind direction equated to 67.5◦ (Figure 3e,f).

**Table 5.** Average 3D errors (m) between intended waypoints and actual camera trigger locations with respect to aircraft-wind angular relationship (i.e., α value) for 58 simulation runs at single altitude of 80 m AGL.


For a turbulence index of 0, if the wind speed was up to 7.0 m/s, the variation in average 3D error due to differences in the α value was up to (0.21−0.18)/0.18 = 17%. Compared to a reference zero-speed with no-turbulence wind scenario, the average 3D error varied from −5% to 11%. The impact was more noticeable as the wind speed increased. If the wind speed was 10.5 m/s, the variation in average 3D error due to differences in the α value was up to 64%. At 14 m/s, the variation in average 3D error due to differences in the α value was up to 405%.

For a turbulence index of 10, if the wind speed was up to 7.0 m/s, the variation in average 3D error due to differences in the α value was up to 69%. If the wind speed was 10.5 m/s, the variation in average 3D error due to differences in the α value was up to 85%.

For a turbulence index of 20, if the wind speed was up to 7.0 m/s, the variation in average 3D error due to differences in the α value was up to 205%. If the wind speed was 10.5 m/s, the variation in average 3D error due to differences in the α value was up to 258%.

Figure 5 creates wind rose charts that give a view of how wind conditions impact average 3D error in all 58 simulation runs. Results display average 3D error without turbulence (Figure 5a) and that impacted by turbulence (Figure 5b). The angles written outside the circles depict the α angles. Each wind speed/turbulence scenario assigns a distinct color for representation. The radius of the wind rose reflects the magnitude of the average 3D error for a particular wind condition. Adjacent concentric circles have an interval of 0.5 m in radius.

Figure 5a suggests that when no turbulence was involved, least average 3D error was generated in crosswind scenarios, i.e., the aircraft and wind directions were perpendicular (i.e., α = 90◦ or 270◦). Average 3D error tended to enlarge in all other scenarios where a headwind or tailwind component contributed during the flight mission. Observations in Figure 5a also reveal that pure headwind scenario (i.e., α = 0◦) created worst flight stabilities and positional errors than any other scenarios when wind speed was up to 14 m/s (i.e., average 3D error was 0.96 m). Figure 5b demonstrates that when turbulence existed (i.e., turbulence index of 5, 10 or 20), average 3D error remarkably increased in all possible α values, indicating that average 3D error was less sensitive to the differences of aircraft-wind angular relationship than turbulence.

**Figure 5.** Wind rose plots of average 3D errors between intended waypoints and actual camera trigger locations at single altitude of 80 m AGL. (**a**) Wind rose plot of average 3D errors for no-turbulence runs; (**b**) Wind rose plot of average 3D errors for all simulation runs with turbulence.

Table 6 shows the standard deviation of 3D distance (i.e., 3D error) between intended waypoints and actual camera trigger locations for all 58 simulation runs at single altitude of 80 m AGL, and Table 7 summarizes standard deviation with respect to aircraft-wind angular relationship. Figure 6 shows wind rose plots of standard deviations for all 58 simulation runs. Compared with wind impacts on average 3D error, similar conclusions can be drawn to the impacts on standard deviation.

**Figure 6.** Wind rose plots of standard deviation of 3D errors between intended waypoints and actual camera trigger locations at single altitude of 80 m AGL. (**a**) Wind rose plot of standard deviations for no-turbulence runs; (**b**) Wind rose plot of standard deviations for all simulation runs with turbulence.


**Table 6.** Standard deviations (m) of 3D errors between intended waypoints and actual camera trigger locations for 58 simulation runs at single altitude of 80 m AGL.


**Table 7.** Standard deviations (m) of 3D errors between intended waypoints and actual camera trigger locations with respect to aircraft-wind angular relationship (i.e., α value) for 58 simulation runs at single altitude of 80 m AGL.

#### 3.1.2. Flight Time

Table 8 shows total flight times (i.e., from the first image to the last image) for each simulation run at single altitude of 80 m AGL. In general, the total time to complete a mission was less sensitive to changes in wind speed, direction, and turbulence conditions than the average 3D error and standard deviation. If the wind speed was up to 7.0 m/s and the turbulence index was up to 10, the flight time increased approximately 2.5% compared to the reference zero-speed with no-turbulence wind simulation run. At this wind speed, even if the turbulence index was 20, the total flight time increased less than 25% compared to the reference zero-speed with no-turbulence simulation run. If the wind speed was 10.5 m/s and the turbulence index was up to 10, the total flight time increased approximately 12% compared to the reference zero-speed with no-turbulence wind simulation run. However, if the turbulence level was 20, the total flight time increased 109% compared to the reference zero-speed with no-turbulence run.

Table 9 shows flight times disaggregated by aircraft-wind angular relationship for all 58 simulation runs at single altitude of 80 m AGL. The time required to transit from the last waypoint of one flight line to the first waypoint of the next line was not included (i.e., 18.8 m as shown in Figure 1). If the wind speed was up to 7.0 m/s and the turbulence index was up to 10, the variation in flight time due to differences in aircraft-wind angular relationship (i.e., α value) was no greater than 6%. Unsurprisingly, headwind conditions produced a higher total flight time than tailwind conditions. The effect due to differences in aircraft-wind angular relationship was more noticeable for higher wind speeds and turbulence levels. If the wind speed was 10.5 m/s and the turbulence index was 10, the total flight time was 18% greater under headwind condition than under tailwind condition. However, if the wind speed was 14 m/s and the turbulence index was 20, the total flight time was 182% higher under headwind condition than under tailwind condition. In Table 9, it is worth nothing that "N/A" was marked as flight times for zero-wind-speed simulation runs where the aircraft-wind angular relationships were not formed. The directionality of wind impacts on flight times is also quantified in the wind rose plots in Figure 7.


**Table 8.** Total flight times (s) for 58 simulation runs at single altitude of 80 m AGL.

**Table 9.** Flight times (s) with respect to aircraft-wind angular relationship (i.e., α value) for 58 simulation runs at single altitude of 80 m AGL.


Note: This table excluded transit times between flight lines. This table did not include flight time information for all zero-speed simulation runs due to unavailability of the α angle.

**Figure 7.** Wind rose plots of total flight time at single altitude of 80 m AGL. (**a**) Wind rose plot of flight times for no-turbulence runs; (**b**) Wind rose plot of flight times for all simulation runs with turbulence.

#### 3.1.3. Battery Use

Similar to analysis performed with the flight time metric, battery use (Table 10) was also less sensitive to changes in wind speed, direction, and turbulence conditions than the average 3D error and standard deviation. If the wind speed was up to 7.0 m/s and the turbulence index was up to 10, the flight time increased less than 14% compared to the reference zero-speed with no-turbulence simulation run. At this wind speed, even if the turbulence index was 20, the total battery use increased less than 34% compared to the reference zero-speed with no-turbulence run. If the wind speed was up to 10.5 m/s and the turbulence index was up to 10, the battery use increased less than 35% compared to the reference zero-speed with no-turbulence run. However, if the turbulence level was 20, the battery use increased 125%.

#### *3.2. Simulation Runs for Dual Altitudes at 80 m and 10 m AGL*

As displayed in Table 3, the simulation included a wind speed of 10.5 m/s with two possible turbulence index values of 0 and 10 at 80 m AGL, and the simulation also included a wind speed of 3.5 m/s with a turbulence index of 0 at 10 m AGL. These were evaluated at three wind directions resulting in a total of six simulation runs taking into account both the 80 m and 10 m AGL flight paths per a simulation as shown in Figure 2. Table 11 summarizes evaluation results for the six simulation runs. Each value in the table indicates the evaluation result that took both 80 m and 10 m AGL into account. When no turbulence was involved at both 80 m and 10 m AGL, each evaluation metric was found to vary slightly between scenarios with different wind directions. The average 3D error and standard deviation statistics were consistent with that reported in Tables 4 and 6 when looking into the cells with a turbulence index of 0 and wind speed of 10.5 m/s. This emphasizes that the choice of flight height will not affect simulated wind impacts on flight performance as stated in Section 2.1. However, the flight endurance and battery use in Table 11 increased compared with that reported in Tables 8 and 10 when looking into the cells with a turbulence index of 0 and wind speed of 10.5 m/s. This is because Table 11 involved dual altitudes in the mission. Compared with the scenario where the turbulence index was 0 at both 10 m and 80 m AGL, when the turbulence index was increased up to 10 at 80 m AGL, the average 3D error and standard deviation values were found to increase significantly while the total flight time and battery use were observed to rise by up to 7.6% and 6.1%, respectively (Table 11).


**Table 10.** Battery use (mAh) for 58 simulation runs at single altitude of 80 m AGL.

**Table 11.** Evaluation results for six simulation runs at dual altitudes of 80 m and 10 m AGL. Each value indicates the evaluation result that took both 80 m and 10 m AGL into account.


Note: The total flight time values in the table excluded transit times from 80 m descending to 10 m AGL.

Table 12 shows evaluation results with respect to aircraft-wind angular relationship (i.e., α value) for the six simulation runs at dual altitudes of 80 m and 10 m AGL. Each value indicates the evaluation result that took both 80 m and 10 m AGL into account. Similar to observations in Section 3.1.1, when turbulence existed at 80 m AGL (i.e., turbulence index of 10), flight stability remarkably decreased in all possible α values compared to the no-turbulence scenarios indicating that average 3D error and standard deviation were more sensitive to turbulence than the differences of aircraft-wind angular relationship.


**Table 12.** Evaluation results with respect to aircraft-wind angular relationship (i.e., α value) for six simulation runs at dual altitudes of 80 m and 10 m AGL. Each value indicates the evaluation result that took both 80 m and 10 m AGL into account.

Note: The total flight time values in the table excluded transit times from 80 m descending to 10 m AGL. The flight time values in the table also excluded transit times between flight lines.

> Different from Table 12, each value in Table 13 indicates the disaggregated evaluation result that considered partial flight operation conducted at each altitude (i.e., either 80 m or 10 m AGL) separately. Expectedly, the worst flight performance was achieved when the turbulence index was up to 10 at 80 m AGL. However, when no turbulence was involved, nearly identical flight performances were obtained between the 80 m and 10 m AGL simulation scenarios in terms of the average 3D error and standard deviation. This is because the flight height in the study is independent to simulated wind effects and, therefore, the choice of flight height will not affect wind impacts as explained earlier in Section 2.1. On the other hand, the flight time at 10 m AGL was decreased remarkably compared to that at 80 m AGL for any given α angle. This is because the flight lines were scaled down at 10 m AGL as shown in Figure 2.

**Table 13.** Evaluation results with respect to aircraft-wind angular relationship (i.e., α value) for six simulation runs at dual altitudes of 80 m and 10 m AGL. This table shows disaggregated results by considering partial flight operation conducted at each altitude (i.e., either 80 m or 10 m AGL) separately.


Note: The total flight time values in the table excluded transit times from 80 m descending to 10 m AGL. The flight time values in the table also excluded transit times between flight lines.

#### **4. Lessons Learned and Conclusion**

A timely investigation and reconstruction at the motor vehicle crash scene plays a pivotal role in identifying the cause and severity of the accident, assessing roadway safety risks, clarifying insurance liabilities, and facilitating legal proceedings. SfM photogrammetry with sUAS in crash scene reconstruction has gained increasing attention in recent years because of its reliability and flexibility in offering quality geospatial surveying products. One of the main deficiencies in past literature has been the failure of demonstrating its effectiveness in adverse weather conditions, under which the risk of motor vehicle crashes is exacerbated. In this article, wind was chosen as the primary factor that drove adverse weather conditions, and the sUAS was presented in the form of a simulated quadcopter in the ArduPilot SITL environment. The main objectives were to: (1) characterize the impacts of wind speed, direction, and turbulence on the positional accuracy, required flight time, and battery use of the simulated quadcopter type via realistic flight simulations, and (2) generalize lessons learned for platform-independent quadcopter flight design under wind conditions for crash scene mapping. Real-world quadcopters were not tested and compared due to flight safety and compliance concerns. The simulation also provided a method to assess wind impact on flight design in a systematic and controlled fashion, which is generally not feasible in real-world operating conditions. A total of 58 simulation runs with incremental increases in wind speed, direction, and turbulence were created and analyzed at a single altitude of 80 m AGL. Six more simulation runs were created and analyzed at dual altitudes of 80 m and 10 m AGL.

The wind disturbance settings were deliberately chosen to ensure that the simulated quadcopter was able to maintain the planned route and avoid divergent 3D errors between intended waypoints and actual camera trigger locations. The results indicated that as wind conditions departed from the ideal zero-speed with no-turbulence scenario, there was an adverse impact on sUAS stability performance, measured in terms of positional accuracy, required flight time, and battery use. Several lessons learned related to real-world quadcopter sUAS flight design under wind conditions for crash scene reconstruction are discussed and summarized below.

The average 3D error and corresponding standard deviation of 3D error between planned waypoints and the actual camera trigger locations increased as the wind speed increased. The research findings suggested operating the simulated quadcopter when the wind is not greater than 11 m/s. It is important to note that this ArduPilot quadcopter module has been run on real-world systems such as 3DR Solo and Parrot Bebop 2, and this conclusion accords well with the accepted wind tolerance that the respective user guides recommend for these platforms [33,34,42]. This recommendation on wind tolerance is also consistent with that of other popular quadcopter sUAS platforms in current operation of similar size such as DJI Phantom 4 Pro/Pro+, DJI Inspire 2 and Skydio 2 [43–45]. However, it should be realized that wind tolerance is platform dependent and 11 m/s as the documented value in this work may not be generalized for all types of quadcopter sUAS platforms. For the average 3D error and corresponding standard deviation of 3D error between planned waypoints and the actual camera trigger locations, the magnitude of the impact varied significantly as a function of the turbulence level. The simulation runs also demonstrated that the flight performance remained relatively stable under light to moderate turbulence levels (i.e., turbulence level ≤5).

Flying perpendicular to the wind direction is a well-known practice for fixed-wing sUAS survey missions. It helps maintain stable ground speed during imagery data collection [46,47]. Results obtained in this study suggest that this rule of thumb for fixed-wing aircrafts applies well to quadcopter sUAS platforms. Under high wind and low turbulence scenarios (e.g., a wind speed of 14 m/s and turbulence level of 0), statistical results proved that flying in crosswind (i.e., α = 90◦ or 270◦) and against headwind (i.e., α = 0◦) were the most and least favorable flight patterns, respectively. While the average 3D error metric was not sensitive to the increase of wind speed in crosswind scenarios (i.e., α = 90◦ or 270◦), the average 3D error sharply grew four times if wind speed rose from 0 to 14 m/s for the

headwind scenario (i.e., α = 0◦). Similar results were observed in the flight time metric. The sUAS spent nearly twice as much time on headwind flight segments (i.e., α = 0◦) than those segments where flight lines were perpendicular to the wind direction (i.e., α = 90◦ or 270◦). As shown in the simulation runs, the total flight time metric was less sensitive to changes in wind speed, direction, and turbulence conditions than the average 3D error and standard deviation metrics. The ideal flight paths for quadcopter sUAS platforms are, therefore, supposed to stay nearly perpendicular to horizontal wind. However, in real-world scenarios, this goal may not be achievable in every single flight attempt due to road geometry at the crash location, overhead safety concerns, airspace restrictions and so forth. A general recommendation to the crash investigation team and sUAS remote pilot within high wind and low turbulence environments is to apply this conclusion when pertinent on-site conditions permit.

Under strong wind conditions (e.g., wind speed ≥ 11 m/s and turbulence level >5 for the simulated quadcopter platform in ArduPilot SITL), flight stability degraded dramatically, resulting in disrupted frontal and side overlap settings due to large waypoint targeting errors. This overlap disruption is expected to get amplified for flight missions at a low altitude (e.g., below 10 m AGL) due to smaller camera field of view (FOV). This can result in a decreased number of detected and matched features in a pair of overlapping images in SfM processing routine, potentially affecting the overall quality of 2D orthomosaic image and 3D point cloud products. Even if overlaps are not disrupted in some cases, remote pilots are supposed to take battery usage into careful consideration prior to conducting high-wind flight missions. Nowadays, many commercially available multirotor sUAS platforms need a 2S to 6S lithium-ion polymer (LiPo) battery with the energy capacity less than 6000 mAh to achieve best balance between performance, flight time, and weight [43–45,48,49]. Assuming this battery specification applies to the examined quadcopter platform in ArduPilot SITL, Table 10 implies that when strong wind and turbulence exist (i.e., wind speed of 10.5 m/s and turbulence level of 20), the fully charged LiPo battery can potentially run out of power before completion of the mapping mission over the simulated crash scene area of 105 × 70 m. The rapid degradation in flight efficiency as observed from the simulation runs and platform demonstrates the need for adequate battery backup under high wind conditions, even when the scene is within a limited geographic extent. However, while this statement is generalized, it needs to be pointed out that battery consumption is platform dependent. Some lighter weight quadcopters may potentially complete a mission with one LiPo battery should they withstand as much wind as the simulated quadcopter type.

At a crash scene, the quadcopter to be deployed on the ground usually stay in close proximity to the on-site investigators and nearby vehicles. If the wind speed is marginally below the aforementioned maximum wind tolerance (e.g., 11 m/s for the simulated quadcopter in ArduPilot SITL), the remote pilot is supposed to pay extra attention during quadcopter take-off and landing phases. This is because a quadcopter sUAS is likely more susceptible to the air movement when it is flat on the ground and sitting still, causing an increased risk of flipping over in windy conditions. When the platform comes to hover in the air or traverse pre-defined waypoints to collect images for a photogrammetric survey, it should largely be able to withstand the maximum wind tolerance in a relatively steady state. In such phase, the gimbal stabilizer, which is nowadays attached to many commercially available quadcopter sUAS platforms, also helps maintain favorable image quality by compensating for angular motions to the onboard camera.

It is worth emphasizing that as a popular and reliable open-source autopilot software suite, ArduPilot has been used on a wide spectrum of autonomous systems with fullfeatured autonomous capabilities. ArduPilot on SITL features a high-fidelity simulation environment running a realistic flight dynamics model, and therefore, the major simulation findings summarized in this study are expected to be applicable to real-world flight scenarios. In addition, the choice of 80 m and 10 m AGL in the article was generic. Changing flight altitude did not vary wind and turbulence effect and hence, did not affect

the simulated results other than flight endurance and battery consumption. The wind and turbulence parameters were defined and adjusted in Mission Planner interface, so the same wind impact results apply to other pre-defined flight altitude for the simulated quadcopter without loss of generality. However, in a real-world flight mission for crash scene reconstruction, flight height is usually determined by considering factors such as desired GSD and camera model settings, flight time, geographic extent of the mission, and waypoint geometry given specific overlap settings.

In the United States, public and commercial sUAS operations within the national airspace system (NAS) require obtaining either a Certificate of Waiver or Authorization (COA), with the option of including a Section 333 exemption, or Part 107 license from the Federal Aviation Administration (FAA). For public safety and transportation agencies that administer auto crash investigation, having a COA may warrant sUAS operations across vast airspace regions. More importantly, the COA may grant these agencies privilege of flying in suboptimal flight conditions, such as during nighttime and foggy hours to carry out an emergency survey immediately after a crash takes place. On the other hand, getting a Part 107 license usually requires less time and effort, but it is generally considered more restrictive in various dimensions compared with the COA. Thanks to the FAA's recent efforts, waivers to Part 107 rules can be applied to gain approvals of certain sUAS operations outside the limitations defined in the rules [50]. For example, a waiver can request easing the restrictions of conducting routine sUAS operations above standard Part 107 flight height limits (e.g., 121.9 m (400 ft) AGL at the time of this writing). This type of special permission allows pilots of public safety and transportation agencies to operate sUASs with adequate flexibility at a crash scene while ensuring safety and compliance. Recently, the FAA provided rule amendments to Part 107 to enable routine operations of sUAS over people, from moving vehicles, and at night under certain conditions. Nowadays, sUASs have become an integral part of our daily life, and technologies to advance sUAS safety evolve rapidly. This leaves open the possibilities of exploring impacts of multiple suboptimal weather conditions on sUAS flight performance for crash scene reconstruction in the near future. The intended future work also includes: 1) investigating wind impacts on fixed-wing sUAS platforms, and 2) conducting real-world flight missions with different commercially available quadcopters under varying wind conditions and assessing the flight performance as well as SfM photogrammetric products.

**Author Contributions:** Methodology, M.J.S.; data collection, J.B.; formal analysis, T.C., J.B., M.J.S. and M.P.; investigation, T.C., J.B. and M.J.S.; writing—original draft preparation, T.C., J.B. and M.J.S.; writing—review and editing, T.C., M.J.S., J.B. and C.Q.; supervision, M.J.S.; project administration C.Q. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research was funded by the Texas Department of Transportation (TxDOT) in cooperation with the Federal Highway Administration (FHWA), Research Project 0-7063. The contents of this paper reflect the views of the authors, who are responsible for the facts and the accuracy of the data presented herein. The contents do not necessarily reflect the official view or policies of FHWA or TxDOT.

**Data Availability Statement:** Not applicable.

**Acknowledgments:** The authors thank ArduPilot development staff for their continued dedication to providing a powerful and versatile open-source autopilot platform for a wide array of autonomous systems. The authors also gratefully acknowledge and thank TxDOT. Finally, the authors thank Melanie Gingras for her contributions to project management.

**Conflicts of Interest:** The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; or in the writing of the manuscript.

#### **References**


MDPI St. Alban-Anlage 66 4052 Basel Switzerland Tel. +41 61 683 77 34 Fax +41 61 302 89 18 www.mdpi.com

*Drones* Editorial Office E-mail: drones@mdpi.com www.mdpi.com/journal/drones

MDPI St. Alban-Anlage 66 4052 Basel Switzerland Tel: +41 61 683 77 34

www.mdpi.com ISBN 978-3-0365-6188-2