Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

Differentiable Simulation

  • Também chamado: differentiable physics, differentiable simulator, differentiable dynamics
  • Categoria: Software & tooling › Simulation & twins
  • Tags: simulation, automatic-differentiation, system-identification, trajectory-optimization, sim-to-real, physics-engine

Simulação física capaz de calcular gradientes de suas saídas em relação às suas entradas e parâmetros, de modo que controladores, projetos e modelos de robôs possam ser otimizados diretamente por descida de gradiente.

Definição

Simulação diferenciável (differentiable simulation) é uma simulação física escrita de forma que derivadas possam ser calculadas através dela. Um simulador convencional recebe um estado, entradas de controle e parâmetros físicos e retorna o próximo estado. Um simulador diferenciável também retorna como esse próximo estado, ou qualquer grandeza calculada a partir de uma trajetória simulada inteira, varia em relação a essas entradas. Os gradientes geralmente são obtidos com diferenciação automática em frameworks como JAX, PyTorch ou NVIDIA Warp, ou a partir de derivadas analíticas das equações da dinâmica.

Gradientes através da física abrem vários usos. Na otimização de trajetórias, uma sequência de controles pode ser melhorada seguindo o gradiente de um custo ao longo do rollout simulado. No aprendizado de políticas, gradientes analíticos de política retropropagam uma perda da tarefa através do simulador até a rede da política, o que pode exigir muito menos amostras do que métodos de aprendizado por reforço que estimam gradientes apenas a partir de recompensas. Na identificação de sistemas, parâmetros como massa, atrito ou rigidez são ajustados a medições reais, e no coprojeto as dimensões de um robô são otimizadas junto com seu controlador.

A robótica é um cenário exigente para a física diferenciável por causa do contato. Impactos e atrito criam descontinuidades e dinâmicas rígidas, de modo que o gradiente verdadeiro pode ser zero, indefinido ou enganoso. Os simuladores lidam com isso usando modelos de contato suavizados ou macios, forças de penalidade complacentes, ou diferenciando através dos problemas de otimização usados para resolver o contato. Cada escolha troca precisão física por qualidade do gradiente. Rollouts longos acrescentam um segundo problema: os gradientes podem explodir ou desaparecer ao longo de muitos passos de tempo, e a paisagem de otimização pode ser acidentada mesmo quando os gradientes existem.

A simulação diferenciável é frequentemente combinada com componentes aprendidos. Uma rede neural pode modelar as partes da dinâmica difíceis de derivar, como o comportamento dos atuadores ou a deformação de corpos macios, enquanto o restante do simulador continua baseado em física, e o sistema inteiro é treinado de ponta a ponta. A renderização diferenciável permite que os gradientes fluam das imagens de câmera de volta para os parâmetros da cena. Entre as ferramentas disponíveis estão MuJoCo MJX, Brax e NVIDIA Warp.

Por que importa

Os gradientes permitem que a otimização use a estrutura da física em vez de tratar o simulador como uma caixa-preta, o que pode tornar o aprendizado, a calibração e o projeto muito mais eficientes em dados. A simulação diferenciável também é uma forma prática de ajustar simuladores ao hardware real, reduzindo a distância entre o comportamento simulado e o real.

Principais aplicações

  • Identificação de sistemas — ajustar parâmetros físicos de robôs e objetos a dados medidos
  • Otimização de trajetórias — refinar sequências de controle por descida de gradiente através da dinâmica simulada
  • Aprendizado de políticas — treinar controladores com gradientes analíticos através do simulador
  • Modelagem de robôs macios — calibrar simulações de corpos deformáveis com base no hardware real
  • Coprojeto de robôs — otimizar parâmetros mecânicos junto com o controlador

Na prática

Uma equipe que usa simulação diferenciável pode primeiro registrar dados de movimento e de torque nas juntas do seu robô e depois ajustar os parâmetros de atrito, amortecimento e massa minimizando, por descida de gradiente, a diferença entre as trajetórias simuladas e as medidas. Com o modelo calibrado, ela pode otimizar uma trajetória ou treinar uma política retropropagando uma perda da tarefa através de rollouts simulados curtos, muitas vezes truncando o horizonte ou misturando gradientes analíticos com aprendizado por reforço para manter os gradientes estáveis. A equipe verifica com cuidado a qualidade dos gradientes, por exemplo comparando-os com diferenças finitas, e presta atenção às configurações de contato, já que parâmetros de contato macio escolhidos para obter gradientes suaves podem tornar a simulação menos fiel ao robô real.

Equívocos comuns

  • A simulação diferenciável sempre dá gradientes melhores que o aprendizado por reforço — descontinuidades de contato e horizontes longos podem tornar os gradientes analíticos ruidosos ou enganosos
  • Qualquer simulador se torna diferenciável ao ser envolvido em diferenciação automática — tratamento de contato não suave, código com ramificações e solvers iterativos exigem tratamento especial para gerar gradientes úteis
  • Diferenciável significa mais preciso — diferenciabilidade diz respeito ao cálculo de derivadas; suavizar para obter bons gradientes pode reduzir a precisão física

Quem deve saber

  • Pesquisadores de aprendizado de robôs que trabalham com controle e aprendizado baseados em modelo
  • Engenheiros de simulação que constroem motores de física
  • Pesquisadores de robótica macia que calibram modelos deformáveis
  • Engenheiros de controle que usam otimização de trajetórias

Tecnologias relacionadas

  • Diferenciação automática (Automatic Differentiation)
  • JAX
  • MuJoCo MJX
  • NVIDIA Warp
  • Otimização de trajetórias (Trajectory Optimization)
  • Identificação de sistemas (System Identification)

Termos relacionados

  • Digital Twin
  • Sim2Real
  • Reinforcement Learning
  • System Identification

Projetos relacionados

  • GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • MuJoCo: DeepMind physics engine for robotics and ML research
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • RLinf: Scalable infrastructure for post-training foundation models via RL
  • Webots: Cross-platform robot simulator with built-in models, sensors, and development environment

Vídeos

  • Finally, Differentiable Physics is Here!: Two Minute Papers
  • Learning on the Fly: Rapid Policy Adaptation via Differentiable Simulation (RA-L 2026): UZH Robotics and Perception Group

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.