Abstract
A simple, robust nonlinear controller for quadcopters to avoid collisions, based on the geometry approach and kinematics equation, is proposed. The controller allows the quadcopter to avoid single and multiple obstacles. Once an obstacle with a high possibility of collision is detected, a boundary sphere of the obstacle is generated to determine the collision zone. Afterward, the tracking error angles between the quadcopter’s motion direction and the tangential lines from the quadcopter’s current position to the boundary sphere are computed to steer the direction of the quadcopter for collision avoidance. A guidance law and a velocity control law are obtained from the Lyapunov stability based on the tracking error angles and relative distances between vehicle and obstacles. In addition, a method to drive the quadcopter to the target position after the completion of collision avoidance is introduced. The effectiveness of the proposed collision-avoidance algorithm is demonstrated through the result of a numerical simulation.
Introduction
At present, quadcopters are used in a variety of applications. They are well suited for autonomously performing complicated civilian or military operations. However, because a low altitude is usually required in most of these missions, the issue of collisions between quadcopters and various obstacles is very serious and occurs frequently. Therefore, quadcopters must have the autonomous capability to avoid collision for safe and stable operation.
To solve this problem, various solutions have recently been reported in the literature. Many of them are inspired by path-planning algorithms. Chen et al. 1 proposed a path-planning approach for unmanned aerial vehicles (UAVs) with tangent-plus-Lyapunov vector field guidance to avoid obstacles. Richards and How 2 proposed a method to find optimal trajectories for multiple aircraft to avoid collision with each other. Budiyanto et al. 3 introduced a potential field to avoid collisions with obstacles based on optimal path planning. Lin and Saripalli 4 proposed a real-time path-planning method for UAVs to avoid collision with other aircraft or obstacles through motion uncertainty. In this method, collision prediction for UAVs is performed using reachable sets, and collision-avoidance path planning is generated through a sampling-based method. Several other studies related to the collision-avoidance ability for autonomous robot system can be found in the works of Dai et al. 5 and Rubio et al. 6 However, these methods are based on optimization techniques, which require intensive computation.
Another approach inspired by geometry was proposed in 1998 by Chakravarthy and Ghose, 7 who introduced a collision cone for collision detection and collision avoidance between two irregularly shaped moving objects with unknown trajectories. The collision cone is effectively used to detect the possibility of collision between a robot and an obstacle (in both static and dynamic environments). Also, recently Wang et al. 8 proposed a three-dimensional (3D) navigation strategy to reach a target position while avoiding collisions with obstacles based on the enlarged vision cone. Seo et al. 9 proposed a method to avoid collision for UAVs in formation flight. Zhiyong et al. 10 presented a method to equip UAVs with collision-avoidance capacity based on the minimum angle shift. Another collision-avoidance approach was proposed by Goss et al., 11 in which collision avoidance was realized between two aircraft in a 3D environment using a combination of a collision cone and the geometric approach. Shin et al. 12,13 presented an obstacle-avoidance method for UAVs based on differential geometry. Generally, these collision-avoidance algorithms seem to be simple and facilitate fast response with low computational requirements. However, most of them are limited to guidance laws, and the UAV’s velocity is considered constant throughout the flight time. Therefore, collision may occur if a UAV is in flight with a high velocity and the heading angular rate is limited in the control loop.
A more practical method for the collision avoidance of UAVs based on vision sensors has been developed by Gosiewski and Cieśluk. 14 In this method, the UAV avoids collision with obstacles based on the Lucas–Kanade method for estimating optical flow and gradient, which is implemented on a real-time embedded system. Fasano et al. 15 proposed a fully autonomous multisensor (radar and camera) anti-collision system for UAVs. Choi et al. 16 proposed a real-time mid-air reactive collision-avoidance system for UAVs based on a single vision sensor. Another interesting method is to mimic the human behavior of detecting collision using a monocular camera, as proposed by Al-Kaff et al. 17 Aguilar et al. 18 also proposed an obstacle-avoidance system for UAVs using the monocular onboard camera. These methods are the good solutions for collision-avoidance system. However, most of them are focused on the image processing techniques for detection and size estimation of obstacles.
The present study proposes a simple, robust nonlinear controller for quadcopters to avoid collisions based on the geometry approach and kinematics equation. Once an obstacle is detected, a boundary sphere of the obstacle is defined to determine the collision zone (or collision cone). The radius of boundary sphere is determined considering both the dimension of vehicle and obstacles in order to facilitate more rapid finding of avoidance angle. Afterward, the tracking error angles between the quadcopter’s motion direction and the tangential lines from the quadcopter’s current position to the boundary sphere are computed to steer the quadcopter in the left or right directions for collision avoidance. A guidance law and a velocity control law are obtained from Lyapunov stability based on the tracking error angles and relative distances between vehicle and obstacles. In this manner, both the heading angular rate and velocity of the quadcopter are analyzed and controlled simultaneously. The advantages of this algorithm are the ability to find the shortest path to avoid obstacles and reach the preplanned target position after completion of collision avoidance. In addition, the guidance and velocity control laws are considered simultaneously to ensure safe flights within speed and angular rate limitations.
Furthermore, this study proposes a simple and practical nonlinear controller and compares with other most advanced approaches 19 –21 with considerations of the implementation on a real-time embedded system. The proposed full control scheme consists of multi-loop architecture (i.e. outer loop and inner loop). The proposed algorithms for collision avoidance and approaching to the target position are implemented in the outer loop of position and heading control to generate the set point of velocity and heading angular rate. In the inner loop, the conventional proportional integral derivative (PID) control law for velocity and angular rate control is implemented. To verify the collision-avoidance performance and to demonstrate the effectiveness of the proposed algorithm, simulations with various scenarios were performed.
The remainder of this article is organized as follows. The “System modeling” section presents the dynamic model and kinematic equation of the quadcopter. The definitions and assumptions for collision avoidance based on the geometric approach are presented in the “Collision-avoidance algorithm” section, and the guidance and velocity control laws are analyzed using Lyapunov stability theory in this section. The results of numerical simulations are presented in the “Simulation results and discussion” section. Finally, concluding remarks are given in the “Conclusions” section.
System modeling
Brief mathematical model of quadcopter
In many previous studies, the dynamic model of the quadcopter was clearly explained and proved through many simulations and experimental results.
22
–30
The dynamic model of the quadcopter is configured in this study by the inertial frame E and body frame B, as shown in Figure 1. Let the vector

Quadcopter configuration, inertial frame E, and body frame B.
The first three equations of expression (1) describe the linear velocity vector, and the next three equations describe the angular velocity vector.
The relation among force, moment, and velocity of the rotor is described as follows 23
Equation (2) represents the system’s input variables of movement; Ω
Kinematic equation
Let

Geometry of the quadcopter and an obstacle.
Collision-avoidance algorithm
Fundamental definitions
This section presents the definitions of important parameters of the quadcopter for laying the foundation of the proposed collision-avoidance algorithm. In order to be easy to compute and design a controller, the obstacle is considered as a circumsphere of real obstacle shape. These definitions are based on the geometry, as shown in Figure 2.
Definition 1: Boundary sphere of obstacle
The radius of boundary sphere of an obstacle is defined as follows
where
Definition 2: Obstacle detection
The quadcopter detects an obstacle when the relative distance
where
Definition 3: Collision
The collision of the quadcopter with an obstacle occurs when the relative distance
Definition 4: Collision detection and avoidance direction
Let
option 1: option 2:
Definition 5: Completion of collision avoidance
The collision avoidance is successfully completed if the projection of vector
where

Completion of collision avoidance.
According to equation (8), if
Definition 6: Collision algorithm activation
Let
Expressions (9) and (10) are the conditions to activate the collision-avoidance algorithm.
Controller design
In this section, the guidance and velocity control laws are designed to avoid obstacles. The objective is to design a controller such that the collision detection angle
From geometry constraints,
The relative distance ‖
The derivative of ‖
From equation (12), the derivative of
Substituting equations (3) and (14) into equation (15), we obtain
The collision detection angle
where
From equations (17) and (18), the derivative of
Substituting equation (3) into equation (19), we obtain
Substituting equations (11), (16), (17), and (20) into equation (21), we obtain
(Equation (22) is proved in Appendix 1.)
Consider that the candidate Lyapunov function and its derivative are given as follows
A method to achieve a negative value of
where
Controller gain turning
We assume that the heading angle of the quadcopter satisfies option 1 in definition 4. Let
Let
According to definition 1
where
From equation (27),
Let
From equation (27),
According to equations (25) and (26)
Expression (31) is satisfied if
The controller gains
In option 2 (definition 4), the controller gains
Collision avoidance with multiple obstacles
In this section, the collision-avoidance algorithm is extended for multiple obstacles. To avoid collisions with multiple obstacles, a new avoidance direction is recalculated based on the number of obstacles and geometry constraints. Let us assume that the quadcopter can detect all obstacles within the range of sensor. Typical cases of multiple obstacles are shown in Figure 4(a) and (b). Two obstacles are considered to define the collision zone; the relative position between the quadcopter and multiple obstacles is considered as follows.

(a) Relation between quadcopter and two obstacles
In Figure 4(a), the collision may occur between the quadcopter and two obstacles (obstacles
The collision zone is defined as follows in Figure 4(a)
Collision may occur if the relative position of the quadcopter and multiple obstacles satisfies both expressions (33) and (34).
Conversely, collision will not occur between the quadcopter and two obstacles
In Figure 4(a) and (b), two obstacles are considered. However, additional obstacles can be included with the same method. The proposed algorithm is extended to

Relation between quadcopter and multiple obstacles: extended method.
The collision detection angles of
where
From Figure 5, it is easy to recognize that the quadcopter has two directions to avoid obstacles: The first direction is to turn left of the obstacle case 1: Let case 2: Let case 3
Let
Therefore, the current velocity
From expression (36), the quadcopter can choose from two directions to avoid the series of obstacles: left or right.
The avoidance direction is determined as follows
The tracking error angles of two avoidance directions are obtained as follows
From equations (39) and (40),
If
and
If
and
The proposed controller at equation (25) based on the Lyapunov stability is also effective in this case (The proposed controller at equation (25) based on the Lyapunov stability is also effective in case 3. It is proved in Appendix 2.).
Target position approach
This section introduces the algorithm to steer the quadcopter to the target position after the completion of collision avoidance.
In option 1, let

The path of quadcopter to reach the target position after obstacle-avoidance completion.
Area 1
The current position of the quadcopter
where

General block diagram of proposed algorithm.
Area 2
Once the position of the quadcopter
where
When the quadcopter closely approaches target point
The method to reach the target point in option 2 (definition 4) is identical to that in option 1.
Simulation results and discussion
Simulation conditions
Numerical simulations were conducted to test the performance of the proposed method. Several conditions and assumptions were considered for the simulations. First, the case of a stationary obstacle is considered. The position and velocity of the quadcopter are determined from the embedded global positioning system (GPS)/inertial navigation system (INS) systems. The obstacles are detected by a light detection and ranging (LiDAR) or vision sensor system.
Second, the simulation assumed that the quadcopter is in flight at a constant altitude
Numerical parameters and initial values for simulation.
Simulation results
In this section, the results of the simulation are presented to demonstrate the effectiveness of the proposed collision-avoidance algorithm.
Single obstacle
The first simulation was conducted for option 1 in definition 4. This simulation was performed with the target position of the quadcopter set to

Path performance in three dimensions with target position

Path performance in two dimensions with target position

Relative distance between the quadcopter and obstacle with target position

Heading angular rate performance of the quadcopter with target position

Angle

Tracking error

Velocity performance of the quadcopter with target position

Attitude angles and heading angle of the quadcopter with target position
In area 1, the collision-avoidance algorithm is not activated because the relative distance is greater than active distance
At time
As shown in Figure 14 (in area 2), the velocity gradually decreases as the quadcopter comes closer to the obstacle. In the meantime, the heading angular rate
Area 3 begins at time
At time
The second simulation was performed for option 2 in definition 4, with the target position of the quadcopter set to

Path performance in three dimensions with target position

Path performance in two dimensions with target position

Relative distance between the quadcopter and obstacle with target position

Heading angular rate performance of the quadcopter with target position

Angle

Tracking error

Velocity performance of the quadcopter with target position

Attitude angles and heading angle of the quadcopter with target position
At time
At time
At time
Multiple obstacles
The last simulation was performed with multiple obstacles. Three obstacles were considered in this case, and their positions are
For T (18, 24)
The quadcopter moves toward the multiple obstacles

Path performance in three dimensions with multiple obstacles and

Path performance in two dimensions with multiple obstacles and
As shown in Figure 26, once

Relative distance between the quadcopter and multiple obstacles with

Attitude and heading angle of the quadcopter with multiple obstacles and

Angle

Tracking error

Velocity performance of the quadcopter with

Heading angular rate performance of the quadcopter with
For T (20, 22)
The next simulation was conducted with the target position of the quadcopter set to

Path performance in three dimensions with multiple obstacles and

Path performance in two dimensions with multiple obstacles and

Relative distance between the quadcopter and multiple obstacles with

Attitude angles and heading angle of the quadcopter with multiple obstacles and

Angle

Tracking error

Velocity performance of the quadcopter with

Heading angular rate performance of the quadcopter with
The simulation results demonstrate the effectiveness of proposed method. The advantages of this algorithm are simplicity, low computational requirements, and ability to find the shortest path to avoid obstacles and reach the target position after completion of collision avoidance. Both heading angular rate and velocity of quadcopter are considered simultaneously to ensure that collisions do not occur when the vehicle travels at high speed. This method overcomes the disadvantages of previous studies that only concern guidance law. 9,13,16 This algorithm is also effective to multiple obstacles. Finally, the proposed simple method can be used to avoid collisions for quadcopter or multicopter in a static environment.
Conclusions
In this article, a new approach to control quadcopters to avoid obstacles was introduced. This method can be applied to avoid single or multiple obstacles. To design the guidance and velocity control laws, a tracking error was defined to determine the avoidance direction. The controllers are obtained from Lyapunov stability. Furthermore, the controller gain can be found easily with the presented turning method. In addition, a target position approach method to steer the quadcopter to reach the destination was presented.
Numerical simulations for different scenarios were performed, and the results demonstrated the good performance of the proposed method. However, the study did not consider collision avoidance for moving objects and external disturbances. Therefore, the extension of this method to dynamic environments and external disturbances will be studied in the future.
Footnotes
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: This work was supported by the Korea Institute for Advancement of Technology (KIAT) grant funded by the Korean government (MOTIE: Ministry of Trade, Industry, and Energy) (no. N0002431).
