Nick Rotella scientist engineer developer

About Me

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.

Research

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.

Google Scholar ResearchGate arXiv

Unsupervised Contact Learning for Humanoid Estimation and Control

IEEE International Conference on Robotics and Automation (ICRA), 2018

Nicholas Rotella, Stefan Schaal, Ludovic Righetti

link pdf video

An MPC Walking Framework With External Contact Forces

IEEE International Conference on Robotics and Automation (ICRA), 2018

Sean Mason, Nicholas Rotella, Stefan Schaal, Ludovic Righetti

link pdf video

Balancing and walking using full dynamics LQR control with contact constraints

IEEE International Conference on Robotics and Automation (ICRA), 2016

Sean Mason, Nicholas Rotella, Stefan Schaal, Ludovic Righetti

link pdf

Inertial sensor-based humanoid joint state estimation

IEEE International Conference on Robotics and Automation (ICRA), 2016

Nicholas Rotella, Sean Mason, Stefan Schaal, Ludovic Righetti

link pdf

Humanoid momentum estimation using sensed contact wrenches

IEEE-RAS International Conference on Humanoid Robots (Humanoids), 2015

Nicholas Rotella, Alexander Herzog, Stefan Schaal, Ludovic Righetti

link pdf

Trajectory generation for multi-contact momentum-control

IEEE-RAS International Conference on Humanoid Robots (Humanoids), 2015

Alexander Herzog, Nicholas Rotella, Stefan Schaal, Ludovic Righetti

link pdf

Momentum control with hierarchical inverse dynamics on a torque-controlled humanoid

Autonomous Robots (AURO), 2015

Alexander Herzog, Nicholas Rotella, Sean Mason, Felix Grimminger, Stefan Schaal, Ludovic Righetti

link pdf video

State estimation for a humanoid robot

IEEE/RSJ Conference on Intelligent Robots and Systems (IROS), 2014

Nicholas Rotella, Michael Bloesch, Ludovic Righetti, Stefan Schaal

link pdf video

Properties of a temporal difference reinforcement learning brain machine interface driven by a simulated motor cortex

International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC), 2012

Aditya Tarigoppula, Nick Rotella, Joseph T. Francis

link pdf

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.

A Quadratic Program-Based Inverse Dynamics

Robust Joystick-Based Walking Controller

Teaching

During my undergraduate education, I served as a teaching assistant for computational neuroscience and a summer research program for area high school students.

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.

Recent Posts:

3D Geometry for Robotics

In order to proceed with writing a simple robot simulator, there are a number of mathematical concepts that must be introduced before we can describe the motion of a manipulator. In this post, I’ll be pulling sections from my PhD notes which, in turn, were largely taken from the excellent introductory text Modeling and Control of Robot Manipula... Read more

Initial Simulator Graphics in OpenGL

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

Least Squares

The most fundamental problem in linear algebra is also seemingly the most innocuous: solve \(Ax=b\) for the unknown vector \(x\) given a matrix \(A\) and a vector \(b\). \[\begin{bmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n}\\ a_{1,2} & a_{2,2} & \cdots & a_{2,n}\\ \vdots & \vdots & \ddots & \vdots\\ a_{m,1} ... Read more

Data fitting, least squares and the Kalman Filter

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

PX4 Flight Controllers

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