cyan-at / CoCo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

License:MIT License


Languages

Language:Jupyter Notebook 82.2%Language:Python 17.8%