top of page
Unmanned Aerial Vehicle
The controller
Fall 2019


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.

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.

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.

Block diagram of the system (taken from class material). The pink rectangle indicates where the controller was applied.

Block diagram of the position estimator integral control

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.

Vehicle final goal completed
The vehicle landed 12 cm away from the target
bottom of page