Skip to content

StanfordASL/CoCo

Repository files navigation

CoCo: Combinatorial Offline, Convex Online

This repository contains code for Learning Mixed-Integer Convex Optimization Strategies for Robot Planning and Control by Abhishek Cauligi*, Preston Culbertson*, Bartolomeo Stellato, Dimitris Bertsimas, Mac Schwager, and Marco Pavone (* denotes equal contribution).

Installation

This repository uses cvxpy for the construction of the optimization problems and PyTorch for training the neural network models. The necessary Python packages can be installed by running the following script.

pip3 install -r requirements_cython.txt
pip3 install -r requirements.txt

We also use the Gurobi and Mosek commercial solvers for solving our problems.

Further, define an environment variable CoCo that points to the working directory where this packagee is installed.

Usage

This repo contains examples for three systems in robot planning and control:

  1. Cart-pole with contact

Image

  1. Free-flyer motion planning

Image

  1. Dexterous grasping

Image

The MICP for each problem is defined in {system}/problem.jl using either the CVXPY modeling framework. The {system}/data_generation.ipynb notebook must be run first to generate the MICP datasets later used in training.

Each system has a {system}_dev.ipynb notebook that steps through the strategy construction, classifier training, and evaluation of the trained strategy predictions.

Quick Start

An example notebook can be run through:

jupyter notebook cartpole_dev.ipynb 

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors