Open Source Robotics

Eine kuratierte Sammlung hochwertiger Open-Source-Robotikprojekte, Werkzeuge und Software für die Robotik-Community.

DART

C++-Physik-Engine für die Dynamik gelenkiger Starrkörper und Robotiksimulation

Lizenz

BSD-2-Clause

Überblick

DART (Dynamic Animation and Robotics Toolkit) ist eine C++20-Physik-Engine zur Simulation der Dynamik gelenkiger Starrkörper mit beschränkungsbasierter Kontaktbehandlung. Sie wurde an der Georgia Tech entwickelt und bietet Vorwärts-/inverse Kinematik, Vorwärtsdynamik, Jacobi-Berechnung und Kollisionserkennung. Anders als GPU-parallele Simulatoren wie Isaac Gym oder MJX von MuJoCo legt DART den Schwerpunkt auf mathematische Genauigkeit bei der Simulation gelenkiger Körper und unterstützt die Formate URDF, SDF und MJCF. Enthält Python-Bindings (dartpy) und lässt sich in Gazebo integrieren.

DART (Dynamic Animation and Robotics Toolkit) ist eine quelloffene C++20-Physik-Engine, die am Georgia Tech entwickelt wurde und Datenstrukturen und Algorithmen für die kinematische und dynamische Simulation gelenkiger Starrkörpersysteme bereitstellt. Sie verwendet generalisierte Koordinaten und Featherstones Articulated Body Algorithm, um die für Robotikanwendungen erforderliche numerische Genauigkeit und Stabilität zu liefern.

Ein besonderes Merkmal von DART ist die einheitliche Unterstützung aller wichtigen Roboterbeschreibungsformate – URDF, SDF, MJCF und des eigenen SKEL-Formats – über eine einzige API. Es integriert mehrere Backends für die Kollisionserkennung (FCL, Bullet, ODE) und löst Kontaktbedingungen, Gelenkgrenzen und Mechanismen mit geschlossenen Schleifen in einem gekoppelten Framework für Constraint-Dynamik. Python-Bindings (dartpy) sind über PyPI und conda verfügbar.

Mit über 14 Jahren kontinuierlicher Entwicklung und mehr als 500 Commits pro Jahr ist DART eine der am aktivsten gepflegten Physik-Engines in der Robotik. Sie treibt das DART-Physik-Backend des Gazebo-Simulators an und wird weltweit in Forschungslaboren für die Entwicklung von Regelungsalgorithmen, Bewegungsplanung und Computeranimation eingesetzt.

Warum es wichtig ist

DART ist seit über 14 Jahren eine tragende Physik-Engine in der Robotiksimulation und treibt den Gazebo-Simulator sowie zahlreiche Forschungslabore weltweit an. Die Verwendung generalisierter Koordinaten mit Featherstones Articulated Body Algorithm liefert die Genauigkeit und Stabilität, die Robotikanwendungen erfordern, während die Unterstützung mehrerer Formate (URDF, SDF, MJCF) die Engine einzigartig vielseitig macht.

Welches Problem es löst

Die Robotiksimulation erfordert eine Physik-Engine, die die Dynamik gelenkiger Körper, Gelenkbedingungen, Kontakte und Kollisionen mit hoher numerischer Genauigkeit korrekt behandelt. DART bietet diese Grundlage mit einer übersichtlichen API, die das Laden von Robotermodellen aus allen wichtigen Formaten, das Einbinden mehrerer Backends für die Kollisionserkennung und die Berechnung einer Dynamik unterstützt, die sich sowohl für die Entwicklung von Regelungsalgorithmen als auch für die Computeranimation eignet.

Wichtigste Punkte

  • Nutzt Featherstones Articulated Body Algorithm auf generalisierten Koordinaten für eine genaue Dynamik
  • Lädt die Roboterbeschreibungsformate URDF, SDF, MJCF und SKEL über eine einheitliche API
  • Mehrere Backends für die Kollisionserkennung, darunter FCL, Bullet und ODE
  • Der Constraint-Dynamik-Solver behandelt Gelenkgrenzen, Kontakte und Mechanismen mit geschlossenen Schleifen gemeinsam
  • Plattformübergreifend (Linux, macOS, Windows) mit Python-Bindings über dartpy auf PyPI und conda

Für wen

  • Robotikforschende, die Regelungsalgorithmen in der Simulation entwickeln und testen
  • Gazebo-Nutzer, die die zugrunde liegende Physik-Engine verstehen oder anpassen müssen
  • Entwickler von Computeranimationen, die eine physikalisch genaue Simulation gelenkiger Körper benötigen
  • Reinforcement-Learning-Praktiker, die ein stabiles Simulations-Backend benötigen

Einschränkungen

  • Trotz vergleichbarer Fähigkeiten in der RL-Forschung weniger verbreitet als MuJoCo oder Isaac Sim
  • GPU-beschleunigte Simulation steht derzeit nicht im Fokus – läuft auf der CPU
  • Die C++20-Anforderung kann für Projekte, die an ältere Compilerversionen gebunden sind, einschränkend sein
  • Kleinere Community und weniger vorgefertigte Umgebungen als MuJoCo oder PyBullet

Diese Website benötigt JavaScript. Bitte aktivieren Sie JavaScript, um unsere Open-Source-Robotikprojekte zu erkunden.