AmazingHand灵巧手 - 【官方示例】调试教程
本项目基于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端环境变量设置:![[图片]](https://i-blog.csdnimg.cn/direct/eca283623ddf407eb63880ea4aa2b228.png)
![[图片]](https://i-blog.csdnimg.cn/direct/bf63b4772f0a4654a41c30980d0b6aef.png)
首次安装可能需要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"
安装 uv:https://docs.astral.sh/uv/getting-started/installation/![[图片]](https://i-blog.csdnimg.cn/direct/ff501a2b3c63446e900a40fd951a8736.png)
windows端打开Powershell终端,复制后输入此命令进行安装
Linux端环境变量设置:![[图片]](https://i-blog.csdnimg.cn/direct/bfe1e89b0ad64461a7b348d00497614e.png)
安装 dora-rs:请参考https://dora-rs.ai/docs/guides/Installation/installing
linux端环境变量设置:![**[图片]**](https://i-blog.csdnimg.cn/direct/b720976e94b84bc1bcbc6c12d3b2511f.png)
接线方式
电源要求至少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*)![[图片]](https://i-blog.csdnimg.cn/direct/a29d2cb66aff40fb8687a12fa596095b.png)
②找到对应的实例文件
右灵巧手 找到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
- 激活虚拟环境(每次都要)请根据 系统 输入并运行:
# Windows端
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.venv\Scripts\activate
# Linux端
source .venv/bin/activate
![[图片]](https://i-blog.csdnimg.cn/direct/2d55493d11be4819b375ce1d0f41be5c.png)
确保控制台已经激活虚拟环境!
- 执行依赖同步,进入到
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
![[图片]](https://i-blog.csdnimg.cn/direct/434fe33a2dde4087a0f907a886a339a2.png)
![[图片]](https://i-blog.csdnimg.cn/direct/a695d38ddf4e4cc28e9a0e070bbdabf9.png)
真实硬件运行(手部追踪)
- 使用真实硬件运行网络摄像头手部追踪演示:
右灵巧手
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
双灵巧手(注意都连接到一个舵机驱动板上)![[图片]](https://i-blog.csdnimg.cn/direct/1241fb57821c490da12c241476fbcba3.png)
dora build dataflow_tracking_real_2hands.yml --uv #(只需执行一次)
dora run dataflow_tracking_real_2hands.yml --uv
![[图片]](https://i-blog.csdnimg.cn/direct/2083b60dc7654bad931e4679c6c33c07.png)
![[图片]](https://i-blog.csdnimg.cn/direct/a71f15852cf540888d8e363432412c1a.png)
简单示例控制仿真手指角度
- 运行一个简单的示例来控制仿真中的手指角度:
dora build dataflow_angle_simu.yml --uv #(只需执行一次)
dora run dataflow_angle_simu.yml --uv
![[图片]](https://i-blog.csdnimg.cn/direct/77ac83e641a84840bca090190898ef0c.png)
![[图片]](https://i-blog.csdnimg.cn/direct/a5914793d379483b8fadd70bd7b53b8d.png)
描述说明
AHControl包含一个dora-rs节点来控制电机,以及一些用于配置电机的实用工具。AHSimulation包含一个dora-rs节点,用于模拟手部运动并获得逆运动学。HandTracking包含一个dora-rs节点,用于从网络摄像头跟踪手部并将其用作控制 AH! 的目标。
注意事项
1、mediapipe版本问题pyproject.toml 中配置 mediapipe>=0.10.14,但安装后的 mediapipe 包缺少 solutions 子模块,大概率是mediapipe 版本与 Python 3.12 不兼容(高版本 mediapipe 对 Python 3.12 的支持存在问题),或安装过程中包文件损坏。
uv pip uninstall mediapipe
uv pip install mediapipe==0.10.14
2、Dora 版本不兼容,消息格式(v0.7.0 vs v0.8.0)![[图片]](https://i-blog.csdnimg.cn/direct/03684258e004485baea268145a57a007.png)
答:①先在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.16(Dora 依赖的辅助库,随旧版一起删)
②打开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"
![[图片]](https://i-blog.csdnimg.cn/direct/1588b0580ce64762a8d6648268db6b4f.png)
![[图片]](https://i-blog.csdnimg.cn/direct/9052bde3692b4958921addf58533f333.png)
3、没有openCV依赖库![[图片]](https://i-blog.csdnimg.cn/direct/2e933f0d8ad84622863ba2bfe77c1832.png)
在HandTracking目录下输入以下命令
python -m pip install opencv-contrib-python numpy mediapipe -i https://mirrors.aliyun.com/pypi/simple/
4、相机权限开启(电脑端)![[图片]](https://i-blog.csdnimg.cn/direct/313f48d3ef6048d8aae9a516d3dd1eb3.png)
![[图片]](https://i-blog.csdnimg.cn/direct/613907ce3e0549dc8d6999076930d17b.png)
![[图片]](https://i-blog.csdnimg.cn/direct/4428e35e72a64af1a3781d51d1bb6441.png)
5、虚拟机22.04调用摄像头
参考https://blog.csdn.net/qq_19731521/article/details/124954288
更多推荐
![[图片]](https://i-blog.csdnimg.cn/direct/ebbf4dfe3b38446680982b4212977668.png)



所有评论(0)