LIDAR research code under development is maintained on our internal lab Github by Georgia Tech GitHub Enterprise. Open source code will be released and maintained regularly on the lab public github. If you are interested in any specific work that we published recently but have not released the code yet, please contact our LIDAR authors for detailed information and early-version code access.

SyDeBO: Symbolic-Decision-Embedded Bilevel Optimization for Long-Horizon Manipulation in Dynamic Environments

This repository contains code for our recent work on symbolic-decision-embedded bilevel optimization for manipulation task and motion planning using PDDL and DDP/ADMM. Here we include the source code of Drake and our own addition for manipulation task and motion planning in the manipulation_tamp and traj_gen folder.

  • The manipulation_tamp directory contains implementations of the high-level searching algorithm as well as the causal graph task decomposition. The symbolic planning domain definitions of our experiments are under the pddl directory. The planner uses Pyperplan as a submodule to parse PDDL into Python. The resulting trajectories and action sequences are stored in Json format under the manipulation_tamp/results folder. The simulation of object sorting in clutter and conveyor belt sorting scenarios are implemented here using Drake. Please contact Zhigen Zhao ( for the code implementation details.
  • The traj_gen directory contains the code for trajectory optimization using DDP/ADMM. The contact version of DDP/ADMM that considers object dynamics is also implemented under ilqr_kkt directory. The runners ending in the “-contact” suffix will be called when selecting high-level actions that involve contacts between the gripper and the object, such as grasping or pushing. Please contact Ziyi Zhou ( and Michael Park ( for the code implementation details.

Safe and Agile Locomotion Navigation in Partially Observable Environments with Rough Terrain

Our CDC 2020 paper code v1.0 is released! This paper introduces safe locomotion navigation in partially observable environments. The source code comprises two components: a navigation task planner and a locomotion motion planner.

  • The task planner directory contains the code to synthesize navigation and action planners for bipedal locomotion in a partially observable environment. The planners are simulated in a discrete 2D game against a user-controlled dynamic obstacle. The discrete obstacle trajectory and action sets at each robot keyframe are stored in an output file that is used by the motion planner to plan robot trajectories and simulate the resulting locomotion behavior in Drake.
  • The motion planner directory contains the code to generate the center of mass, foot trajectories as well as foot placement location using phase-space planning. It also contains a Drake visualization code of the Cassie bipedal robot following the generated trajectories in the proposed environment. Please contact Abdulaziz Shamsah ( and Jonas Warnke ( if you have any questions about the code implementation.

Robust Trajectory Optimization over Uncertain Terrain with Stochastic Complementarity

The source code introduces the implementation of a robust contact-implicit trajectory optimization algorithm for locomotion problems that model uncertainty stemming from the terrain and design corresponding risk-sensitive objectives under the framework of contact-implicit trajectory optimization. The code consists of three components:

  • The trajectoryOptimization directory contains class definitions that implement contact implicit trajectory optimization with nonlinear complementarity constraints and with the proposed robust approach. These classes interface with Drake and SNOPT to solve trajectory optimization problems and are designed to work with a variety of rigid body models and terrains. The solutions returned by these classes include the optimized trajectories, stored as Drake Piecewise Polynomial Trajectories, as well as information provided by SNOPT about the quality of the solutions. There are also several helper functions for recording and storing optimization parameters and settings between runs.
  • The systems and terrain directories contain the definitions for the rigid body models and rigid terrains used in our examples. The systems directory also contains an abstract class which serves to integrate the rigid body models and terrain models together for optimization.
  • The examples directory contains examples published in our recent work.  This directory includes scripts demonstrating both the non-robust contact implicit optimization as well as our proposed robust ERM approach on a variety of examples, using the models in the systems and terrain directories. Output data, as well as a variety of figures and animations, are also included.

Please reach out to Luke Drnach ( for any code implementation details and questions.