Guidance and control algorithms for UAV indoor applications
Document typeMaster thesis
Rights accessRestricted access - author's decision
The popularity of UAVs has increased during the last years due to the many applications in which such vehicles can get involved and yield benefits. Such uses often require specific behaviours and performances on the part of the aircraft, which can be achieved through guidance and navigation techniques. Nowadays, the trajectory planning of multirotors is an explored topic involving not only trajectory generation but optimization and collision avoidance. The control field is even more scrutinized than the latter, providing multiple solutions towards governing the non-linear dynamics of a drone. In this thesis, two different approaches have been considered regarding the trajectory planning strategy. Dubins curves are presented as the alternative to straight-lined paths, together with a trapezoidal velocity profile as a reference for linear velocities. With Bézier curves, it is intended to go one step further. In this second case, the derivative of the position is used to generate the heading references and the velocity profiles as well. A comparison of the two trajectory planners designed is done throughout Model-in-the-Loop simulation (MILP) in MATLAB. To do so, two simple controllers have been designed: a PID and a Linear Quadratic Regulator (LQR). The mathematical model of the vehicle is obtained from the equations of movement of aircraft assuming some simplifications. Subsequently, a linearization of the model is performed for later generation of the LQR. A brief description of the elements that comprise the real platform on which this project is based is given. Also, the possibility of performing Software-in-the-Loop (SITL) simulation is explained theoretically, as the autopilot mounted on the quadrotor enables the said process. Also, some experimental tests have been conducted in order to obtain the moments of inertia of the existing prototype. This involves the previous construction of a pendulum and the use of a motion capture sensor to record the oscillations during the experiments. Once the model has been presented, the design of controllers is addressed. Quadrotor dynamics tend to be separated into two categories: slow dynamics, regarding position; and fast dynamics, alluding to the attitude. This differentiation is used to build a PID-based cascade controller in which the inner loop controls the attitude and the outer loop is in charge of the position control. Altitude control is handled separately. On the other hand, the LQR created in this project encompasses the whole state making no such difference. Eventually, different flight patterns with increasing difficulty in terms of changes in the states are proposed and the references are produced by both trajectory planners. A comparison between the four combinations of trajectory design and control strategy is provided. Simulations are conducted with the controllers introduced beforehand. The PID presents satisfactory results with both trajectory concepts, even though the attitude control is slow and presents some overshoot. On the other side, the responses obtained with the LQR show oscillations when the heading reference contains changes in such variable. However, when no variation is considered in the heading of the vehicle, the LQR presents a faster response in attitude and a reasonable response in position. Future work of this project involve the improvement of the controllers and the consequent Software-in-the-Loop testing (SITL). Once such process is concluded, it's desired to proceed with Processor-in-the-Loop testing deploying the generated code of the control into the target device, being one step closer to experimental flight tests.