Implantação e execução com um clique no Windows
AmazingHand-main.zip(AmazingHand-main.zip, acima do limite de tamanho por arquivo do site — solicite em support@juxitech.com)
Este tutorial baseia-se no Demo oficial do AmazingHand (mão robótica da Pollen Robotics) e já vem com scripts de implantação com um clique. Basta executar pela ordem numérica.Todos os scripts estão na pasta Demo\Windows一键部署脚本\ ; execute diretamente com duplo clique.
Preparação de hardware
Os arquivos de modelo podem ser visualizados ou baixados em Onshape (inclui URDF).
Instalação do ambiente (script 1)
**Clique duas vezes em **1-安装环境.bat , executa automaticamente:
Verificar as ferramentas de compilação MSVC (cl.exe) — necessárias para a compilação do Rust. Se estiverem ausentes, será solicitada a instalação do Visual Studio 2022 Build Tools, marque "Desenvolvimento para desktop com C++"; após instalar, reabra o terminal.
Instalar o Rust (toolchain rustup + stable-msvc)
Configurar o espelho da Tsinghua para o cargo (
C:\Users\<usuario>\.cargo\config.toml), para acelerar o download de cratesInstalar o uv (gerenciador de pacotes Python)
Instalar o dora-cli 0.5.0 (
cargo install, a primeira compilação leva cerca de 10~20 minutos; aguarde com paciência)Instalar o pacote pip dora-rs (opcional, será instalado no ambiente virtual)
Importante: após o script terminar, feche e reabra o terminal para que as variáveis de ambiente entrem em vigor. A instalação pode ser lenta por causa da rede; aguarde com paciência e não feche a janela no meio do processo.
Instalação manual alternativa (caso os scripts não funcionem)
Rust: https://www.rust-lang.org/tools/install
No Windows, use o rustup-init.exe e escolha a toolchain MSVC predefinida
Variáveis de ambiente: adicione
%USERPROFILE%\.cargo\binao PATH
uv: no PowerShell, execute
irm ``https://astral.sh/uv/install.ps1`` | iex- Variáveis de ambiente: adicione
%USERPROFILE%\.local\binao PATH
- Variáveis de ambiente: adicione
dora-cli:
cargo install dora-cli --version 0.5.0
Configuração do espelho da Tsinghua para o cargo (~/.cargo/config.toml)
[source.crates-io]
replace-with = "tuna"
[source.tuna]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
[registries.tuna]
index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
[http]
check-revoke = falseUse o índice esparso (sparse) (como acima), e não um espelho de repositório git — o modo git precisa baixar cerca de 1GB de índice na primeira vez e é fácil travar em
Updating 'tuna' index.
Modo de conexão
A placa de acionamento dos servos é conectada ao computador por USB, com fonte externa de 5V4A
No computador, encontre o número da porta: Gerenciador de Dispositivos → Portas (COM e LPT), por exemplo
COM11
Configurar a porta serial (script 2)
**Clique duas vezes em **2-配置串口.bat (a lógica real está em 2-配置串口.ps1):
É exibida a mensagem "Conecte a placa de acionamento dos servos ao computador" → pressione Enter para iniciar a detecção
Lista automaticamente as portas COM detectadas (com o nome do dispositivo)
Com uma única porta, pressione Enter para confirmar; com várias portas, digite o número
Grava automaticamente a porta padrão nos
--serialportdos 3 dataflow yml e emAHControl\src\main.rsOs arquivos originais são copiados automaticamente para
.bak
Se o USB for desconectado e reconectado, o número da porta pode mudar e será necessário executar este script novamente.
Implantação do código (script 3)
**Clique duas vezes em **3-部署代码.bat , executa automaticamente:
Inicia o daemon do dora (
dora up)Cria um ambiente virtual Python 3.12 (
uv venv --python 3.12)Ativa o ambiente virtual
Compila o nó Rust do AHControl (
cargo build --release, cerca de 10 minutos na primeira vez)Sincroniza as dependências do AHSimulation e do HandTracking (
uv sync)Força a instalação do mediapipe==0.10.14
A implantação só precisa ser executada uma vez. Se for executada novamente, será perguntado se o ambiente virtual deve ser recriado.
Executar o código (script 4)
**Clique duas vezes em **4-运行代码.bat , surge o menu interativo:
============================================
请选择运行模式:
============================================
1 - 模拟仿真(摄像头手势追踪)
2 - 真实硬件
q - 退出
============================================
请输入序号 [1/2/q]:Escolha 1: ambiente de simulação, em que os gestos da câmera acionam as duas mãos simuladas
Escolha 2: entra num submenu para escolher mão direita / mão esquerda / ambas as mãos
============================================
真实硬件 - 请选择灵巧手:
============================================
1 - 右手
2 - 左手
3 - 左右双手
b - 返回上级菜单
============================================Após a escolha, são executados automaticamente dora build + dora run. A janela da câmera aparece; faça gestos em frente à câmera e a mão robótica acompanha em tempo real. Ctrl+C para parar; quando o fluxo de dados terminar, pressione Enter para voltar ao menu principal, onde pode escolher outro modo ou q para sair.
Na primeira execução, o Windows pode bloquear a permissão da câmera; basta clicar em "Permitir".
Limpeza do projeto (script 0)
**Clique duas vezes em **0-清理项目.bat , digite Y para confirmar e a limpeza é feita automaticamente:
Para o daemon do dora
Apaga os 3 ambientes virtuais (
.venv)Apaga os artefatos de compilação do Rust (
Demo\target)Apaga
pycache, os backups.bak, os logs eDemo\out(diretório de logs do dora)Restaura a porta padrão (
--serialport /dev/ttyACM0) e remove vestígios da porta serial desta máquina
Após a limpeza, você pode copiar a pasta
AmazingHand-maininteira para outra pessoa, limpa e sem resíduos. Numa máquina nova, basta executar na ordem 1 → 2 → 3 → 4.
Perguntas frequentes e observações
8.1 O cargo fica preso em Updating 'tuna' index
Causa: a configuração do espelho usou o modo de repositório git (
.../git/crates.io-index.git), que precisa baixar mais de 1GB+ de índice na primeira vezSolução: altere
C:\Users\<usuario>\.cargo\config.tomlpara o índice esparso (sparse) (ver seção 2.2), ou execute novamente1-安装环境.bat
8.2 mediapipe sem o submódulo solutions / instalação corrompida
uv pip uninstall mediapipeuv pip install mediapipe==0.10.14Deve ser executado com o ambiente virtual ativado (no diretório
Demo)O
3-部署代码.batjá faz esta etapa automaticamente como salvaguarda
8.3 Versão do dora incompatível (message v0.8.0 vs v0.7.0)
Sintoma:
version mismatch: message format v0.8.0 is not compatible with expected message format v0.7.0Causa: a versão do dora-cli não corresponde à do dora-node-api. É obrigatório uniformizar em 0.5.0
Cheque:
dora --versiondeve apresentardora-cli 0.5.0edora-message: 0.8.0Correção:
cargo install dora-cli --version 0.5.0 --forceSe houver vários dora no PATH (como a versão antiga em
C:\Users\xxx\.dora\bin), garanta que.cargo\binvenha primeiro, ou apague a versão antiga
8.4 Falha ao carregar o modelo no MuJoCo / mediapipe (caminho com chinês)
Sintoma:
ParseXML: Error opening file '...\scene.xml'ouCan't find file: ....tfliteCausa: o carregador C++ do MuJoCo 3.x / mediapipe, no Windows, não consegue abrir caminhos absolutos que contenham chinês (como
D:\Claude工作区...)Este projeto já inclui correções incorporadas:
AHSimulation\AHSimulation\mj_mink_*.pymuda o diretório de trabalho antes de carregar o modeloHandTracking\mediapipe_patch.pycontorna o problema com o caminho curto 8.3 + caminhos relativos
Não apague estes códigos de correção
8.5 Permissão da câmera
Na primeira execução, escolha "Permitir" na janela que aparece
Configurações → Privacidade → Câmera → Permitir acesso a aplicativos de desktop
8.6 O número da porta muda a cada vez
- Após desconectar e reconectar o USB, o número da COM pode mudar; execute novamente
2-配置串口.bat
8.7 Falta do openCV
python -m pip install opencv-contrib-python numpy mediapipe -i https://mirrors.aliyun.com/pypi/simple/(executar no diretório HandTracking, depois de ativar o ambiente virtual)
Descrição da estrutura do código
Diretório Demo
Correspondência entre os dataflows
Princípio do fluxo de dados
Câmera → HandTracking (MediaPipe reconhece gestos)
↓ coordenadas dos pontos-chave da mão
AHSimulation (simulação MuJoCo + cinemática inversa)
↓ ângulos alvo das juntas
AHControl (porta serial → placa de acionamento dos servos → mão hábil)Localização da configuração da porta
A linha
args:dos trêsdataflow_tracking_real_*.yml:--serialport COMxxO
default_value = "COMxx"deAHControl\src\main.rs(valor padrão do parâmetro de porta serial)AHControl\config\*.toml: modelo do servo, ID, deslocamento (normalmente não precisa de alteração)

