I am a postdoctoral researcher in the department of Electrical and Computer Engineering at the University of California, Santa Barbara (UCSB), where I recently obtained my Ph.D. in the area of feedback control with a special emphasis on the optimal control and coordination of small unmanned aerial vehicles (UAVs). During my time at UCSB, I had the privilege of applying advanced optimal control and state estimation algorithms on live flight experiments with small UAVs, and I have found the implementation of these algorithms in real-world settings to be a rewarding experience and something that I would like to pursue as a career. My greatest technical skill is dynamic programming, which is an optimal control technique that addresses deterministic optimal control problems, multi-stage two-player zero-sum games, and Markov Decision Processes. My other skills include nonlinear state estimation and regression in moderate dimensional problems with large data sets, and I have recently gained experience with robust nonlinear Model Predictive Control with simultaneous Moving Horizon Estimation. I also have extensive experience programming in MATLAB using the parallel and distributed computing toolboxes and have recently starting programming in Python. Overall, I greatly enjoy devising creative solutions to challenging mobile robotics problems, particularly those involving motion planning and control for autonomous vehicles, and I am currently seeking a new opportunity as an applied researcher. Additional information about my education, research experience, and technical expertise, as well as information about how to contact me, can be found in my CV.
News:
May 18, 2015 - C++:
I have been teaching myself C++ over the past several weeks, and I now have working code that performs dynamic programming for a 5-dimensional Markov Decision Process. In particular, I have written code that uses value iteration to determine the optimal control policy for a single UAV tracking a randomly moving ground target. I wrote four classes and utilized numerous C++ features to compute, test, and store the policy. These features include templates, function overloading, pointers to function, vector and valarray objects, and binary file I/O. Overall, I have found that I really enjoy programming in C++, and while there is certainly more to learn, I believe the dynamic programming results verify a working proficiency in C++ and the ability to program in an object-oriented language.
May 18, 2015 - C++:
I have been teaching myself C++ over the past several weeks, and I now have working code that performs dynamic programming for a 5-dimensional Markov Decision Process. In particular, I have written code that uses value iteration to determine the optimal control policy for a single UAV tracking a randomly moving ground target. I wrote four classes and utilized numerous C++ features to compute, test, and store the policy. These features include templates, function overloading, pointers to function, vector and valarray objects, and binary file I/O. Overall, I have found that I really enjoy programming in C++, and while there is certainly more to learn, I believe the dynamic programming results verify a working proficiency in C++ and the ability to program in an object-oriented language.