Focused in two main areas: scientific computing and robotics
For the robotics emphasis:
Focused on more mathematical and algorithmic aspects of robotics, such as:
Dynamical systems modeling
Optimal control theory
Computer vision and machine learning
Worked on the autonomous subteam for the NASA Lunabotics Mining Competition team at UIUC.
In 2012, placed in 3rd place for system engineering
Worked under Prof Soon-Jo Chung in 2012 to learn (classic, pre-Deep Learning) computer vision techniques.
Worked in Summer 2013 under Roland Brockers at NASA JPL/Caltech in the robotics group:
The platform was a quadcopter with very humble compute resources. We were trying to explore what automation could be achieved in GPS denied environments using on-board computation and (classic, pre-Deep Learning) computer vision techniques.
Software was written in C and used the Robot Operating System (ROS).
I made progress in robustly and efficiently estimating pose-estimates in 3-D for the quadcopter using its IMU, a single monocular camera, and computer vision techniques like ocular flow and feature matching.
I made progress in using computer vision techniques to estimate homographies for surfaces on rooftops, ultimately applying this to SLAM and autonomous identification of landing locations for the quadcopter.
Developed optimal controllers for quadcopters, making use of dynamic programming and Linear Quadratic Regulator (LQR) modeling; got actual quadcopters running and using the controllers to avoid real obstacles in a motion capture environment.
For the scientific computing emphasis:
Covered both theoretical and applied aspects of scientific computing.
I was initially motivated to dive into this area because (1) computational fluid dynamics was beautiful and (2) I found early on the benefit of numerical methods and simulation for practical problem solving and engineering.
On the theoretical side, I dived into the theory behind things like finite volume and finite elements; this included learning enough linear algebra, differential equations, functional analysis, and spectral theory to talk about various meaningful things like: Sobolev spaces, uniqueness, convergence, error estimators, etc. This meant taking graduate courses in these topics, such as the course titled Advanced Finite Element Methods in the theoretical and applied mechanics department.
On the practitioner side, I built the following:
Under guidance of Prof Dan Bodony, built a distributed solver for the 1-dimensional Euler Equations using C and MPI; validated this solver against a standard shocktube problem. A write up of this work.
Under guidance of Prof Bob Haber and as part of his Advanced Finite Element Methods course, I built a spacetime Galerkin solver for 1d x Time to tackle a variety of problems. A report from this work is here. As an undergrad in his course, we connected enough that I eventually worked with Bob when I came back to graduate school some years later. Spoiler: we worked during that time on generalizing the spacetime Galerkin techniques to 3d x Time with provably correct spacetime adaptive operations.