Repolode
dartsim

dartsim/dart

Физическая библиотека на C++17 с привязками Python для расчёта кинематики, динамики и контактов у сочленённых роботов и анимированных персонажей.

Open source альтернатива:MATLAB Simscape Multibody

Звёзды
1,224
Форки
307
Открытые issues
13
Последний коммит
4 часа назад

Что это?

DART (Dynamic Animation and Robotics Toolkit) — библиотека на C++17 с привязками Python (dartpy) для симуляции сочленённых твёрдых и мягких тел. Она описывает системы в обобщённых координатах и рассчитывает движение с помощью алгоритма сочленённых тел Фезерстоуна (Articulated Body Algorithm), а также предоставляет матрицу масс, силы Кориолиса и гравитации, якобианы и их производные.

Движок обрабатывает контакты с помощью решателей на основе LCP (Dantzig и PGS), поддерживает ограничения суставов и замкнутые кинематические цепи. Для обнаружения столкновений можно использовать FCL (по умолчанию), Bullet, ODE или собственный детектор DART. Модели роботов и сцен загружаются из файлов URDF, SDF, SKEL и MJCF (экспериментально); также предусмотрена иерархическая обратная кинематика всего тела. DART служит физическим движком для Gazebo через gz-physics.

Библиотеку можно установить через pip, conda-forge, vcpkg, Homebrew и несколько дистрибутивов Linux; также её можно собрать из исходного кода с помощью pixi.

Ключевые возможности

  • 01Динамика в обобщённых координатах с использованием алгоритма сочленённых тел Фезерстоуна (Articulated Body Algorithm)
  • 02Обработка контактов на основе LCP с решателями Dantzig и PGS, а также поддержка мягких тел
  • 03Бэкенды обнаружения столкновений, включая FCL, Bullet, ODE и встроенный детектор
  • 04Загрузка моделей из файлов URDF, SDF, SKEL и экспериментального формата MJCF
  • 05Иерархическая обратная кинематика всего тела с поддержкой аналитических решателей
  • 06C++ API и привязки Python dartpy

Сценарии использования

  • Симуляция гуманоидных роботов и роботов-манипуляторов для исследований в области управления и планирования движений
  • Прототипирование управления всем телом с помощью обратной кинематики и методов операционного пространства
  • Создание физически правдоподобной анимации персонажей с сочленёнными телами
  • Использование в качестве физического движка для робототехнических симуляторов, например Gazebo

Быстрый старт

  1. 1

    Установить пакет Python

    pip install dartpy
  2. 2

    Установить пакет C++ в Ubuntu / Debian

    sudo apt install libdart-all-dev
  3. 3

    Установить пакет C++ в macOS с помощью Homebrew

    brew install dartsim

Что важно знать

  • Ветка разработки main может меняться; для стабильной работы нужна версия с тегом или установленный пакет.
  • Пакеты дистрибутивов могут отставать от последнего релиза.
  • Wheels на PyPI доступны только для наиболее распространённых платформ и версий Python.

В подборках

Темы

#robotics#physics-engine#simulation#inverse-kinematics#multibody-dynamics#computer-animation#python-bindings#cpp#collision-detection#cpp17

Частые вопросы

Что такое dart?
Физическая библиотека на C++17 с привязками Python для расчёта кинематики, динамики и контактов у сочленённых роботов и анимированных персонажей. DART (Dynamic Animation and Robotics Toolkit) — библиотека на C++17 с привязками Python (dartpy) для симуляции сочленённых твёрдых и мягких тел. Она описывает системы в обобщённых координатах и рассчитывает движение с помощью алгоритма сочленённых тел Фезерстоуна (Articulated Body Algorithm), а также предоставляет матрицу масс, силы Кориолиса и гравитации, якобианы и их производные.
dart можно использовать бесплатно? Какая у него лицензия?
dart распространяется с открытым исходным кодом под лицензией BSD-2-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
dart всё ещё поддерживается?
Активно поддерживается. Последний коммит в dart — 6 нояб. 2026 г..
Для чего можно использовать dart?
Симуляция гуманоидных роботов и роботов-манипуляторов для исследований в области управления и планирования движений Прототипирование управления всем телом с помощью обратной кинематики и методов операционного пространства Создание физически правдоподобной анимации персонажей с сочленёнными телами Использование в качестве физического движка для робототехнических симуляторов, например Gazebo
Как установить dart?
Установить пакет Python: pip install dartpy Установить пакет C++ в Ubuntu / Debian: sudo apt install libdart-all-dev Установить пакет C++ в macOS с помощью Homebrew: brew install dartsim
Где скачать dart?
Исходный код и инструкции по установке — на GitHub: https://github.com/dartsim/dart

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Bullet Physics SDK — библиотека C++ для обнаружения столкновений и мультифизического моделирования в реальном времени, используемая в играх, VR, робототехнике и машинном обучении.

14,8 тыс.+11 за неделю3,1 тыс.C++OtherОбновлён 28 дней назад

Библиотека мультифизического моделирования на C++ для систем из твёрдых и гибких тел, гранулярных сред, взаимодействия жидкости и твёрдых тел, а также транспортных средств и роботов.

3,1 тыс.+8 за неделю655C++BSD-3-ClauseОбновлён 5 часов назад