Vector Field UAV Guidance for Path Following and Obstacle Avoidance with Minimal Deviation

Open AccessEngineering NotesVector Field UAV Guidance for Path Following and Obstacle Avoidance with Minimal DeviationJay P. Wilhelm and Garrett ClemJay P. WilhelmOhio University, Athens, Ohio 45701*Assistant Professor, Mechanical Engineering, Russ College of Engineering and Technology, 251 Stocker Center.Search for more papers by this author and Garrett ClemOhio University, Athens, Ohio 45701†Graduate Research Assistant, Mechanical Engineering, Russ College of Engineering and Technology, 251 Stocker Center.Search for more papers by this authorPublished Online:21 Apr 2019https://doi.org/10.2514/1.G004053SectionsRead Now ToolsAdd to favoritesDownload citationTrack citations ShareShare onFacebookTwitterLinked InRedditEmail AboutI. IntroductionUnmanned aerial vehicles (UAVs) are pilotless aircraft used by military, police, and civilian communities for tasks such as damage assessment [1], surveying [2], and target tracking [3,4]. Many UAV tasks depend on a vehicle’s ability to autonomously follow a mission path while potentially avoiding obstacles and no-fly zones. Flight paths are typically followed by implementing guidance systems such as discrete sets of waypoints [5] that are usually generated on a remote ground station and then wirelessly relayed to the UAV’s autopilot. Fixed-path-following guidance systems using waypoints are typically not capable of avoiding newly discovered obstacles without partially or completely replanning the path. Updating missions can be impossible under certain conditions, such as flying outside of communication range, or when obstacles/no-fly zones are discovered after planning. Guidance that autonomously routes a UAV around an obstacle without path planning will be beneficial in situations when the UAV is not able to communicate with the ground station or does not contain the ability to plan a route on board the aircraft.Heading guidance generated from vector fields (VF) are a candidate for UAVs to implement path or trajectory following and avoidance of newly discovered obstacle or no-fly zones. This paper focuses on optimization of a gradient vector field (GVF) UAV path following obstacle avoidance method that minimally deviates from an original path. The GVF consists of individually weighted convergence and circulation components that generate guidance vectors toward and then along a path, respectively. The objectives of this work are to evaluate a GVF optimization routine for minimal path deviation during an obstacle encounter, compare to existing widely used guidance methods, and verify performance of edge cases experimentally. Motivation for using VFs is to decrease deviation from original designated paths of ground reconnaissance UAVs that are maneuvering along path segments when encountering no-fly zones. The contributions of this work include identification of optimization cost functions that enable GVF guidance to be used for obstacle avoidance, implementation of the GVF component avoidance system specific to fixed-wing UAVs, and experimental validation of obstacle encounters using worst-case scenarios.This paper is structured in the following manner: Sec. II overviews VF guidance methods. Section III describes the methods used to develop an optimizer and measure performance. Section IV evaluates the developed system using simulations that compare path following obstacle encounters to existing literature. Section V details a set of experimental results that demonstrate a worst-case scenario of an encounter with an obstacle that is close to the vehicles turning radius. Finally, Sec. VI discusses the analysis and provides a conclusion of the developed method’s performance and impact.II. Literature ReviewTracking a planned path is essential for safe and efficient operation of UAVs. Obstacles or no-fly zones, whose positions are assumed to be known and discovered after a path has been planned, would traditionally require that a new obstacle-free and flyable path be recalculated and relayed to the UAV. Typically, UAV paths between areas of interest are generated using various algorithms [6–14] that produce a series of finite waypoints and are used in commercial UAV autopilots, such as the Piccolo [15], Kestral [16], and Pixhawk [17]. Waypoints are then tracked or followed using control algorithms tuned for a specific vehicle [18–20]. Avoiding obstacles with waypoint guidance can be accomplished by creating diversion points off the planned path and outside of the obstacle by recomputing segments or the entire set of waypoints [21,22]. The use of waypoints to avoid obstacles will require a partial or complete mission replan typically consisting of straight-line segments. A single diversion waypoint is enough to direct the UAV away from the obstacle; however, this might result in excess cross-track error or deviation from the planned path. Increasing the number of deviation waypoints will minimize the path deviation error until a waypoint spacing limit is met, determined by the vehicle dynamics. The high-density waypoint path might result in missed waypoints in wind conditions, requiring the vehicle to either move on or turn around. Instead, a trajectory-following guidance system might completely minimize the path deviation and avoid shortfalls of using waypoints.Methods for obstacle avoidance guidance using heading direction VF can be found in potential field (PF) [23–25] and virtual force field (VFF) guidance [3,26–32]. PF relies on potential flow elements that result in a velocity vector that can be used by a vehicle. PF is based on the principle of artificial attractive and repulsive potentials acting on a point mass. Guidance vectors are generated that pull a system to the desired goal while avoiding static and dynamic obstacles [33]. VFF employs the use of artificial attractive and repulsive forces that direct a UAV toward a goal while locally pushing away from nearby obstacles [33]. Drawbacks to PF were identified in [34] consisting of local minimum and oscillations in corridors. PF local minimums occur when closely spaced obstacle potentials produce a well on the descent gradient where a premature stable point is reached. Proposed solutions to local minimum include object clustering and virtual waypoint method [35], virtual escaping route [36], and use of navigation functions [22]. Oscillations in PF were addressed in [37,38]. In addition to local minimum and oscillations, PF may not be ideal for providing guidance to return to a path after avoiding an obstacle. Once the obstacle has been avoided, the PF attractive goal will direct the UAV in a straight path that might not lie along the original path. VFF and PF may introduce null guidance singularities, cause excess deviation from the desired path, and only provide guidance for converging to a singular point [23,24].Heading vectors not created from PF or VFF can produce guidance to converge and circulate a previously generated path and are known as a path following vector field (PFVF). Comparison between PFVFs and waypoint guidance techniques was presented in [39], where each method was evaluated based on its complexity, robustness, and accuracy. The two most prominent methods for generating PFVFs for path following consist of the Lyapunov VF (LVF) [3,26–29,40–45] and gradient VF (GVF) [30–32,46] methods. There is an additional PFVF method, similar to GVF, that includes the ability to guide vehicles around obstacles using 3D surfaces to represent paths and obstacles where intersections create a guidance heading [47,48]. The surface intersection method was experimentally verified for convergence to the path. Performance could potentially be optimized during obstacle encounters to decrease original path deviation [47]. The GV, LVF, and surface intersection method do not account for vehicle turn rate limitations and can highly deviate from an original path due to avoidance of an obstacle or no-fly zone.LVFs are based on fundamental sets of Lyapunov functions that represent a path and can be used to generate heading guidance for vehicle convergence and following of straight and circular paths as described in [26]. Additional LVF path shapes beyond straight and circular can be selectively activated throughout flight as demonstrated in [26–28,49]. LVF for curved path following was presented in [29], which eliminates the need to switch between Lyapunov functions that represent an LVF.Gradient VF (GVF) is a PFVF guidance method that generates a heading vector for convergence to and circulation on an existing path [30–32]. The fundamental concept of the GVF is expressions of 3D or higher surfaces that are intersected to create a path. GVFs consist of decoupled convergence and circulation terms that are weighted by scalars to influence field strength and direction. Negating convergence weights will produce a repulsive GVF that pushes away from a path representing an obstacle. Computed path and obstacle vectors can be summed together forming total guidance. The GVF method produces a similar field to LVF; however, it has several advantages over LVF. GVF can produce an n-dimensional VF that converges and circulates to both static and time varying paths, useful for tracking dynamic paths or avoiding dynamic obstacles. Additionally, convergence, circulation, and time-varying terms that make up the GVF are decoupled from each other, allowing for component weighting of the total field. GVFs converge and circulate at the level set of n−1 dimensional implicit surfaces (αi: Rn→R|i=1,…,n−1), indicating multidimensional guidance capabilities. The integral lines of the field are guaranteed to converge and circulate the level set when two conditions are met: 1) the implicit surface functions are positive definite, and 2) they have bounded derivatives.The total PFVF using GVF for a time invariant path V can be represented in component form as [32]: V=GVconv+HVcirc(1)where Vconv produces vectors that converge to the path and Vcirc produces vectors that circulate a path. The multiplicative factors G and H are scalar weights to influence the strength of each field component.Convergence is modeled by Vconv=∇Vp(2)where the potential function is Vp=−α12+α22(3)where α1 and α2 are the surface functions whose intersection define a path.Circulation is calculated by taking the wedge product of the gradients of the surface functions in the form of Vcirc=∧i=1n−1∇αi(4)In the case of (n=3) spatial dimensions, the wedge product simplifies into the cross product as Vcirc=∇α1×∇α2(5)GVF was used as a heading guidance in [46] to direct a Dubin’s fixed-wing UAV to an arbitrary path. Unlike the GVFs in [30–32], the VF was normalized and the scalars G and H were used as a high-level specification of field behavior. Normalizing the field and using scalars to specify field behavior will allow for the field to be modified to provide repulsive vectors and modified path following characteristics, such as how quickly a UAV converges to a path. Obstacle avoidance using VF that guides a UAV to follow a path, Vpath, is summed with a repulsive obstacle VF, Vo, and distance from the center weighted by a decay function, P, to provide a path following and obstacle avoidance guidance defined as [50] a Vg=Vpath+PVo(6)Summing together path following and obstacle GVFs presents two potential problems consisting of obstacle field weight selection and the presence of GVF singularities where the two fields cancel, resulting in null guidance. Multirotor UAVs could end up in a trap situation where the UAV stops at a singular point due to the lack of guidance. The presence of singularities in PFVF were mentioned briefly in [26] and observed in [51] with no prevention solution discussed.III. MethodsEvaluation of a component field strength optimization method for GVF obstacle avoidance was performed by simulating a UAV using the Dubin’s method, identifying a cost function for deviation from a path avoiding an obstacle, comparing the performance to methods found in literature, and finally performing an experiment using a UAV to verify and examine performance. Simulations of GVF with the developed optimizer, waypoint, and VFF of a fixed-wing vehicle were completed for performance comparison. GVF path-following obstacle avoidance was achieved by summing a guidance vector from a straight path with a repulsive GVF from a circular field. Nondimensionalized circulation and decay lookup tables were generated and referenced during indoor quadcopter experiments to avoid a single virtual obstacle in real-time. Fixed-wing turn rate constraints were applied to a quadcopter demonstrating that GVF avoidance solutions are applicable to fixed-wing aircraft with limited turning rates.A. Optimal Avoidance Route for Straight PathThe minimal deviation path of a vehicle when performing avoidance of a circular obstacle that is along a straight path can be measured by combining the vehicle’s turning rate arc for entrance to follow the obstacle’s edge arc with an exit arc that again consists of the vehicle’s turning radius. The pure measurement analysis was defined to compare path deviation performance for any existing and newly developed guidance methods. The vehicle was considered to be Dubin’s vehicle for simplistic representation of dynamics and wide use in literature [3,26–29]. The circular obstacle was defined to have a radius (R) and a lateral distance (Y0) from the mission path centered at (xc,yc) in frame I. The first and third arc used the UAV’s minimum turning radius (θr) represented as θr=uθ˙(7)using the UAV heading rate (θ˙) and UAV speed flight speed (u). The start of the first minimum radius turn began when the UAV’s horizontal position (x) reaches a distance (x˜) from the path frame origin. At a horizontal position (−x^) the UAV turned with a radius of the obstacle (R) and exited when the UAV’s horizontal position reaches a distance (x^) from the path frame origin. The horizontal points x˜ and x^ can be represented as x˜=−(θr+R)2−(θr−Yo)2(8)and x^=R(r+R)2−(θr−Yo)2R+θr(9)The avoidance path for navigating around a circular obstacle with maximum coverage of a sensor line can be viewed as shown in Fig. 1 and was defined as y(x)={y˜−θr2−(x−x˜)2if x−x0<−x^ and x−x0≥−x˜Yo+R2−x2if−x^≤x−x0≥x^y˜−θr2−(x+x˜)2if x−x0>x^ and x−x0≤x˜(10)Fig. 1 Optimal kinematic path around circular obstacle.B. Path Following with GVFThe typical paths of UAVs are straight lines with turns to connect the segments. Straight-path-following guidance of a time-invariant line for a planar UAV at position (x,y) was achieved by summing together convergence Vconv and circulation Vcirc terms shown in Eq. (1). The implicit surface function α1path for a straight line at angle δ with respect to the x-axis is defined as α1path=cos(δ)x+sin(δ)y(11)and flat plane α2path at a constant desired altitude of z as α2path=z(12)The complete straight-line vector field gradient potential can then be represented as Vconv=∇Vp=−1(cos(δ)x+sin(δ)y)2+z2⁢[xcos2(δ)+cos(δ)sin(δ)yysin2(δ)+cos(δ)sin(δ)xz](13)Circulation is calculated by the cross product of the surface function gradients, which evaluates to Vcirc=[sin(δ)−cos(δ)0]T(14)The GVF circulation weight (H) scalar multiplied by Vcirc in the final field vector allows for modification of the guidance behavior, that is, how abrupt the transition is between path convergence and circulation, without the need to rederive the VF equations. The potential function (Vp) as shown in [30–32] decays to null at the target curve, allowing circulation to dominate. Increasing the path-following convergence (H) controls the transition zone between convergence and path following.C. AvoidanceAvoidance of circular areas with GVFs can be accomplished by negating the convergence weight G and shrinking the path radius r, creating a repulsive field. The circular avoidance VF centered at (xc,yc) and with radius r is constructed by intersecting a cylinder α1obs=(x−xc)2+(y−yc)2−r2(15)and a plane α2obs=z(16)Convergence can be calculated by the gradient of a potential function Vconv=∇Vp=−1x¯4+y¯4+2x¯2y¯2−2r2x¯2−2r2y¯2+r2+z2⁢[2x¯3+2x¯y¯2−2r2x¯2y¯3+2x¯2y¯−2r2y¯z](17)where x¯=x−xc(18)and y¯=y−yc(19)Circulation is calculated from the cross product of each implicit surface function’s gradient, which equates to Vcirc=[2(y−yc)2(xc−x)0]T(20)Strictly repulsive guidance for a circular obstacle can be produced by assigning a negative weight to the convergence term G=−1, no circulation H=0, and a path radius r at least an order of magnitude smaller than the UAV’s turning radius, θr. Reducing the radius r prevents the UAV from entering a region of guidance that directs it toward a singular point, referred to as a trap situation. Various decay functions were evaluated in [52] and a hyperbolic expression was suggested. Limiting the distance at which the field has influence is achieved with a decay function represented as P=−tanh(2πdR−π)+1(21)with R as the radius where the field has near-zero strength. The distance from the center of the obstacle d is range in the form of d=x¯2+y¯2(22)Inclusion of the scalar value H will introduce circulation around an obstacle. The main subject of this note is to automatically find the amount of circulation for the obstacle based on a vehicle’s turning rate and radius of the obstacle. Path-following guidance and repulsive obstacle avoidance is achieved by summing the two fields together, shown in Eq. (6).D. Singularity DetectionSumming VF guidance will most likely result in singularities, or regions where vectors directly and equally oppose each other, resulting in a null guidance. Singularities can be problematic if the UAV passes directly through one, which results in trap situations under specific conditions or failure to avoid an obstacle. Singularities exist where the magnitude of the vector from Eq. (6) has a magnitude equal to zero, ‖Vg‖=0. A numerical search was performed to locate singularities for a circular obstacle directly in the path of a vehicle. The search was performed by choosing a grid of starting points in 2D separated by 5 m. Multiple starting points were necessary due to MATLAB’s numerical solvers locating the single closest singularity only. Three singularities are detected in the pure obstacle repulsion situation, shown in Fig. 2. The approach of using a numerical solver with a grid of initial starting points can be used for multiple objects, objects in different locations, and more complex path shapes.Fig. 2 Summed guidance and GVF singularities for strictly repulsive obstacle field.To modify the location of VF singularities for single circular obstacles, the behavior of either the path-following or repulsive field needs to be modified. Increasing the path-following field’s circulation so that the vectors are more parallel to the target path could eliminate the singularities at the 12 o’clock and 6 o’clock positions of the obstacle, but would not affect the left most singularity. Additionally, including circulation would increase the UAV’s target path converge time. Modifying the circulation of the obstacle, however, accomplishes two things. First, it provides information on which path to take when circumnavigating the obstacle. Second, the addition of circulation eliminates two of the existing singularities and leaves only one that is not in the path around the obstacle but on the opposite side where a vehicle would never traverse. The results of adjusting singularity positions are discussed during the optimization process.E. Static Modified WeightsDetermining the decay radius (R) and circulation weight (H) for a repulsive VF depends on the UAV’s speed (u) and maximum turn rate (θ˙). An obstacle located at a lateral distance (yo) from the preplanned mission path has a radius (ro). It was convenient to express the radius and position of the obstacle in terms of the UAV’s turning radius by the ratios (m) m=roθr(23)bounded on the interval [1,∞) and c=yoθr(24)(c) on the interval (−1,1).The repulsive field decay radius (R), expressed in (k) multiples of the obstacles radius, can be represented as R=kro(25)and also bounded on the interval [1,∞).The decay multiple (k) and circulation (H) are then determined by minimizing a cost function, Eq. (26), where (y) is the lateral deviation from the path in the (I) frame and the function (j) penalizes the UAV for entering the obstacle radius. The sign of (H) can be determined from the line-of-sight (LOS) angle between the UAV and the obstacle such that the UAV travels around the obstacle in the shortest distance. An example of the optimization, including locations of the VF singularity, can be seen in Fig. 3. A UAV with a speed of u=25 m/s and turning rate of θ˙=20 deg/s following a straight VF path is shown avoiding an obstacle of radius m=1. The MATLAB function fmincon() configured with the interior–point optimization algorithm was used to minimize the function Z(H,k)=1R∫0tfy(H) dt+j(x,y)(26)where j(x,y)={100dt(x−xc)2+(y−yc)2≤rO0(x−xc)2+(y−yc)2>rO(27)which resulted in a UAV route with a cost reduction of 72% compared with strictly repulsive GVF.Fig. 3 UAV route when guided by optimized guidance.IV. Simulation ResultsThe worst-case scenario of a UAV approaching a path-centered obstacle was used to compare the optimized GVF with waypoint, VFF, and optimal path with respect to the benchmark path deviation cost function. Path-centered obstacles required the UAV to divert at least one radius of the obstacle in order to avoid collision. A circular obstacle centered on the path yo=0 requires a deviation from the path of at least 50% of the obstacles diameter. A fixed-wing UAV at an initial position (−400,0) and heading θ=0° follows the straight path connecting the points (−400,0) and (400, 0), respectively. Traveling at a constant speed u=25 m/s and with a fixed turn rate of θ˙=20 deg/s, the UAV must avoid an obstacle with radius 2θr located at the origin (0, 0). The VFF guidance from [23] was used with an obstacle window radius of θr+ro, a cell repulsion of Fr=−3, attraction force of Ft=0.8, range exponent of n=2, and a goal located at (700, 0). For LOS waypoint guidance, 7 waypoints with a small waypoint radius of 10 m was chosen. Each diversion waypoint added drives the guidance closer to optimal, but had diminishing returns past 6–7 waypoints. GVF guidance was simulated along a straight path of G=H=1 that encounters a circular repulsive field assigned a with convergence weight G=−1, where circulation and decay radius coefficient k were determined by evaluating the cost function in Eq. (26) with initial conditions k=2 and H=2. The GVF obstacle avoidance solution was bounded between 2≤k≤4 and 1≤H≤6. Outside of the described bounds, the UAV either failed to avoid the obstacle or entered a continuously turning trap situation. Minimizing the cost function, described in Eq. (26), resulted in a decay radius coefficient k=2.78 and a circulation value H=1.88. The Dubin’s paths for the three guidance methods discussed are shown in Fig. 4 and Table 1 with the optimal benchmark from Eq. (10). VFF used for obstacle avoidance results in a UAV route that has excess deviation from the planned path that is similar to a GVF obstacle with only inverse convergence. Waypoint guidance returns to the path more quickly than VFF, but deviates from the planned path farther. GVF leaves the path before waypoint guidance and tracks the outside of the obstacle closely and then quickly converges back to the preplanned path. None of the guidance methods simulated equal the optimal path benchmark, but the GVF and waypoint method are the closest. The discrepancy resulting in a higher cost is due to the segmentation of waypoints and because vehicle dynamics are not part of the GVF.Fig. 4 Path of UAV guided by guidance methods.GVF guidance provided a lower cost avoidance compared with VFF and quickly returns to the planned path; however, the time to reach a solution using a numerical solver for the optimized set k and H increases as the size of the obstacle increases. Failure to reach a solution in adequate time could result in the UAV violating the no-fly zone or colliding with the obstacle. Nondimensional lookup tables were constructed from the developed optimizer for both circulation weight H and obstacle decay radius k for a varying obstacle lateral position and radius. These tables could be referenced in real time instead of using a solver to provide avoidance guidance. Circulation and decay radius are dependent on the obstacle’s radius and the lateral position with respect to the path. Expressing the obstacle’s radius and lateral position in terms of positive multipliers of the UAV’s turning radius allows a single lookup table to be used for multiple UAV speeds, resulting in less scenarios to be evaluated. Examples of lookup tables where m represents the radius of the obstacle in terms of UAV turning radius and c represents the lateral position of the obstacle in multiples of UAV turning radius are shown in Figs. 5 and 6 using obstacle radii m=[1,5] and lateral position c=[0,0.8].Fig. 5 k lookup table for nondimensional obstacle radius m and lateral position c.Fig. 6 Obstacle circulation H lookup tables for nondimensional radius m and lateral position c.V. Experiment ResultsThe overall goal of this effort was to maximize performance by optimizing GVF components and verify using real-time experiments performed at the edge of operation. The experimental setup used for comparison to simulation performance was based on a CrazyFlie 2.0 (CF) quadcopter that was turn rate limited to mimic a fixed-wing aircraft. Guidance was generated from a GVF solution that included obstacle avoidance. Quadcopter style vehicles were chosen due to limited testing space where the vertical takeoff or landing (VTOL) characteristics simplified takeoff and landing. The CF vehicle used an on-board IMU for stability but did not contain position control necessary for independent guidance. Localization was achieved using eight Vicon Vero motion capture cameras, where Tracker software was used to relay position and orientation of the CF to a custom-built Python-based control and guidance interface. The desired roll, pitch, yaw rate, and throttle position for the CF were then relayed on average of 100 Hz from the control interface to the CF ground station software (CfClient) and then wirelessly sent to the CF vehicle. The custom control and guidance system included the developed GVF algorithms and four PID controllers (x, y, z, heading to roll, pitch, yaw rate, and throttle) that represented outer-loop control. Guidance was achieved using controller set points in the form of a virtual carrot chasing point, located 7.5 cm ahead of the vehicle, that represents a point in the requested heading direction at an angle θ and distance d with respect to the UAV’s body frame [53]. The altitude (Z) was controlled separately from the GVF system to hover at 1 m. Dubin’s constraints were applied by limiting the GVF guidance vector to a rate of change of 20 deg/s in order to emulate fixed-wing UAV dynamics. The GVF guidance decay radius and circulation values k and H were determined from the precomputed lookup tables for the given obstacle configuration, consisting of radius m and lateral position c. The navigation and control systems operated at 100 Hz, whereas the optimized GVF guidance was set to run at 5 Hz to avoid overstimulation of guidance. An overview of the experimental setup is shown in Fig. 7.Fig. 7 Navigation, guidance, and control framework for crazyflie 2.0 quadcopter.The guidance system developed is capable of real-time path following and obstacle avoidance headings for a circular no-fly-zone that is located between the zone’s edge or directly in the center of the path. Obstacles in the center of the path are worst case as the minimum turn radius or maximum turn rate is required of a fixed-wing UAV. The aerial vehicle control experimental setup described was used to evaluate real-time GVF performance when guiding a UAV through a straight line with a circular obstacle halfway along the path. Experimental investigation into performance of the developed guidance system was done with two cases that required maximum turning rate from a UAV. Simulations had indicated that a smaller but offset obstacle was avoidable and a centerline obstacle would have to be larger due to the limited turning rate of the vehicle. The first experiment was an encounter with a virtual no-fly-zone of radius m=1.0 offset from the path center at 0.5r and the second experiment a radius of m=1.5 along the path center.Obstacle decay and circulation parameters used by the GVF were referenced from precomputed optimized solution tables using the obstacle radius and position. The UAV tested traveled a mean speed of 0.15 m/s from the start to the end of path for both cases. The avoidance route directed by the optimized GVF guidance is shown in Fig. 8 for the offset and Fig. 9 for the centered obstacle along with a simulated UAV’s path. The vehicle’s time series desired 3D set point and measured tracking position are shown for the entire path in Figs. 10 and 11 for a short time span to highlight the set-point tracking and guidance controller update time difference. The experiment was carried out at an altitude of 1 m, where the GVF controller was enabled starting at 10 s. Altitude was controlled external of the GVF. The experiments showed a slight lag compared with the ideal simulated case, which is most likely due to the use of small lookahead or virtual carrot point in the desired direction. The virtual carrot or following point was located at 7.5 cm ahead of the vehicle in the direction provided from the summed GVF and chosen to ensure that the obstacles airspace was not violated and for smooth flight characteristics specific to the vehicle and control system used. Overall, the two cases tested followed the desired path around an obstacle similar to a simulated