optimization-engine  by alphaville

Solver for fast, accurate embedded optimization in robotics/autonomous systems

created 6 years ago
574 stars

Top 57.0% on sourcepulse

GitHubView on GitHub
Project Summary

OpEn (Optimization Engine) is a C++ library and code generator for fast, embedded, nonconvex optimization, targeting robotics and autonomous systems. It allows users to define parametric optimization problems and generate highly efficient, self-contained Rust code for their solvers, enabling real-time performance on embedded hardware.

How It Works

OpEn leverages a custom numerical algorithm implemented in Rust for solving nonconvex parametric optimization problems. It generates parametric optimizer modules in Rust, which can be compiled into standalone libraries or run as a TCP service. This approach prioritizes speed, memory safety, and deployability on resource-constrained embedded devices, abstracting away the complexities of numerical optimization for application developers.

Quick Start & Requirements

  • Installation: Primarily through code generation via Python or MATLAB interfaces.
  • Prerequisites: Python 3.x, MATLAB, Rust, and CasADi. ROS support is available.
  • Resources: Embedded applications can run on devices like Intel Atom with low CPU usage (e.g., 15% CPU at 20Hz).
  • Documentation: alphaville.github.io/optimization-engine

Highlighted Details

  • Generates Rust code for parametric optimizers, enabling fast, safe, and embedded execution.
  • Supports nonconvex parametric optimization problems of a general form.
  • Offers auto-generation of ROS packages for seamless integration into robotic systems.
  • Demonstrated real-time performance on embedded hardware for autonomous navigation.

Maintenance & Community

  • Core team includes Pantelis Sopasakis and Emil Fresk.
  • Community discussion channels available on Discord and Gitter.
  • Project encourages contributions via established guidelines.

Licensing & Compatibility

  • Dual-licensed under Apache License v2.0 or MIT License.
  • Permissive licenses suitable for commercial use and integration into closed-source projects.

Limitations & Caveats

The README focuses on code generation and embedded performance; details on the specific range of supported nonconvex problem structures or potential numerical stability issues for highly challenging problems are not extensively detailed.

Health Check
Last commit

2 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
26 stars in the last 90 days

Explore Similar Projects

Starred by Patrick von Platen Patrick von Platen(Core Contributor to Hugging Face Transformers and Diffusers), Michael Han Michael Han(Cofounder of Unsloth), and
1 more.

ktransformers by kvcache-ai

0.4%
15k
Framework for LLM inference optimization experimentation
created 1 year ago
updated 22 hours ago
Feedback? Help us improve.