低成本开源触觉力反馈手套DOGlove-4.参数配置

以下配置必须根据你的实际硬件进行修改:

【第1步】查找串口设备路径

# Linux

ls /dev/ttyUSB*   

DOGlove-1.png 

# macOS

ls /dev/tty.*  

找到类似 /dev/ttyUSB0/dev/ttyACM0 (Linux) /dev/tty.wchusbserial... (macOS) 的设备

【第2步】修改串口配置

修改文件:glove_mcu.py 23, servo.py 22

或通过命令行参数覆盖:

conda activate DOGlove

python servo.py --uart-port /dev/ttyUSB0

DOGlove-2.png 

python glove_mcu.py --uart-port /dev/ttyUSB1

DOGlove-3.png 

【第3步】配置舵机 ID

使用 Dynamixel Wizard 2 查看/设置舵机 ID,确保与 servo.py 中的 DXL_IDS 一致

【第4步】传感器零位标定

每个手套的传感器安装角度不同,必须逐台标定 udp_receiver.py 中的 zero_offset_deg 参数

 

关于标定


关键在 udp_receiver.py:15-32 _JOINT_TO_URDF_TRANSFORMS

_JOINT_TO_URDF_TRANSFORMS = (

    (0, 90.0, -1),   # thumb_dip       第三个字段 sign 控制方向

    (1, 270.0, 1),   # thumb_pip

    (2, 180.0, 1),   # thumb_mcp_s

    ...

)

DOGlove-4.png 

每个元组是 (source_index, zero_offset_deg, sign),转换公式为:

urdf_radians = sign * (raw_angle_deg - zero_offset_deg)

修复方法:把方向反了的那些传感器对应的 sign 取反即可 —— 1 改成 -1-1 改成 1

比如如果 thumb_dip(食指第一关节)方向反了,把 (0, 90.0, -1) 改为 (0, 90.0, 1)

操作步骤:

运行 glove_mcu.py,观察终端打印的 Joint Angle


对方向反了的传感器,在 _JOINT_TO_URDF_TRANSFORMS 中翻转对应 sign

如果是舵机(servo)方向反了,同理修改 _SERVO_TO_URDF_TRANSFORMSudp_receiver.py:34-40

zero_offset_deg 是零位偏移,如果某个关节的初始角度不准(比如手指伸直时读数不是 0),调这个值即可。


【第5步】IK 对准标定(如更换手模型)

调整 fk_ik_core.py 中的 offset/scale 参数

【第6步】Vive Tracker 设备名确认

python -c "from tracker import *; print_discovered_objects()"

根据输出结果修改 tracker.py 中的设备名