Distribuzione ed esecuzione in un clic su Windows
AmazingHand-main.zip(AmazingHand-main.zip, supera il limite di dimensione per file del sito — richiedilo a support@juxitech.com)
Questo tutorial si basa sulla Demo ufficiale di AmazingHand (mano abile Pollen Robotics); gli script di distribuzione in un clic sono già pronti. È sufficiente eseguirli in ordine numerico. Tutti gli script si trovano nella cartella Demo\Windows一键部署脚本\ e si avviano facendo doppio clic。
Preparazione hardware
I file del modello possono essere consultati o scaricati autonomamente su Onshape (inclusi URDF)。
Installazione dell'ambiente (script 1)
Fare doppio clic su ****1-安装环境.bat; viene eseguito automaticamente:
Verifica degli strumenti di build MSVC (cl.exe)——necessari per la compilazione di Rust. Se assenti, viene richiesta l'installazione di Visual Studio 2022 Build Tools; selezionare "Sviluppo di applicazioni desktop con C++"; al termine dell'installazione riaprire il terminale。
Installazione di Rust (rustup + toolchain stable-msvc)
Configurazione del mirror cargo di Tsinghua (
C:\Users\<nome-utente>\.cargo\config.toml) per accelerare il download dei crateInstallazione di uv (gestore di pacchetti Python)
Installazione di dora-cli 0.5.0 (
cargo install; la prima compilazione richiede circa 10~20 minuti, attendere con pazienza)Installazione del pacchetto pip dora-rs (opzionale, verrà installato nell'ambiente virtuale)
Importante: al termine dello script chiudere e riaprire il terminale per rendere effettive le variabili d'ambiente. L'installazione potrebbe essere lenta a causa della rete; attendere con pazienza e non chiudere a metà processo。
Alternativa con installazione manuale (quando gli script non sono disponibili)
Rust: https://www.rust-lang.org/tools/install
Su Windows usare rustup-init.exe e selezionare la toolchain MSVC predefinita
Variabili d'ambiente: aggiungere
%USERPROFILE%\.cargo\binal PATH
uv: in PowerShell eseguire
irm ``https://astral.sh/uv/install.ps1`` | iex- Variabili d'ambiente: aggiungere
%USERPROFILE%\.local\binal PATH
- Variabili d'ambiente: aggiungere
dora-cli:
cargo install dora-cli --version 0.5.0
Configurazione del mirror cargo di Tsinghua (~/.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 = falseUsare l'indice sparse (come sopra) e non il mirror del repository git——con il metodo git al primo utilizzo occorre scaricare circa 1 GB di indice, con il rischio di bloccarsi su
Updating 'tuna' index。
Metodo di cablaggio
La scheda driver dei servomotori si collega al computer via USB, con alimentatore esterno 5V4A
Sul lato computer individuare il numero di porta: Gestione dispositivi → Porte (COM e LPT), ad es.
COM11
Configurazione della porta seriale (script 2)
**Fare doppio clic su **2-配置串口.bat (la logica effettiva è in 2-配置串口.ps1):
Compare l'avviso "collegare la scheda driver dei servomotori al computer" → premere Invio per avviare il rilevamento
Vengono elencate automaticamente le porte COM rilevate (con il nome del dispositivo)
Con una sola porta premere Invio per confermare; con più porte inserire il numero
Vengono scritti automaticamente
--serialportnei 3 dataflow yml e la porta predefinita inAHControl\src\main.rsIl file originale viene automaticamente salvato come backup
.bak
Se si ricollega l'USB, il numero di porta può cambiare; è necessario rieseguire questo script。
Distribuzione del codice (script 3)
Fare doppio clic su ****3-部署代码.bat; viene eseguito automaticamente:
Avvio del daemon dora (
dora up)Creazione dell'ambiente virtuale Python 3.12 (
uv venv --python 3.12)Attivazione dell'ambiente virtuale
Compilazione del nodo Rust AHControl (
cargo build --release, circa 10 minuti la prima volta)Sincronizzazione delle dipendenze di AHSimulation e HandTracking (
uv sync)Installazione forzata di mediapipe==0.10.14
La distribuzione deve essere eseguita una sola volta. Le esecuzioni successive chiederanno se ricreare l'ambiente virtuale。
Esecuzione del codice (script 4)
Fare doppio clic su ****4-运行代码.bat; compare il menu interattivo:
============================================
请选择运行模式:
============================================
1 - 模拟仿真(摄像头手势追踪)
2 - 真实硬件
q - 退出
============================================
请输入序号 [1/2/q]:Selezionare 1: ambiente di simulazione, i gesti ripresi dalla telecamera azionano due mani simulate
Selezionare 2: si entra nel sottomenu, scegliere mano destra / mano sinistra / due mani
============================================
真实硬件 - 请选择灵巧手:
============================================
1 - 右手
2 - 左手
3 - 左右双手
b - 返回上级菜单
============================================Dopo la selezione vengono eseguiti automaticamente dora build + dora run. Si apre la finestra della telecamera; eseguire i gesti davanti alla telecamera e la mano abile li seguirà in tempo reale. Ctrl+C per arrestare; al termine del flusso di dati premere Invio per tornare al menu principale, dove è possibile scegliere un'altra modalità oppure uscire con q。
Alla prima esecuzione Windows potrebbe bloccare l'accesso alla telecamera; è sufficiente cliccare su "Consenti"。
Pulizia del progetto (script 0)
Fare doppio clic su ****0-清理项目.bat; dopo aver confermato con Y, viene eseguita automaticamente la pulizia:
Arresto del daemon dora
Eliminazione dei 3 ambienti virtuali (
.venv)Eliminazione degli artefatti di compilazione Rust (
Demo\target)Eliminazione di
pycache, dei backup.bak, dei log e diDemo\out(directory dei log di dora)Ripristino della porta predefinita (
--serialport /dev/ttyACM0), per rimuovere i residui della porta seriale locale
Dopo la pulizia è possibile copiare l'intera cartella
AmazingHand-mainad altri, pulita e senza residui. Su una nuova macchina è sufficiente eseguire nell'ordine 1 → 2 → 3 → 4。
Domande frequenti e avvertenze
8.1 cargo si blocca su Updating 'tuna' index
Causa: la configurazione del mirror usa il metodo con repository git (
.../git/crates.io-index.git); al primo utilizzo occorre scaricare oltre 1 GB di indiceSoluzione: modificare
C:\Users\<nome-utente>\.cargo\config.tomlcon l'indice sparse (vedere la sezione 2.2), oppure rieseguire direttamente1-安装环境.bat
8.2 mediapipe: sottomodulo solutions mancante / installazione danneggiata
uv pip uninstall mediapipeuv pip install mediapipe==0.10.14Deve essere eseguito con l'ambiente virtuale attivo (nella directory
Demo)3-部署代码.batesegue già automaticamente questo passaggio come soluzione di riserva
8.3 Versione di dora incompatibile (message v0.8.0 vs v0.7.0)
Sintomo:
version mismatch: message format v0.8.0 is not compatible with expected message format v0.7.0Causa: la versione di dora-cli non corrisponde a dora-node-api. È necessario uniformare alla 0.5.0
Verifica:
dora --versiondovrebbe restituiredora-cli 0.5.0,dora-message: 0.8.0Correzione:
cargo install dora-cli --version 0.5.0 --forceSe nel PATH sono presenti più versioni di dora (ad es. una versione precedente in
C:\Users\xxx\.dora\bin), assicurarsi che.cargo\binvenga prima, oppure eliminare la versione precedente
8.4 Caricamento del modello MuJoCo / mediapipe non riuscito (percorso con caratteri cinesi)
Sintomo:
ParseXML: Error opening file '...\scene.xml'oppureCan't find file: ....tfliteCausa: il loader C++ di MuJoCo 3.x / mediapipe su Windows non riesce ad aprire percorsi assoluti contenenti caratteri cinesi (ad es.
D:\Claude工作区...)Questo progetto include già correzioni integrate:
AHSimulation\AHSimulation\mj_mink_*.pycambia la directory di lavoro prima di caricare il modelloHandTracking\mediapipe_patch.pyaggira il problema usando il percorso breve 8.3 + un percorso relativo
Non eliminare questo codice di correzione
8.5 Permessi della telecamera
Alla prima esecuzione, nella finestra che compare scegliere "Consenti"
Impostazioni → Privacy → Fotocamera → Consenti l'accesso alle app desktop
8.6 Il numero di porta cambia ogni volta
- Dopo aver ricollegato l'USB il numero COM può cambiare; rieseguire
2-配置串口.bat
8.7 openCV mancante
python -m pip install opencv-contrib-python numpy mediapipe -i https://mirrors.aliyun.com/pypi/simple/(eseguire nella directory HandTracking, dopo aver attivato l'ambiente virtuale)
Descrizione della struttura del codice
Directory Demo
Corrispondenza tra i vari dataflow
Principio del flusso di dati
Telecamera → HandTracking (riconoscimento dei gesti con MediaPipe)
↓ Coordinate dei keypoint della mano
AHSimulation (simulazione MuJoCo + cinematica inversa)
↓ Angoli target delle articolazioni
AHControl (porta seriale → scheda driver per servomotori → mano robotica)Posizione della configurazione delle porte
Riga
args:dei tredataflow_tracking_real_*.yml:--serialport COMxxdefault_value = "COMxx"inAHControl\src\main.rs(valore predefinito del parametro della porta seriale)AHControl\config\*.toml: modello dei servomotori, ID, scostamenti (di norma non è necessario modificarli)

