Giter VIP home page Giter VIP logo

wbc's Introduction

WBC - Whole-Body Control

Code API | Full Documentation

WBC is C++ library for optimization-based control of redundant robots. It allows intuitive specification and execution of reactive robot control problems that involve multiple simultaneously running tasks.

WBC was initiated and is currently developed at the Robotics Innovation Center of the German Research Center for Artificial Intelligence (DFKI) in Bremen. It is part of the ARC-OPT (Adaptive Robot Control using Optimization) framework, which facilitates learning and optimizing whole-body controllers from data obtained, e.g., in user demonstrations. Also see the ARC-OPT website of the Robotics Innovation Center.

Motivation

WBC is a standalone library for optimization-based control of redundant robots. It contains various implementations of whole-body feedback control approaches on velocity-, acceleration- and force/torque-level. WBC is meant for controlling robots with redundant degrees of freedom, like humanoids or other legged robots with floating base, but also fixed-base systems like mobile manipulators, dual-arm systems or even simple manipulators. It is also meant for controlling multiple tasks simultaneously while taking into account the physical constraints of the robot. E.g., on a humanoid robot do ... (1) keep balance (2) Grasp an object with one arm (3) maintaining an upright body posture (4) Consider the joint torque limits, etc... WBC is a purely reactive approach, i.e., it does not involve any motion planning or trajectory optimization. However, it can be used to stabilize trajectories coming from a motion planner or trajectory optimizer and integrate them with other objectives and physical constraints of the robot.

The library is written in C++, with Python bindings for most functionalities. The general idea of optimization-based robot control is to formulate simultaneously running robot tasks as constraints or within the cost function of an instantaneous optimization problem. Now, in each control cycle ...

  • The constraints/cost functions are updated with the current robot state/control reference
  • The optimization problem is solved
  • The solution is applied to the actuators of the robot

The online solution of this problem is the robot joint control signal that complies with all tasks, while integrating physical constraints like actuator limits. An advantage of this approach is that complex tasks can be composed from low-dimensional descriptors, which are typically easier to specify and control than the complete task are once. Also, the redundancy of the robot is nicely exploited utilizing all the dof of the system (whole body).

Getting Started

Please check out the tutorials section in the documentation for examples of usage.

Requirements / Dependencies

Currently supported OS: Ubuntu18.04, Ubuntu20.04

Since WBC can be considered as an integrative framework that facilitates the composition of different robot control approaches, there is a number of dependencies:

Optional:

  • For python bindings: python-dev, libboost-python-dev, libboost-numpy-dev, python-numpy
  • To support robot architectures with closed loops (series-parallel hybrid systems): rbdl, hyrodyn

Installation

Standalone | Using Rock

Testing

Please check the unit tests here, as well the tutorials

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 use WBC within your scientific work, please cite this paper.

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, [email protected]

Copyright 2017, DFKI GmbH / Robotics Innovation Center

wbc's People

Contributors

dmronga avatar ibergonzani avatar skasperski avatar planthaber avatar maltewi avatar pierrewillenbrockdfki avatar vbargsten avatar

Stargazers

Andreas Bresser 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.