The ARC-OPT Library for Whole-Body Control of Robotic Systems

The ARC-OPT Library for Whole-Body Control of Robotic Systems - Published in JOSS (2024)

https://github.com/arc-opt/wbc

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    15 of 17 committers (88.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

planning-algorithms sbpl

Scientific Fields

Engineering Computer Science - 31% confidence
Last synced: 6 months ago · JSON representation

Repository

C++ library for optimization-based control of redundant robots

Basic Info
Statistics
  • Stars: 63
  • Watchers: 2
  • Forks: 17
  • Open Issues: 10
  • Releases: 5
Created almost 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License

README.md

Ubuntu 22.04 Ubuntu 24.04

DOI

WBC - Whole-Body Control

Code API | Full Documentation | Scientific Paper | ROS 2 Interface

WBC is C++ library for optimization-based control of redundant robots. The idea of WBC is to describe a control problem as costs and constraints of an optimization problem (typically a quadratic program or QP) and design a set of feedback controllers around it. The QP minimizes the control errors, trading off the different objectives and produces a joint space command on velocity, acceleration or torque level, which is applied to the robot actuators. WBC is meant for * Controlling redundant robots, particularly floating base systems like humanoids or quadrupeds * Controlling multiple tasks simultaneously * reactive robot control, i.e. it does not plan ahead the next robot control actions

WBC was initiated and is currently developed at the Robotics Innovation Center of the German Research Center for Artificial Intelligence (DFKI) in Bremen. Also see the ARC-OPT website of the Robotics Innovation Center.

How does it compare to other WBC libraries?

There are multiple other libraries for Whole-Body Control, e.g., TSID or ControlIt!. Compared to these, the ARC-OPT Whole-Body Control library provides various WBC implementations on velocity, acceleration, and torque level. It is modular as it separates modeling, QP problem specification, and solving, allowing to evaluate and benchmark different robot models, QP solvers, and various WBC implementations. Furthermore, it implements a WBC approach for robots with closed-loop structures as described in this paper (will be made open-source soon).

Requirements / Dependencies

Currently supported OS: Ubuntu20.04, Ubuntu22.04, Ubuntu24.04

See the manifest.xml for required and optional dependencies.

ROS 2 Interface

ROS 2 support for the WBC library can be found here

Installation

Basic Install

This will install the WBC core library with a single robot model (pinocchio) and QP solver (qpoases) respectively. Download this install script, store it in a folder of your choice (e.g., arc-opt) and execute it:

mkdir ~/arc-opt && cd ~/arc-opt wget https://raw.githubusercontent.com/ARC-OPT/wbc/master/scripts/install.sh sh install.sh

Full Install

This will install the WBC core library plus multiple robot models and solvers. Download this install script, store it in a folder of your choice (e.g., arc-opt) and execute it:

mkdir ~/arc-opt && cd ~/arc-opt wget https://raw.githubusercontent.com/ARC-OPT/wbc/master/scripts/full_install.sh sh full_install.sh

Testing

To execute unit tests for the WBC library, run make test from the library's build folder. This will execute unit tests for all installed components, e.g. solvers, robot models, etc...

Examples

You can also check the tutorials to for some comprehensive examples.

Contributing

Please use the issue tracker to submit bug reports and feature requests. Please use merge requests as described here to add/adapt functionality.

License

WBC is distributed under the 3-clause BSD license.

Acknowledge WBC

If you want to use WBC within your scientific work, please cite this paper or direcly use the following BibTex entry:

@article{Mronga2024, author = {Dennis Mronga and Frank Kirchner}, title = {The ARC-OPT Library for Whole-Body Control of Robotic Systems}, journal = {Journal of Open Source Software}, year = {2024}, doi = {10.21105/joss.06696} }

Funding

WBC has been developed in the research projects TransFit (Grant number 50RA1701) and BesMan (Grant number 50RA1216) funded by the German Aerospace Center (DLR) with funds from the German Federal Ministry for Economic Affairs and Climate Action (BMWK). It is further developed in the M-Rock (Grant number 01IW21002) and VeryHuman (Grant number 01IW20004) projects funded by the German Aerospace Center (DLR) with federal funds from the German Federal Ministry of Education and Research (BMBF).

Maintainer / Authors / Contributers

Dennis Mronga, dennis.mronga@dfki.de

Copyright 2017, DFKI GmbH / Robotics Innovation Center

Owner

  • Name: ARC-OPT
  • Login: ARC-OPT
  • Kind: organization

Adaptive Robot Control using Optimization

JOSS Publication

The ARC-OPT Library for Whole-Body Control of Robotic Systems
Published
December 30, 2024
Volume 9, Issue 104, Page 6696
Authors
Dennis Mronga ORCID
German Research Center for Artificial Intelligence (DFKI), Bremen, Germany
Frank Kirchner ORCID
German Research Center for Artificial Intelligence (DFKI), Bremen, Germany, University of Bremen, Bremen, Germany
Editor
Adi Sinn ORCID
Tags
robotics control Whole-Body Control

GitHub Events

Total
  • Create event: 6
  • Release event: 1
  • Issues event: 8
  • Watch event: 25
  • Delete event: 2
  • Issue comment event: 11
  • Push event: 67
  • Pull request event: 7
  • Fork event: 4
Last Year
  • Create event: 6
  • Release event: 1
  • Issues event: 8
  • Watch event: 25
  • Delete event: 2
  • Issue comment event: 11
  • Push event: 67
  • Pull request event: 7
  • Fork event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 939
  • Total Committers: 17
  • Avg Commits per committer: 55.235
  • Development Distribution Score (DDS): 0.086
Past Year
  • Commits: 57
  • Committers: 4
  • Avg Commits per committer: 14.25
  • Development Distribution Score (DDS): 0.105
Top Committers
Name Email Commits
dmronga d****a@d****e 858
ibergonzani i****i@d****e 36
Dennis Mronga d****a@D****e 19
Sebastian Kasperski s****i@d****e 7
Dennis Mronga d****a@D****3 4
rh5user r****r@d****e 2
Malte Wirkus m****s@d****e 2
Steffen Planthaber S****r@d****e 2
Dennis Mronga d****a@D****e 1
Dennis Mronga d****a@D****8 1
Bob the Builder b****b@d****e 1
Janosch Machowinski j****i@d****e 1
dmronga s****r@d****e 1
rh5user r****t@d****e 1
Vinzenz Bargsten v****n@d****e 1
Pierre Willenbrock p****k@d****e 1
Christoph Hertzberg c****g@d****e 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 36
  • Total pull requests: 83
  • Average time to close issues: 4 months
  • Average time to close pull requests: 22 days
  • Total issue authors: 9
  • Total pull request authors: 8
  • Average comments per issue: 1.08
  • Average comments per pull request: 0.53
  • Merged pull requests: 74
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 5
  • Average time to close issues: 5 days
  • Average time to close pull requests: 16 minutes
  • Issue authors: 3
  • Pull request authors: 2
  • Average comments per issue: 1.33
  • Average comments per pull request: 0.4
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mhubii (14)
  • dmronga (12)
  • sea-bass (4)
  • kassasin (1)
  • maltewi (1)
  • dbdxnuliba (1)
  • chhtz (1)
  • pierrewillenbrockdfki (1)
  • ibergonzani (1)
Pull Request Authors
  • dmronga (62)
  • skasperski (7)
  • ibergonzani (4)
  • maltewi (3)
  • chhtz (2)
  • moooeeeep (2)
  • pierrewillenbrockdfki (2)
  • planthaber (1)
Top Labels
Issue Labels
enhancement (6) bug (5)
Pull Request Labels

Dependencies

.github/workflows/build_and_test_ubuntu20.04.yml actions
  • actions/checkout v2 composite
.github/workflows/build_and_test_ubuntu22.04.yml actions
  • actions/checkout v2 composite
.github/workflows/doxygen.yml actions
  • actions/checkout v2 composite
  • mattnotmitt/doxygen-action v1.1.0 composite
  • peaceiris/actions-gh-pages v3 composite