Tutorial de ejecución del ejemplo oficial de la mano robótica
1. Descarga del código
Se recomienda descargar el paquete comprimido del código de este tutorial para la demostración del ejemplo Demo, o clonar el repositorio de código abierto oficial https://github.com/pollen-robotics/AmazingHand.git . Tenga en cuenta que el código fuente abierto oficial puede contener errores u omisiones.
Tutorial de ejecución del ejemplo oficial de AmazingHand
Paquete comprimido de código para Windows
[AmazingHand-main.zip]
Paquete comprimido de código para Linux
[AmazingHand-main.zip]
git clone https://github.com/pollen-robotics/AmazingHand.git2. Instalación del entorno
Instale Rust, uv y dora-rs según el proceso de autoinstalación del sistema
1. Instalar Rust: https://www.rust-lang.org/tools/install
Referencia para la configuración de las variables de entorno de Rust en Windows (¡importante!) https://zhuanlan.zhihu.com/p/1958936613276087180
Configuración de las variables de entorno en Linux:


La primera instalación puede requerir el Instalador de Visual Studio
Configurar la fuente de espejo de Cargo
Cree el archivo de configuración config.toml en la carpeta .cargo y configure el espejo crates.io-index de Tsinghua para que Cargo use la fuente de espejo de la Universidad de Tsinghua para descargar los crates.
[source.crates-io]
replace-with = 'tuna'
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"2. Instalar uv: https://docs.astral.sh/uv/getting-started/installation/

Abra la terminal de PowerShell en Windows, copie e introduzca este comando para instalar
Configuración de las variables de entorno en Linux:

3. Instalar dora-rs: para la descarga e instalación, consulte https://dora-rs.ai/docs/guides/Installation/installing
Configuración de las variables de entorno en Linux:

3. Método de conexión
La fuente de alimentación requiere al menos 5V3A, se conecta externamente a una placa de controlador de servos y se conecta a la computadora por USB

4. Demostración del ejemplo
1. Verificar el número de puerto de la placa del controlador de servos
- En el sistema Windows suele ser COM11; el número de puerto de la placa del controlador de servos se puede encontrar en el Administrador de dispositivos o en el programa de host de servos Feite
- En los sistemas Ubuntu y Linux suele ser /dev/ttyACM0
Verifique el número de puerto de la placa del controlador de servos desde la línea de comandos:
ls /dev/ttyUSB* /dev/ttyACM*sudo chmod 666 /dev/ttyACM*sudo usermod -aG dialout $USERSi el comando «ls /dev/ttyUSB* /dev/ttyACM*» no encuentra el directorio en la máquina virtual, compruebe en la esquina inferior derecha de la máquina virtual si la mano robótica está conectada a la computadora. Si lo está, desconéctela y conéctela a la máquina virtual.

2. Modificar el número de puerto en el código
① Localice el archivo de código main.rs en el directorio AmazingHand-main\Demo\AHControl\src, ábralo con un editor de texto y cámbielo al número de puerto encontrado en su propio host (COM* en Windows y, en general, /dev/ttyACM* en los sistemas Ubuntu y Linux)

② Localice el archivo de instancia correspondiente
Mano diestra Encuentre dataflow_tracking_real_right.yml en el directorio AmazingHand-main\Demo
Mano zurda Encuentre dataflow_tracking_real_left.yml en el directorio AmazingHand-main\Demo
Dos manos Encuentre dataflow_tracking_real_2hands.yml en el directorio AmazingHand-main\Demo
Ábralo en formato de texto y cámbielo al número de puerto encontrado en su propio host (COM* en Windows y, en general, /dev/ttyACM* en los sistemas Ubuntu y Linux)



3. Despliegue del código
- Abra la carpeta Demo
En el sistema Windows, en el directorio, escriba Powershell y pulse Enter para abrirlo; luego inicie el proceso demonio (cada vez):
En los sistemas Linux, ábralo directamente desde la consola e inicie el proceso demonio (cada vez):
dora up- Luego ejecute desde este directorio en la consola (¡al configurar el entorno, puede ejecutarlo una vez! ¡Volver a ejecutarlo sobrescribirá el entorno virtual!) Cree un entorno virtual:
uv venv --python 3.12- Active el entorno virtual (cada vez) introduciendo y ejecutando lo siguiente según el sistema:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.venv\Scripts\activatesource .venv/bin/activate
¡Asegúrese de que la consola haya activado el entorno virtual!
- Sincronice las dependencias y entre en la carpeta AHControl
cd AHControlcargo build --release- Luego introduzca
cd..y pulse Enter para volver al directorio Demo. Entre en la carpeta AHSimulation
cd AHSimulationuv sync- Luego introduzca
cd..y pulse Enter para volver al directorio Demo. Entre en la carpeta HandTracking
cd HandTrackinguv sync4. Resultados de ejecución
- ¡Abra la carpeta Demo! Escriba Powershell en el directorio y pulse Enter para abrirlo; luego inicie el proceso demonio (cada vez):
dora up- Active el entorno virtual (cada vez). Introduzca y ejecute según el sistema:
Comando para activar el entorno virtual en la plataforma Windows:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process.venv\Scripts\activateComando para activar el entorno virtual en la plataforma Linux:
source .venv/bin/activateEntorno de simulación
- Ejecute la demo de seguimiento de la mano por webcam solo en el entorno de simulación:
dora build dataflow_tracking_simu.yml --uv #(Execute only once)dora run dataflow_tracking_simu.yml --uv

Operación con hardware real (seguimiento de la mano)
Ejecute la demo de seguimiento de la mano por webcam con hardware real:
Mano diestra
Plaindora build dataflow_tracking_real_right.yml --uv #(Execute only once)Plaindora run dataflow_tracking_real_right.yml --uvMano zurda
Plaindora build dataflow_tracking_real_left.yml --uv #(Execute only once)Plaindora run dataflow_tracking_real_left.yml --uvDos manos (tenga en cuenta que ambas están conectadas a una placa de controlador de servos)

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


Ejemplo simple para controlar el ángulo del dedo simulado
Ejecute un ejemplo simple para controlar el ángulo del dedo en la simulación:
Plaindora build dataflow_angle_simu.yml --uv #(Execute only once)Plaindora run dataflow_angle_simu.yml --uv


Descripción
AHControl incluye un nodo dora-rs para controlar los motores, así como utilidades para configurarlos.
AHSimulation incluye un nodo dora-rs que simula el movimiento de la mano y obtiene la cinemática inversa.
HandTracking incluye un nodo dora-rs que rastrea las manos desde una webcam y las utiliza como objetivo para controlar la AH.
Precauciones
1. Problema de versión de mediapipe
En pyproject.toml está configurado mediapipe>=0.10.14, pero el paquete de mediapipe instalado no incluye el submódulo solutions. Lo más probable es que la versión de mediapipe sea incompatible con Python 3.12 (las versiones más recientes de mediapipe tienen problemas con el soporte de Python 3.12), o que los archivos del paquete se hayan dañado durante la instalación.
uv pip uninstall mediapipeuv pip install mediapipe==0.10.142. Incompatibilidad de versión de Dora, formato de mensaje (v0.7.0 vs v0.8.0)

Respuesta: ① Primero, en el directorio .cargo/registry/src/github.xxxxxxxx/ del directorio de usuario de la unidad C, elimine únicamente los paquetes de dependencias correspondientes.
dora-message-0.7.0 (¡Clave! Es la carpeta del formato de mensaje antiguo y debe eliminarse)
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 (biblioteca auxiliar de la que depende Dora, debe eliminarse junto con la versión antigua)
② Abra la carpeta Demo/AHControl y modifique dora-node-api="0.5.0" y dora-message="0.8.0" en Cargo.toml
③ En la consola, navegue al directorio AHControl y vuelva a ejecutar cargo build --release
④ Vuelva a seguir la «operación con hardware real» para reconstruir
Modifique la versión correspondiente según el error real. Por ejemplo, si dora-message requiere la versión 0.6.0, cámbielo a dora-node-api="0.4.0" dora-message="0.6.0".


3. Falta la biblioteca de dependencias openCV

Introduzca el siguiente comando en el directorio HandTracking
python -m pip install opencv-contrib-python numpy mediapipe -i https://mirrors.aliyun.com/pypi/simple/4. Habilitar el permiso de cámara (computadora)


5. La máquina virtual 22.04 usa la cámara
Consulte https://blog.csdn.net/qq_19731521/article/details/124954288
6. Instalación de la cámara de escritorio
Pasos de instalación del soporte del kit de cámara ambiental
- Primero, fije el soporte de ángulo de ajuste fino

- Vista lateral del kit de cámara ambiental

La máquina virtual 22.04 ejecuta directamente el seguimiento de la mano
Descargue estos cuatro archivos, colóquelos en un mismo directorio con nombre en inglés y, a continuación, use el software de máquina virtual para abrir directamente el archivo .ovf y entrar en el sistema
Contraseña ubuntu
[ubuntu22.04_amazinghand.ovf]
[ubuntu22.04_amazinghand-disk1.vmdk]
[ubuntu22.04_amazinghand.mf]
[ubuntu22.04_amazinghand-file1.iso]
1. Abra la consola en el directorio Demo:
dora upY active el entorno virtual:
source .venv/bin/activate2. Permiso de cámara en la máquina virtual
Referencia para que la máquina virtual 22.04 use la cámara https://blog.csdn.net/qq_19731521/article/details/124954288
3. Verifique el puerto de la placa del controlador de servos desde la línea de comandos:
ls /dev/ttyUSB* /dev/ttyACM*sudo chmod 666 /dev/ttyACM*sudo usermod -aG dialout $USER4. Modificar el número de puerto en el archivo de código
① Localice el archivo de código main.rs en el directorio AmazingHand-main\Demo\AHControl\src, ábralo en modo texto y cámbielo al número de puerto encontrado en su propio host (COM* en Windows y, en general, /dev/ttyACM* en los sistemas Ubuntu y Linux)

② Encuentre el archivo de instancia correspondiente
Mano diestra Encuentre dataflow_tracking_real_right.yml en el directorio AmazingHand-main\Demo
Mano zurda Encuentre dataflow_tracking_real_left.yml en el directorio AmazingHand-main\Demo
Dos manos Encuentre el archivo dataflow_tracking_real_2hands.yml en el directorio AmazingHand-main\Demo
Ábralo en formato de texto y cámbielo al número de puerto encontrado en su propio host (COM* en Windows y, en general, /dev/ttyACM* en los sistemas Ubuntu y Linux)



5. Ejecute el seguimiento de la mano derecha
dora run dataflow_tracking_real_right.yml --uv
