Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

DART

Moteur physique C++ pour la dynamique des corps rigides articulés et la simulation robotique

Licence

BSD-2-Clause

Aperçu

DART (Dynamic Animation and Robotics Toolkit) est un moteur physique en C++20 pour simuler la dynamique de corps rigides articulés avec une gestion des contacts par contraintes. Développé à Georgia Tech, il fournit la cinématique directe et inverse, la dynamique directe, le calcul des jacobiennes et la détection de collisions. Contrairement aux simulateurs parallélisés sur GPU comme Isaac Gym ou MJX de MuJoCo, DART privilégie la précision mathématique pour la simulation de corps articulés, avec la prise en charge des formats URDF, SDF et MJCF. Il comprend des liaisons Python (dartpy) et s'intègre à Gazebo.

DART (Dynamic Animation and Robotics Toolkit) est un moteur physique C++20 open source développé à Georgia Tech, qui fournit des structures de données et des algorithmes pour la simulation cinématique et dynamique de systèmes de corps rigides articulés. Il utilise des coordonnées généralisées et l'Articulated Body Algorithm de Featherstone pour offrir la précision numérique et la stabilité qu'exigent les applications robotiques.

Une caractéristique distinctive de DART est sa prise en charge unifiée de tous les principaux formats de description de robots — URDF, SDF, MJCF et son propre format SKEL — via une API unique. Il intègre plusieurs backends de détection de collisions (FCL, Bullet, ODE) et résout les contraintes de contact, les limites articulaires et les mécanismes en boucle fermée dans un cadre couplé de dynamique sous contraintes. Les bindings Python (dartpy) sont disponibles via PyPI et conda.

Avec plus de 14 ans de développement continu et plus de 500 commits par an, DART est l'un des moteurs physiques les plus activement maintenus en robotique. Il alimente le backend physique DART du simulateur Gazebo et est utilisé dans des laboratoires de recherche du monde entier pour le développement d'algorithmes de contrôle, la planification de mouvement et l'animation par ordinateur.

Pourquoi c'est important

DART est depuis plus de 14 ans un moteur physique de référence pour la simulation robotique, alimentant le simulateur Gazebo et de nombreux laboratoires de recherche dans le monde. Son utilisation de coordonnées généralisées avec l'Articulated Body Algorithm de Featherstone apporte la précision et la stabilité qu'exigent les applications robotiques, tandis que sa prise en charge de plusieurs formats (URDF, SDF, MJCF) le rend particulièrement polyvalent.

Le problème résolu

La simulation robotique nécessite un moteur physique qui gère correctement la dynamique des corps articulés, les contraintes articulaires, les contacts et les collisions avec une grande précision numérique. DART fournit cette base avec une API claire qui permet de charger des modèles de robots depuis tous les principaux formats, de brancher plusieurs backends de détection de collisions et de calculer une dynamique adaptée aussi bien au développement d'algorithmes de contrôle qu'à l'animation par ordinateur.

Points clés

  • Utilise l'Articulated Body Algorithm de Featherstone sur des coordonnées généralisées pour une dynamique précise
  • Charge les formats de description de robots URDF, SDF, MJCF et SKEL via une API unifiée
  • Plusieurs backends de détection de collisions, dont FCL, Bullet et ODE
  • Le solveur de dynamique sous contraintes gère conjointement les limites articulaires, les contacts et les mécanismes en boucle fermée
  • Multiplateforme (Linux, macOS, Windows) avec des bindings Python via dartpy sur PyPI et conda

Pour qui

  • Chercheurs en robotique qui développent et testent des algorithmes de contrôle en simulation
  • Utilisateurs de Gazebo qui ont besoin de comprendre ou de personnaliser le moteur physique sous-jacent
  • Développeurs d'animation par ordinateur ayant besoin d'une simulation physiquement précise de corps articulés
  • Praticiens de l'apprentissage par renforcement ayant besoin d'un backend de simulation stable

Limites

  • Moins utilisé dans la recherche en RL que MuJoCo ou Isaac Sim malgré des capacités comparables
  • La simulation accélérée par GPU n'est pas une priorité actuelle : il s'exécute sur CPU
  • L'exigence de C++20 peut être contraignante pour les projets liés à d'anciennes versions de compilateur
  • Communauté plus restreinte et moins d'environnements préconstruits que MuJoCo ou PyBullet

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.