Coder Social home page Coder Social logo

matheecs / pyrobocop Goto Github PK

View Code? Open in Web Editor NEW

This project forked from merlresearch/pyrobocop

0.0 0.0 0.0 2.54 MB

PyRoboCOP is a lightweight Python-based package for control and optimization of robotic systems described by nonlinear Differential Algebraic Equations (DAEs)

License: GNU Affero General Public License v3.0

Shell 0.04% Python 99.96%

pyrobocop's Introduction

PyRoboCOP

PyRoboCOP is a lightweight Python-based package for control and optimization of robotic systems described by nonlinear Differential Algebraic Equations (DAEs)

Features

The main features of the package are:

  • Direct transcript from optimal control problem to NLP

  • Contact modeling by complementarity constraints

  • Obstacle avoidance by complementarity constraints

  • Automatic Differentiation for sparse derivatives

  • Open-source and based on only open source toolchain

  • Support for Trajectory Optimization problems

  • Support for minimum time problems

  • Support for optimization over fixed mode sequence problems with unknown sequence time horizons

  • Support for parameter estimation in linear complementarity systems.

Installation

  1. Download or git clone PyRoboCOP.

  2. Install PyRoboCOP in a virtual environment using anaconda using instructions provided in PyRoboCOPInstallationSteps.md

Usage

  1. All codes should be run inside the virtual python environment in Installation.

  2. All the codes should be run from the directory PyRoboCOP. This folder contains the following folders

    a. Envs
    b. Solvers
    c. Simulations
    d. Results
    
  3. Set the PYTHONPATH to the directory PyRoboCOP. We have added a bash file which can be used to set the PYTHONPATH.

    cd PyRoboCOP
    source setpath.sh
    
  4. To run an OCP, for example, the inverted pendulum swing-up, run the following command

    python Simulations/main_pendulum.py
    
  5. Every script in the Simulations folder solves an OCP for the dynamical system in the OCP. All the results reported in the paper could be generated using the scripts in the Simulations folder.

  6. To run the comparisons between casadi and pyomo, run the following command (for the acrobot system).

    python Simulations/main_acrobot.py
    python Simulations/Casadi/acrobot.py
    python Simulations/pyomo/acrobot.py
    python Results/Acrobot/plot_acrobot.py
    

Citation

If you use the software, please cite the following (MERL Technical Report):

@inproceedings{Raghunathan2022may,
author = {Raghunathan, Arvind and Jha, Devesh K. and Romeres, Diego},
title = {PYROBOCOP: Python-based Robotic Control & Optimization Package for Manipulation},
booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
year = 2022,
month = may,
url = {https://www.merl.com/publications/TR2022-057}
}

(ArXiv):

@article{raghunathan2021pyrobocop,
  title={PYROBOCOP: Python-based robotic control \& optimization package for manipulation and collision avoidance},
  author={Raghunathan, Arvind U and Jha, Devesh K and Romeres, Diego},
  journal={arXiv preprint arXiv:2106.03220},
  year={2021}
}

Related Links

MERL Research Page

Contact

If you have any question please contact us at:

Contributing

See CONTRIBUTING.md for our policy on contributions.

License

Released under AGPL-3.0-or-later license, as found in the LICENSE.md file.

All files:

Copyright (c) 2021-2022 Mitsubishi Electric Research Laboratories (MERL).

SPDX-License-Identifier: AGPL-3.0-or-later

Uses ipopt which has EPL-2.0 license.

pyrobocop's People

Contributors

diegoromeres avatar kieranparsons avatar

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.