Nick Rotella scientist engineer developer

About Me

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.


My research interests encompass model identification, dynamics simulations, sensor fusion, model predictive planning and optimization-based control for complex systems, with a focus on efficient implementations for use on real robots. In addition to the publications my collaborators and I have authored, I spent a significant portion of my PhD working to improve our locomotion codebase and develop general-purpose controllers for balancing and walking on real robots.

A Quadratic Program-Based Inverse Dynamics

Robust Joystick-Based Walking Controller

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.


During my undergraduate education, I was able to take interdisciplinary courses in computational neuroscience which helped spark my interest in and support for multidisciplinary education and research. I went on to serve as a teaching assistant for these courses, as well as for a SURP-like summer program for area high school students. These roles involved both teaching concepts and supervising short-term research projects.

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.


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

Recent Posts:

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

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