GithubHelp home page GithubHelp logo

algorithmic-alignment-lab / sco_py Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 2.0 244 KB

Sequential Convex Optimization for TAMP problems with multiple backend solvers!

License: MIT License

Python 98.20% CMake 0.59% C++ 1.21%
python3 non-convex-optimization task-and-motion-planning

sco_py's Introduction

continuous-integration PyPI version

sco_py: Sequential Convex Optimization with Python

sco_py is a lightweight Sequential Convex Optimization library for solving non-convex optimization problems. sco_py is intended for use with the OpenTAMP planning system. Currently, the library supports both Gurobi (license required) and OSQP (open-source, no license required!) as backend QP solvers.

Installation

From PyPI with pip

Simply run: pip install sco-py

From GitHub with pip

Simply run: pip install git+https://github.com/Algorithmic-Alignment-Lab/sco_py.git

Developer (from source)

  1. Clone this repository from GitHub
  2. Install Poetry by following the instructions from here
  3. Install all dependencies with poetry install.

Contributing

sco is an open-source repository and as such, we welcome contributions from interested members of the community! If you have a new idea for a feature/contribution, do post in the 'Discussions' tab of the GitHub repository to get some feedback from the maintainers before starting development. In general, we recommend that you fork the main repository, create a new branch with your proposed change, then open a pull-request into the main repository. The main requirement for a new feature is that it cannot break the current test cases (see below for how to run our tests) unless this is unavoidable, and in this case, it should modify/introduce new tests as necessary. In particular, we welcome updates to documentation (docstrings, comments, etc. that make the codem more approachable for new users) and test cases!

Running tests

If you do not have a license for Gurobi, then you can only run the OSQP tests. To do so, run:

pytest tests/sco_osqp/

If you do have a license for Gurobi, then you can run all tests with the pytest command.

Note that our Contrinuous Integration (CI) setup only checks and reports status for OSQP tests. In general, if you are contributing a new feature, it must pass the existing OSQP tests and contribute new tests that test the new feature at least with OSQP (and preferably with Gurobi as well).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.