Repolode
dartsim

dartsim/dart

Biblioteca de física em C++17 com bindings para Python, voltada à cinemática, dinâmica e simulação de contato de robôs articulados e personagens animados.

Alternativa open source a:MATLAB Simscape Multibody

Estrelas
1,223
Forks
307
Issues abertas
13
Último commit
há 19 horas

O que é?

DART (Dynamic Animation and Robotics Toolkit) é uma biblioteca em C++17 com bindings para Python (dartpy) para simular corpos rígidos e deformáveis articulados. Ela representa sistemas em coordenadas generalizadas e calcula o movimento com o Articulated Body Algorithm de Featherstone, além de disponibilizar a matriz de massa, as forças de Coriolis e da gravidade, os Jacobianos e suas derivadas.

O mecanismo lida com contato por meio de solvers baseados em LCP (Dantzig e PGS), limites de juntas e ciclos cinemáticos fechados. A detecção de colisões pode usar FCL (padrão), Bullet, ODE ou o detector próprio do DART. Modelos de robôs e cenas são carregados de arquivos URDF, SDF, SKEL e MJCF (experimental), e a biblioteca inclui cinemática inversa hierárquica de corpo inteiro. O DART também funciona como backend de física para o Gazebo por meio do gz-physics.

A biblioteca está disponível via pip, conda-forge, vcpkg, Homebrew e várias distribuições Linux, e pode ser compilada a partir do código-fonte com pixi.

Recursos principais

  • 01Dinâmica em coordenadas generalizadas usando o Articulated Body Algorithm de Featherstone
  • 02Simulação de contato baseada em LCP, com os solvers Dantzig e PGS, além de suporte a corpos deformáveis
  • 03Backends de detecção de colisões, incluindo FCL, Bullet, ODE e um detector nativo
  • 04Carregamento de modelos de arquivos URDF, SDF, SKEL e MJCF experimental
  • 05Cinemática inversa hierárquica de corpo inteiro com suporte a solver analítico
  • 06API em C++ e bindings para Python por meio do dartpy

Casos de uso

  • Simular robôs humanoides ou manipuladores para pesquisas em controle e planejamento de movimento
  • Prototipar controle de corpo inteiro com cinemática inversa e métodos de espaço operacional
  • Gerar animações de personagens fisicamente plausíveis com corpos articulados
  • Servir como backend de física para simuladores de robótica, como o Gazebo

Início rápido

  1. 1

    Instalar o pacote Python

    pip install dartpy
  2. 2

    Instalar o pacote C++ no Ubuntu / Debian

    sudo apt install libdart-all-dev
  3. 3

    Instalar o pacote C++ no macOS com Homebrew

    brew install dartsim

Antes de usar

  • A branch de desenvolvimento main pode mudar; para ter um comportamento estável, use uma versão com tag ou instale o pacote.
  • Os pacotes das distribuições podem demorar para incluir a versão mais recente.
  • Os wheels do PyPI cobrem apenas as plataformas e versões do Python mais comuns.

Em coleções

Tópicos

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

Perguntas frequentes

O que é dart?
Biblioteca de física em C++17 com bindings para Python, voltada à cinemática, dinâmica e simulação de contato de robôs articulados e personagens animados. DART (Dynamic Animation and Robotics Toolkit) é uma biblioteca em C++17 com bindings para Python (dartpy) para simular corpos rígidos e deformáveis articulados. Ela representa sistemas em coordenadas generalizadas e calcula o movimento com o Articulated Body Algorithm de Featherstone, além de disponibilizar a matriz de massa, as forças de Coriolis e da gravidade, os Jacobianos e suas derivadas.
dart é gratuito? Qual é a licença?
dart é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
dart ainda é mantido?
Manutenção ativa. O último commit de dart foi em 5 de nov. de 2026.
Para que posso usar dart?
Simular robôs humanoides ou manipuladores para pesquisas em controle e planejamento de movimento Prototipar controle de corpo inteiro com cinemática inversa e métodos de espaço operacional Gerar animações de personagens fisicamente plausíveis com corpos articulados Servir como backend de física para simuladores de robótica, como o Gazebo
Como instalar dart?
Instalar o pacote Python: pip install dartpy Instalar o pacote C++ no Ubuntu / Debian: sudo apt install libdart-all-dev Instalar o pacote C++ no macOS com Homebrew: brew install dartsim
Onde consigo dart?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dartsim/dart

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados