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

  1. Free-flyer motion planning

  1. Dexterous grasping

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

No packages published