opendr-eu / opendr

A modular, open and non-proprietary toolkit for core robotic functionalities by harnessing deep learning
Apache License 2.0
611 stars 94 forks source link
deep-learning robotics
**A modular, open and non-proprietary toolkit for core robotic functionalities by harnessing deep learning** ______________________________________________________________________

WebsiteInstallationPython ExamplesROS1ROS2C APICustomizationKnown IssuesToolkit Review CommitteeChangelogLicense

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Test Suite (master)](https://github.com/opendr-eu/opendr/actions/workflows/tests_suite.yml/badge.svg)](https://github.com/opendr-eu/opendr/actions/workflows/tests_suite.yml) [![Test Packages](https://github.com/opendr-eu/opendr/actions/workflows/test_packages.yml/badge.svg)](https://github.com/opendr-eu/opendr/actions/workflows/test_packages.yml) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7540781.svg)](https://doi.org/10.5281/zenodo.7540781)

About

The aim of OpenDR Project is to develop a modular, open and non-proprietary toolkit for core robotic functionalities by harnessing deep learning to provide advanced perception and cognition capabilities, meeting in this way the general requirements of robotics applications in the applications areas of healthcare, agri-food and agile production. OpenDR provides the means to link the robotics applications to software libraries (deep learning frameworks, e.g., PyTorch and Tensorflow) to the operating environment (ROS). OpenDR focuses on the AI and Cognition core technology in order to provide tools that make robotic systems cognitive, giving them the ability to:

  1. interact with people and environments by developing deep learning methods for human centric and environment active perception and cognition,
  2. learn and categorize by developing deep learning tools for training and inference in common robotics settings, and
  3. make decisions and derive knowledge by developing deep learning tools for cognitive robot action and decision making.

As a result, the developed OpenDR toolkit will also enable cooperative human-robot interaction as well as the development of cognitive mechatronics where sensing and actuation are closely coupled with cognitive systems thus contributing to another two core technologies beyond AI and Cognition. OpenDR aims to develop, train, deploy and evaluate deep learning models that improve the technical capabilities of the core technologies beyond the current state of the art.

Where to start?

You can start by installing the OpenDR toolkit. OpenDR can be installed in the following ways:

  1. By cloning this repository (CPU/GPU support)
  2. Using pip (CPU/GPU support only)
  3. Using docker (CPU/GPU support)

What OpenDR provides?

OpenDR provides an intuitive and easy to use Python interface, a C API for performance critical application, a wealth of usage examples and supporting tools, as well as ready-to-use ROS nodes. OpenDR is built to support Webots Open Source Robot Simulator, while it also extensively follows industry standards, such as ONNX model format and OpenAI Gym Interface.

How can I start using OpenDR?

You can find detailed documentation in OpenDR wiki. The main point of reference after installing the toolkit is the tools index. Starting from there, you can find detailed documentation for all the tools included in OpenDR.

How can I interface OpenDR?

OpenDR is built upon Python. Therefore, the main OpenDR interface is written in Python and it is available through the opendr package. Furthermore, OpenDR provides ROS1 and ROS2 interfaces, as well as a C interface. Note that you can use as many tools as you wish at the same time, since there is no hardware limitation on the number of tools that can run at the same time. However, hardware limitations (e.g., GPU memory) might restrict the number of tools that can run at any given moment.

How to contribute

Please follow the instructions provided in the wiki.

How to cite us

If you use OpenDR for your research, please cite the following paper that introduces OpenDR architecture and design:

@inproceedings{opendr2022,
  title={OpenDR: An Open Toolkit for Enabling High Performance, Low Footprint Deep Learning for Robotics},
  author={Passalis, Nikolaos and Pedrazzi, Stefania and Babuska, Robert and Burgard, Wolfram and Dias, Daniel and Ferro, Francesco and Gabbouj, Moncef and Green, Ole and Iosifidis, Alexandros and Kayacan, Erdal and Kober, Jens and Michel, Olivier and Nikolaidis, Nikos and Nousi, Paraskevi and Pieters, Roel and Tzelepi, Maria and Valada, Abhinav and Tefas, Anastasios},
    booktitle = {Proceedings of the 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (to appear)},
  year={2022}
}

Acknowledgments

OpenDR project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871449.