I'm a senior robotics software engineer at Agility Robotics working on state estimation and controls for humanoid robots. We're hiring -- feel free to email/message me on LinkedIn if interested!
I completed a Ph.D. degree in Computer Science in 2018 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.
I also earned a M.Sc. degree in Computer Science with a specialization in Intelligent Robotics from USC in 2014, and a B.Sc. degree in Mechanical Engineering from The Cooper Union in 2012.
My research interests include state estimation, sensor fusion, model predictive planning/control, and deep learning for legged robots, with a focus on efficient implementations for real hardware.
In addition to publishing, I spent much of my PhD working on estimation, planning, and control algorithms within our locomotion codebase. I tested this work primarily on a 17 DOF, torque-controlled humanoid lower body engineered by Sarcos Robotics. 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 TA 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. I continue to draw from these in my current work and expand upon them via blog posts on this site.
Locally, I have volunteered as a TA for the TEALS K-12 computer science education program, as a judge for the Greater KC Science and Engineering Fair and the PLTW KC Engineering Design Contest, and as a programming mentor for FIRST Robotics Team 1939.
The goal of this post was to plan for the transition the robot sim from using DH parameters which are very clunky and limited, to an expressive format like URDF; the inspiration for this change is KDL. This post is currently very much not done, but I decided to push it anyway because I got sidetracked and am not sure when I’ll have time to retur... Read more 04 Sep 2021 - 3 minute read
This post will detail a first-principles derivation of the discrete-time Kalman Filter, beginning with some probabalistic background and ending with a linear-algebraic interpretation. We’ll also take a look at some practical considerations of applying the Kalman Filter - what if the state space is nonlinear? How are rotational states - for examp... Read more 17 Nov 2020 - 13 minute read
In this post, we’ll move from discussing MPC at a high level to introducing humanoid robot dynamic models used for MPC, followed by the momentum MPC problem which motivated this series of posts. For the time being, the content of this post will laregly be copied from my PhD notes without much editing; figures and more context to come soon. H... Read more 01 Nov 2020 - 18 minute read
I was looking back through LaTeX notes from my PhD and found some interesting ones on Model Predictive Control (MPC) for humanoid locomotion which I never published or included in my thesis. I thought it might be useful to someone if used them to talk through Model Predictive Control a bit, then introduce the controller I was working on as an ex... Read more 28 Oct 2020 - 10 minute read
In a previous post, I detailed how to install Ardupilot for drone control - ArduCopter, or Copter for short. We ran through a very basic high-level flight control example via the ROS/MAVLink interface provided by MAVROS, which relies on existing flight control modes in the core Ardupilot source. Today, let’s delve a little deeper into ArduCopter... Read more 18 Sep 2020 - 14 minute read