低成本开源触觉力反馈手套DOGlove-4.参数配置
以下配置必须根据你的实际硬件进行修改:
【第1步】查找串口设备路径
# Linux
ls /dev/ttyUSB*
# 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
python glove_mcu.py --uart-port /dev/ttyUSB1
【第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
...
)
每个元组是 (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_TRANSFORMS(udp_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 中的设备名
<< 上一篇
下一篇 >>