top of page

Unmanned Aerial Vehicle

The controller

Fall 2019

79170404_577524683008842_111024838029606

Overview

In Fall 2019, I took the Introduction to Control of Unmanned Aerial Vehicles class (ME136) at UC Berkeley. Throughout the class I learned the modeling and dynamics of aerial vehicles and common control strategies. During our laboratories, I gained first hand experience by programming a microcontroller to command a UAV using C language. 

About the challenge

The goal for the final laboratory was to have the vehicle autonomously take off, translate over a hurdle of 0.12 meters height, and then land as close as possible to a target location that is 1 meter apart from the starting point. 
 
IMG_A8B259623BDC-1_edited.jpg
Layout of the path to follow by the UAV

Controller - Design Approach

For this laboratory, the focus was to combine everything we have implemented from previous labs and make the drone hover at certain height and then reach 1 meter before landing. A height estimator, rate gyroscope, flow sensor, and an estimated horizontal velocity were already accurately implemented up to this point from the previous labs. However, hovering was still a problem and a new state estimator was implemented to complete the final goal. 
The main problems presented in the vehicle to achieved the desired objective were the drifting to one of the sides and making it stop after 1 meter.
 
The following modifications were made to the standard control/estimation architecture:
 
  • The center of mass error was reduced by putting some tape on the drone to try to balance the vehicle. Also, the battery was set in a specific position as shown below. As a result, the vehicle started moving steadily forward on every trial.
IMG_1943.jpg
Center of mass modifications: applied tape to balance the vehicle COM
  • A position estimator was implemented. This helped to improve the drift of the vehicle; however, the vehicle was moving too fast for our objective. Therefore, this feedback on the position was replaced by a velocity feedback to improve the estimated speed of the vehicle. The desired estimated velocity was set to 1 m/s, it helped to reduced the speed of the vehicle and it did not affect the drift as much as expected. 
BD.JPG
Block diagram of the system (taken from class material). The pink rectangle indicates where the controller was applied.
BD1.png
Block diagram of the position estimator integral control
BD2.png
Block diagram of the velocity estimator integral control
The time constants were changed and analyzed as shown below:
 
Time constant for roll rate control = 0.03: This time constant was changed from 0.04 to 0.03, it helped with the drift and to move the vehicle forward. In addition, 0.02 was tried but it made the vehicle roll faster. The time constant of the roll rate kept equal to the time constant of the pitch rate.
Time constant for roll angle control = 0.3: This time constant was changed from 0.12 to 0.3, it helped with the drift and to move the vehicle forward. It gave a better and more steady performance in every trial. The time constant of the roll angle kept equal to the time constant of the pitch angle.
 

Final Result

The vehicle's direction was steady for around 5 to 6 seconds and then it started drifting, all the modifications mentioned above helped to make the trials better. Some of the main limitations were the accuracy of the sensors and the dependency of the vehicle to the exact position (COM modifications) and the full charged of the battery. If the battery is not fully charged the vehicle would not behave as expected. Below is the final result of the lab competition, the vehicle achieved to be only 12 cm away from the target. 
IMG_1960.HEIC
Vehicle final goal completed
The vehicle landed 12 cm away from the target
bottom of page