Por Dentro do NVIDIA IsaacTeleop: Do Rastreamento de Mãos e Controles às Ações do Robô com o Motor…

Neste tutorial, trabalharemos com o motor de retargeting no coração do NVIDIA IsaacTeleop, a estrutura que transforma o rastreamento de mãos XR e a entrada de controladores de movimento em comandos para robôs simulados e reais. Em vez de conectar um headset, construímos cada entrada nós mesmos em NumPy, então cada etapa é executada em uma CPU Colab comum e imprime o que calcula. Começamos com o sistema de tipos que cada nó fala, geramos dados sintéticos de mãos e controladores, escrevemos nosso próprio retargeter com parâmetros ajustáveis em tempo real e, em seguida, acionamos os retargeters de garra e SE(3) embutidos com ele. A partir daí, compomos um grafo completo que emite um vetor de ação por etapa, aplicamos uma transformação de quadro de mundo, percorremos a execução, pausamos e encerramos a máquina de estados, e finalizamos com um mapeamento de controle para mão destreza e ajuste de parâmetros que persiste entre reinícios. Copiar Código Copiado Usar um Navegador diferente import os import sys import json import math import tempfile import traceback import subprocess import numpy as np RESULTS = {} def banner(title): print("\n" + "=" * 78) print(title) print("=" * 78) def section(name): def wrap(fn): def run(*a, **kw): banner(name) try: out = fn(*a, **kw) RESULTS[name] = out if isinstance(out, str) else "ok" return out except Exception as e: RESULTS[name] = f"SKIPPED / FAILED -> {type(e).__name__}: {e}" print(f"\n[!] {name} did not complete: {type(e).__name__}: {e}") traceback.print_exc(limit=3) return None return run return wrap banner("0. Instalar isaacteleop e verificar o ambiente") subprocess.run( [sys.executable, "-m", "pip", "install", "-q", "isaacteleop[retargeters-lite]==1.4.145"], check=True, ) import pkgutil import isaacteleop from isaacteleop import schema print(f" isaacteleop {isaacteleop.__version__} | Python {sys.version.split()[0]} | numpy {np.__version__}") print(" módulos de nível superior :", ", ".join(sorted(m.name for m in pkgutil.iter_modules(isaacteleop.__path__)))) message_types = [n for n in dir(schema) if n[0].isupper()] print(f" tipos de mensagem do schema: {l}

Fonte: MarkTechPost

Publicado em 2026-10-04

Notícias relacionadas

Continue explorando