Close

Gao Tang

4th Year PhD Student at UIUC

View Resume

About Me

I'm Gao Tang, a PhD student in computer science at the University of Illinois at Urbana-Champaign (UIUC). My research is mainly about motion planning for robotics. I have conducted several researches including

  • Data-driven optimization — Use data to solve optimization problems
  • Bilevel optimization — Exploit convex sub-problem in a nonlinear optimization problem
  • Discontinuity-sensitive learning — Learn discontinuous function accurately
  • Planning for learned model — Develop motion planning algorithms for systems with learned dynamics model
Please check out my Google Scholar page to learn more.

Education

University of Illinois at Urbana-Champaign

Aug 2019 - Present

PhD in Computer Science

I am fortunate to work with Prof. Kris Hauser in Intelligent Motion Laboratory. My goal is make robots act intelligently, efficiently, and safely. I spent the first 3 years of my PhD journey at Duke University before our lab moved to UIUC.

Tsinghua University

Aug 2010 - May 2016

Bachelor and Master in Aerospace Engineering

Projects

Robot-Assisted Corneal Surgery

In this project, we aim to develop an autonomous system capable of performing high-precision corneal surgery. The surgery we try to perform is called DALK. My work is to plan how to place the needle preciously into the cornea to a certain depth to increase surgery success rate. Although this task sounds easy, it is indeed extremely difficult to model the deformation of the needle and the cornea during insertion. We use a data-driven approach to learn the dynamics and design a model predictive controller (MPC) to calculate the optimal path.

View Project

Data-Driven Motion Planning

Optimization is generally slow and unreliable except for convex problems. Random-restart relieves some reliability issue but is too slow to be used in real-time. However, offline computation is relatively cheap and easily accessible nowadays. The data-driven planning project tries to investigate what machine learning methods can be used and how much they can help to speed up optimization. We start from a nearest neighbor approach and develop the Nearest Neighbor Optimal Control (NNOC) approach. It achieves one or two orders of magnitude speedup in the benchmark problems. However, it does not scale well. Later work includes using neural network to learn the optimal trajectories and use Mixture of Experts (MOE) model to handle the function discontinuity issue.

View Project

Bilevel Optimization

In some optimization problems encountered in robotic application, the nonlinear problem has some convex sub-problems. For example, the classical minimum-jerk drone trajectory optimization problem is nonconvex if the flight time has to be optimized. But for a given fixed flight time, the problem is convex. The idea is thus to choose some flight time, solve the convex problem, and update the flight time towards optimality. This can be categorized into a bilevel optimization problem: the outer problem optimizes flight time and the inner problem optimizes the path shape. We use sensitivity analysis of optimization problems to provide an analytic gradient to the outer problem by solving the inner problem. By this decomposition, untrackable nonconvex problem becomes trackable and we an efficient and reliable optimizer for this problem. This idea is also extended to time-optimal trajectory optimization problems for field robots.

View Project

Learning from Execution

Robot motions are subject to constraints such as feasible friction, maximum speed, and collision avoidance. However, there is a tradeoff between motion safety and motion aggressiveness. This project considers hard-to-model constraints and generate optimal motions subject to these constraints. A simple yet useful constraint type is the convex constraint and it can model such as feasible friction from contact. This project iteratively learns convex constraints from plan execution. Feedback of plan execution success is used as feedback to adjust the constraints. Through this process eventually an aggressive yet safe plan can be computed.

View Project

Software Projects

trajoptlib--Trajectory Optimization Library in Python

This library contains many useful tools for trajectory optimization. It implements both transcription and collocation methods. It supports various types of system dynamics, constraints, and cost functions. It is designed with exploitation of problem sparsity. A unified interface is designed so the user can choose nonlinear optimizer between SNOPT, IPOPT, and Scipy optimization package.

View Project

pyoptsolver--Wrapper for SOTA Nonlinear Optimizer

The goal is to design a unified wrapper for several SOTA nonlinear optimization solvers so the user define the problem once and is free to switch between optimizer. It is written in C++, but a Python wrapper is created so the users can call it from Python. This library is extensively used in trajoptlib.

View Project

Bilevel Optimizer for Drones

Bilevel optimization is a promising method to solve some nonlinear optimization problem with convex sub-problems. This project open sources the code for the experiments.

View Project

Skills

Get in Touch