Conteúdo detalhado
🔹 Por que simular: barato, seguro, paralelo, reset infinito
Cada demo real exige um humano, um robô e tempo de relógio. Em simulação, um cluster gera milhões de trajetórias de madrugada, sem desgaste mecânico nem colisões caras. Crucial para RL, que precisa de ordens de magnitude mais interações do que imitação.
📊 As quatro vantagens
- Custo — sem hardware desgastando, sem operador humano por trajetória.
- Segurança — políticas ruins quebram pixels, não atuadores.
- Paralelismo — milhares de envs simultâneos na GPU.
- Reset infinito — ground-truth de estado, randomização programática, replay.
⚡ Dica prática
Sim não substitui o real — complementa. A receita vencedora é sim para volume + RL e real para fine-tuning final com poucas demos. Tentar transferir 100% do sim sem dado real costuma frustrar.
Custo
Dados quase grátis.
Segurança
Falha sem dano físico.
Paralelismo
Milhares de envs.
Ground truth
Estado exato disponível.
🔹 MuJoCo / MJX: contato preciso e física diferenciável
MuJoCo (Multi-Joint dynamics with Contact, hoje open-source pela DeepMind) é referência em física de contato e atrito para manipulação. MJX reimplementa o solver em JAX, rodando milhares de simulações em GPU/TPU com vmap e gradientes via grad — abrindo otimização diferenciável de trajetória.
pip install mujoco mujoco-mjx jax[cuda12]
import mujoco, mujoco.mjx as mjx, jax
model = mujoco.MjModel.from_xml_path("scene.xml") # MJCF
mx = mjx.put_model(model)
@jax.vmap # 4096 mundos em paralelo
def step(state, ctrl):
data = mjx.step(mx, state.replace(ctrl=ctrl))
return data
# jax.grad(step) -> física diferenciável
⚡ Dica prática
Cenas em MuJoCo são MJCF (XML). Comece com os modelos do mujoco_menagerie (Franka, ALOHA, mãos) em vez de modelar do zero — geometria de colisão errada é a causa nº 1 de física instável.
MuJoCo
Contato preciso.
MJX
JAX, vmap em GPU.
Diferenciável
Gradiente da dinâmica.
MJCF
Cena em XML.
🔹 NVIDIA Isaac Sim / Isaac Lab: GPU sim com RTX
Isaac Sim (sobre Omniverse/PhysX 5) entrega física e renderização RTX na GPU; Isaac Lab é o framework de RL/aprendizado em cima dele, rodando milhares de ambientes paralelos sem sair da GPU — observações, física e política convivem na mesma VRAM, eliminando o gargalo CPU↔GPU.
📊 Por que escala
- PhysX 5 na GPU — milhares de envs, sem ida-e-volta para a CPU.
- RTX — renderização fotorrealista útil para sim-to-real visual.
- USD/OpenUSD — formato de cena interoperável e modular.
- Sensores — câmeras, LiDAR e RGB-D sintéticos prontos.
✓ Fazer
- ✓Usar Isaac Lab para RL massivo (locomoção, whole-body).
- ✓Aproveitar RTX para domain randomization visual.
- ✓Conferir requisitos de GPU NVIDIA + drivers antes de começar.
✗ Evitar
- ✗Esperar rodar Isaac Sim em hardware não-NVIDIA.
- ✗Confundir fotorrealismo com fidelidade física.
- ✗Ignorar o custo de setup; MuJoCo é mais leve para protótipo.
Isaac Sim
Omniverse + PhysX 5.
Isaac Lab
Framework de RL.
RTX
Render fotorrealista.
OpenUSD
Cena interoperável.
🔹 Habitat e cia: navegação e embodied QA
Habitat (Meta) foca em ambientes 3D fotorrealistas para navegação e embodied question answering — o agente se move por cenas escaneadas (HM3D, Matterport) respondendo "onde está a chave?". É outro ponto do espectro: menos manipulação de contato, mais percepção espacial e exploração.
📊 Espectro de simuladores
- MuJoCo — contato/manipulação, física fina.
- Isaac Sim — escala + RTX, locomoção e manipulação.
- Habitat — navegação, EQA, cenas reais escaneadas.
- Genesis / SAPIEN — novas opções 2024-26, velocidade e articulados.
import habitat_sim
cfg = habitat_sim.SimulatorConfiguration()
cfg.scene_id = "data/scene_datasets/hm3d/00800-TEEsavR23oF.glb"
sim = habitat_sim.Simulator(habitat_sim.Configuration(cfg, [agent_cfg]))
obs = sim.step("move_forward") # navegação em cena escaneada real
obs["rgb"], obs["depth"] # sensores sintéticos
Habitat
Navegação 3D.
EQA
Perguntas incorporadas.
HM3D
Cenas escaneadas.
SAPIEN
Objetos articulados.
🔹 O gap de física e renderização (sim ≠ real)
Nenhum simulador é o mundo. O reality gap aparece em atrito mal modelado, objetos deformáveis e líquidos, ruído e latência de sensores, e domínio visual (iluminação, texturas). Uma policy que acerta 95% em sim pode despencar no real — tema central da Trilha 3.
Física
Atrito, contato, deformáveis e fluidos são aproximações; rígidos são fáceis, panos não.
Sensores
RGB-D real tem ruído, buracos e latência que o render perfeito ignora.
Aparência
Distribuição visual difere; domain randomization mitiga (Trilha 3).
⚡ Dica prática
Avalie no real (ou em sim diferente do de treino). Reportar só success rate em sim de treino é a forma mais comum de se enganar sobre uma policy.
Reality gap
Sim ≠ real.
Deformáveis
Pano/fluido difíceis.
Ruído de sensor
RGB-D imperfeito.
Eval honesto
Medir transfer real.
✓ Fazer
- ✓Randomizar física/visual no treino para fechar o gap.
- ✓Reservar um sim/cenário de avaliação separado do de treino.
- ✓Validar no robô real antes de declarar sucesso.
✗ Evitar
- ✗Reportar success rate só no sim de treino.
- ✗Modelar deformáveis/fluidos como rígidos e confiar.
- ✗Ignorar ruído/latência de sensor real no pipeline.
🔹 Benchmarks: LIBERO, Meta-World, RoboSuite
Benchmarks padronizam a comparação. LIBERO mede aprendizado contínuo e transferência de conhecimento em manipulação (LIBERO-Spatial, Object, Goal, Long); Meta-World oferece 50 tarefas para meta/multi-task RL; RoboSuite (MuJoCo) é uma suíte modular de manipulação muito usada em papers VLA.
⚡ Dica prática
Reporte o benchmark completo, não só a suite onde seu modelo brilha. Cherry-picking de uma única suite LIBERO é o "p-hacking" da robótica — revisores e a comunidade esperam todas as quatro suites mais a média.
# avaliar OpenVLA fine-tunado em LIBERO (suites padrão)
python run_libero_eval.py \
--model_path outputs/openvla-libero \
--task_suite_name libero_spatial \
--num_trials_per_task 50
# reporta success rate médio por suite -> número comparável entre papers
📊 O que cada um mede
- LIBERO — lifelong learning, 4 suites de transferência.
- Meta-World — 50 tarefas, ML1/ML10/ML45 para generalização.
- RoboSuite — manipulação modular, base de muitos VLAs.
LIBERO
Lifelong / transferência.
Meta-World
50 tarefas multi-task.
RoboSuite
Manipulação modular.
Success rate
Métrica comparável.
✅ Resumo do módulo
Próximo módulo
2.4 — ROS2: o middleware que leva sua policy do simulador ao braço real, com tf2, MoveIt2 e tempo real.