Multicopters have gained attention in recent years. Due to their simplicity and maneuverability, they have been used in a broad spectrum of applications such as agronomy , calibrating antenna of a telescope  and inspection of infrastructures .
A special type of multicopters with four motors, known as quadcopters, has been extensively studied and there is a vast literature about their modeling, design, control and path planning. These vehicles normally have an even number of propellers half of which turn in the opposite direction of the remaining propellers. Modeling and full control of a quadcopter can be found in .
Fault tolerant control of multicopters in case of partial or complete failure of actuators is an area of interest among researchers. Feedback linearization approach is used in  to stabilize a quadcopter after complete loss of one propeller. Stability and control of quadcopters experiencing one, two or three rotor failures are presented in , however all propellers have parallel axes of rotation and the effects of rotation of center of mass of the propellers on their performance are not investigated. To increase reliability by redundancy, quadcopters with tilting rotors, hexacopters and octacopters are introduced which are capable of maintaining stable flight despite losing one to four actuators [7, 8, 9], however they are not optimal in terms of power consumption or stability. Emergency landing for a quadcopter with one rotor failure in an environment without obstacles can be found in  where the landing location is known and path planning is not discussed.
An emerging area of research in multi-rotor UAVs falls into finding a landing spot and planning a safe trajectory towards it in case of rotor failure. While there is a huge body of literature on trajectory planning of quadcopter [11, 12, 13, 14], the work done on extending this to a situation where there is a rotor failure is scarce. Despite the unprecedented progress in the development of UAVs (especially multicopters) in recent years, two major issues, namely safety and endurance, still remain as main challenges. These vehicles are prone to having different types of failure in the system such as partial or complete loss of motors or propellers, collision with obstacles or other vehicles and power outage. Since they are becoming an inevitable part of our everyday life, safety becomes one of the key factors in designing such vehicles.
This paper presents a framework for emergency landing of a quadcopter in case of a rotor failure. Because of the fast rotations of the vehicle’s body (due to unbalanced moments in the system), it is essential to consider all aerodynamic effects. In particular, two important parameters affecting propeller’s performance, namely the resultant angular velocity of the propeller and the freestream velocity, are investigated for the first time. Based on blade element theory
a complete mathematical model for the propeller is incorporated in equations of motion which results in finding a specific configuration of quadcopters namely, adding a tilting angle to the rotors thrust vector, which leads to the minimum power consumption in hovering. Hover solution for different configurations is calculated and a comparison in terms of power consumption amongst them is presented. For the configuration with minimum power consumption, cascaded control strategy is used to control attitude and position of the vehicle and nonlinear simulations validating the results are presented.
For completing the landing, first an algorithm is proposed to find the best landing spot in a given map of the environment where obstacles are represented by cuboids. Two parameters are used to define a cost function in order to find the optimal landing spot in the given map: (i) finding the safest landing spot with the largest clearance from the obstacles; and (ii) finding the most energy-efficient trajectory towards the landing spot. In order to properly define the clearance from obstacles, Generalized Voronoi Diagram (GVD) is used. For all points on the GVD, the one with minimum cost is selected as the landing spot. A finite horizon is selected in generating the GVD. The boundary of this horizon is estimated based on the total cost-to-go based on the power requirement. Furthermore, due to the size and dimensionality of the search space, an RRT*-type randomized motion planning strategy is adopted that can generate optimal trajectories on the fly in real time. Using nonlinear simulations and the designed controller, the results of following the path and performing emergency landing are evaluated.
The paper is organized as follows. In Section II, mathematical modeling of a quadcopter with a complete aerodynamic model of a propeller in presence of freestream velocity is presented. Equilibrium state after failure, fault tolerant control design, effects of tilting the rotors on power consumption and introduction of a specific configuration with minimum-power hover solution are presented in Section III. In section IV, an algorithm to find the best landing spot and path planning using sampling-based planning algorithms are presented. Finally, nonlinear simulation results are presented in Section V and the paper concludes in Section VI.
Matrices are represented by straight boldface letter and all vectors are represented by italicized boldface letters. Rotation matrix between frame i and frame j is represented by . In addition, the term denotes that belongs to and is expressed in frame . Angular velocity vector of the vehicle is represented by where , and are roll, pitch and yaw rates respectively. Finally, represents the 2-Norm of the vector and represents the absolute value of scalar .
In this section a complete dynamic model of the quadcopter is given, considering the aerodynamic model of the propellers’ thrust against freestream velocity.
Ii-a Equations of Motion
Figure 1 shows schematic of a quadcopter. Six reference frames are defined, one of which is assumed to be fixed and attached to the earth, also known as inertial frame , one is attached to the center of mass of the vehicle that rotates with it and is represented by and four other reference frames attached to the center of mass of the motor , however they do not turn with the rotors.
A propeller is attached to each motor equipped with a propeller which generates a thrust force in the direction of z-axis of the motor frame. Propellers 1 and 3 have negative angular velocity and propellers 2 and 4 have positive angular velocity expressed in the body frame as . The moment of inertia of the propellers is approximated by the moment of inertia of a disk and is represented by a diagonal matrix as . The angular velocity of the body frame with respect to the inertial frame is represented by . The geometry of the vehicle is assumed to be symmetric so its moment of inertia matrix can be represented by a diagonal matrix as . The equations of motion are:
In the left hand side of (1), the first and second terms are moments due to angular accelerations of body and propellers. The third term represents cross-coupling of angular momentum because of the rotation of the body and propellers and
represents the skew-symmetric matrix of the angular velocity of the body. In the right hand side of (1), the first term is the moment due to propeller’s thrust force, the second term is the moment due to drag force of the body, the third term is the reaction moment of the propeller and the last term is the moment due to asymmetrical lift distribution over the advancing and retreating blades of the propellers . The moment due to aerodynamic drag, , is assumed to be proportional to angular velocity of the vehicle with a proportionality constant . The reaction moment of the propeller is assumed to be proportional to the thrust force of the propeller , with a constant . The derivation of and are presented in our previous work . In (4), the position of the quadcopter’s center of mass in the inertial frame is denoted by . In the right hand side, is the sum of all the forces generated by propellers as expressed in the body frame, is the aerodynamic drag force due to translational motion of the fuselage and is assumed to be proportional to the linear velocity of the center of mass of the vehicle with a proportionality constant , is the gravitational acceleration and is the rotation matrix from body frame to inertial frame.
Iii Control Design For a Quadcopter Experiencing One Rotor Failure
In this section a new stable hovering definition for a quadcopter experiencing one rotor failure is presented first. Second, based on this new hovering definition, a control strategy is developed to control attitude and position of the vehicle after failure. Finally, it is shown how by titling the rotors one can minimize the power consumption and also improve the flight stability in case of one rotor failure.
Iii-a Stable Hovering Definition In Case of Rotor Failure
Generally, in multi-rotor UAVs, hovering is defined as maintaining a position with zero angular and linear velocities. However, in case of one rotor failure in a quadcopter and in order to control the attitude and position of the vehicle, a new hovering definition is required. Hovering is defined as maintaining an altitude while rotating with constant angular velocity about a unit vector that is fixed with respect to the vehicle .
Without loss of generality, suppose motor number 4 (see Fig. 1) is failed. Because of the unbalanced moments of the remaining functioning propellers, the vehicle starts rotating about a unit vector (as expressed in the body frame) with angular velocity . The evolution of this unit vector in time can be written as follows:
According to the new hovering definition, we want this unit vector to be fixed with respect to the vehicle. If this unit vector is fixed, from (5) we can say the angular velocity of the vehicle will remain parallel to this unit vector so the vehicle will be rotating about . Now if remains constant, one can achieve stable hovering as all the states of the system will remain bounded. If is fixed, (5) should be equal to zero. In other words, in hover, is a unit vector stationary in the inertial frame as expressed in the body frame which is parallel to vector. Setting (5) to zero and knowing that is a unit vector, one can write the followings (note that an overbar indicates equilibrium values):
Also, in hover, the projection of total thrust forces of all propellers onto should balance the weight of the vehicle which results in adding the following constraint to the system:
As the vehicle is turning with constant angular velocity , the center of mass of the propeller goes through a rotation about which generates a uniform freestream velocity over the propeller (where is the distance of the center of mass of the propeller from the center of mass of the vehicle) . Considering this freestream velocity, using the proposed propeller model in  and the resultant angular velocity of the propellers, total thrust force and moment of the propeller can be written as follows:
where is the air density, is propeller’s blade chord, is propeller’s lift coefficient and is the propeller’s blade radius. Using equations (1)- (5), by setting angular accelerations to zero and considering the proposed propeller model, a system of eight algebraic equations for 11 unknowns are obtained. Three more equations are required to solve the system. The unknowns are: , , , , , , , , , , . Assuming that motor number 4 is failed () and by adding the following constraints, we will end up with a system of 11 algebraic equations with 11 unknowns.
where is a tuning factor and a non-negative scalar. Now there are 11 algebraic equations to be solved for 11 unknowns to obtain equilibrium values or hover solution. For simplicity, assuming , one can neglect the second term in (1). Also, since yaw is the dominant rotational motion, is assumed to oppose yaw motion only and is assumed to be proportional to yaw rate with proportionality constant as . The reaction moment of the propeller is also assumed to be proportional to its thrust force and can be expressed in the body frame as . Therefore, using the reaction torque and the angular velocity of the propeller, the power consumption of the motors in hover can be calculated as follows:
Iii-B Control Design
In this section, control design is presented. A cascaded control strategy is used to control attitude and position of the vehicle. Using nonlinear equations of rotational motion in (1), a linear time-invariant system is introduced to control the attitude of the vehicle or in other words control the direction of the unit vector
. In addition, it is shown that by controlling two rotational degrees of freedom that are related to the translational motion (and ), along with the sum of all thrust forces, the position of the vehicle can be controlled.
In controlling the attitude, the strategy is to give up control of the full attitude after failure. Instead, only those rotational degrees of freedom related to translational motion of the vehicle will be controlled which is often called reduced attitude control . After failure, reduced attitude states are represented by a variable which includes pitch and roll rates of the vehicle and and components of the unit vector . By linearizing (1) and (5) about the equilibrium state , the deviations of from as represented by can be described by the following linear time-invariant system:
Also in equilibrium, to balance the weight of the vehicle can be determined by the following constraint:
By designing a linear controller for (12), the inner loop of the cascaded controller is complete.
In order to control the position of the vehicle, an outer control loop is designed such that it generates reference signal for the inner control loop. This can be done first by finding the desired acceleration of the vehicle to get to the desired position and then transforming it to the desired direction of the unit vector . The desired acceleration can be found by defining a new state variable as expressed in the inertial frame, as the deviations of the position of the vehicle d from its desired position , behaving like a second order system with damping ratio and natural frequency as follows:
The total acceleration is then defined as . In hover, we want so that the desired direction of the unit vector will be in the opposite direction of . According to the Newton’s second law, one can write the following equation to find the desired direction of :
In summary, the outer control loop controls the position of the vehicle and generates reference signal for the inner control loop which controls the reduced attitude of the vehicle.
Iii-C Effects of Tilting The Rotors On Power Consumption
In previous sections, hover solution and control design were presented. In this section, effects of tilting the rotors on power consumption of the motors after failure are presented.
After failure, it is shown that at equilibrium, the vehicle will have constant angular velocity with yaw being the dominant rotational motion. In hover, according to (8) and (9), can have a significant effect on thrust force and the moment generated by the propellers depending on its magnitude and direction which consequently can affect power consumption of the motors. In particular, a specific configuration can be introduced that generates such that it is in favor of thrust force and the moment of the propeller and thus yielding the minimum-power hover solution.
In addition, in hover, can affect the resultant angular velocity of the propeller and also can change the relative air flow velocity over the blade. In a quadcopter, because half of the rotors are turning in the opposite direction of the remaining half of the rotors, therefore after failure, will have positive effect on some rotors and negative effect on some other rotors. If the direction of is the same (opposite) as that of the propeller’s angular velocity, then the propeller should turn slower (faster) in order to generate the same amount of thrust force when , therefore according to (11), since experiences very small changes (only for small angles), the power consumption of the motor will be decreased (increased). The goal of this section is to find the best configuration of the rotors to get the most benefits out of after failure, such that the power consumption of the motors is minimized.
In regular quadcopters, yaw motion is usually carried out using the reaction moment of the propellers. This moment is fairly small compared to the moment generated by the propeller’s thrust force about the center of mass of the vehicle , therefore it may not be an efficient way to yaw. Instead, one can yaw by tilting the rotors by angle about the x-axis of their corresponding motor frame and using a small component of the propeller’s thrust force to generate relatively larger yaw moments . Note that the tilting angle should be small enough so that (8) and (9) can hold true and the component of the thrust force that balances the weight of the vehicle experiences fairly small changes.
A new configuration is proposed by tilting the rotors about the x-axis of the motors frame (shown in blue in Fig. 1) as shown in Fig. 2 (a) where the positive direction of the tilting angle is shown in Fig. 2 (b). Because rotors 1 and 3 are assumed to be turning in the negative direction of z-axis of the body frame, by tilting these motors by any positive angle, the vehicle tends to generate a yaw motion that is in favor of reducing their power consumption. Whereas for rotors 2 and 4 which are turning in the positive direction of the z-axis of the body frame, the tilting angle should be negative. Note that, for simplicity, it is assumed and .
This new configuration not only helps to reduce the power consumption after failure, but also helps to increase stability of the vehicle in yaw motion in absence of failures . It also adds a new tuning parameter to the hover solution.
Assuming motor number 4 is failed, using (11) to find the minimum-power hover solution a simple line search is performed over tuning parameters and . Results show that the minimum-power solution can be found when and rad, meaning that after failure, motor number 2 should be turned off and motors number 1 and 3 should be tilted by 0.4 rad.
Next, to investigate the optimality of the hover solution, we calculate power consumption of the motors in hover for various scenarios. For this purpose, an example quadcopter with the following parameters is considered.
Consider a vehicle with kg, kg.m, kg.m, m, kg.m, and m. The propellers have two blades with m, , m and air density is assumed to be constant kg/m. For this vehicle, minimum-power hover solution can be found by setting and as follows:
Note that if we set the tilting angle to zero and minimize the total power consumption in hover with respect to , the minimum power would be equal to W. Furthermore, if we set both tilting angle and to zero, the minimum power becomes W.
Iv Path Planning For Crash Landing
As the goal of the paper is to introduce a framework for crash landing, in this section, we continue by presenting path planning and crash landing a quadcopter after a rotor failure. Recently, sampling-based planning algorithms such as Rapidly-exploring Random Trees (RRT) have proved to be practical and effective in high-dimensional state spaces and have attracted considerable attention in the robotics community. These algorithms are probabilistically complete . One of the problems with sampling-based algorithms is that they do not necessarily return a global optimal path. However, there is a variant of RRT that is called RRT*, which finds a path that exponentially approaches the global optimal path in the environment as the number of samples approaches infinity .
In this paper, it is assumed that a fairly simple 3D representation of the environment in which the vehicle is flying is available a priori. There are obstacles including all sensitive regions in the environment such as the buildings, trees and lakes which we want to avoid colliding with. Obstacles are assumed to be stationary and cuboid. An example of such representation can be found in Fig 3.
For the given map, using Generalized Voronoi Diagram  and defining a cost function, the minimum cost landing spot is found. Using RRT* algorithm an obstacle-free path is found to connect the start point to the landing spot. Finally, using a simple search algorithm the path is shortened further (if possible) and the vehicle performs emergency landing by following it.
Iv-a Finding The Best Landing Spot
Selecting the location of landing is an important step in emergency situations, simply because it determines the feasibility of the landing. For example, using the distance of the landing spot from the vehicle and a model to compute total power consumption while following a path, one can determine if the vehicle can safely get to its destination. Also, during the path, the vehicle should maintain a certain distance from the obstacles so that in case of complete power outage it would not collide with any of them. In this paper, our goal is to find the best landing spot based on two criteria: (i) finding the safest landing spot with the largest clearance from the obstacles; and (ii) finding the most energy-efficient trajectory towards the landing spot.
It is assumed that all obstacles are treated the same, therefore the safest way (in terms of collision) to define clearance is to stay at equal distance from them (if possible). One of the best ways to find such points in a map is to use Generalized Voronoi Diagram (GVD). Note that because the z-component of the landing spot is always zero (assuming we always land on the ground), the search only takes place in the x-y plane of the given map. However, in order to make this exhaustive search possible, the map is discretized with a step size which is assumed to be 1 meter in this paper (for larger maps or scaled maps, this step size can be scaled to reduce computation time accordingly).
To find the best landing spot using GVD, a network of obstacle-free paths (edges of GVD) in the x-y plane of the given map is generated. For each point in this network, a cost J as a function of clearance from obstacles and distance from the vehicle is calculated as follows:
where a and b are two weights to be determined for the clearance from obstacles r and distance from the vehicle d respectively. Finally, by calculating (22) for all points in GVD, the point with minimum cost can be selected as the best landing spot. If multiple points are returned, the priority is given to the one with minimum distance from the vehicle.
Iv-B Path Planning
In this paper, RRT* algorithm is used to find the path connecting the position of the vehicle to the landing spot in the given map of the environment. In particular, two different scenarios for path planning are evaluated in this paper: (i) When the number of samples are given; and (ii) When the number of samples are unknown. In the first scenario, when the number of samples are given (i.e., 2000 samples), first the graph is generated and then the algorithm attempts to find the shortest path between the start and goal states within that graph (if any exists). Note that in this scenario there is a probability, depending on the number of samples, that the algorithm fails.
The second scenario is slightly different. Instead of using a fixed number of samples, the algorithm keeps adding vertices to the graph until it finds a path between the start and goal states. As the algorithm adds more vertices, the probability of finding a path between the two points approaches 1 and as the number of vertices approaches infinity, the probability of finding the optimal path approaches 1 as well. An additional step is also added to RRT* which minimizes the length of the path further if possible. Due to the random nature of these algorithms, the final path has unnecessary zig-zag like segments which increases the overall length of the path. To avoid these, a search over the vertices on the final path is performed to find the shortest path among its vertices connecting the start state to the goal state. Either of these two scenarios can be used to plan a path for emergency landing of the quadcopter.
V Simulation Results
This section is the culmination of all the previous sections and presents simulation results for emergency landing of a quadcopter with one rotor failure. A vehicle with the same specifications introduced in Section III-C is used in the simulations. Suppose that for a quadcopter, motor number 4 is failed (see Fig. 1) and using (12), an LQR controller, with being the weight matrix for reduced attitude states and being the weight matrix for the control inputs, is designed for the optimal hover solution as found in (17) (note that LQR is used for simplicity and any other type of controller can be used to control (12), also if , becomes zero too). For position control, damping ratio and natural frequency are selected for all , and coordinates. Representation of the environment is shown in Fig 3, with obstacles being in red. The initial position of the vehicle after failure is at m as represented by a small blue circle. By generating GVD for the given map as shown in blue in Fig. 3, and using the cost function defined in (22) with weights and , the best landing spot is found to be at m as represented by a magenta asterisk.
Based on the second scenario for path planning and by setting the step size for RRT* algorithm to 50 meters and the radius of the circle to rewire the graph to 150 meters, a path is found between the start and goal states which is shown in magenta in Fig. 3 and by searching through the vertices of this path the shortest path can be retrieved as shown in yellow. Finally, by implementing the controller in the nonlinear simulation of the quadcopter flight using (1) and (4), the vehicle follows the yellow path and lands the vehicle safely. The actual path of the quadcopter following the yellow path is represented by dashed black line in Fig. 4.
Another set of nonlinear simulation results, using the same LQR controller for one setpoint change in position of the example quadcopter with the optimal hover solution (17) is presented in Fig. 5. Note that the intial yaw rate of the vehicle is chosen to be close to its equilibrium to make sure the linear time-invariant controller is able to stabilize the system. Improving the controller to stabilize the system at arbitrary initial conditions is a topic of future work.
This paper presents a framework for emergency landing of quadcopters in case of complete failure of a rotor. Mathematical modeling of a quadcopter considering all significant aerodynamic effects on the propeller’s dynamics is presented first. Equilibrium states and fault tolerant control design are presented next followed by introducing a specific configuration for quadcopters which not only results in better stability in yaw motion but also yields the minimum-power hover solution in case of one rotor failure. An algorithm to find the best landing spot using Generalized Voronoi Diagram for a given 3D representation of the environment is introduced for the first time. Finally, path planning for emergency landing using sampling-based planning algorithms (i.e., RRT*) is presented and the results are evaluated by nonlinear simulations. Verifying the results by experiments, investigating the effects of nonzero freestream velocity on spinning vehicles and their power consumption and performing sensitivity analysis can be topics for the future work.
-  J. Rasmussen, J. Nielsen, F. Garcia-Ruiz, S. Christensen, and J. C. Streibig, “Potential uses of small unmanned aircraft systems (uas) in weed research,” Weed Research, vol. 53, no. 4, pp. 242–248, 2013.
-  J. R. Horandel, S. Buitink, A. Corstanje, J. E. Enriquez, and H. Falcke, “The lofar radio telescope as a cosmic ray detector,” in International Cosmic Ray Conference, 2013.
-  J. Thomas, J. Polin, K. Sreenath, and V. Kumar, “Avian-inspired grasping for quadcopter micro uavs,” Bioinspiration & Biomimetics, vol. 9, pp. 25 010–25 019, 2014.
-  S. Bouabdallah and R. Siegwart, “Full control of a quadcopter,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2007, pp. 153–158.
-  A. Freddi, A. Lanzon, and S. Longhi, “A feedback linearization approach to fault tolerance in quadrotor vehicles,” in Proceedings of the 18th IFAC world congress, 2011, pp. 5413–5418.
-  M. W. Mueller and R. D’Andrea, “Stability and control of a quadrocopter despite the complete loss of one, two, or three propellers,” in IEEE International Conference on Robotics and Automation (ICRA), 2014, pp. 45–52.
-  R. M., H. H. Bulthoff, and P. R. Giordano, “Modeling and control of a quadcopter uav with tilting propellers,” in IEEE International Conference on Robotics and Automation (ICRA), 2012, pp. 4606–4613.
-  D. Scaramuzza, M. C. Achtelik, L. Doitsidis, F. Friedrich, E. Kosmatopoulos, A. Martinelli, M. W. Achtelik, M. Chli, S. Chatzichristofis, L. Kneip, D. Gurdan, L. Heng, G. H. Lee, S. Lynen, M. Pollefeys, A. Renzaglia, R. Siegwart, J. C. Stumpf, P. Tanskanen, C. Troiani, S. Weiss, and L. Meier, “Vision-controlled micro flying robots: From system design to autonomous navigation and mapping in gps-denied environments,” IEEE Robotics Automation Magazine, vol. 21, no. 3, pp. 26–40, 2014.
-  A. Marks, J. F. Whidborne, and I. Yamamoto, “Control allocation for fault tolerant control of a vtol octorotor,” in Proceedings of 2012 UKACC International Conference on Control, 2012, pp. 357–362.
-  V. Lippiello, F. Ruggiero, and D. Serra, “Emergency landing for a quadrotor in case of a propeller failure: A backstepping approach,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2014, pp. 4782–4788.
-  D. Mellinger, N. Michael, , and V. Kumar, “Trajectory generation and control for precise aggressive maneuvers with quadcopters,” Experimental Robotics, vol. 3, pp. 361–373, 2014.
-  M. Hehn and R. D’Andrea, “Quadrocopter trajectory generation and control,” in Proceedings of the 18th IFAC world congress, 2011, pp. 1485–1491.
-  S. M. LaValle, “Rapidly-exploring random trees: A new tool for path planning,” 1998.
-  S. Karaman and E. Frazzoli, “Sampling-based algorithms for optimal motion planning,” International Journal of Robotics Research, vol. 30, no. 7, pp. 846–894, 2011.
-  J. D. Anderson, Fundamentals of Aerodynamics, 5th ed. United States: McGraw Hill Higher Education, 2016.
-  M. Hedayatpour, M. Mehrandezh, and F. Janabi-Sharifi, “Propeller performance in presence of freestream,” in Proceedings of The Canadian Society for Mechanical Engineering International Congress, 2018.
-  P. Martin and E. Salaun, “The true role of accelerometer feedback in quadrotor control,” in 2010 IEEE International Conference on Robotics and Automation, 2010, pp. 1623–1629.
-  M. Hedayatpour, M. Mehrandezh, and F. Janabi-Sharifi, “Revised propeller dynamics and energy-optimal hovering in a monospinner,” in Proceedings of the 4th International Conference of Control, Dynamic Systems, and Robotics, 2017.
-  M. Hedayatpour, M. Mehrandezh, and F. Janabi-Sharifi, “A unified approach to configuration-based dynamic analysis of quadcopters for optimal stability,” in 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2017, pp. 5116–5121.
-  T. Lozano-Perez and M. A. Wesley, “An algorithm for planning collision-free paths among polyhedral obstacles,” Communications of the ACM, vol. 11, no. 10, pp. 560–570, 1979.
-  P. Corke, Robotics, vision and control: fundamental algorithms in MATLAB. Springer, 2017.