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:

The Ardupilot Drone Control Stack

A while back, I made a few posts about the PX4 drone flight control stack and how to develop controllers within PX4’s Gazebo simulator. However, another widely-used flight control stack is ArduPilot - which has actually been used in various forms on multirotor UAVs (drones), fixed-wing UAVS, AUVs (autonomous underwater vehicles), AMRs (autonomou... Read more

Python Robot Simulator Preview

In a blog post early this year I stated my intention to develop a python-based robotics simulator piece-by-piece, adding new content alongside explanations of robotics-related theory. I started this project because I wanted to improve my python skills (I insisted on using only MATLAB for data analysis and plotting for the longest time), post som... Read more

How to install Xenomai RTOS with Ubuntu

This post contains some transcribed notes from my PhD on installing Xenomai 2 with Ubuntu to our robot control computer. The installation was done on a Dell Optiplex 990 desktop having 16GB of RAM and an Intel Core i7-2600 CPU @ 3.40GHz x 8 cores, as well as two 128GB Samsung SSD’s. This machine was responsible for communication via Ethernet (UD... Read more

Forward Differential Kinematics

In this series of tutorials, we’ll go over the basics of manipulator robot kinematics. So far, we’ve discussed how to parameterize coordinate frames in a kinematic chain via the Denavit-Hartenberg parameters and compute the pose of the endeffector as function of the joint variables and robot geometry via forward direct kinematics. Now, we’ll pr... Read more

Forward Direct Kinematics

In this series of tutorials, we’ll go over the basics of manipulator robot kinematics. This involves parameterizing the geometry of the robot in a standardized fashion, allowing us to compute the pose of each link - including the endeffector, where the robot typically interacts with the environment - in terms of the joint variables. This is know... Read more