本项目基于AmazingHand官方初始项目. https://github.com/pollen-robotics/AmazingHand/tree/Amazing-Hand-Enhanced

代码下载

克隆官方开源代码仓库https://github.com/pollen-robotics/AmazingHand.git,官方开源代码或有错漏请务必注意。

git clone https://github.com/pollen-robotics/AmazingHand.git

环境安装

根据系统自行安装Rust、uv、dora-rs

安装 Rust:https://www.rust-lang.org/tools/install

windows端 Rust环境变量设置(重点!) 参考https://zhuanlan.zhihu.com/p/1958936613276087180

Linux端环境变量设置:
[图片]
[图片]

首次安装可能需要Visual Studio Installer

配置 Cargo 镜像源
.cargo 文件夹中创建 config.toml 配置文件, 配置清华 crates.io-index 镜像,这样Cargo 将会使用清华大学的镜像源来下载 crate。

[source.crates-io]
replace-with = 'tuna'

[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

安装 uvhttps://docs.astral.sh/uv/getting-started/installation/
[图片]

windows端打开Powershell终端,复制后输入此命令进行安装
Linux端环境变量设置:
[图片]

安装 dora-rs:请参考https://dora-rs.ai/docs/guides/Installation/installing
linux端环境变量设置:
**[图片]**

接线方式

电源要求至少5V3A,外接 舵机驱动板,通过USB连接到电脑端
在这里插入图片描述

示例演示

查看舵机驱动板端口号

  • windows系统一般为COM11,可通过 设备管理器 或者 飞特舵机上位机 找到 舵机驱动板 的端口号
    在这里插入图片描述

  • Ubuntu、Linux系统一般为/dev/ttyACM0
    通过命令行查看舵机驱动板的端口:

ls /dev/ttyUSB* /dev/ttyACM*
sudo chmod 666 /dev/ttyACM*
sudo usermod -aG dialout $USER

若是在虚拟机里 ls /dev/ttyUSB* /dev/ttyACM*
找不到目录,请检查虚拟机右下角是否将灵巧手连接到电脑,若是,请选择断开,并连接到虚拟机里
[图片]

修改代码中的端口号
①找到AmazingHand-main\Demo\AHControl\src目录下的main.rs代码文件,文本打开,修改为自身主机查找到的端口号(windows为COM*,ubuntu、linux系统一般为/dev/ttyACM*)
[图片]

②找到对应的实例文件
右灵巧手 找到AmazingHand-main\Demo目录下的 dataflow_tracking_real_right.yml
在这里插入图片描述

左灵巧手 找到AmazingHand-main\Demo目录下的 dataflow_tracking_real_left.yml
在这里插入图片描述

双灵巧手 找到AmazingHand-main\Demo目录下的 dataflow_tracking_real_2hands.yml
在这里插入图片描述

文本格式打开,修改为自身主机查找到的端口号(windows为COM*,ubuntu、linux系统一般为/dev/ttyACM*)

代码部署

  • 打开Demo文件夹
    Windows系统 在目录中输入Powershell 回车打开,启动守护进程(每次都要):
    Linux系统 直接使用控制台打开,启动守护进程(每次都要):
dora up
  • 然后在控制台中从该目录运行(搭建环境时曾经运行过一次即可!!再此运行会覆盖掉虚拟环境!!)创建虚拟环境:
uv venv --python 3.12
  • 激活虚拟环境(每次都要)请根据 系统 输入并运行:
# WindowsSet-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

.venv\Scripts\activate
# Linux端
source .venv/bin/activate

[图片]

确保控制台已经激活虚拟环境!

  • 执行依赖同步,进入到AHControl文件夹
cd AHControl
cargo build --release
  • 然后 输入cd ..并回车 返回Demo目录下!进入到AHSimulation文件夹
# 同步 uv 环境中的依赖
cd AHSimulation
uv sync
  • 然后输入cd ..并回车 返回Demo目录下!进入到HandTracking文件夹
cd HandTracking
uv sync

运行结果

  • 打开Demo文件夹!在目录中输入Powershell 回车打开,启动守护进程(每次都要):
dora up
  • 激活虚拟环境(每次都要)请根据 系统 输入并运行:

Windows端激活虚拟环境的命令:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.venv\Scripts\activate

Linux端激活虚拟环境的命令:

source .venv/bin/activate

模拟环境

  • 仅在模拟环境下运行网络摄像头手部追踪演示:
dora build dataflow_tracking_simu.yml --uv   #(只需执行一次)
dora run dataflow_tracking_simu.yml --uv

[图片]

[图片]

真实硬件运行(手部追踪)

  • 使用真实硬件运行网络摄像头手部追踪演示:

右灵巧手

dora build dataflow_tracking_real_right.yml --uv   #(只需执行一次)
dora run dataflow_tracking_real_right.yml --uv

左灵巧手

dora build dataflow_tracking_real_left.yml --uv   #(只需执行一次)
dora run dataflow_tracking_real_left.yml --uv

双灵巧手(注意都连接到一个舵机驱动板上)
[图片]

dora build dataflow_tracking_real_2hands.yml --uv   #(只需执行一次)
dora run dataflow_tracking_real_2hands.yml --uv

[图片]

[图片]

简单示例控制仿真手指角度

  • 运行一个简单的示例来控制仿真中的手指角度:
dora build dataflow_angle_simu.yml --uv   #(只需执行一次)
dora run dataflow_angle_simu.yml --uv

[图片]

[图片]

描述说明

  • AHControl包含一个 dora-rs 节点来控制电机,以及一些用于配置电机的实用工具。
  • AHSimulation包含一个 dora-rs 节点,用于模拟手部运动并获得逆运动学。
  • HandTracking包含一个 dora-rs 节点,用于从网络摄像头跟踪手部并将其用作控制 AH! 的目标。

注意事项

1、mediapipe版本问题
pyproject.toml 中配置 mediapipe>=0.10.14,但安装后的 mediapipe 包缺少 solutions 子模块,大概率是mediapipe 版本与 Python 3.12 不兼容(高版本 mediapipePython 3.12 的支持存在问题),或安装过程中包文件损坏。

uv pip uninstall mediapipe
uv pip install mediapipe==0.10.14

2、Dora 版本不兼容,消息格式(v0.7.0 vs v0.8.0)
[图片]

答:①先在C盘用户目录下的.cargo/registry/src/github.xxxxxxxx/ 下只删除对应的依赖包!

dora-message-0.7.0(核心!这是旧版消息格式文件夹,必须删)
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.16Dora 依赖的辅助库,随旧版一起删)

②打开Demo/AHControl文件夹修改Cargo.toml里的dora-node-api="0.5.0" dora-message="0.8.0"
③控制台进入到AHControl目录下重新运行cargo build --release
④在重新跟着“真实硬件运行”重新进行build

根据实际报错情况修改对应的版本,例如dora-message需要0.6.0的,修改成dora-node-api="0.4.0", dora-message="0.6.0"

[图片]

[图片]

3、没有openCV依赖库
[图片]

HandTracking目录下输入以下命令

python -m pip install opencv-contrib-python numpy mediapipe -i https://mirrors.aliyun.com/pypi/simple/

4、相机权限开启(电脑端)
[图片]

[图片]

[图片]

5、虚拟机22.04调用摄像头
参考https://blog.csdn.net/qq_19731521/article/details/124954288

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐