Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

DART

Motor de física en C++ para la dinámica de cuerpos rígidos articulados y la simulación robótica

Licencia

BSD-2-Clause

Resumen

DART (Dynamic Animation and Robotics Toolkit) es un motor de física en C++20 para simular la dinámica de cuerpos rígidos articulados con gestión de contactos basada en restricciones. Desarrollado en Georgia Tech, ofrece cinemática directa/inversa, dinámica directa, cálculo del jacobiano y detección de colisiones. A diferencia de los simuladores paralelos en GPU como Isaac Gym o MJX de MuJoCo, DART se centra en la precisión matemática de la simulación de cuerpos articulados, con soporte para los formatos URDF, SDF y MJCF. Incluye bindings para Python (dartpy) y se integra con Gazebo.

DART (Dynamic Animation and Robotics Toolkit) es un motor de física de código abierto en C++20 desarrollado en Georgia Tech que proporciona estructuras de datos y algoritmos para la simulación cinemática y dinámica de sistemas de cuerpos rígidos articulados. Utiliza coordenadas generalizadas y el Articulated Body Algorithm de Featherstone para ofrecer la precisión numérica y la estabilidad que requieren las aplicaciones robóticas.

Una característica distintiva de DART es su compatibilidad unificada con todos los principales formatos de descripción de robots —URDF, SDF, MJCF y su propio formato SKEL— a través de una única API. Integra varios backends de detección de colisiones (FCL, Bullet, ODE) y resuelve restricciones de contacto, límites articulares y mecanismos de lazo cerrado en un marco acoplado de dinámica de restricciones. Los bindings de Python (dartpy) están disponibles a través de PyPI y conda.

Con más de 14 años de desarrollo continuo y más de 500 commits al año, DART es uno de los motores de física más activamente mantenidos en robótica. Impulsa el backend de física DART del simulador Gazebo y se utiliza en laboratorios de investigación de todo el mundo para el desarrollo de algoritmos de control, la planificación de movimiento y la animación por computadora.

Por qué importa

DART ha sido un motor de física fundamental en la simulación robótica durante más de 14 años, impulsando el simulador Gazebo y numerosos laboratorios de investigación de todo el mundo. Su uso de coordenadas generalizadas con el Articulated Body Algorithm de Featherstone aporta la precisión y la estabilidad que exigen las aplicaciones robóticas, mientras que su compatibilidad con múltiples formatos (URDF, SDF, MJCF) lo hace excepcionalmente versátil.

Qué problema resuelve

La simulación robótica requiere un motor de física que gestione correctamente la dinámica de cuerpos articulados, las restricciones articulares, los contactos y las colisiones con alta precisión numérica. DART proporciona esta base con una API limpia que permite cargar modelos de robots desde todos los formatos principales, incorporar varios backends de detección de colisiones y calcular una dinámica adecuada tanto para el desarrollo de algoritmos de control como para la animación por computadora.

Puntos clave

  • Utiliza el Articulated Body Algorithm de Featherstone sobre coordenadas generalizadas para una dinámica precisa
  • Carga los formatos de descripción de robots URDF, SDF, MJCF y SKEL mediante una API unificada
  • Varios backends de detección de colisiones, entre ellos FCL, Bullet y ODE
  • El solucionador de dinámica de restricciones gestiona conjuntamente límites articulares, contactos y mecanismos de lazo cerrado
  • Multiplataforma (Linux, macOS, Windows) con bindings de Python mediante dartpy en PyPI y conda

Para quién es

  • Investigadores de robótica que desarrollan y prueban algoritmos de control en simulación
  • Usuarios de Gazebo que necesitan comprender o personalizar el motor de física subyacente
  • Desarrolladores de animación por computadora que requieren una simulación físicamente precisa de cuerpos articulados
  • Profesionales del aprendizaje por refuerzo que necesitan un backend de simulación estable

Limitaciones

  • Menos utilizado en la investigación de RL que MuJoCo o Isaac Sim pese a tener capacidades comparables
  • La simulación acelerada por GPU no es un enfoque actual: se ejecuta en CPU
  • El requisito de C++20 puede ser restrictivo para proyectos limitados a versiones antiguas del compilador
  • Comunidad más pequeña y menos entornos prediseñados que MuJoCo o PyBullet

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.