Comunidade Wuji Hand

Perguntas comuns e solução de problemas para o SDK da mão Wuji, pipeline JSONL e integração da plataforma.

FAQ

Qual pacote Python eu preciso para ler dados da mão Wuji?

instalar wujihandpy, o pacote oficial Wuji SDK Python:

pip install wujihandpy numpy

A wuji_hand_sdk_stream.py o script de ponte o importa via import wujihandpy e chama hand.read_joint_actual_position(timeout=0.4) para obter o array de posição das juntas 5×4. Verifique a instalação: python3 -c "import wujihandpy; print(wujihandpy.__version__)".

O que o array de posição das juntas 5×4 representa?

A mão Wuji tem 5 dedos (polegar, indicador, médio, anelar, mínimo), cada um com 4 juntas. O read_joint_actual_position() chamada retorna uma lista plana de 20 floats representando ângulos das juntas em radianos. O script de ponte reformata isso em um array 5×4, calcula a média das 4 juntas de cada dedo e normaliza do intervalo [0, π/2] para [0, 1] para produzir o por-dedo bends valor usado em teleoperação e gravação.

O mapa de pressão é sempre zeros. Isso é normal?

Pode ser. Se apenas o hardware da posição das juntas estiver conectado sem um módulo de sensor tátil, o pressure_map_24x32 campo é um espaço reservado preenchido com zeros. Use mock_wuji_stream.py para verificar se o pipeline de renderização do mapa de calor funciona corretamente. Para uso em produção, confirme se a versão do firmware Wuji inclui suporte a sensor tátil e se o módulo tátil está ligado e conectado.

Como posso executar sem hardware físico?

Use o incluído mock_wuji_stream.py script para gerar quadros JSONL sintéticos com dobras de dedos animadas, um mapa tátil de pressão em forma de bolha gaussiana, dados de IMU de 6 eixos e leituras de EMF a Hz configuráveis:

python3 mock_wuji_stream.py --hz 30 --hand-side right --seed 42

Para usar o fluxo simulado com o agente, substitua o comando de fluxo padrão por --wuji-cmd:

python3 wuji_glove_agent.py \
  --session YOUR_SESSION_ID \
  --node-id wuji-mock \
  --wuji-cmd "python3 mock_wuji_stream.py --hz 30 --hand-side right"

Todos os recursos da plataforma funcionam de forma idêntica no modo simulado.

Qual é a diferença entre wuji_glove_agent.py e wuji_hand_sdk_stream.py?

wuji_hand_sdk_stream.py é uma fonte de dados: importa wujihandpy, lê posições de junta brutas do hardware e emite quadros JSONL para stdout a Hz configuráveis. wuji_glove_agent.py é a ponte da plataforma: lança o script de fluxo como um subprocesso, analisa a saída JSONL e encaminha os dados de sensor decodificados para a Plataforma Fearless via WebSocket. O agente também gerencia o registro de sessão, bufferização de telemetria, reconexão e pings de latência.

Como seleciono a mão esquerda vs a mão direita?

Passar --glove left, --glove right, ou --glove auto (padrão) para wuji_glove_agent.py. No modo automático, o agente lê o hand_side campo do primeiro quadro JSONL. O script de fluxo aceita --hand-side left ou --hand-side right, com padrão para a direita. Para gravação bilateral, execute dois processos de agente com valores distintos e diferentes --node-id configurações, conectados ao mesmo ID de sessão. --glove O agente falha ao se conectar ao WebSocket da plataforma. O que devo verificar?

Confirme que o backend Fearless está em execução:

. Se estiver usando um backend remoto, passe a URL correta: curl http://localhost:8000/health. O agente usa retrocesso exponencial (1 s mínimo, 10 s máximo) para reconexão — observe a saída do terminal para tentativas de reconexão e a mensagem de erro específica. --backend ws://HOST:PORTFunciona melhor com OpenArm 101

A Luva Wuji é a luva de operador recomendada para

The Wuji Hand is the recommended operator glove for OpenArm 101 sessões de teleoperação. Monte o OpenArm em uma superfície estável, emparelhe o agente Wuji na mesma sessão que o agente do braço, e você terá um equipamento completo para coleta de dados de teleoperação e aprendizado por imitação. Veja o Passo a passo da configuração de teleoperação do OpenArm para instruções de integração.

Pronto para Começar a Coletar?

Dados de teleoperação de alta DOF a 30 Hz. Funciona melhor com o OpenArm 101.