Ungar -- A C++ Framework for Real-Time Optimal Control Using Template Metaprogramming

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: De Vincenti, Flavio, Coros, Stelian
Format: Preprint
Veröffentlicht: 2023
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866914039288823808
author De Vincenti, Flavio
Coros, Stelian
author_facet De Vincenti, Flavio
Coros, Stelian
contents We present Ungar, an open-source library to aid the implementation of high-dimensional optimal control problems (OCPs). We adopt modern template metaprogramming techniques to enable the compile-time modeling of complex systems while retaining maximum runtime efficiency. Our framework provides syntactic sugar to allow for expressive formulations of a rich set of structured dynamical systems. While the core modules depend only on the header-only Eigen and Boost.Hana libraries, we bundle our codebase with optional packages and custom wrappers for automatic differentiation, code generation, and nonlinear programming. Finally, we demonstrate the versatility of Ungar in various model predictive control applications, namely, four-legged locomotion and collaborative loco-manipulation with multiple one-armed quadruped robots. Ungar is available under the Apache License 2.0 at https://github.com/fdevinc/ungar.
format Preprint
id arxiv_https___arxiv_org_abs_2309_06783
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Ungar -- A C++ Framework for Real-Time Optimal Control Using Template Metaprogramming
De Vincenti, Flavio
Coros, Stelian
Systems and Control
We present Ungar, an open-source library to aid the implementation of high-dimensional optimal control problems (OCPs). We adopt modern template metaprogramming techniques to enable the compile-time modeling of complex systems while retaining maximum runtime efficiency. Our framework provides syntactic sugar to allow for expressive formulations of a rich set of structured dynamical systems. While the core modules depend only on the header-only Eigen and Boost.Hana libraries, we bundle our codebase with optional packages and custom wrappers for automatic differentiation, code generation, and nonlinear programming. Finally, we demonstrate the versatility of Ungar in various model predictive control applications, namely, four-legged locomotion and collaborative loco-manipulation with multiple one-armed quadruped robots. Ungar is available under the Apache License 2.0 at https://github.com/fdevinc/ungar.
title Ungar -- A C++ Framework for Real-Time Optimal Control Using Template Metaprogramming
topic Systems and Control
url https://arxiv.org/abs/2309.06783