I'm a robotics software engineer and research scientist currently working at Ainstein on sensor fusion and sensor-based control; my work is highly multidisciplinary and involves using RADAR, LIDAR, cameras and other sensors for autonomous applications, including drones and self-driving vehicles. In 2018, I completed my PhD in Computer Science in the Computational Learning and Motor Control (CLMC) Lab at the University of Southern California, in collaboration with the Autonomous Motion Department at the Max Planck Institute for Intelligent Systems. My research focused on solving a broad range of problems in humanoid robotics; you can read about it in my thesis, Estimation-Based Control for Humanoid Robots.
Prior to defending my thesis, I earned a M.Sc. degree in Computer Science with a specialization in Intelligent Robotics from USC in 2014. My undergraduate studies earned me a B.Sc. degree in Mechanical Engineering with an emphasis on control systems from The Cooper Union for the Advancement of Science and Art in 2012. Having spent the summer of 2011 performing computational neuroscience research in the Joe Francis Lab at SUNY Downstate, I decided to pursue graduate studies in robotics as the field combined my interests in neuroscience and mechatronics.
I've worked with high-bandwith, torque-controlled humanoid robots to develop realtime-safe estimation, planning and control algorithms which were evaluated in simulation and tested on a 17 DOF humanoid. My work has involved everything from low-level embedded motor controller, device driver and networking programming to high-level optimization-based planning and whole body control; I strive to understand and interact with complex systems at every level.
While I did not have the opportunity to TA again during my PhD studies, I guest lectured on a number of occasions for the graduate-level course Introduction to Robotics (CSCI 545) as well as supported departmental outreach efforts including the well-attended USC Robotics Open House.
As a strong believer in open-access education, I also spent considerable effort compiling a collection of lecture notes on a variety of robotics-related topics, including mathematical fundamentals (calculus, linear algebra, statistics), control theory, kinematics and dynamics, and so on. I continue to draw from these in my current industrial work and add to them via blog posts on this site.
Since finishing my PhD, I have volunteered time as a TA for the TEALS K-12 computer science education program, served as a judge for the Greater KC Science and Engineering Fair as well as the PLTW KC Engineering Design Contest. I also currently serve as a mentor for FIRST robotics team 1939.
In this tutorial, we’ll pick up where we left off on learning to render graphics using OpenGL and start incrementally writing a simple robot simulator in python using Qt and OpenGL. Last time, we discussed how to install these libraries and walked through a simple interactive cube GUI; check out the previous tutorial or find the script here. I’... Read more 17 Jan 2020 - 15 minute read
Up until this point, we’ve kept things pretty abstract. How does solving for the least squares solution relate to estimation? Let’s start with an application you’ve probably used before - fitting a line to some noisy experimental data, also known as linear regression. Linear Regression Linear Regression Let’s say you have a bunch of data... Read more 10 Jan 2020 - less than 1 minute read
The most fundamental problem in linear algebra is also seemingly the most innocuous: solve for the unknown vector given a matrix and a vector . Yet, by examing this one problem for all different kinds of matrices , you can teach an entire course spanning everything from simple Gaussian elimination to eigenvalues, SVD, PCA and beyond. If yo... Read more 05 Dec 2019 - 9 minute read
The Kalman Filter is something while completely alluded me and my peers during undergrad, and even took me some time in graduate school to really understand. I’ve since implemented variations of this estimator countless times for a variety of different problems. Despite having been formulated about half a century ago (!!), I feel it’s a tool tha... Read more 16 Nov 2019 - 13 minute read
PX4 Controllers and Tuning The PX4 documentation does a decent job of explaining the different flight controllers which are available. The documentation also has useful information on how to set and get flight control parameters, which is necessary for controller tuning (among other things). The documentation doesn’t take the next step and exp... Read more 29 Oct 2019 - 12 minute read