Tutorial di esecuzione dell'esempio ufficiale della mano robotica
1. Download del codice
Si consiglia di scaricare l'archivio compresso del codice allegato a questo tutorial per la dimostrazione della demo, oppure di clonare il repository del codice open source ufficiale https://github.com/pollen-robotics/AmazingHand.git . Nota che il codice open source ufficiale può contenere errori o omissioni.
Tutorial di esecuzione dell'esempio ufficiale AmazingHand
Archivio compresso del codice per Windows
[AmazingHand-main.zip]
Archivio compresso del codice per Linux
[AmazingHand-main.zip]
git clone https://github.com/pollen-robotics/AmazingHand.git2. Installazione dell'ambiente
Installa Rust, uv e dora-rs secondo la procedura di autoinstallazione del sistema
1. Installare Rust: https://www.rust-lang.org/tools/install
Riferimento per la configurazione delle variabili d'ambiente di Rust su Windows (importante!) https://zhuanlan.zhihu.com/p/1958936613276087180
Impostazioni delle variabili d'ambiente per Linux:


Per la prima installazione potrebbe essere richiesto l'installer di Visual Studio
Configurare la sorgente mirror di Cargo
Nella cartella .cargo, crea il file di configurazione config.toml e configura il mirror Tsinghua crates.io-index, così Cargo userà la sorgente mirror dell'Università Tsinghua per scaricare i crate.
[source.crates-io]
replace-with = 'tuna'
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"2. Installare uv: https://docs.astral.sh/uv/getting-started/installation/

Sul lato Windows, apri il terminale PowerShell, copia e poi inserisci questo comando per installare
Impostazioni delle variabili d'ambiente per Linux:

3. Installare dora-rs: per il download e l'installazione fai riferimento a https://dora-rs.ai/docs/guides/Installation/installing
Impostazioni delle variabili d'ambiente per Linux:

3. Cablaggio
L'alimentazione richiede almeno 5V3A, è collegata esternamente a una scheda driver servo e si connette al computer via USB

4. Demo d'esempio
1. Controllare il numero di porta della scheda driver servo
- Su Windows di solito è COM11; il numero di porta della scheda driver servo si trova tramite il Gestione dispositivi o il software host dei servo Feetech
- I sistemi Ubuntu e Linux di solito usano /dev/ttyACM0
Controlla il numero di porta della scheda driver servo dalla riga di comando:
ls /dev/ttyUSB* /dev/ttyACM*sudo chmod 666 /dev/ttyACM*sudo usermod -aG dialout $USERSe il comando "ls /dev/ttyUSB* /dev/ttyACM*" non trova la directory nella macchina virtuale, controlla se la mano robotica è collegata al computer nell'angolo in basso a destra della macchina virtuale. In tal caso, scegli di scollegarla e collegala alla macchina virtuale.

2. Modificare il numero di porta nel codice
① Individua il file di codice main.rs nella directory AmazingHand-main\Demo\AHControl\src, aprilo con un editor di testo e modificalo con il numero di porta trovato sul tuo host (COM* per Windows, di solito /dev/ttyACM* per i sistemi Ubuntu e Linux)

② Individua il file dell'esempio corrispondente
Mano destra trova dataflow_tracking_real_right.yml nella directory AmazingHand-main\Demo
Mano sinistra trova dataflow_tracking_real_left.yml nella directory AmazingHand-main\Demo
Doppia mano robotica trova dataflow_tracking_real_2hands.yml nella directory AmazingHand-main\Demo
Aprilo in formato testo e modificalo con il numero di porta trovato sul tuo host (COM* per Windows, di solito /dev/ttyACM* per i sistemi Ubuntu e Linux)



3. Deploy del codice
- Apri la cartella Demo
Sul sistema Windows, nella directory digita Powershell e premi Invio per aprirlo, poi avvia il processo demone (ogni volta):
Per i sistemi Linux, aprilo direttamente dalla console e avvia il processo demone (ogni volta):
dora up- Poi esegui da questa directory nella console (durante la configurazione dell'ambiente puoi eseguirlo una sola volta!! Rieseguirlo sovrascriverà l'ambiente virtuale!!) Crea un ambiente virtuale:
uv venv --python 3.12- Attiva l'ambiente virtuale (ogni volta) inserendo ed eseguendo quanto segue in base al sistema:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.venv\Scripts\activatesource .venv/bin/activate
Assicurati che la console abbia attivato l'ambiente virtuale!
- Esegui la sincronizzazione delle dipendenze ed entra nella cartella AHControl
cd AHControlcargo build --release- Poi inserisci
cd..e premi Invio per tornare alla directory Demo! Entra nella cartella AHSimulation
cd AHSimulationuv sync- Poi inserisci
cd..e premi Invio per tornare alla directory Demo! Entra nella cartella HandTracking
cd HandTrackinguv sync4. Risultato
- Apri la cartella Demo! Nella directory digita Powershell e premi Invio per aprirlo, poi avvia il processo demone (ogni volta):
dora up- Attiva l'ambiente virtuale (ogni volta). Inserisci ed esegui in base al sistema:
Comando per attivare l'ambiente virtuale sulla piattaforma Windows:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process.venv\Scripts\activateComando per attivare l'ambiente virtuale sulla piattaforma Linux:
source .venv/bin/activateAmbiente di simulazione
- Esegui la demo di tracking della mano via webcam solo nell'ambiente di simulazione:
dora build dataflow_tracking_simu.yml --uv #(Execute only once)dora run dataflow_tracking_simu.yml --uv

Esecuzione su hardware reale (tracking della mano)
Esegui la demo di tracking della mano via webcam usando l'hardware reale:
Mano destra
Plaindora build dataflow_tracking_real_right.yml --uv #(Execute only once)Plaindora run dataflow_tracking_real_right.yml --uvMano sinistra
Plaindora build dataflow_tracking_real_left.yml --uv #(Execute only once)Plaindora run dataflow_tracking_real_left.yml --uvDoppia mano robotica (nota che entrambe sono collegate a una scheda driver servo)

```Plain Text
dora build dataflow_tracking_real_2hands.yml --uv #(Execute only once)
```
```Plain Text
dora run dataflow_tracking_real_2hands.yml --uv
```


Esempio semplice per controllare l'angolo delle dita simulate
Esegui un semplice esempio per controllare l'angolo delle dita in simulazione:
Plaindora build dataflow_angle_simu.yml --uv #(Execute only once)Plaindora run dataflow_angle_simu.yml --uv


Descrizione
AHControl include un nodo dora-rs per controllare il motore, oltre ad alcune utility per configurare il motore.
AHSimulation include un nodo dora-rs per simulare il movimento della mano e ottenere la cinematica inversa.
HandTracking include un nodo dora-rs che traccia le mani da una webcam e le usa come target per controllare AH!
Precauzioni
1. Problema di versione di mediapipe
In pyproject.toml è configurato mediapipe>=0.10.14, ma il pacchetto mediapipe installato non include il sottomodulo solutions. Molto probabilmente la versione di mediapipe è incompatibile con Python 3.12 (le versioni più recenti di mediapipe hanno problemi con il supporto di Python 3.12), oppure i file del pacchetto sono stati danneggiati durante l'installazione.
uv pip uninstall mediapipeuv pip install mediapipe==0.10.142. Incompatibilità di versione di Dora, formato dei messaggi (v0.7.0 vs v0.8.0)

Risposta: ① Per prima cosa, sotto la directory .cargo/registry/src/github.xxxxxxxx/ nella directory utente dell'unità C, elimina solo il pacchetto di dipendenza corrispondente!
dora-message-0.7.0 (fondamentale! Questa è la cartella del vecchio formato dei messaggi e deve essere eliminata)
dora-core-0.4.1
dora-node-api-0.4.1
dora-arrow-convert-0.4.1
dora-metrics-0.4.1
dora-tracing-0.4.1
const-random-macro-0.1.16 (libreria ausiliaria dipendente da Dora, da eliminare insieme alla vecchia versione)
② Apri la cartella Demo/AHControl e modifica in Cargo.toml dora-node-api="0.5.0" e dora-message="0.8.0"
③ Nella console, vai alla directory AHControl ed esegui di nuovo cargo build --release
④ Rifai quanto descritto nella sezione «esecuzione su hardware reale» per ricompilare
Modifica la versione corrispondente in base all'errore effettivamente segnalato. Per esempio, se dora-message richiede la versione 0.6.0, cambialo in dora-node-api="0.4.0" dora-message="0.6.0".


3. Libreria openCV mancante

Nella directory HandTracking inserisci il seguente comando
python -m pip install opencv-contrib-python numpy mediapipe -i https://mirrors.aliyun.com/pypi/simple/4. Permesso fotocamera abilitato (computer)


5. La macchina virtuale 22.04 usa la fotocamera
Riferimento: https://blog.csdn.net/qq_19731521/article/details/124954288
6. Installazione della fotocamera desktop
Passaggi di installazione della staffa del kit fotocamera ambientale
- Per prima cosa, fissa la staffa dell'angolo di regolazione fine

- Kit fotocamera ambientale vista laterale

La macchina virtuale 22.04 esegue direttamente il tracking della mano
Scarica questi quattro file e mettili nella stessa directory con nome in inglese, poi usa il software della macchina virtuale per aprire direttamente il file .ovf e accedere al sistema
Password ubuntu
[ubuntu22.04_amazinghand.ovf]
[ubuntu22.04_amazinghand-disk1.vmdk]
[ubuntu22.04_amazinghand.mf]
[ubuntu22.04_amazinghand-file1.iso]
1. Apri la console nella directory Demo:
dora upE attiva l'ambiente virtuale:
source .venv/bin/activate2. Permesso fotocamera nella macchina virtuale
Riferimento per far usare la fotocamera alla VM 22.04: https://blog.csdn.net/qq_19731521/article/details/124954288
3. Controlla la porta della scheda driver servo dalla riga di comando:
ls /dev/ttyUSB* /dev/ttyACM*sudo chmod 666 /dev/ttyACM*sudo usermod -aG dialout $USER4. Modifica il numero di porta nel file di codice
① Individua il file di codice main.rs nella directory AmazingHand-main\Demo\AHControl\src, aprilo in modalità testo e modificalo con il numero di porta trovato sul tuo host (COM* per Windows, di solito /dev/ttyACM* per i sistemi Ubuntu e Linux)

② Individua il file dell'esempio corrispondente
Mano destra trova dataflow_tracking_real_right.yml nella directory AmazingHand-main\Demo
Mano sinistra trova dataflow_tracking_real_left.yml nella directory AmazingHand-main\Demo
Doppia mano robotica trova dataflow_tracking_real_2hands.yml nella directory AmazingHand-main\Demo
Aprilo in formato testo e modificalo con il numero di porta trovato sul tuo host (COM* per Windows, di solito /dev/ttyACM* per i sistemi Ubuntu e Linux)



5. Avvia il tracking della mano destra
dora run dataflow_tracking_real_right.yml --uv
