Collision Avoidance of Hexacopter UAV Based on LiDAR Data in Dynamic Environment

A reactive three-dimensional maneuver strategy for a multirotor Unmanned Aerial Vehicle (UAV) is proposed based on the collision cone approach to avoid potential collision with a single moving obstacle detected by an onboard sensor. A Light Detection And Ranging (LiDAR) system is assumed to be mounted on a hexacopter to obtain the obstacle information from the collected point clouds. The collision cone approach is enhanced to appropriately deal with the moving obstacle with the help of a Kalman filter. The filter estimates the position, velocity, and acceleration of the obstacle by using the LiDAR data as the associated measurement. The obstacle state estimate is utilized to predict the future trajectories of the moving obstacle. The collision detection and obstacle avoidance maneuver decisions are made considering the predicted trajectory of the obstacle. Numerical simulations, including a Monte Carlo campaign, are conducted to verify the performance of the proposed collision avoidance algorithm.


Introduction
In the last decade, Unmanned Aerial Vehicles (UAVs) have achieved significant advances in scientific research as well as in real-world applications. Especially, rotary-wing UAVs have been employed for a wide range of application areas due to their vertical takeoff and landing capability. Nowadays, various types of UAVs with different structures keep emerging. For instance, UAVs with six or more rotors have attracted attention due to their higher payload capacity [1][2][3][4][5]. Furthermore, various sensors have been mounted on the UAVs for applications such as autonomous formation flight, surveillance, target tracking, reconnaissance, disaster assistance, etc.
Light Detection And Ranging (LiDAR) is one type of active remote sensing and has been widely employed as a primary ranging device in many autonomous robotic vehicles including UAVs [6][7][8][9][10]. Wallace et al. [11] presented a UAV-borne LiDAR system to collect measurements for forest inventory applications. A Sigma Point Kalman Smoother (SPKS) was applied to combine observations from different sensors. Then, Wallace et al. [12] developed a tree detection algorithm using high-density LiDAR data. The effect of point density on the accuracy of tree detection and delineation was evaluated. On the other hand, Chen et al. [13] integrated LiDAR and UAV to extract detailed surface geologic information. The random sample consensus method was adopted to ascertain the best-fit plane of bedding. Hening et al. [14] presented a data fusion technique for the position and velocity estimation of UAVs. Local position information was provided by a LiDAR sensor, and an adaptive Kalman filter was applied for the integration. Zheng et al. [15] built an obstacle detection system using LiDAR with the consideration of a moving point cloud. service, the airborne base station should remain intact even in the environment where the presence of an unknown dynamic obstacle is highly likely. Therefore, it is necessary to develop a collision avoidance algorithm which is appropriate during the hovering maneuver of the UAV.
In this study, an enhanced collision avoidance algorithm based on the collision cone approach [33,34] is proposed to deal with a three-dimensional dynamic environment. A hexacopter is considered as the flying platform [35]. The UAV is equipped with a Global Positioning System (GPS) and Attitude and Heading Reference System (AHRS) so that the position and attitude information can be obtained. A conventional Proportional-Derivative (PD) control system is designed to enable waypoint guidance where position and yaw angle commands are fed from the proposed collision avoidance algorithm. An obstacle is completely unknown to the hexacopter initially, and it is detected by a LiDAR system during the flight. From a practical standpoint, the LiDAR has limited Field-of-View (FoV) and sensing range. The obtained obstacle data points are utilized to form a spherical bounding box and collision cone. Also, they are used in an estimator to obtain the state of the obstacle. A discrete-time Kalman filter is adopted with its measurement being the center of the bounding box [36]. The obstacle state estimate is utilized to check the collision condition. The predicted trajectory of the obstacle is considered to detect collision. If a potential collision is detected, the state estimate is used to generate aiming point candidates for the avoidance maneuver. The proposed algorithm removes the candidate points that overlap with the predicted path of the obstacle. This enables the hexacopter to consider the kinematics of the obstacle in choosing the direction of the avoidance maneuver. The point closest to the current velocity of the UAV is chosen as the final aiming point. Numerical simulations are performed to demonstrate the performance of the proposed collision avoidance algorithm. As the previous collision cone approach [37] utilizes the velocity vector of the UAV, its application during the hovering maneuver is difficult, as the velocity is nearly a zero vector. However, the proposed algorithm works well in this situation due to the usage of the relative geometry. That is, the proposed algorithm appropriately handles the avoidance against the moving obstacle, in contrast to the previous algorithm. In addition, a Monte Carlo simulation is performed to verify the robustness of the proposed algorithm.
The remainder of this paper is organized as follows. Section 2 describes the dynamics, control system, and data acquisition system of a hexacopter. The background of the collision cone approach is briefly explained in Section 3. In Section 4, the structure of a discrete-time Kalman filter is presented for the estimation. Then, the collision avoidance algorithm for a moving obstacle is proposed in Section 5. The simulation results are presented in Section 6, and the conclusion is given in Section 7.

Dynamics
A hexacopter is configured with six rotors, where three rotors rotate in clockwise direction and the others rotate in counterclockwise direction. A platform of the Tarot 680 hexacopter is shown in Figure 1 as an example. A North-East-Down (NED) coordinate system is considered in an inertial frame. Note that flat-Earth and rigid body are assumed in this study. A body-fixed coordinate system is defined with its origin at the hexacopter's center of mass and its axes (x b , y b , and z b ) are aligned with the reference direction vector, as shown in Figure 1.
The rigid hexacopter dynamics is governed by the following translational and rotational differential equations [35].
where r n ≡ [x n y n z n ] T is the position vector of the hexacopter represented in the NED coordinate system; v b ≡ [u v w] T and ω b ≡ [p q r] T are the velocity vector and the angular velocity of the hexacopter represented in the body-fixed coordinate system, respectively; m and J ≡ diag[J x , J y , J z ] are the mass and inertia matrix of the hexacopter, respectively; F b is the external force of the hexacopter represented in the body-fixed coordinate system; M b is the external moment of the hexacopter represented in the body-fixed coordinate system; g n ≡ [0 0 g] T is the gravity vector represented in the NED coordinate system; and C b/n (= C T n/b ) is the direction cosine matrix performing coordinate transformation from the NED coordinate system to the body-fixed coordinate system, which is defined with a (3-2-1) Euler sequence as follows, where Euler angle Φ ≡ [φ θ ψ] T is defined between the NED and body-fixed coordinate systems.
No. 1 No. 2 No. 3 No. 4 No. 5 No. 6 The external force and moment of the hexacopter can be expressed as follows.
Then, F b and M b have the following relationship with the angular velocity of the rotor, where k f and k τ are the thrust and drag coefficients of the rotor, respectively; l is the distance from the hexacopter's center of mass to the rotor; and w i is the angular velocity of the i-th rotor with i ∈ {1, · · · , 6}.

Control Design
In this study, a PD controller is designed to track the desired position vector (x n d , y n d , and z n d ) and yaw angle (ψ d ). First, the collective thrust command, T, is computed to handle the desired altitude of the hexacopter, which is represented by z n d .
where ζ v and ω v are design parameters. The horizontal position controller equations are given as where ζ h and ω h are design parameters. Now, the desired roll and pitch angles, φ d and θ d , respectively, can be obtained as follows.
Note that x n d , y n d , z n d , and ψ d are delivered from the proposed collision avoidance guidance system described in Section 5.

LiDAR Data Sensing
Let us assume that an obstacle consists of a point cloud that represents its external surface. The LiDAR with limited FoV is mounted on the hexacopter and directed along the +x b -axis to acquire obstacle data. The visibility of the obstacle point by the LiDAR can be determined by examining whether the obstacle data point is inside a rectangular pyramid whose vertices are o b , v 1 , v 2 , v 3 , and v 4 , as shown in Figure 2. v 1 , v 2 , v 3 , and v 4 in the body-fixed coordinate system can be obtained as follows.
where H f v and V f v are the horizontal and vertical FoV of the LiDAR, respectively, and d a is a sensing range of the LiDAR. The hexacopter performs its mission with constant obstacle data acquisition from the LiDAR.

Review of Basic Collision Cone Approach
In this study, the collision cone method is adopted as the basis of the collision detection and avoidance logic [33,34]. Let us assume that n c data points are accumulated by the LiDAR, and that the position vector of the k-th obstacle data point in the NED coordinate system is defined as r n o,k . Among n c data points, there are two points associated with the longest pairwise Euclidean distance. Let us define these points as r n o,1 and r n o,2 . Then, the center of a spherical bounding box can be obtained as follows.
Also, the radius of the bounding box can be designed as follows, where d sm is a safety margin. Finally, a collision cone can be constructed with a set of tangent lines from the hexacopter to the bounding box, as shown in Figure 3.

Spherical bounding box
Hexacopter Collision cone If the velocity vector of the hexacopter is contained within the collision cone, the detected obstacle is a potential threat to the UAV unless it changes its trajectory. In this case, the hexacopter should perform a collision avoidance maneuver. During the collision avoidance maneuver, the hexacopter is guided to an aiming point instead of the predefined goal point. The aiming point is selected from the points on the intersection curve of the bounding box and the collision cone. In this study, the point closest to the velocity vector of the hexacopter is chosen as the aiming point to minimize the UAV's maneuver. If the velocity vector of the hexacopter is outside the collision cone, then the UAV is guided to the original goal point. This logic is repeated until the hexacopter reaches the goal point.

Obstacle State Estimator
As a moving obstacle is considered in this study, its state should be estimated to implement the proposed collision avoidance algorithm described in Section 5. A discrete-time Kalman filter is constructed for the estimation [36]. First, the filter state is defined as follows, whereˆ r n e,k ≡ [x n e,k y n e,k z n e,k ] T ,ˆ v n e,k ≡ [ẋ n e,kẏ n e,kż n e,k ] T , andˆ a n e,k ≡ [ẍ n e,kÿ n e,kz n e,k ] T are the position, velocity, and acceleration estimates of the obstacle, respectively, represented in the NED coordinate system. Now, the discrete-time state equation for the estimator can be expressed as follows, where ∆t l is the sampling time of LiDAR data acquisition, and w e ≡ [w x wẋ wẍ w y wẏ wÿ w z wż wz] T is a process noise characterized by N(0, Q e ). On the other hand, the position vector of the center of the bounding box obtained in Equation (17) by the LiDAR system is used as a measurement. Therefore, the measurement equation can be constructed as follows, where v e ∼ N(0, R e ) is a measurement noise. In this study, an unknown obstacle is detected by LiDAR sensor that has a limited sensing range. The bounding box enclosing the set of detected data points gradually grows in its size as more of the obstacle comes within the sensing range. In this case, r n o,c , computed in Equation (17), may differ from the actual center of the obstacle. This error can be treated as a measurement noise, v e , in the observation model. Finally, using Equations (20) and (21), the discrete-time Kalman filter can be implemented to estimate the state of the obstacle.
The Kalman filter is initiated when the obstacle is detected by the LiDAR for the first time. Then, it is updated at every ∆t l with newly measured r n o,c . If r n o,c cannot be found at a certain step, then virtual measurement,ˆ y n k , is modeled to keep the estimator running. This situation may occur when the UAV completely avoids the obstacle and every obstacle data point is out of the LiDAR's sensing range. The virtual measurement,ˆ y n k , is modeled with the state estimate at the previous step as follows.ˆ When the obstacle is detected again,ˆ y n k is discarded and the Kalman filter operates with the normal measurement.

Collision Avoidance Strategy Against Moving Obstacle
As the Kalman filter provides the obstacle information, these state estimates are utilized in the collision detection algorithm and avoidance law considering the dynamic environment. The proposed strategy proceeds in several stages as shown in Figure 4.  Although an obstacle is within the range of the LiDAR, the velocity vector of the hexacopter is outside the collision cone at t = t 0 , as shown in Figure 4a. Then, the previous approach determines that the UAV is not on a collision course to the obstacle and allows the UAV to continue flying toward the goal point, as it only incorporates the current position and velocity in collision detection. On the contrary, the method proposed in this study utilizes the instantaneous short-term predictions for the obstacle trajectory to determine whether the UAV is on the course to close proximity of the obstacle. The trajectory of the obstacle is predicted by utilizing the state estimate aŝ r n e = 1 2ˆ a n e,k ∆t 2 d +ˆ v n e,k ∆t d +ˆ r n e,k with the prediction horizon, ∆t d , of various lengths. Also, the future position of the hexacopter can be predicted as follows, r n e = v n ∆t d + r n where v n is the velocity vector of the hexacopter represented in the NED coordinate system. Note that the acceleration vector is not used in Equation (24) because the abrupt change in the acceleration by the proposed algorithm may result in poor prediction. If the Euclidean distance between the predicted obstacle position,ˆ r n e , and the predicted UAV position, r n e , is smaller than the bounding sphere radius, r s , at a certain ∆t d , the UAV determines that it is on a collision course. Let us define this moment as t = t a , as shown in Figure 4b. Additionally, note that r s is constantly calculated using Equation (18) whenever the obstacle is detected by the LiDAR and the algorithm keeps updating the maximum observed r s value for safety reasons, yet this approach might be conservative. The hexacopter is inside the spherical bounding box of the obstacle in Figure 4b, which means a collision. Now, a collision avoidance maneuver is required. To perform the avoidance maneuver, the collision cone is constructed with the bounding box at t = t a and the position of the UAV at t = t 0 , as shown in Figure 4c. The aiming point for the UAV chosen in the direction of the obstacle's future trajectory is likely to increase the chance of a close encounter with the obstacle at the next time step, which is disadvantageous from the viewpoint of minimizing the probability of a possible collision. An additional pruning process is therefore conducted after creating the aiming point candidates to prevent undesirable and ineffective collision avoidance maneuver due to a wrong choice of aiming point. The trace of bounding boxes starting from t = t a can be created as shown in Figure 4c with the prediction horizon given by ∆t p . These boxes can then be used to trim the candidate points. If an aiming point candidate is inside the predicted envelope of the bounding boxes at any moment, then that point is eliminated from the candidate set.
Some candidate points may be removed by the pruning process as shown in Figure 4d. Then, the final aiming point is chosen from the remaining candidate points. Even though the point closest to the velocity vector of the hexacopter is chosen, the chosen point may be far from the velocity vector because of the elimination step, as shown in Figure 4d.
The aiming point provided as the final result of the collision avoidance strategy comprises the desired position part of the guidance command. Meanwhile, the desired yaw angle is designed so that the LiDAR faces toward the center of the spherical bounding box.
The reasoning behind the yaw angle command design is to keep the obstacle inside of the LiDAR's FoV for the consecutive state estimation. The overall flowchart of the proposed collision avoidance algorithm is shown in Figure 5.

Numerical Simulation
Numerical simulations are conducted to demonstrate the performance of the proposed collision avoidance algorithm. The parameters of the hexacopter dynamics and control system, estimator, and collision avoidance used in the numerical simulation are listed in Table 1.
The time step for numerical integration and control update is 0.01 s, whereas the sampling time of the LiDAR data acquisition, ∆t l , is set to 0.1 s. The slower rate for the LiDAR measurement update is due to the large amount of computational effort required to process the point cloud data in each cycle. Not only the obstacle state estimator, but also the collision avoidance guidance algorithm, is triggered by the arrival of new LiDAR data. Consequently, they have the same update rate of 10Hz, and the UAV's autopilot utilizes the latest updated command. For the control system of the hexacopter, φ d and θ d in Equations (11) and (12) are limited in the range of ±20 • to avoid excessive maneuver. Meanwhile, P + 0 in Table 1 is the covariance of the initial estimation error ofˆ x n 0 , where diag refers to a square matrix with the elements inside the square bracket being the diagonal entries. As an obstacle is completely unknown initially, there is no choice but to setˆ x n 0 as a zero vector. Additionally, the Kalman filter takes time for the state estimate to converge to a steady-state value. Therefore, the proposed collision avoidance algorithm begins to incorporate the obstacle state estimate a few time steps after the first detection of the obstacle in order to allow a period for the filter state to converge. In this study, 5∆t l (5 steps) is chosen as this period.
For every simulation in this section, the initial position of the hexacopter is set to [0 0 − 3] T in the NED coordinate system. Also, the initial velocity, angular velocity, and Euler angle of the hexacopter are set to zero.

Simulation I: Hovering Situation
In Simulation I, the hovering situation is considered, which is the case where the goal point is given by the initial position of the UAV. Namely, the hexacopter stays at [0 0 − 3] T if a detected obstacle is not considered as a potential threat. An obstacle whose shape is a sphere with the radius of 1 m is considered. Its initial position is set to [18 0 − 3] T with a constant velocity of [−3 0 0] T so that it is on a collision course. Figure 6 shows the trajectories of the hexacopter and the obstacle in the NED coordinate system. Additionally, Figure 7 shows the time responses of the attitude, angular velocity, velocity, and absolute velocity of the hexacopter, and the minimum distance between the UAV and the obstacle. Also, Figure 8 shows the time responses of the estimated state along with the true state plotted as a reference of comparison. Note that all state estimates are set to zero at initial state.
Initially (t = 0 s), the obstacle is outside the sensing range of the LiDAR, because d a is set to 10 m in Table 1. Then, the obstacle is first detected by the hexacopter at point A (t = 2.4 s), as shown in Figure 7c. However, the UAV does not immediately perform avoidance maneuver, but simply continues hovering. This is because the collision avoidance algorithm incorporates the estimated obstacle information only after the filter transients are died out, as explained above. Moreover, only a small part of the obstacle enters the range of the LiDAR at point A. The computed r n o,c at point A is [9.98 0 − 3] T , whereas its true state is [10.8 0 − 3] T . This difference may result in a poor estimation. As shown in Figure 8, the state estimates are still at initial zero values at point A. However, after 0.5 s, which is denoted as point B, most of the state estimates are converged to the true states and these are used in the collision avoidance algorithm. Now, the hexacopter predicts the trajectory of the obstacle, and determines that it is on a collision course.
At point B (t = 2.9 s), the hexacopter triggers the collision avoidance maneuver by guiding to the aiming point, instead of the goal point. At the same time, the yaw angle command is generated to direct toward [x n e,k y n e,k z n e,k ] T so that the detected obstacle remains inside the LiDAR's FoV, as shown in Figure 7a. At point C (t = 4.4 s), the UAV determines that the future position of the obstacle does not collide with it. That is, the hexacopter is outside of the predicted bounding boxes of the obstacle. Although the UAV heads back to the goal point from this moment, it produces the different trajectory compared to the past one as shown in Figure 6. This is due to the control system of the hexacopter, which generates the change of θ in advance of φ, as shown in Figure 7a. Simultaneously, +x b -axis of the hexacopter is aligned with the goal point by adjusting ψ.
At point D (t = 6.98 s), the hexacopter reaches the minimum distance of 2.9353 m as shown in Figure 7c. However, considering the direction of the obstacle's velocity vector, it is no longer a threat to the UAV. Finally, at point E (t = 8.7 s), the hexacopter reaches the goal point as shown in Figure 6 and is able to perform hovering maneuver again. In the hovering situation, the velocity vector of the hexacopter is a zero vector, which means that it is difficult to utilize the previous collision cone approach [37]. On the contrary, the proposed algorithm gives consideration to the relative motion as it uses the obstacle information estimated by the Kalman filter. Therefore, the proposed algorithm can be adopted while the UAV is in the hovering state.

Simulation II: Waypoint Guidance
In Simulation II, the proposed collision avoidance algorithm is compared to the previous algorithm [37].  Figure 9 shows the trajectories of the hexacopter with the proposed algorithm and the previous algorithm, and the obstacle in the NED coordinate system. Also, Figure 10 shows the time responses of the attitude, angular velocity, velocity, and absolute velocity of the hexacopter, and the minimum distance between the UAV and the obstacle. Figure 11 shows the time responses of the state estimate of the Kalman filter.
The obstacle enters the range and FoV of the LiDAR at point A (= point A', t = 2.4 s) for both the proposed and previous algorithms, as shown in Figures 9 and 10c. Then, the hexacopter with the proposed algorithm starts collision avoidance maneuver at point B (t = 2.9 s), as the UAV collides with one of the predicted bounding boxes. As shown in Figure 11, the state estimates show sufficient convergence to the true states from point B, which are appropriate to be utilized in the collision avoidance algorithm. On the other hand, the hexacopter with the previous algorithm triggers the avoidance maneuver at point B' (t = 2.6 s), which is earlier than the one with the proposed algorithm. This is because the previous algorithm does not utilize the obstacle state estimator. As soon as the computed collision cone includes the velocity vector of the UAV, the UAV heads for the aiming point as shown in Figure 9.
The difference can be witnessed from this moment. As a benefit of incorporating the pruning step in the aiming point processing pipeline, the proposed algorithm selects the aiming point on the opposite side of the obstacle's predicted trajectory. However, the previous algorithm chooses the aiming point without considering the short-term future movement of the obstacle. As a consequence, the UAV cannot withstand the acceleration and the velocity of the obstacle and eventually collides with it at point C' (t = 4.26 s), as shown in Figure 9. Note that the minimum distance between the UAV and the obstacle is 0 m at point C' in Figure 10c. That is, although the previous algorithm shows earlier transition to the collision avoidance mode than the proposed algorithm, it fails to avoid the moving obstacle. On the contrary, the UAV with the proposed algorithm successfully avoids the obstacle and reaches the minimum distance of 2.0733 m at point C (t = 4.01 s) as shown in Figure 10c. This is a reasonable value, considering that d sm is set to 2 m in Table 1. At point D (t = 4.1 s), the hexacopter determines that the obstacle is no longer a threat, and switches to the goal point guidance. Note that there is a time lag between point C and point D due to the sampling time of the LiDAR, ∆t l .
At point E (t = 6.6 s), the obstacle deviates from the sensing range of the LiDAR, as shown in Figure 10c, and r n o,c cannot be obtained from this point. Then, the virtual measurement,ˆ y n k , is calculated using Equation (22) to produce the measurement of Equation (21) for the Kalman filter. However, the deviation from the true state can be observed before point E, especially in Figures 11b,e. This is because of the incorrect calculation of r n o,c with partial detection of the obstacle. Nevertheless, the goal point guidance is maintained. Finally, the UAV reaches the point F (t = 9.08 s) as shown in Figure 9.

Simulation III: Monte Carlo Simulation
A Monte Carlo simulation is carried out to investigate the robustness of the proposed algorithm. Five-hundred different scenarios are generated, where the following properties of the obstacle are assigned using a continuous uniform distribution: impact point, initial position, radius, velocity, and acceleration. First, the impact point with the UAV is randomly chosen between the initial position of the hexacopter, [0 0 − 3] T , and the goal point, [25 0 − 3] T , as shown in Figure 12.
Let us define this impact point as r n 25] is shown in Figure 12. Then, the time-to-go of the UAV to the point can be calculated as follows, where v avg is the average speed of the hexacopter. Referring to Figures 7d and 10d, v avg is roughly chosen as 3.5 m/s. Note that the generated cases with t go ≤ 2.0 s are excluded, considering a reasonable initial gap between the UAV and the obstacle. Then, the ranges of the magnitude of the acceleration and the velocity are set to [0, 2] and [2,6], respectively. If these are denoted as a o and v o , the length between r n p and the initial position of the obstacle can be computed as follows.
Now, θ p and ϕ p in Figure 12 are randomly chosen from [0, π] and [0, 2π], respectively, which determine the impact angle. The initial position of the obstacle, r n o , can be obtained as follows.
r n o =    L p sin θ p cos ϕ p L p sin θ p sin ϕ p L p cos θ p    + r n p (28) Also, the acceleration, a n o , and the velocity, v n o , of the obstacle can be computed as follows.
Finally, the radius of the obstacle is chosen in the range of [1,3]. Note that the cases with the obstacle approaching from the direction outside the FoV of the LiDAR are also excluded from the result. The Monte Carlo simulation result is shown in Figure 13, which is the time responses of the minimum distance between the hexacopter and the obstacle for each case. In every case, the hexacopter reaches the goal point without violating the safety requirement, as the minimum separation is greater than the added safety margin, d sm , at all times. The Monte Carlo simulation result confirms the successful collision avoidance performance of the proposed algorithm. 500 runs Figure 13. Time history of minimum distance between UAV and obstacle (Simulation III).

Conclusions
In this study, a collision avoidance algorithm of a hexacopter UAV is proposed. The algorithm is based on the collision cone approach, and is improved to handle a moving obstacle by considering the short-term predictions for the obstacle trajectory with the aid of an obstacle state estimator. A PD controller is used to generate angular velocities of the rotors where the command is fed from the proposed guidance algorithm. A LiDAR system on the UAV obtains the obstacle data points to form the spherical bounding box around the detected region of the obstacle and also the collision cone. Sometimes, the LiDAR system may lose the obstacle due to its limited sensing range and FoV. In this case, the Kalman filter produces a virtual measurement with the previous state estimate. A collision is detected by examining the predicted position of both the UAV and the obstacle. The obstacle state estimate also contributes to an avoidance maneuver of UAV by removing the points that are unreasonable to be taken as candidates of the aiming point. The numerical simulation results, including a Monte Carlo campaign, are shown to verify the proposed guidance algorithm. The results demonstrate that the hexacopter properly handles the moving obstacle; unlike the previous method that does not explicitly consider the predicted relative movement. For future research, the proposed algorithm will be extended to deal with multiple obstacles. An appropriate decision-making algorithm should be developed to assess the obstacles in terms of the level of threat.