<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Aerosp. Eng.</journal-id>
<journal-title>Frontiers in Aerospace Engineering</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Aerosp. Eng.</abbrev-journal-title>
<issn pub-type="epub">2813-2831</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1076271</article-id>
<article-id pub-id-type="doi">10.3389/fpace.2022.1076271</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Aerospace Engineering</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Hybrid A&#x2a; path search with resource constraints and dynamic obstacles</article-title>
<alt-title alt-title-type="left-running-head">Cortez et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fpace.2022.1076271">10.3389/fpace.2022.1076271</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Cortez</surname>
<given-names>Al&#xe1;n</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/2066400/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ford</surname>
<given-names>Bryce</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Nayak</surname>
<given-names>Indranil</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Narayanan</surname>
<given-names>Sriram</given-names>
</name>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Kumar</surname>
<given-names>Mrinal</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1964426/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>Laboratory for Autonomy in Data-Driven and Complex Systems</institution>, <institution>Aerospace Research Center</institution>, <institution>Department of Mechanical and Aerospace Engineering</institution>, <institution>The Ohio State University</institution>, <addr-line>Columbus</addr-line>, <addr-line>OH</addr-line>, <country>United States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1630461/overview">Krishna Kalyanam</ext-link>, National Aeronautics and Space Administration, United States</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2064246/overview">Kenny Chour</ext-link>, National Aeronautics and Space Administration, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1668101/overview">Priyank Pradeep</ext-link>, Universities Space Research Association (USRA), United States</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Mrinal Kumar, <email>kumar.672@osu.edu</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Intelligent Aerospace Systems, a section of the journal Frontiers in Aerospace Engineering</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>25</day>
<month>01</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>1</volume>
<elocation-id>1076271</elocation-id>
<history>
<date date-type="received">
<day>21</day>
<month>10</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>21</day>
<month>12</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Cortez, Ford, Nayak, Narayanan and Kumar.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Cortez, Ford, Nayak, Narayanan and Kumar</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>This paper considers path planning with resource constraints and dynamic obstacles for an unmanned aerial vehicle (UAV), modeled as a Dubins agent. Incorporating these complex constraints at the guidance stage expands the scope of operations of UAVs in challenging environments containing path-dependent integral constraints and time-varying obstacles. Path-dependent integral constraints, also known as resource constraints, can occur when the UAV is subject to a hazardous environment that exposes it to cumulative damage over its traversed path. The noise penalty function was selected as the resource constraint for this study, which was modeled as a path integral that exerts a path-dependent load on the UAV, stipulated to not exceed an upper bound. Weather phenomena such as storms, turbulence and ice are modeled as dynamic obstacles. In this paper, ice data from the Aviation Weather Service is employed to create training data sets for learning the dynamics of ice phenomena. Dynamic mode decomposition (DMD) is used to learn and forecast the evolution of ice conditions at flight level. This approach is presented as a computationally scalable means of propagating obstacle dynamics. The reduced order DMD representation of time-varying ice obstacles is integrated with a recently developed backtracking hybrid <italic>A</italic>&#x2217; graph search algorithm. The backtracking mechanism allows us to determine a feasible path in a computationally scalable manner in the presence of resource constraints. Illustrative numerical results are presented to demonstrate the effectiveness of the proposed path-planning method.</p>
</abstract>
<kwd-group>
<kwd>dubins vehicle</kwd>
<kwd>path planning</kwd>
<kwd>graph search</kwd>
<kwd>resource constraints</kwd>
<kwd>dynamic obstacles</kwd>
<kwd>dynamic mode decomposition</kwd>
<kwd>hybrid A&#x2217;</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>In recent years, there has been considerable interest in incorporating complex constraints into path-planning for autonomous vehicles so as to expand their scope of operation in challenging environments. This paper considers two forms of complex constraints for path planning of a Dubins agent: 1) time-varying obstacles that are capable of translation, rotation, as well as changing their shape, and 2) resource constraints that exert a path-dependent cumulative load (or damage) on the vehicle that must be maintained under a stipulated threshold. In the context of unmanned aerial vehicles (UAVs), examples of the former include weather phenomena, such as storms, turbulence and ice. In the case of resource constraints, the agent is allowed to &#x201c;fly through&#x201d; the obstacle, so long as the total accumulated damage incurred along its path is kept under a stipulated threshold. Examples of such path-dependent loading constraints include flight of a UAV over a wildfire, wherein the resource constraint represents placing an upper limit on the increase in temperature along the agent&#x2019;s path to keep onboard equipment safe. Other scenarios include flight over an urban region while maintaining the total noise generated along its trajectory under a prescribed threshold, or flight through adversarial territory while avoiding detection by radar. Path planning, by definition, creates a sequence of actions or events that will drive an agent from the start position to the goal position while avoiding collisions with obstacles in the environment (<xref ref-type="bibr" rid="B23">LaValle, 2006</xref>). The agent can be a ground, aquatic, or aerial vehicle, modeled in this paper as a Dubins agent. These agents require path planning to navigate and function in many fields such as manufacturing, search and rescue, and exploration to name a few. By allowing the agent to traverse in an environment through path planning, efficiency is increased and risk is decreased: for example, when UAVs are sent to survey disasters, it increases the speed at which disaster survivors are found as well as decreasing the risk and safety hazards that emergency responders may encounter if they were physically doing these tasks. The agent searches for the optimal, or shortest, path to reach its goal: this is the shortest path problem. In this paper, the shortest path problem is the foundation to which the resource constraints and dynamic obstacles are added.</p>
<p>A challenging variation of the shortest path problem is the resource-constrained shortest path problem (<xref ref-type="bibr" rid="B37">Thomas et al., 2019</xref>). In the resource-constrained shortest path problem, the agent is looking for the path of minimum length while being constrained by either internal factors such as fuel consumption or external factors such as vehicular damage or noise constraints (<xref ref-type="bibr" rid="B37">Thomas et al., 2019</xref>). Resource constraints, also known as &#x201c;path loading constraints&#x201d;, are integral constraints that are path dependent and accrue as the agent moves towards the goal pose (<xref ref-type="bibr" rid="B14">Ford et al., 2022</xref>). For instance, resource constraints can be used to place a limit on duration of exposure of a UAV leading to detection by radars while flying through adversarial territory (<xref ref-type="bibr" rid="B17">Kabamba et al., 2006</xref>; <xref ref-type="bibr" rid="B39">Zabarankin et al., 2006</xref>). Another instance of use of resource constraints is to model heat loading on a UAV navigating through a wildfire. A trivial approach to this problem that does not involve resource constraints is to treat the heat flux level set corresponding to a sufficiently high value as a hard obstacle that must be avoided by the UAV. The alternative is to allow the UAV to fly through high heat flux contours, while ensuring that the damage incurred during the flight is acceptable. Here, the path integral of heat-flux contours at flight level equates to the rise in UAV temperature, which must be held under a prescribed limit (<xref ref-type="bibr" rid="B14">Ford et al., 2022</xref>) for safe operation. A good analogy is moving one&#x2019;s finger around a candle flame <italic>versus</italic> moving it through the flame following a trajectory that ensures no damage is done. A third example of resource constraints involves flight in an urban environment. A resource constraint may be used to model the total cumulative noise disturbance created by the UAV along its trajectory. By prescribing a maximum allowable cumulative noise disturbance, the UAV can be constrained to follow appropriate noise regulations.</p>
<p>Path planning with dynamic obstacles allows autonomous agents to model their complex environment with a higher degree of fidelity. Incorporating dynamic obstacles within various trajectory planners continues to be a challenge due to the complexity related to frequent recomputation of the path when the environment changes (<xref ref-type="bibr" rid="B9">Darbari et al., 2017</xref>). This is computationally expensive and not feasible for online path planning when the agent will need to calculate and perform the next action in time to avoid colliding with a moving obstacle. Safe interval path planning (SIPP) is a algorithm designed to include dynamic obstacles in the environment and it does so by creating intervals or periods of safety in which the agent can move (<xref ref-type="bibr" rid="B30">Phillips and Likhachev, 2011</xref>). While looking at dynamic obstacles based on weather patterns, this method would not a viable choice for the agent&#x2019;s path planner. For UAV&#x2019;s, time-evolving weather hazards such as storms, turbulence, and ice are important to consider as dynamic obstacles during the path planning stage for their safe operation. Ice hazards can be damaging to both manned and unmanned aerial vehicles and dangerous amounts of accumulation on the wings or propellers may force an emergency landing. There are four levels of icing intensity, beginning with trace, light, moderate, and severe and three different categories, namely, rime, clear, and mixed (<xref ref-type="bibr" rid="B2">Administration, 2010</xref>; <xref ref-type="bibr" rid="B3">Administration, 2020</xref>). Ice accumulation on UAVs requires a rapid response because the intensity of icing is categorized with respect to larger manned aerial vehicles. Since UAVs are generally smaller, it is important to develop strategies for navigating around ice weather conditions. This paper models ice weather conditions as dynamic obstacles in the path-planning stage. Ice hazards are recorded and reported by the Aviation Weather Center. This data is employed to learn their dynamics using a reduced order representation through dynamic mode decomposition (DMD). DMD is an effective technique for learning low-order dynamics of complex systems and predicting their future behavior <xref ref-type="bibr" rid="B34">Schmid (2010)</xref>; <xref ref-type="bibr" rid="B35">Schmid et al. (2011)</xref>; <xref ref-type="bibr" rid="B38">Tu et al. (2013)</xref>. It is based on Koopman operator theory <xref ref-type="bibr" rid="B19">Koopman and Neumann (1932)</xref>; <xref ref-type="bibr" rid="B20">Koopman (1931)</xref> and has gained in popularity over the past two decades owing to its efficiency in extracting underlying characteristic features of the dynamic system <xref ref-type="bibr" rid="B26">Nayak et al. (2021b)</xref>; <xref ref-type="bibr" rid="B16">Han and Tan (2020)</xref>; <xref ref-type="bibr" rid="B8">Broatch et al. (2019)</xref>; <xref ref-type="bibr" rid="B21">Kutz et al. (2016)</xref>; <xref ref-type="bibr" rid="B27">Nayak and Teixeira (2022)</xref>. It compares favorably in this regard to other model-order reduction methods such as proper orthogonal decomposition (POD), bi-orthogonal decomposition (BOD) and principal component analysis (PCA).</p>
<p>In this work, ice hazard data from the Aviation Weather Service is employed to learn a reduced order model of the hazard dynamics using DMD. This model is two dimensional, i.e., valid at the flight level and variations along the altitude are not considered. The DMD surrogate allows us to track both translation and rotational motion of the ice hazards, as well as the change in their shape. The time-varying obstacles&#x2019; location and shape are integrated with a recently developed backtracking hybrid-<italic>A</italic>&#x2217; (<inline-formula id="inf1">
<mml:math id="m1">
<mml:mi mathvariant="script">BH</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>) graph search algorithm for path-planning with resource constraints. Traditional graph search is not suited to planning with path loading constraints because such constraints accumulate over the trajectory of the agent. When a candidate node is determined to be inadmissible on account of the loading constraint, conventional graph search effectively treats it as the violation of a point-wise constraint. The key idea behind the backtracking approach is that the violation of the resource constraint is attributed to the path taken to arrive at the node where the constraint was violated. Therefore, instead of classifying the candidate node as &#x201c;inadmissible&#x201d;, it reverses the search, receding away from the candidate node, thereby allowing the agent to shed the integral load along the path leading up to the constraint violation. Upon meeting an appropriately chosen stopping criterion for backtracking, the hybrid-<italic>A</italic>&#x2217; search resumes until another load violation is encountered (or the goal is reached) <xref ref-type="bibr" rid="B14">Ford et al. (2022)</xref>. This work ensures that during the graph search and its backtracking process, the dynamic obstacles&#x2019; information corresponding to the current time-stamp is employed.</p>
<p>The main contribution of this paper is the combined use of DMD and <inline-formula id="inf2">
<mml:math id="m2">
<mml:mi mathvariant="script">BH</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> graph search to conduct path planning for unmanned aerial vehicles in the presence of time-varying obstacles of unknown dynamics and resource constraints. Dynamic mode decomposition is employed for learning the dynamics of time-varying obstacles and the <inline-formula id="inf3">
<mml:math id="m3">
<mml:mi mathvariant="script">BH</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> algorithm is used handle resource constraints in a scalable manner. To the best of the authors&#x2019; knowledge, this is the first instance of application of these techniques to achieve a computationally scalable solution of path planning in the presence of resource constraints and time varying obstacles of unknown dynamics. Note that this work does not consider the problem of &#x201c;re-planning&#x201d;. In other words, all results here represent only a single instance of path planning. There is no attempt made to leverage information from a previous cycle of planning to &#x201c;warm start&#x201d; a new search. The contribution therefore is only algorithmic in nature. Additional work is needed to achieve flight integration of the presented algorithms. The remainder of this paper is organized as follows: <xref ref-type="sec" rid="s2">Section 2</xref> provides a problem formulation, including vehicle dynamics, obstacle dynamics and the path-planning cost and constraint models. <xref ref-type="sec" rid="s3">Section 3</xref> presents the methodology. The <inline-formula id="inf4">
<mml:math id="m4">
<mml:mi mathvariant="script">BH</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> approach is described in <xref ref-type="sec" rid="s3-1">Section 3.1</xref> while the DMD reduced-order modeling of obstacle dynamics is presented in <xref ref-type="sec" rid="s3-2-1">Section 3.2.1</xref>. <xref ref-type="sec" rid="s4">Section 4</xref> presents numerical results obtained using ice hazard data from the Aviation Weather Center. Conclusions and directions for future work are presented in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</sec>
<sec id="s2">
<title>2 Problem formulation</title>
<sec id="s2-1">
<title>2.1 Vehicle kinematics and dynamics</title>
<p>The agent is assumed to be a fixed-wing unmanned aerial vehicle (UAV) constrained to the Dubins model of curves and straight-line paths (<xref ref-type="bibr" rid="B36">Shkel and Lumelsky, 2001</xref>). The Dubins model is commonly used by both ground and fixed-wing aerial vehicles that have a fixed turn radius (<xref ref-type="bibr" rid="B31">Reeds and Shepp, 1990</xref>). As a result of this kinematic constraint, these vehicles cannot turn sharply enough to comply to the perpendicular turns that are required by algorithms such as <italic>A</italic>
<sup>&#x22c6;</sup> search and Dijkstra search. Dubins motions are constrained to circular arcs and straight-line segments and can be used to find the shortest path between two points (<xref ref-type="bibr" rid="B12">Dubins, 1957</xref>). These arcs and line segments produce the set of actions that the agent can take to move across the search space: <italic>straight ahead</italic> (<italic>S</italic>), a <italic>circular arc to the right</italic> (<italic>R</italic>), or a <italic>circular arc to the left</italic> (<italic>L</italic>). The velocity (<italic>v</italic>) of the agent is held constant. Eq. <xref ref-type="disp-formula" rid="e1">1</xref>, <xref ref-type="disp-formula" rid="e2">2</xref> below govern the motion for the agent in Cartesian coordinates. The heading rate (Eq. <xref ref-type="disp-formula" rid="e3">3</xref>) is controlled by input <italic>u</italic>.<disp-formula id="e1">
<mml:math id="m5">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
<disp-formula id="e2">
<mml:math id="m6">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>sin</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m7">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>u</mml:mi>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>The input variable <italic>u</italic> is the control variable which must be less than or equal to the maximum steering angle constraint U which is shown in Eq. <xref ref-type="disp-formula" rid="e4">4</xref>. The heading rate of the agent is constrained to a maximum steering angle constraint <italic>U</italic> which is the velocity of the agent divided by the agent&#x2019;s minimum turn radius <italic>R</italic> (<xref ref-type="bibr" rid="B24">Manyam et al., 2017</xref>).<disp-formula id="e4">
<mml:math id="m8">
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>U</mml:mi>
</mml:math>
<label>(4)</label>
</disp-formula>
<disp-formula id="e5">
<mml:math id="m9">
<mml:mi>U</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>R</mml:mi>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>Several extensions of the Dubins model exist, including motion with reversing (<inline-formula id="inf5">
<mml:math id="m10">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xb1;</mml:mo>
<mml:mi>u</mml:mi>
</mml:math>
</inline-formula>) (<xref ref-type="bibr" rid="B31">Reeds and Shepp, 1990</xref>), and motion with higher order of smoothness properties to produce better ride quality (<xref ref-type="bibr" rid="B5">Banzhaf et al., 2018</xref>; <xref ref-type="bibr" rid="B28">Oliveira et al., 2018</xref>; <xref ref-type="bibr" rid="B7">Botros and Smith, 2022</xref>). This work employs the backtracking hybrid-<italic>A</italic>&#x2217; search using the <italic>S</italic>, <italic>R</italic> and <italic>L</italic> motion primitives described above. A constant time discretization of &#x394;<italic>T</italic> is used as the time step for motion planning, resulting in motion primitives of constant and equal arc lengths.</p>
</sec>
<sec id="s2-2">
<title>2.2 Obstacle dynamics</title>
<p>UAVs operate in a highly dynamic environment comprised of other aerial vehicles, birds, and other dynamic hazards such as weather phenomena including storms, turbulence and icy conditions. Weather hazards can impart significant damage to UAVs and their inclusion in the path planner modeled as dynamic obstacles helps expand the scope of safe UAV operations. Weather obstacles exhibit constant evolution and these dynamics can be recorded and learned. On the other hand, dynamic obstacles such as birds and other aerial vehicles cannot be predicted reliably. They are expected to be handled by detect-and-avoid (DAA) methods and are not included in this study. Typically, the dynamics of weather obstacles occur on a time-scale that is much less than the duration of the flight of the UAV. In this work, flight-level (i.e., two-dimensional) ice conditions are modeled as dynamic obstacles. Training snapshots are created using Significant Meteorological Information (SIGMET) data and Airman&#x2019;s Meteorological Information (AIRMET) data from the Aviation Weather Center (AWC) (<xref ref-type="bibr" rid="B2">Administration, 2010</xref>). <xref ref-type="fig" rid="F1">Figure 1A</xref> shows ice data retrieved from the AWC for 23 June 2022 in the original topographical coordinates. These are converted to Cartesian coordinates (<xref ref-type="fig" rid="F1">Figure 1B</xref>) so that they may be integrated into the grid search. There is some distortion in the shape of the obstacles during this transformation owing to cartographic projection. These obstacles were then scaled down and mixed with other static obstacles and a resource constraint to produce a test case for path planning, as shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, which represents a region of size 100&#xa0;m by 100&#xa0;m.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Ice hazard data from the aviation weather center taken from 6/23/2022 in <bold>(A)</bold> latitude/longitude coordinates and <bold>(B)</bold> Cartesian coordinates.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g001.tif"/>
</fig>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>A test environment for path planning with dynamic ice obstacles scaled down from <xref ref-type="fig" rid="F1">Figure 1B</xref>.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g002.tif"/>
</fig>
</sec>
<sec id="s2-3">
<title>2.3 Creating training data sets for obstacle dynamics</title>
<p>Starting with the snapshot shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, we emulate obstacle evolution by ascribing simple motions to these shapes. This helps create data sets on which the DMD surrogate models can be trained. It also allows us to evaluate the performance of DMD reduced-order modeling in capturing simple motion types, such as pure translation and changes in size and shape of the obstacle. <xref ref-type="fig" rid="F3">Figures 3A</xref>, <xref ref-type="fig" rid="F4">4A</xref>, <xref ref-type="fig" rid="F5">5A</xref>, <xref ref-type="fig" rid="F6">6A</xref>, <xref ref-type="fig" rid="F7">7A</xref>, and <xref ref-type="fig" rid="F8">8A</xref> show different types of training data-sets representing obstacle dynamics of increasing complexity. <xref ref-type="fig" rid="F3">Figure 3</xref>, <xref ref-type="fig" rid="F4">4</xref>, <xref ref-type="fig" rid="F5">5</xref> shows each of the four obstacles decreasing (increasing, mixed rate of change) in size. None of these cases involve translation of the obstacles. <xref ref-type="fig" rid="F6">Figure 6</xref>, <xref ref-type="fig" rid="F7">7</xref>, <xref ref-type="fig" rid="F8">8</xref> shows the obstacles translating as well as decreasing (increasing, mixed rate change) in size. On the right of each of these figures, the performance of the DMD algorithm is shown in capturing these obstacle behaviors. The DMD approach is described in detail in <xref ref-type="sec" rid="s3-2-1">Section 3.2.1</xref>. Once the DMD model is trained, it is used to forecast the location and shape of each of the obstacles for future time steps.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>
<bold>(A)</bold> Comparative performance of the DMD surrogate modeling for learning shrinking obstacles. Blue depicts ground truth and red depicts DMD output. <bold>(B)</bold> Validation error characteristics.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g003.tif"/>
</fig>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>
<bold>(A)</bold> Comparative performance of the DMD surrogate modeling for learning expanding obstacles. Blue depicts ground truth and red depicts DMD output. <bold>(B)</bold> Validation error characteristics.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g004.tif"/>
</fig>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>
<bold>(A)</bold> Comparative Performance of the DMD Surrogate Modeling for Learning A Mixed Set of Obstacles (Expanding: top right Shrinking: all the rest). Blue Depicts Ground Truth and Red Depicts DMD Output. <bold>(B)</bold> Validation Error Characteristics.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g005.tif"/>
</fig>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>
<bold>(A)</bold> Comparative performance of the DMD surrogate modeling for learning obstacles showing pure translation. Blue depicts ground truth and red depicts DMD output. <bold>(B)</bold> Validation error characteristics.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>
<bold>(A)</bold> Comparative performance of the DMD surrogate modeling for learning obstacles showing translation and expanding size. Blue depicts ground truth and red depicts DMD output. <bold>(B)</bold> Validation error characteristics.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>
<bold>(A)</bold> Comparative performance of the DMD surrogate modeling for learning obstacles showing translation and mixed changing shape. Blue depicts ground truth and red depicts DMD output. <bold>(B)</bold> Validation error characteristics.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g008.tif"/>
</fig>
</sec>
<sec id="s2-4">
<title>2.4 Cost and constraint models</title>
<p>The optimal control problem is used to determine the minimum time path to reach the goal when the velocity is held constant. This is shown in Eq. <xref ref-type="disp-formula" rid="e6">6</xref> where <bold>s</bold> is the state vector of the agent shown in Eq. <xref ref-type="disp-formula" rid="e7">7</xref>.<disp-formula id="e6">
<mml:math id="m11">
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mspace width="0.28em"/>
<mml:mspace width="0.28em"/>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(6)</label>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m12">
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
<disp-formula id="e8">
<mml:math id="m13">
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="bold">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>The static obstacles can be modeled as polygons as shown in Eq. <xref ref-type="disp-formula" rid="e9">9</xref>, where, <italic>a</italic>
<sub>
<italic>i</italic>,<italic>j</italic>
</sub> and <italic>b</italic>
<sub>
<italic>i</italic>,<italic>j</italic>
</sub> represent the polygon vertices and <italic>c</italic>
<sub>
<italic>i</italic>,<italic>j</italic>
</sub> represents the edges of the polygon. The static obstacles are considered to be no-fly-zones that remain constant throughout the search. The dynamic obstacles are no-fly-zones that are changing in each time step as the agent moves towards the goal.<disp-formula id="e9">
<mml:math id="m14">
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x22c0;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>y</mml:mi>
<mml:mo>&#x3e;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="2em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
</mml:math>
<label>(9)</label>
</disp-formula>When flying near densely populated environments the noise generated by the vehicle is a factor that must be accounted for. Limiting noise exposure from the aircraft is not a constraint that can be enforced in a point-wise manner as public perception is affected by both noise intensity and duration of disturbance (<xref ref-type="bibr" rid="B1">Administration, 2022</xref>). The better way to model noise exposure is with a noise penalty function that is integrated along the vehicle&#x2019;s flight path. The penalty function has a high value near the population center and lowers as the distance from the population center increases. Placing an upper bound on the accumulation of the noise penalty function over the flight path discourages short flights over the population center with high instantaneous noise, but also penalizes long paths around the population center that generates low noise over long durations. The noise penalty function combined with an upper bound of the accumulated penalty constitutes a path dependant resource constraint which is shown in Eq. <xref ref-type="disp-formula" rid="e10">10</xref>.<disp-formula id="e10">
<mml:math id="m15">
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>The terminal conditions are the initial position and heading of the agent represented by 0, and the final position and heading of the agent represented by <italic>t</italic>
<sub>
<italic>f</italic>
</sub>. The state boundaries are shown in Eq. 9.<disp-formula id="equ1">
<mml:math id="m16">
<mml:mtext>Terminal&#x2009;Conditions:&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c8;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="e11">
<mml:math id="m17">
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c8;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
<disp-formula id="equ2">
<mml:math id="m18">
<mml:mtext>State&#x2009;Bounds:&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</disp-formula>
<disp-formula id="e12">
<mml:math id="m19">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>An example of the environment is shown in <xref ref-type="fig" rid="F2">Figure 2</xref> which shows the terminal conditions labeled as Start and Goal in the graph. The state boundaries for this problem are 0&#xa0;m for <italic>x</italic>
<sub>min</sub> and <italic>y</italic>
<sub>min</sub>, and 100&#xa0;m for the <italic>x</italic>
<sub>max</sub> and <italic>y</italic>
<sub>max</sub>. The noise penalty function (resource constraint) modeled as a Gaussian distribution is also shown, and the center of the noise penalty function is a black star symbol located at (60, 45). As the agent moves closer to the center of the noise penalty function, the penalty accumulated per action also increases. This is shown by the gradient going from yellow to blue from the center to the edges of the distribution. The mean of the Gaussian distribution is <italic>&#x3bc;</italic>
<sub>
<italic>x</italic>
</sub> &#x3d; 60 and <italic>&#x3bc;</italic>
<sub>
<italic>y</italic>
</sub> &#x3d; 45 which is the center location (60, 45). Other types of contours that could be used are uniform, exponential or from a table (<xref ref-type="bibr" rid="B18">Kim and Hespanha, 2004</xref>). Also shown in <xref ref-type="fig" rid="F2">Figure 2</xref> are the static obstacles, polygons outlined in blue with black fill, and the first step of the dynamic ice obstacles outlined in red with pink fill.</p>
</sec>
</sec>
<sec sec-type="methods" id="s3">
<title>3 Methodology</title>
<sec id="s3-1">
<title>3.1 Backtracking hybrid <italic>A</italic>
<sup>&#x22c6;</sup>
</title>
<p>Graph search algorithms such as Dijkstra, <italic>A</italic>
<sup>&#x22c6;</sup>, and Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> are popular methods to solve the shortest path problem due to the shorter computation time to reach the goal state. Graph search methods used in motion begin by dividing the environment into cells by grid points or nodes (<xref ref-type="bibr" rid="B15">Fujimura, 1991</xref>). Dijkstra is a popular graph search method that was developed in 1959 (<xref ref-type="bibr" rid="B10">Dijkstra, 1959</xref>). This method involves creating a grid of the environment with nodes set at equal distance apart from each other. The Dijkstra algorithm is not directed towards the goal and can consequently have lengthy computation time due to this inefficiency. As a result, Dijkstra can be used for an environment for a small amount of nodes (<xref ref-type="bibr" rid="B15">Fujimura, 1991</xref>). The <italic>A</italic>
<sup>&#x22c6;</sup> algorithm is an evolution of Dijkstra that employs a heuristic function to direct the search towards the goal. In this way, <italic>A</italic>
<sup>&#x22c6;</sup> is suitable for a larger environment with more nodes (<xref ref-type="bibr" rid="B15">Fujimura, 1991</xref>). The use of the heuristic function increases the efficiency and decreases the nodes that are explored when compared to Dijkstra. A flaw that both of these graph search methods have is that they are constrained to perpendicular turns moving from node to node; this produces paths with sharp angles which cannot be navigated by a vehicle with turn constraints. These turn constraints are due to both the kinematics, the vehicle&#x2019;s inertia, and the dynamics, or the controls, of the vehicle such as a fixed-wing UAV, cannot navigate. Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> is an improvement to the <italic>A</italic>
<sup>&#x22c6;</sup> algorithm with the inclusion of the kinematic constraints of the agent with Dubins motion shown in Eq. 2.1 that creates a path that the vehicle can navigate (<xref ref-type="bibr" rid="B32">Richards et al., 2004</xref>) (<xref ref-type="bibr" rid="B29">Petereit et al., 2012</xref>) (<xref ref-type="bibr" rid="B11">Dolgov et al., 2008</xref>). In essence, Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> allows for the path to be separated from the grid and produces a path that is smoother and shorter than that of its predecessor <italic>A</italic>
<sup>&#x22c6;</sup>. Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> algorithm though may be unable to find the minimum solution path due to the discretization of the continuous space as well as having to consider different obstacles and constraints (<xref ref-type="bibr" rid="B11">Dolgov et al., 2008</xref>)<disp-formula id="e13">
<mml:math id="m20">
<mml:mi mathvariant="script">D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2297;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2297;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
</mml:math>
<label>(13)</label>
</disp-formula>
<disp-formula id="e14">
<mml:math id="m21">
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:math>
<label>(14)</label>
</disp-formula>
<disp-formula id="e15">
<mml:math id="m22">
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m23">
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>&#x3c8;</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<p>An auxiliary grid is created <inline-formula id="inf6">
<mml:math id="m24">
<mml:mi mathvariant="script">D</mml:mi>
</mml:math>
</inline-formula> to keep track of the three-dimensional search space which is the Cartesian coordinates (<italic>x</italic>, <italic>y</italic>) and the heading of the agent (<italic>&#x3c8;</italic>). This grid shows the admissible nodes created by the outer product of Eq. <xref ref-type="disp-formula" rid="e13">13</xref> where <italic>N</italic>
<sub>
<italic>x</italic>
</sub>, <italic>N</italic>
<sub>
<italic>y</italic>
</sub>, and <italic>N</italic>
<sub>
<italic>&#x3c8;</italic>
</sub> are defined as Eq. <xref ref-type="disp-formula" rid="e14">14</xref>, <xref ref-type="disp-formula" rid="e15">15</xref>, <xref ref-type="disp-formula" rid="e16">16</xref>. Due to the manner in which the grid is constructed, the initial position is always located on the grid; this may not be true of the goal position. If the goal position does not land on an auxiliary node from <inline-formula id="inf7">
<mml:math id="m25">
<mml:mi mathvariant="script">D</mml:mi>
</mml:math>
</inline-formula>, it is assigned to the node that it is closest to as the Index Goal which is shown in <xref ref-type="fig" rid="F2">Figure 2</xref> as the magenta square. The candidate nodes are then coupled with the closest node from the auxiliary grid. Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> operates using two sets of nodes; a Frontier (open) set and a visited (closed) set. When a cell is considered &#x201c;closed&#x201d;, it is moved to the visited set and is no longer an admissible node for the agent to move to. Therefore, any candidate nodes that end in a closed cell are declared inadmissible. When a cell has been visited by Hybrid <italic>A</italic>
<sup>&#x22c6;</sup>, all the other potential actions that land in that cell are dismissed. This constrains the explosive growth of the search tree that would occur if the search space was purely continuous. This algorithm only considers all events until the path is found.</p>
<p>Backtracking Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> is a recently developed improvement on Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> (<xref ref-type="bibr" rid="B14">Ford et al., 2022</xref>) to allow for the efficient solution of resource-constrained path planning problems. Backtracking Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> operates on the principle that the violation of the loading constraint (Eq. <xref ref-type="disp-formula" rid="e10">10</xref>) is not the fault of the node in violation, but the fault of the entire path taken to the node. When Backtracking Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> encounters a loading constraint violation it backtracks away from the violation. This frees previously explored nodes in the visited set allowing for the re-exploration of a section of the search domain. Because no new child is generated for the node stopped at, the search is forced to take a different path during the re-exploration thus &#x201c;shedding&#x201d; some of the load. Repeated invocation of the backtracking procedure during the search allows for rapid load shedding while producing good solutions.</p>
<p>A key aspect of Backtracking Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> is how far to backtrack when the loading constraint <inline-formula id="inf8">
<mml:math id="m26">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> is violated. This is encapsulated in the backtracking stopping criterion which tells the backtracking procedure to halt its backward March. Stopping criteria are heuristic in nature and often attempt to use information from the loading function as well as the graph structure. The stopping criterion used in this work is called load rate stopping which seeks to maximize the sensitivity of rate of load accumulation with respect to the heading rate along the search path. This can be stated as follows:<disp-formula id="e17">
<mml:math id="m27">
<mml:msup>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>&#x3f5;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi mathvariant="script">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(17)</label>
</disp-formula>where <italic>s</italic>&#x2217; is the pose along the path to the invalid node where the change in load accumulation with respect to heading rate is maximized. This can be applied to Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> by taking the rate of load accumulation to be the load accumulated on edge leading to a given node, and varying the turning rate as the choice between three motion primitives. This means that re-exploration initiates where there the potential for changing the total load incurred by the search is maximised.</p>
</sec>
<sec id="s3-2">
<title>3.2 Dynamic mode decomposition</title>
<p>Dynamic Mode Decomposition (DMD) is a data-driven approach to discover system models, based on the theory of Koopman operators. Its primary advantage is that it casts the unknown system as a linear model in a transformed space of <italic>observables</italic>, thereby facilitating downstream analysis and increasing the possibility of achieving performance guarantees. Koopman operator theory was first introduced in the 1930s and has since gained popularity over the past two&#xa0;decades (<xref ref-type="bibr" rid="B20">Koopman, 1931</xref>; <xref ref-type="bibr" rid="B19">Koopman and Neumann, 1932</xref>). The renewed interest in this theory was primarily driven by recent advances in numerical methods through Koopman analysis, one such method is Dynamic Mode Decomposition (DMD) (<xref ref-type="bibr" rid="B33">Rowley et al., 2009</xref>; <xref ref-type="bibr" rid="B34">Schmid, 2010</xref>). DMD has been designed to effectively capture the low-order dynamics of a complex system and perform future predictions. It does so by superimposing the empirically computed DMD modes and corresponding DMD frequencies of the underlying system. Generally, the number of modes required to describe the system is significantly smaller than the dimension of the actual data set. Apart from the benefit of reduced computational effort, one primary advantage of DMD is its &#x201c;equation free&#x201d; nature. As a result, one does not need to know the complicated underlying physics and can model the system purely from data.</p>
<sec id="s3-2-1">
<title>3.2.1 The DMD algorithm</title>
<p>In our work, we have used the <italic>exact</italic> DMD algorithm developed by Tu and collaborators (<xref ref-type="bibr" rid="B38">Tu et al., 2013</xref>; <xref ref-type="bibr" rid="B21">Kutz et al., 2016</xref>). DMD requires a pair of snapshot matrices in order to generate a linear model approximating the desired dynamical system. We sample the state <italic>x</italic> at different time instants (snapshots) and stack them to form snapshot matrices <italic>X</italic> and <italic>X</italic>&#x2032;, where <italic>X</italic>&#x2032; is just one snapshot ahead of the original snapshot matrix <italic>X</italic>.<disp-formula id="e18">
<mml:math id="m28">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>X</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>In Eq. <xref ref-type="disp-formula" rid="e18">18</xref> <italic>t</italic>
<sub>
<italic>k</italic>&#x2b;1</sub> &#x3d; <italic>t</italic>
<sub>
<italic>k</italic>
</sub> &#x2b; &#x394;<italic>t</italic>, where <italic>k</italic> &#x3d; 0, 1, &#x2026;, <italic>m</italic> and &#x394;<italic>t</italic> is the time step between two consecutive snapshots. Without loss of generality, we can assume that the snapshots start from <italic>t</italic> &#x3d; 0, i.e. <italic>t</italic>
<sub>0</sub> &#x3d; 0. Under the assumption of uniform sampling, <italic>t</italic>
<sub>
<italic>m</italic>
</sub> &#x3d; <italic>m</italic>&#x394;<italic>t</italic>. The DMD algorithm seeks the best fit linear operator <italic>A</italic> in least-square sense that relates the two snapshot matrices such that<disp-formula id="e19">
<mml:math id="m29">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x2248;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>X</mml:mi>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(19)</label>
</disp-formula>and attempts to extract the eigenvalues and eigenvectors of <italic>A</italic> in an efficient manner. The <italic>A</italic> matrix resembles the finite-dimensional discrete-time Koopman operator where we choose our state variables as the observables, i.e., <italic>g</italic>(<italic>x</italic>) &#x3d; <italic>x</italic>, where <italic>g</italic> is the observable or measurement function. Our objective is to find the eigenvalues and eigenvectors of <italic>A</italic> and use them to model the time evolution of our state variables. It is not necessary that we use the entire data set to build the snapshot matrices; DMD allows us to sample the original data set in a flexible manner, for example in a randomized approach to select a suitable sampling region (<xref ref-type="bibr" rid="B13">Erichson et al., 2019</xref>). In the current problem, the snapshot matrices are created by stacking the Cartesian coordinates of the polygonal shapes representing the ice hazards over the training time horizon. The DMD algorithm itself can be broken down into five steps.<list list-type="simple">
<list-item>
<p>&#x2022; <bold>Step 1:</bold> Singular value decomposition (SVD) of snapshot matrix <italic>X</italic>,</p>
</list-item>
</list>
<disp-formula id="e20">
<mml:math id="m30">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>X</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2248;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(20)</label>
</disp-formula>where <italic>U</italic> contains the left singular vectors, &#x3a3; is a diagonal matrix of singular values arranged in a hierarchical manner and <italic>V</italic> contains the right singular vectors. In practice, it is sufficient to compute the reduced SVD, where only first few (<italic>r</italic>) columns and rows of respectively <italic>U</italic> and <italic>V</italic> are retained with first <italic>r</italic> singular values of &#x3a3;. The SVD energy thresholding algorithm is used to determine <italic>r</italic> and then truncate our <italic>U</italic>, &#x3a3; and <italic>V</italic> matrices accordingly (<xref ref-type="bibr" rid="B22">Kutz, 2013</xref>).<list list-type="simple">
<list-item>
<p>&#x2022; <bold>Step 2:</bold> <italic>A</italic> is obtained by</p>
</list-item>
</list>
<disp-formula id="e21">
<mml:math id="m31">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>A</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2020;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(21)</label>
</disp-formula>
<italic>A</italic> is then projected onto a lower dimensional space using a similarity transformation,<disp-formula id="e22">
<mml:math id="m32">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi>A</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(22)</label>
</disp-formula>An important observation here is that the eigenvalues of <italic>A</italic> are adequately approximated by the eigenvalues of <italic>A</italic>
<sub>
<italic>r</italic>
</sub>.<list list-type="simple">
<list-item>
<p>&#x2022; <bold>Step 3:</bold> The spectral decomposition of <italic>A</italic>
<sub>
<italic>r</italic>
</sub> is computed,</p>
</list-item>
</list>
<disp-formula id="e23">
<mml:math id="m33">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>W</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mi>W</mml:mi>
<mml:mi mathvariant="normal">&#x39b;</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(23)</label>
</disp-formula>
<italic>W</italic> is the matrix of eigenvectors of <italic>A</italic>
<sub>
<italic>r</italic>
</sub> and &#x39b; is the diagonal matrix containing its eigenvalues.<list list-type="simple">
<list-item>
<p>&#x2022; <bold>Step 4:</bold> The DMD modes are given by the columns of &#x3a6;,</p>
</list-item>
</list>
<disp-formula id="e24">
<mml:math id="m34">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mi>W</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(24)</label>
</disp-formula>These DMD modes approximate the eigenvectors of the high dimensional matrix <italic>A</italic> (<xref ref-type="bibr" rid="B38">Tu et al., 2013</xref>; <xref ref-type="bibr" rid="B21">Kutz et al., 2016</xref>).<list list-type="simple">
<list-item>
<p>&#x2022; <bold>Step 5:</bold> Finally, the DMD predicted state <inline-formula id="inf9">
<mml:math id="m35">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> at any time <italic>t</italic> is given by</p>
</list-item>
</list>
<disp-formula id="e25">
<mml:math id="m36">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi>b</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(25)</label>
</disp-formula>where <italic>b</italic> &#x3d; &#x3a6;<sup>&#x2020;</sup>
<italic>x</italic>
<sub>0</sub>, and <italic>x</italic>
<sub>0</sub> &#x3d; <italic>x</italic> (<italic>t</italic>
<sub>0</sub>).<list list-type="simple">
<list-item>
<p>&#x2009;&#x2009;&#x2009;&#x2009;&#x2009;<italic>x</italic>
<sub>0</sub> is the first column of <italic>X</italic> and, &#x3a9; is the vector of DMD frequencies (<italic>&#x3c9;</italic>) which are obtained from DMD eigenvalues using the relation <inline-formula id="inf10">
<mml:math id="m37">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>ln</mml:mi>
<mml:mo stretchy="false">&#x2223;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo stretchy="false">&#x2223;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
</inline-formula>, with <italic>&#x3bb;</italic> being the diagonal elements of &#x39b;.</p>
</list-item>
</list>
</p>
<p>The DMD algorithm was incorporated into the Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> with backtracking path planner as a way to predict the time evolution of the dynamics of the ice obstacles. DMD will predict the motion past the original ten time steps from the Aviation Weather Service (AWS) data. For this particular data set, DMD continued to predict the motion of the obstacles for a total of 100 time steps forward in time. The snapshot matrices are created by using vertex location of the obstacles at each time step. The first ten time steps are modeled to recreate how the ice phenomena would change based on initial conditions from AWS, this is a limitation as we apply a data driven technique on simulated data rather than the actual data itself. Techniques to overcome this limitation will be addressed in future work. Since AWS data is continuously updated, an online DMD method can also be applied to check the DMD&#x2019;s applicability in real-time <xref ref-type="bibr" rid="B40">Zhang et al. (2019)</xref>; <xref ref-type="bibr" rid="B25">Nayak et al. (2021a)</xref> for the time-varying AWS data.</p>
</sec>
</sec>
</sec>
<sec sec-type="results" id="s4">
<title>4 Results</title>
<p>This section presents path-planning results with static and dynamic obstacles and a resource constraint. All computations are performed on an AMD Ryzen 9 5900HX CPU with Radeon Graphics at 3.30 GHz and 16.0&#xa0;GB RAM on a Microsoft Windows system using MATLAB&#xae; version R2022a. The map is bound by the 0&#x2013;100&#xa0;m in the <italic>x</italic> and <italic>y</italic> direction. The initial pose <italic>O</italic> &#x3d; (10, 5, 90&#xb0;) is shown as the green dot, and the final pose <italic>G</italic> &#x3d; (90, 80, 0&#xb0;) is shown as the red dot for the cases. The agent has a turn radius of 8&#xa0;m and a velocity of 3&#xa0;m/<italic>s</italic>. The <inline-formula id="inf11">
<mml:math id="m38">
<mml:mi mathvariant="script">D</mml:mi>
</mml:math>
</inline-formula> auxiliary grid was created using the agent&#x2019;s constraints as shown by <italic>&#x3b4;x</italic> &#x3d; <italic>&#x3b4;y</italic> &#x3d; 3&#xa0;m and <italic>&#x3b4;&#x3c8;</italic> &#x3d; 0.375<italic>rad</italic>. All cases contain six static obstacles outlined in blue and filled in with black. There is one Gaussian distribution acting as the noise level constraint that the agent must be able to satisfy. The magenta square is the closed node of grid <inline-formula id="inf12">
<mml:math id="m39">
<mml:mi mathvariant="script">D</mml:mi>
</mml:math>
</inline-formula> closest to the goal.</p>
<p>AWS ice hazard data from 23 June 2022 was used in this paper (red outlined with pink fill) as the starting location and shape of the dynamic obstacles. Various cases of obstacle dynamics were considered. These are labeled in <xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref> under the column &#x201c;Motion Type&#x201d; column. The first letter is either &#x201c;D&#x201d;, for decreasing, &#x201c;I&#x201d;, for increasing, and &#x201c;B&#x201d; for both increasing and decreasing obstacles (mixed obstacle type). &#x201c;NT&#x201d; stands for no translation motion, and &#x201c;T&#x201d; stands for translation motion. The evolution of the dynamic ice obstacles is shown by gray outlines. The results of DMD reduced order modeling of these obstacles&#x2019; dynamics are shown in <xref ref-type="fig" rid="F3">Figures 3</xref>&#x2013;<xref ref-type="fig" rid="F8">8</xref>. The left plots on <xref ref-type="fig" rid="F3">Figures 3</xref>&#x2013;<xref ref-type="fig" rid="F8">8</xref> illustrate the first ten time steps of the ground truth obstacle dynamics (shown in blue) and their DMD reconstruction (shown in dotted red). The right plots show the DMD mean relative two norm error of the approximation to training data for each obstacle. The DMD approach is able to recreate the ground truth with a high degree of accuracy. The total time taken to learn the surrogate dynamics for all six cases is on the order of 1&#xa0;min. As a benchmark, the same cases were run on the Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> without backtracking. The algorithm was unable to find the path for all six cases. The time it took for the algorithm to end is recorded in <xref ref-type="table" rid="T1">Table 1</xref>, in the range of 10&#x2013;15&#xa0;s.Results of six separate cases are shown in <xref ref-type="table" rid="T2">Table 2</xref>. These are described individually below.<list list-type="simple">
<list-item>
<p>&#x2022; Case 1. This is a &#x201c;DNT&#x201d; scenario, shown in <xref ref-type="fig" rid="F9">Figure 9</xref>. In other words, the dynamic obstacles are all decreasing in size and not translating. The <inline-formula id="inf13">
<mml:math id="m40">
<mml:mi mathvariant="script">BH</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> algorithm is able to reach its goal pose in 5.31&#xa0;s (compute time), returning a path length of 143.99 units. During the graph search process, the resource constraint is violated on numerous occasions, triggering the backtracking routine. There were a total of 339 instances of backtracking performed in this search. Note that this case is &#x201c;easy&#x201d; in the sense that all obstacles decrease in size over time, clearing up more flight space as time passes.</p>
</list-item>
<list-item>
<p>&#x2022; Case 2. This is a &#x201c;INT&#x201d; scenario in which the obstacles all expand so rapidly that they overlap beyond a certain point before the agent can pass through in between them (see snapshot 33 of 50 in <xref ref-type="fig" rid="F10">Figure 10</xref>). The agent is unable to pass between the two obstacles in the middle because of the resource constraint. Eventually, the obstacle on the right nearly engulfs the goal location such that it is not possible to achieve the desired pose of 0 deg heading. In this case involving aggressively expanding dynamic obstacles, no solution exists.</p>
</list-item>
<list-item>
<p>&#x2022; Case 3. This represents a &#x201c;BNT&#x201d; scenario with a mixture of expanding and shrinking obstacles, none translating (see <xref ref-type="fig" rid="F11">Figure 11</xref>). The goal is reached with a path length, compute time and backtracking characteristics that are comparable to Case 1 (see <xref ref-type="table" rid="T2">Table 2</xref>). This is because the &#x201c;active&#x201d; obstacles (the two on the left) behave in the same way as Case 1.</p>
</list-item>
<list-item>
<p>&#x2022; Cases 4&#x2013;6. All of these scenarios include translational motion of the obstacles. <xref ref-type="fig" rid="F12">Figure 12</xref> considers shrinking obstacles (scenario &#x201c;DT&#x201d;), <xref ref-type="fig" rid="F13">Figure 13</xref> considers growing obstacles; <xref ref-type="fig" rid="F14">Figure 14</xref> considers a mixed collection of obstacles in addition to translation. All cases are able to reach the goal with characteristics as shown in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
</list-item>
</list>It is not surprising that the scenarios involving obstacles of growing size require the backtracking procedure to be activated most frequently (702 backtracking instances required for &#x201c;INT&#x201d;, without success, of course). The optimization routine tries its best to find a keyhole trajectory between the two obstacles in the middle of the domain as the other options are closed out due to overlapping obstacles. However, the open region between the two obstacles in the middle is also a region of heavy loading, causing multiple failed attempts at backtracking. The most benign case for backtracking is &#x201c;DT&#x201d; as the obstacles decrease in size and generally tend to steer clear of the UAV&#x2019;s path. Finally, note that the compute time for all scenarios that admit a valid solution is relatively small. Numbers shown in this Table do not include the time taken to learn the DMD reduced order models of the obstacles (adds a few additional seconds, less than 10&#xa0;s per case). Recall that resource constrained path planning is NP hard and while the optimal solution can be found using mixed integer linear programming (MILP), the computational load is prohibitive. Alternatively, the Lagrange Relaxation approach <xref ref-type="bibr" rid="B4">Ahujia et al. (1993)</xref>; <xref ref-type="bibr" rid="B6">Bertsekas (1999)</xref> can be employed to transform the problem into a dual problem that leads to a relaxation of the constraint coupling. It uses Dijkstra&#x2019;s algorithm in an iterative manner by modifying the edge weights until the constraint is met. While the LARAC approach improves upon the MILP formulation, it still requires two orders of magnitude greater compute time that the proposed backtracking method. Graph search without backtracking (e.g., traditional hybrid <italic>A</italic>&#x2217;) is either severely suboptimal or simply infeasible because of the naive manner in which it classifies nodes as inadmissible.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Hybrid <italic>A</italic>
<sup>&#x22c6;</sup> results with ice dynamic obstacles.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Motion type</th>
<th align="left">Path length</th>
<th align="left">Noise load</th>
<th align="left">Number steps</th>
<th align="left">Compute time (s)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">DNT</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">12.932,944</td>
</tr>
<tr>
<td align="left">INT</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">10.329,230</td>
</tr>
<tr>
<td align="left">BNT</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">11.671,959</td>
</tr>
<tr>
<td align="left">DT</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">15.960,492</td>
</tr>
<tr>
<td align="left">IT</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">15.441,393</td>
</tr>
<tr>
<td align="left">BT</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">14.980,712</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Backtracking hybrid <italic>A</italic>
<sup>&#x22c6;</sup> results with ice dynamic obstacles.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Motion type</th>
<th align="left">Path length</th>
<th align="left">Noise load</th>
<th align="left">Number steps</th>
<th align="left">BT length</th>
<th align="left">Compute time (s)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">DNT</td>
<td align="left">143.989238</td>
<td align="left">3.479451</td>
<td align="left">50</td>
<td align="left">339</td>
<td align="left">5.31274</td>
</tr>
<tr>
<td align="left">INT</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">(fail)</td>
<td align="left">702</td>
<td align="left">(fail)</td>
</tr>
<tr>
<td align="left">BNT</td>
<td align="left">143.989238</td>
<td align="left">3.479451</td>
<td align="left">50</td>
<td align="left">308</td>
<td align="left">5.075215</td>
</tr>
<tr>
<td align="left">DT</td>
<td align="left">140.987803</td>
<td align="left">4.246508</td>
<td align="left">49</td>
<td align="left">219</td>
<td align="left">4.624528</td>
</tr>
<tr>
<td align="left">IT</td>
<td align="left">140.987803</td>
<td align="left">4.246508</td>
<td align="left">49</td>
<td align="left">307</td>
<td align="left">5.211055</td>
</tr>
<tr>
<td align="left">BT</td>
<td align="left">143.987803</td>
<td align="left">3.217498</td>
<td align="left">50</td>
<td align="left">329</td>
<td align="left">5.911410</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Four snapshots <bold>(A&#x002D;D)</bold> of the path-planning process for the case with shrinking obstacles and no translational motion.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g009.tif"/>
</fig>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Four snapshots <bold>(A&#x002D;D)</bold> of the path-planning process for the case with expanding obstacles and no translational motion. Note that no solution is found as obstacles overlap <bold>(C, D)</bold> and the resource constraint dominates open gaps.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g010.tif"/>
</fig>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Four snapshots <bold>(A&#x002D;D)</bold> of the path-planning process for the case with expanding and shrinking obstacles and no translational motion.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g011.tif"/>
</fig>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Four snapshots <bold>(A&#x002D;D)</bold> of the path-planning process for the case with shrinking obstacles and translational motion. This is the most benign planning scenario.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g012.tif"/>
</fig>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Four snapshots <bold>(A&#x002D;D)</bold> of the path-planning process for the case with expanding obstacles and translational motion.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g013.tif"/>
</fig>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>Snapshots of the Path-Planning Process for the Case with Shrinking and Expanding Obstacles as well as Having Translational Motion. <bold>(A)</bold> DNT, <bold>(B)</bold> DT, <bold>(C)</bold> INT, <bold>(D)</bold> IT, <bold>(E)</bold> BNT. <bold>(F)</bold> BT.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g014.tif"/>
</fig>
<p>The load accumulated by the noise constraint is shown for the six cases in <xref ref-type="table" rid="T2">Table 2</xref> under the &#x201c;Noise Load&#x201d; column. For each case that reached the goal, the load was below the maximum constraint of 6. The backtracked paths for each of the six cases are shown on the plots of <xref ref-type="fig" rid="F15">Figure 15</xref>. The green line is the path that the agent took from the start to the goal node, while the blue and orange lines are the backtracked paths that the agent did not take. The blue and orange paths are to better visual the backtracked paths, to differentiate the different backtracked paths. The blue lines show the full backtracked path, while the orange is showing where the backtrack path begins. While the dynamic obstacles moved in different directions and grew or shrank in each case, the path planner found similar paths with loading of the noise constraint and the path length to be in the same magnitude. The time is for each case is 4&#x2013;6&#xa0;s.</p>
<fig id="F15" position="float">
<label>FIGURE 15</label>
<caption>
<p>Illustration of backtracking performed in all six path-planning scenarios: <bold>(A)</bold> DNT, <bold>(B)</bold> DT, <bold>(C)</bold> INT, <bold>(D)</bold> IT, <bold>(E)</bold> BNT, and <bold>(F)</bold> BT. The orange paths indicate the point during the backtracking process that the stopping criterion was met.</p>
</caption>
<graphic xlink:href="fpace-01-1076271-g015.tif"/>
</fig>
<p>As a final note, we point out that it is very easy to construct scenarios in which <inline-formula id="inf14">
<mml:math id="m41">
<mml:mi mathvariant="script">BH</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> will fail to generate a solution, e.g., an obstacle that expands rapidly to fill up most of the solution space. In cases like these, the presented approach as no mechanism to &#x201c;pick-up&#x201d; the search from a previously concluded search that ended in premature failure. We remind the reader that in this work, each instance of path-planning is considered as a stand-alone problem and there is no provision for re-planning. In its current state, the presented work is purely academic. An elaborate testing plan (both in simulation environments and actual flight tests) is needed to achieve the verification and validation of the proposed methodology. Results in this section demonstrate scalability of the presented approach. It is flight readiness will only be ascertained through rigorous testing in hardware.</p>
</sec>
<sec sec-type="conclusion" id="s5">
<title>5 Conclusion</title>
<p>This paper considers path planning with resource constraints and dynamic obstacles for a Dubins agent. Path planning with dynamic obstacles and resource constraints creates a more realistic model of what an agent will encounter during its missions. A DMD reduced-order modeling approach is developed to learn obstacle dynamics for a range of translational and shape deformation motions. The forecast location and shape of dynamic obstacles is provided to a backtracking hybrid <italic>A</italic>&#x2217; search for determination of the shortest path to the agent&#x2019;s goal pose. The backtracking hybrid-<italic>A</italic>&#x2217; algorithm is able to handle path-dependent resource constraints by receding the graph search when the resource constraint is violated. This allows load-shedding, leading to rapid discovery of keyholes around regions of high path loading.</p>
<p>While this study used initial ice data from the Aviation Weather Service (AWS), there is room for additional research in applying DMD recursively to AWS to better capture obstacle dynamics. The overall compute time of the proposed methodology is low compared to existing techniques for resource-constrained problems.</p>
<p>Future work includes further improvement in the efficiency of the algorithm in a 2D environment and integration of dynamic obstacles in a 3D environment. This entails improving the backtracking stopping criterion, and integration of the backtracking approach with other optimal path-planning techniques. Other areas of improvement include adding a re-planning module that can leverage results from previous cycles of planning. Of course, there is also the problem of flight integration and eventual certification of the presented path-planning approach through rigorous verification and validation techniques.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The raw data supporting the conclusion of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s7">
<title>Author contributions</title>
<p>AC: Coding DMD reduced order modeling, acquiring data from Aviation Weather Service, integrating all code and generating results, writing paper. BF: Developing and coding the backtracking hybrid A&#x2217;. IN: Support for DMD and writing <xref ref-type="sec" rid="s3-2">Section 3.2</xref>. SN: Development support for DMD and writing <xref ref-type="sec" rid="s3-2">Section 3.2</xref>. MK: Coordinating all research, acquiring funding for work, writing and revising the manuscript.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>The authors acknowledge support from the National Science Foundation award number 2132798 under the NRI 3.0: Innovations in Integration of Robotics Program.</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Administration</surname>
<given-names>F. A.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Faa history of noise</article-title>. (<comment>Last accessed June 18, 2022)</comment>.</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Administration</surname>
<given-names>F. A.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Federal aviation administration advisory circular, ac 00-45g, change 1</article-title>. (<comment>Last accessed Apr 7, 2022)</comment>.</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Administration</surname>
<given-names>F. A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>How to properly use an icing forecast - aviation weather</article-title>. (<comment>Last accessed Apr 7, 2022)</comment>.</citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Ahujia</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Magnanti</surname>
<given-names>T. L.</given-names>
</name>
<name>
<surname>Orlin</surname>
<given-names>J. B.</given-names>
</name>
</person-group> (<year>1993</year>). <source>Network flows: Theory, algorithms and applications</source>. <publisher-loc>New Jersey</publisher-loc>: <publisher-name>Rentice-Hall</publisher-name>.</citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Banzhaf</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Berinpanathan</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Nienh&#xfc;ser</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Marius Z&#xf6;llner</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>From g2 to g3 continuity: Continuous curvature rate steering functions for sampling-based nonholonomic motion planning</article-title>,&#x201d; in <source>In 2018 IEEE intelligent vehicles symposium</source>, <fpage>326</fpage>&#x2013;<lpage>333</lpage>. <pub-id pub-id-type="doi">10.1109/IVS.2018.8500653</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Bertsekas</surname>
<given-names>D. P.</given-names>
</name>
</person-group> (<year>1999</year>). <source>Nonlinear programming</source>.</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Botros</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Smith</surname>
<given-names>S. L.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Tunable trajectory planner using g3 curves</article-title>. <source>IEEE Trans. Intelligent Veh.</source> <volume>1</volume>, <fpage>273</fpage>&#x2013;<lpage>285</lpage>. <pub-id pub-id-type="doi">10.1109/TIV.2022.3141881</pub-id>,</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Broatch</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Garc&#xed;a-T&#xed;scar</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Roig</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Sharma</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Dynamic mode decomposition of the acoustic field in radial compressors</article-title>. <source>Aerosp. Sci. Technol.</source> <volume>90</volume>, <fpage>388</fpage>&#x2013;<lpage>400</lpage>. <pub-id pub-id-type="doi">10.1016/j.ast.2019.05.015</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Darbari</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Gupta</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Verma</surname>
<given-names>O. P.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Dynamic motion planning for aerial surveillance on a fixed-wing uav</article-title>,&#x201d; in <source>2017 international conference on unmanned aircraft systems (ICUAS)</source>, <fpage>488</fpage>&#x2013;<lpage>497</lpage>. <pub-id pub-id-type="doi">10.1109/ICUAS.2017.7991463</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dijkstra</surname>
<given-names>E. W.</given-names>
</name>
</person-group> (<year>1959</year>). <article-title>A note on two problems in connexion with graphs</article-title>. <source>Numer. Math.</source> <volume>1</volume>, <fpage>269</fpage>&#x2013;<lpage>271</lpage>. <pub-id pub-id-type="doi">10.1007/bf01386390</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Dolgov</surname>
<given-names>D. A.</given-names>
</name>
<name>
<surname>Thrun</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Montemerlo</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Diebel</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2008</year>). <source>Practical search techniques in path planning for autonomous driving</source>.</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dubins</surname>
<given-names>L. E.</given-names>
</name>
</person-group> (<year>1957</year>). <article-title>On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents</article-title>. <source>Am. J. Math.</source> <volume>79</volume>, <fpage>497</fpage>. <pub-id pub-id-type="doi">10.2307/2372560</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Erichson</surname>
<given-names>N. B.</given-names>
</name>
<name>
<surname>Mathelin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Kutz</surname>
<given-names>J. N.</given-names>
</name>
<name>
<surname>Brunton</surname>
<given-names>S. L.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Randomized dynamic mode decomposition</article-title>. <source>SIAM J. Appl. Dyn. Syst.</source> <volume>18</volume>, <fpage>1867</fpage>&#x2013;<lpage>1891</lpage>. <pub-id pub-id-type="doi">10.1137/18m1215013</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Ford</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Aggarwal</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Manyam</surname>
<given-names>S. G.</given-names>
</name>
<name>
<surname>Casbeer</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Grymin</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>Backtracking hybrid &#x391;&#x2a; for resource constrained path planning</article-title>,&#x201d; in <source>AIAA SCITECH 2022 forum</source>, <fpage>1</fpage>&#x2013;<lpage>19</lpage>. <pub-id pub-id-type="doi">10.2514/6.2022-1592</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Fujimura</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>1991</year>). <source>Motion planning in dynamic environments</source>. <publisher-name>Springer-Verlag</publisher-name>.</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Han</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Dynamic mode decomposition and reconstruction of tip leakage vortex in a mixed flow pump as turbine at pump mode</article-title>. <source>Renew. Energy</source> <volume>155</volume>, <fpage>725</fpage>&#x2013;<lpage>734</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2020.03.142</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kabamba</surname>
<given-names>P. T.</given-names>
</name>
<name>
<surname>Meerkov</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Zeitz</surname>
<given-names>F. H.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Optimal path planning for unmanned combat aerial vehicles to defeat radar tracking</article-title>. <source>J. Guid. Control, Dyn.</source> <volume>29</volume>, <fpage>279</fpage>&#x2013;<lpage>288</lpage>. <pub-id pub-id-type="doi">10.2514/1.14303</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kim</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hespanha</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2004</year>). &#x201c;<article-title>Discrete approximations to continuous shortest-path: Application to minimum-risk path planning for groups of uavs</article-title>,&#x201d; in <source>42nd IEEE conference on decision and control</source>, <volume>2</volume>, <fpage>1734</fpage>&#x2013;<lpage>1740</lpage>. <pub-id pub-id-type="doi">10.1109/CDC.2003.1272863</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Koopman</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Neumann</surname>
<given-names>J. v.</given-names>
</name>
</person-group> (<year>1932</year>). <article-title>Dynamical systems of continuous spectra</article-title>. <source>Proc. Natl. Acad. Sci. U. S. A.</source> <volume>18</volume>, <fpage>255</fpage>&#x2013;<lpage>263</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.18.3.255</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Koopman</surname>
<given-names>B. O.</given-names>
</name>
</person-group> (<year>1931</year>). <article-title>Hamiltonian systems and transformation in hilbert space</article-title>. <source>Proc. Natl. Acad. Sci. U. S. A.</source> <volume>17</volume>, <fpage>315</fpage>&#x2013;<lpage>318</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.17.5.315</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kutz</surname>
<given-names>J. N.</given-names>
</name>
<name>
<surname>Brunton</surname>
<given-names>S. L.</given-names>
</name>
<name>
<surname>Brunton</surname>
<given-names>B. W.</given-names>
</name>
<name>
<surname>Proctor</surname>
<given-names>J. L.</given-names>
</name>
</person-group> (<year>2016</year>). <source>Dynamic mode decomposition: Data-driven modeling of complex systems (SIAM)</source>.</citation>
</ref>
<ref id="B22">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kutz</surname>
<given-names>J. N.</given-names>
</name>
</person-group> (<year>2013</year>). <source>Data-driven modeling &#x26; scientific computation: Methods for complex systems &#x26; big data</source>. <publisher-name>Oxford University Press</publisher-name>.</citation>
</ref>
<ref id="B23">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>LaValle</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2006</year>). <source>Planning algorithms</source>. <publisher-loc>Cambridge</publisher-loc>: <publisher-name>Cambridge University Press</publisher-name>. <pub-id pub-id-type="doi">10.1017/CBO97805115468</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Manyam</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Rathinam</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Casbeer</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Garcia</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Tightly bounding the shortest dubins paths through a sequence of points</article-title>. <source>J. Intell. Robot. Syst.</source> <volume>495</volume>, <fpage>495</fpage>&#x2013;<lpage>511</lpage>. <pub-id pub-id-type="doi">10.1007/s10846-016-0459-4</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Nayak</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Teixeira</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2021a</year>). &#x201c;<article-title>Detecting equilibrium state of dynamical systems using sliding-window reduced-order dynamic mode decomposition</article-title>,&#x201d; in <source>AIAA scitech 2021 forum</source>, <fpage>1858</fpage>.</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nayak</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Teixeira</surname>
<given-names>F. L.</given-names>
</name>
</person-group> (<year>2021b</year>). <article-title>Detection and prediction of equilibrium states in kinetic plasma simulations via mode tracking using reduced-order dynamic mode decomposition</article-title>. <source>J. Comput. Phys.</source> <volume>447</volume>, <fpage>110671</fpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2021.110671</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Nayak</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Teixeira</surname>
<given-names>F. L.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>Data-driven modeling of high-q cavity fields using dynamic mode decomposition</article-title>,&#x201d; in <source>2022 IEEE international symposium on antennas and propagation and USNC-ursi radio science meeting</source> (<publisher-loc>Denver, CO</publisher-loc>: <publisher-name>AP-S/URSI</publisher-name>), <conf-date>10-15 July, 2022</conf-date>, <fpage>1118</fpage>&#x2013;<lpage>1119</lpage>. <pub-id pub-id-type="doi">10.1109/AP-S/USNC-URSI47032.2022.9886176</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Oliveira</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Lima</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Cirillo</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>M&#xe5;rtensson</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wahlberg</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Trajectory generation using sharpness continuous dubins-like paths with applications in control of heavy duty vehicles</article-title>,&#x201d; in <source>2018 European control conference (ECC)</source>, <fpage>1</fpage>&#x2013;<lpage>17</lpage>. <pub-id pub-id-type="doi">10.23919/ECC.2018.8550279</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Petereit</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Emter</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Frey</surname>
<given-names>C. W.</given-names>
</name>
<name>
<surname>Kopfstedt</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Beutel</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2012</year>). &#x201c;<article-title>Application of hybrid a&#x2a; to an autonomous mobile robot for path planning in unstructured outdoor environments</article-title>,&#x201d; in <source>ROBOTIK 2012; 7th German conference on Robotics</source>, <fpage>1</fpage>&#x2013;<lpage>6</lpage>.</citation>
</ref>
<ref id="B30">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Phillips</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Likhachev</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Sipp: Safe interval path planning for dynamic environments</article-title>,&#x201d; in <source>Icra</source>, <fpage>5628</fpage>&#x2013;<lpage>5635</lpage>.</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reeds</surname>
<given-names>J. A.</given-names>
</name>
<name>
<surname>Shepp</surname>
<given-names>L. A.</given-names>
</name>
</person-group> (<year>1990</year>). <article-title>Optimal paths for a car that goes both forwards and backwards</article-title>. <source>Pac. J. Math.</source> <volume>145</volume>, <fpage>367</fpage>&#x2013;<lpage>393</lpage>. <pub-id pub-id-type="doi">10.2140/pjm.1990.145.367</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Richards</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Sharma</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Ward</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2004</year>). &#x201c;<article-title>A hybrid a&#x2a;/automaton approach to on-line path planning with obstacle avoidance</article-title>,&#x201d; in <source>AIAA 1st intelligent systems technical conference</source>, <fpage>1</fpage>&#x2013;<lpage>17</lpage>. <pub-id pub-id-type="doi">10.2514/6.2004-6229</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rowley</surname>
<given-names>C. W.</given-names>
</name>
<name>
<surname>Mezi&#x107;</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Bagheri</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Schlatter</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Henningson</surname>
<given-names>D. S.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Spectral analysis of nonlinear flows</article-title>. <source>J. Fluid Mech.</source> <volume>641</volume>, <fpage>115</fpage>&#x2013;<lpage>127</lpage>. <pub-id pub-id-type="doi">10.1017/S0022112009992059</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Schmid</surname>
<given-names>P. J.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Dynamic mode decomposition of numerical and experimental data</article-title>. <source>J. fluid Mech.</source> <volume>656</volume>, <fpage>5</fpage>&#x2013;<lpage>28</lpage>. <pub-id pub-id-type="doi">10.1017/s0022112010001217</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Schmid</surname>
<given-names>P. J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Juniper</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Pust</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Applications of the dynamic mode decomposition</article-title>. <source>Theor. Comput. Fluid Dyn.</source> <volume>25</volume>, <fpage>249</fpage>&#x2013;<lpage>259</lpage>. <pub-id pub-id-type="doi">10.1007/s00162-010-0203-9</pub-id>
</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shkel</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Lumelsky</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2001</year>). <article-title>Classification of the dubins set</article-title>. <source>Robotics Aut. Syst.</source> <volume>34</volume>, <fpage>179</fpage>&#x2013;<lpage>202</lpage>. <pub-id pub-id-type="doi">10.1016/S0921-8890(00)00127-5</pub-id>
</citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Thomas</surname>
<given-names>B. W.</given-names>
</name>
<name>
<surname>Calogiuri</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Hewitt</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>An exact bidirectional <italic>a</italic>
<sup>&#x22c6;</sup> approach for solving resource-constrained shortest path problems</article-title>. <source>Networks</source> <volume>73</volume>, <fpage>187</fpage>&#x2013;<lpage>205</lpage>. <pub-id pub-id-type="doi">10.1002/net.21856</pub-id>
</citation>
</ref>
<ref id="B38">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Tu</surname>
<given-names>J. H.</given-names>
</name>
<name>
<surname>Rowley</surname>
<given-names>C. W.</given-names>
</name>
<name>
<surname>Luchtenburg</surname>
<given-names>D. M.</given-names>
</name>
<name>
<surname>Brunton</surname>
<given-names>S. L.</given-names>
</name>
<name>
<surname>Kutz</surname>
<given-names>J. N.</given-names>
</name>
</person-group> (<year>2013</year>). <source>On dynamic mode decomposition: Theory and applications</source>. <comment>arXiv preprint arXiv:1312.0041</comment>.</citation>
</ref>
<ref id="B39">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zabarankin</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Uryasev</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Murphey</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Aircraft routing under the risk of detection</article-title>. <source>Nav. Res. Logist. (NRL)</source> <volume>53</volume>, <fpage>728</fpage>&#x2013;<lpage>747</lpage>. <pub-id pub-id-type="doi">10.1002/nav.20165</pub-id>
</citation>
</ref>
<ref id="B40">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Rowley</surname>
<given-names>C. W.</given-names>
</name>
<name>
<surname>Deem</surname>
<given-names>E. A.</given-names>
</name>
<name>
<surname>Cattafesta</surname>
<given-names>L. N.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Online dynamic mode decomposition for time-varying systems</article-title>. <source>SIAM J. Appl. Dyn. Syst.</source> <volume>18</volume>, <fpage>1586</fpage>&#x2013;<lpage>1609</lpage>. <pub-id pub-id-type="doi">10.1137/18m1192329</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>