/dm_robotics

Libraries, tools and tasks created and used at DeepMind Robotics.

Primary LanguagePythonApache License 2.0Apache-2.0

dm_robotics: Libraries, tools, and tasks created and used for Robotics research at DeepMind.

Package overview

Package Summary
Transformations Rigid body transformations
Geometry Scene and Robot geometry primitives
Vision Visual blob detection and tracking
AgentFlow Reinforcement Learning agent composition library
Manipulation "RGB" object meshes for manipulation tasks
MoMa Manipulation environment definition library, for simulated and real robots
Controllers QP-optimization based cartesian controller
Controller Bindings Python bindings for the controller
Least Squares QP QP task definition and solver

Installation

These libraries are distributed on PyPI, the packages are:

  • dm_robotics-transformations
  • dm_robotics-geometry
  • dm_robotics-vision
  • dm_robotics-agentflow
  • dm_robotics-manipulation
  • dm_robotics-moma
  • dm_robotics-controllers

Python versions 3.7, 3.8 and 3.9 are supported.

Dependencies

MoMa, Manipulation and Controllers depend on MuJoCo, the other packages do not. See the individual packages for more information on their dependencies.

Building

To build and test the libraries, run build.sh. This script assumes:

  • MuJoCo is installed.
  • dm_control is installed.
  • cmake version >= 3.20.2 is installed.
  • Python 3.7, 3.8 or 3.9 and system headers are installed.
  • GCC version 9 or later is installed.
  • numpy is installed.

The Python libraries are tested with tox, the C++ code is built and tested with cmake.

Tox's distshare mechanism is used to share the built source distribution packages between the packages.