MIDAS Hand开源四指灵巧手入门教程-1.环境搭建/通信检查/首次归零与基础动作

1 准备设备和文件

需要:已经完成装配的 MIDAS Hand,Ubuntu 桌面环境。

2 安装源码和 Python 环境

sudo apt update

sudo apt install python3-venv python3-pip git unzip fonts-dejavu-core

midas-2.png

mkdir ~/midas_ws

cd ~/midas_ws

git clone https://github.com/midas-hand-org/midas_hand_api.git

git clone https://github.com/midas-hand-org/midas_hand_mujoco.git

git clone https://github.com/midas-hand-org/midas_hand_retargeter.git

git clone https://github.com/midas-hand-org/midas_hand_teleop.git

midas-3.png

首次创建并激活虚拟环境:

cd ~/midas_ws/midas_hand_api

python3 -m venv .venv

source .venv/bin/activate

midas-1.png

安装项目依赖:

cd ~/midas_ws

python -m pip install -e "./midas_hand_api[qt]"

python -m pip install -e ./midas_hand_retargeter

python -m pip install -e "./midas_hand_teleop[mujoco]"

midas-4.png

3 确认设备并检查通信

lsusb

 midas-5.png

python -m serial.tools.list_ports -v

 midas-6.png

midas-6-2.png

ls -l /dev/serial/by-id/

 midas-7.png

ls -l /dev/v4l/by-id/

 midas-8.png

本文示例端口如下,请以自己的输出为准:(设备重插后编号可能变化)

设备

本次端口

U2D2 电机通信

/dev/ttyUSB0

Paxini 触觉板

/dev/ttyACM0 

外接 USB 相机

/dev/video2

运行官方通信测试:

cd ~/midas_ws/midas_hand_api 
python examples/smoke_test.py \
--port /dev/ttyUSB0 \
--baudrate 4000000

midas-9.png

成功标准:ID 0~12 全部响应,型号均为 1710,Unexpected model numbers: {},没有非零硬件错误。

4 首次归零与基础动作

归零会主动驱动关节寻找机械限位。确保运动范围没有物体或手指阻挡

拇指归零

cd ~/midas_ws/midas_hand_api

python -m midas_hand_api --port /dev/ttyUSB0 --home-thumb

midas-10.png

三指归零

python -m midas_hand_api --port /dev/ttyUSB0 --home-fingers

midas-11.png

成功标准:每个关节输出 hard stop ... -> home_offset ...,最后回软件零位并打印 Config saved,没有超时或异常干涉。中指外展前先屈曲是预设避让动作。

校准文件位于 `~/.midas_hand/config.yaml`,保存在主机,不在手上。正常重启无需重复归零;重新装配、更换舵盘或零点关系改变后需重新归零。换主机要按官方流程处理校准,不能套用别人的偏移值。

cat ~/.midas_hand/config.yaml

midas-12.png

midas-13.png

官方指尖触碰实验

python examples/finger_touch.py --hand-port /dev/ttyUSB0

midas-14.png

成功标准:依次输出 pointer touch、middle touch、ring touch,最后回零并关闭输出;实物动作顺畅。

若出现 target not reached 或明显干涉,停止,不继续加力(强行阻止灵巧手运动会导致关节保护,关节部位闪红灯,电源重启才可以解除)。