Introduction
I started my Master's studies at Virginia Tech in August 2021. I am specializing in RADS (Robotics, Autonomous, and Dynamical Systems) thrust area in the Dept. of Mechanical Engineering. I was taking Dr. Andrea L'Afflitto's course on Industrial Robotics and subsequently I joined his Advanced Control Systems Lab where I was given the task to work on the robust and adaptive control of Unmanned Aerial Systems (UAS). This is my weekly log of the work I did in that lab in reverse chronology.
Lab Meeting 14  08^{th} December 2021 (Special Meeting)
 Showed my approach so far and resolve symbolic errors.
Feedback
 That's all folks! Let's stop here. We are not a good match.
Lab Meeting 13  06^{th} December 2021
 Resolved many errors. Stuck with pole placement for now.
Lab Meeting 12  19^{th} November 2021
 Done calculating the robustness parameters
 Observer design is in work
 Bookkeeping for
 Classical output feedback linearization (with fullstate information)
 Robust feedback linearization with fullstate information
 Robust feedback linearization without fullstate information (linear observer design)
Feedback
 There are several ways to design 'v' (virtual input)  pole placement is one technique (used in the provided code), then there are LQR, LQG, HInfinity, etc.
 It's all just a matter of plugging in the formula.
 There are only a couple of meetings left in this semester. Want to see the result before that.
Lab Meeting 11  10^{th} November 2021
 Calculated the robustness parameters
 Stuck with matrix dimensions of alpha_r and beta_r
 Now things have started to make sense  states, linearized states, need for linearization, need for robustness, constructing missing states through observability
Feedback
 Checked the MATLAB code
 MATLAB simulation code for spiralling quadcopter
Quadrotor Output Feedback Linearization Simulation_10112021
sent by Julius  Work on the graph
Lab Meeting 10  5^{th} November 2021
 Completed Nonlinear System lecture series (important ones)
 Calculated diffeomorphism in the
Output Feedback Linearization
code  Finished reading the paper
Robust Output Feedback Linearization Without Full State Information
. Need to understand the concept of observability better  Went through the example MATLAB code for magnetic bearing. It needs a few correction, so working on that.
 Need time to implement it for the UAV
Feedback
 Gave a brief overview of observability
 Show the comparison graph in the next meeting  Using the states as earlier vs. states obtained through robust output linearization
Lab Meeting 9  27^{th} October 2021
 While the
Output Feedback Linearization
concept was relatively easy, understandingRobust Output Feedback Linearization
needs some context of Nonlinear Systems, hence I focused more on mathematical part this. Understood the why of linearization (and Lie derivatives)  Nonlinear Systems tutorials on YouTube by Topperly  Almost done with it
Feedback
 While understanding the 'why' of things is alright, I have been given a specific objective to accomplish. I should focus more on that. The semester will be over in \~20 days. Move fast.
Lab Meeting 8  20^{th} October 2021 (Zoom)
 Reading about Diffeomorphism
 Going through
Robust Output Feedback Linearization
 theory and code  Couldn't make much progress because of midsem
 Nonlinear systems lectures on YouTube  Topperly. Currently on phaseplane analysis
Feedback
 Propose intiatives, ask questions and decide if something is better/more feasible or not  that's how you outline a thesis
Chris
 Integrating ailerons and rudder in Quad Biplane. Before directly jumping onto the MATLAB simulation, go through Grant's and Sean's code and recreate the mission profile with estimated moment we can get from these control surfaces (confirm)Paul
 Observe space through voxel maps, identify the center of the object of interest. You should be able to tell that this set of voxels is occupied by this objectJulius
 Oct Tree algorithm, explored vs. unexplored voxels. To reduce computational effort, ignore bins which are more than 60% explored.
Lab Meeting 7  13^{th} October 2021
 Understood the theory of output feedback linearization (Khalil's chapter 13 and lecture notes)
 Went to couple of initial chapters of the Khalil's book to understand the mathematical representation of nonlinear systems
 Went through the code line by line and annotated. Wrote down the equations and correlated it with quadcopter tutorial paper
Feedback
Robust Output Feedback Linearization
paper and code for DC motor sent by Julius Once done with the code validation, move on to computing $\ddot{x}$ and $\dddot{x}$ of the linearized states through the provided code (custom modifications required)
 Run UAV simulation and compare the two cases side by side 
 Estimated $\ddot{x}$ and $\dddot{x}$
 $\ddot{x}$ and $\dddot{x}$ obtained from code. Ideally, with the same aircraft and same reference trajectory, it should do the same thing when the same physical quantities are calculated by 2 different control methods.
 Linearized states = $\begin{bmatrix} r \ \dot{r} \ \ddot{r} \ \dddot{r} \ \phi \ \dot{\phi} \end{bmatrix}$
Miscellaneous (in response to Chris's work)
 Keep documentation on every decision  why did I arrive at a certain configuration, tradeoffs considered, comparisons with alternate configuration, costbenefit analysis, etc. (mainly for hardware specifications)
 Compare the performance of the UAV in multiple hardware configuration  battery, propeller, ailerons, rudder, etc.
Lab Meeting 6  6^{th} October 2021
 Julius sent the MATLAB file
output_feedback_linearization_outer_loop.m
, lecture slidesAOE5344.Lecture 18: MultiInput/MultiOutput Linearization
andHassankkhalilnonlinearsystems
book.  Mail sent to Dr. L'Afflitto outlining the immediate objectives
 Prof. told to help Julius on his visionbased project. Continue familiarizing with the Flight Stack and help Paul
Feedback
 Learn operating 3D printer in the lab. Go through Lab Manual.
 Discussion on inner loop, outer loop, Lyapunov function  in response to Diksha's work
Lab Meeting 5  1^{st} October 2021 (Zoom)
 Meeting postponed from 29^{th} September
 Further reading the tutorial paper
 Further reading Dr. L'Afflitto's
A Mathematical Perspective on Flight Dynamics and Control
 Going through Grant's thesis
 Sat with Diksha and went through the MRAC codes
 Ask about the textbooks on Flight Dynamics and Control
Feedback
 Not satisfied with my research performance
 Need to push myself
Immediate Objectives (as stated in email reply)
 Strengthen the theory part for the control algorithms (Hinfinity, MRAC, Output Feedback Linearization).
 Go through the entire latest Flight Stack Code (special emphasis on PIXHAWK_INTERFACE.cpp, MOCAP.cpp and CONTROL.cpp), understand the functions, tweak parameters and see how it actually affects flights (through flight test).
 If possible, be there for every flight test with Chris and Diksha.
 Julius informed me that Chris has previously worked on the Shipboard Landing controller, so I asked him to send the relevant code base so that I can understand what has been done already. This has not come up in my previous conversation with him. He had sent me some lecture notes to go through. Today, Julius sent me the code and set some specific objectives for code validation, so I will get started on that right away.
 Learn to perform flight simulations on my own  numerical simulations, HardwareIntheLoop simulations and Flight Test (Also, look for a suitable graphic simulator).
Lab Meeting 4  22^{nd} September 2021 (Zoom)
 Flight testing on Friday
 Going through Lavretsky's book
Feedback
 Grant's and Sean's theses sent
Lab Meeting 3  15^{th} September 2021
 Further reading the paper
 Nonlinear control system lectures on YouTube and Khalil's book
 Talked to Chris about the last Sunday's flight test
Feedback
 Julius suggested an idea to use edge detection/computer vision to detect shelter
 Thesis idea  Landing pad pattern detection
 Shipboard landing or landing on a moving vehicle
Lab Meeting 2  8^{th} September 2021
 Reading the tutorial paper 
An Introduction to Nonlinear Robust Control for Unmanned Quadrotor Aircraft
 Control system lectures for the background
 Diksha is isolating, so couldn't perform the test flight
 Talked to Julius about extra resources I should refer to
Feedback
 Read Lavretsky's book for MRAC theory. Start with chapter 9 (scalar and MIMO cases) and then move to chapter 10 (outputfeedback case)
 Code sent for MRAC (3 zip files)
 Learn flight test. See your code in action.
Lab Meeting 1  2^{nd} September 2021 (Zoom)
Notes
 Tactical behaviour to multirotor unmanned aerial vehicles (UAVs)
 Assumption  neither deterministic nor stochastic information on the opponents is available

The system comprises of 
 optimizationbased path planner
 a quadratic programmingbased algorithm to reconstruct collision avoidance constraints from voxel maps
 a trajectory planner (which implements a fast model predictive control algorithm)

The proposed guidance system allows an autonomous vehicle to reach a goal set, whose position relative to the vehicle's initial position is given, without any prior knowledge of the environment

Tactical mechanism 
 House mice inspired  Coasting obstacles i.e following a reference trajectory that leads the UAV to the goal set and which is sufficiently close to the obstacles such as walls, pillars, and other similar environmental features.
 Regulate the UAV's velocity according to its distance from the obstacles' set. If the UAV is shielded by some obstacle, then it should proceed slowly to allow the navigation system to product a more accurate obstacles' map. If no obstacle conceals the vehicle's position, then the UAV should proceed as fast as possible.

Reckless (predictable trajectory) Vs. Tactical behavior (unpredictable trajectory)

9 userdefined parameters that can be set a priori

Objective  an optimizationbased path planner and a model predictive control algorithm for trajectory planning
Doubts
 Warm start
 Affine constraint function
 Difference between path planning and trajectory planning
Feedback
 Focus on the control algorithms part
 Work with Diksha and Chris on actual flight test. Become familiar with the endtoend pipeline for flight testing.
Lab Meeting with Chris on Flight Stack  28^{th} August 2021
 Setting up Vicon Tracker software
 MoCap camera calibration
 Defining the origin
 Camera masking
 Object tracking
 SSHing in to Odroid via PuTTY
 Remote debugging and upload via winSCP
 Couldn't fly the drone because of missing parameters
 Flight stack code debugging  syntax errors, function referencing, changing
double
tofloat