Coder Social home page Coder Social logo

openocl / openocl Goto Github PK

View Code? Open in Web Editor NEW
348.0 16.0 64.0 1.69 MB

Open Optimal Control Library for Matlab. Trajectory Optimization and non-linear Model Predictive Control (MPC) toolbox.

Home Page: https://openocl.github.io

License: BSD 3-Clause "New" or "Revised" License

MATLAB 99.12% M 0.35% Shell 0.53%
numerical-optimization optimal-control robotics model-predictive-control trajectory-optimization control-theory machine-learning

openocl's Introduction

Open Optimal Control Library


Visit the website openocl.github.io to download the toolbox, and have a look at the API Docs and the examples.

Get started

doc ocl
ocl.examples.cartpole
open ocl.examples.cartpole

Contribute

If you would like to participate in the project, you are very welcome! Contribution guidelines

Some Models

Citing and publications

If you use OpenOCL, please cite us and consider giving us a star on this repository.

Legal notice

Please see license information in the LICENSE file in the github project.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Sklodowska-Curie grant agreement No 642682.

Use without warranty.

info [at] openocl.org

openocl's People

Contributors

ffgiardina avatar jkoendev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openocl's Issues

Restructure bound handling

The internal handling of bounds is quiet complicated and can be simplified.
Maybe bounds are not needed at all for the user. User can just implement constraints. Solver will internally convert constraints to bounds..

Scaling

add scaling by max and min value
or mean and variance

Support Parameter

Need to support 2 types of parameters:
plain, just to make quick recompilation
as variable, to optimize for this parameter

are constraints on variable parameters needed? could result in static optimization

Code cleanup I

  • move getOptions to bottom

- make inhertiance of casadi handlers clear, casadiCollocation, casadiOCPHandler

Integrator in collocation

Let collocation interval function return integration constraints etc.
Could implement different integrators, implicit or explicit. not only collocation integrator.
Still solve the implicit integrators within the NLP, and not by calling and external integrator.

Could unify multishooting and collocation.

Time optimal control

Time variables are somehow special. Only end time in the end, or a time variable for each shooting interval?
Is it possible to unify time variable with parameters?

Setting 3x1 MX on 1x1 Var

K>> parameters

parameters =

MX(p)
K>> parameters.size()

ans =

 3     1

K>> self.parameters

ans =

Var with properties:

       id: []
  subVars: [1x1 Var]
thisValue: []
 thisSize: [1 1]
 compiled: 1
   varIds: [1 java.util.HashMap]

K>> self.parameters.set(parameters)

Implement model blocks with inputs and outputs

similar to Simulink blocks, could make modelling very modular, and flexible. E.g. replace tether model without touching aerodynamic model.
Might increase complexity, and might not be intuitive for the user. Possibly slower performance.

Path constraints on initial state

The first state is not subject to path constraints because the path constraints are dependent on state algebraic variables etc. associated with the collocation states in the middle and end of the integration interval.

Don't use Var internally

Var is convenient for the user to manage initialGuess and solution, but it should not be used internally, e.g. for collocation variables..

Make NLP solver not only for OCPs

Either we need to remove NLP solving functionality and turn NLPsolver to an OCP solver or add general NLP functionality, static optimization

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.