外观
Python
包名 w6e_sdk。示例在 sdk/python/examples/,面板命令是 python -m w6e_sdk.ui。
安装
在将要运行的电脑上执行:
bash
cd sdk/python
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e ".[ui]"也可以 bash scripts/run_ui.sh --no-ui,它会创建虚拟环境并安装。以后启动面板:
bash
cd sdk/python
source .venv/bin/activate
python -m w6e_sdk.ui窗口里传输选 can_slcan,端口选实际串口,再点连接。不要和网页或 ROS 同时开。
Python 窗口不能手输 can0。要用 SocketCAN 时走命令行:
bash
python examples/encoder_status.py --port can0 --transport socketcan
python examples/set_open_pct.py --port can0 --transport socketcan --pct 0 0 0 0 0 0串口还空着时:
bash
python examples/encoder_status.py --port /dev/ttyACM0
python examples/set_open_pct.py --port /dev/ttyACM0 --pct 80 0 50 50 50 50最短示例
python
from w6e_sdk import HandClient
import time
hand = HandClient(ack_timeout_s=1.0)
hand.connect("/dev/ttyACM0", transport="can_slcan")
try:
print("version:", hand.get_version_string())
print("sn:", hand.get_serial_number())
status = hand.get_encoder_status()
if status.homed_mask != 0x3F:
hand.home()
hand.wait_home()
hand.set_open_pct([100, 100, 100, 100, 100, 100])
time.sleep(1.5)
hand.set_open_pct([0, 0, 0, 0, 0, 0])
time.sleep(1.5)
hand.set_open_pct([50, 100, 30, 30, 30, 30])
hand.play_gesture("ok")
time.sleep(2.0)
hand.stop_all()
finally:
hand.disconnect()把 /dev/ttyACM0 换成 ls 看到的串口。can0 已挂好时,connect("can0", transport="socketcan")。
常用接口
失败时抛出 HandError。set_open_pct 有手指被跳过时返回 False,原因在 last_error。
| 接口 | 作用 |
|---|---|
list_ports() | 列出串口 |
connect(port, transport="can_slcan", verify=True) | 打开设备。verify 时会读版本并确认编码器状态可用 |
disconnect() / connected | 关闭,或查看是否已连接 |
set_open_pct(pct) | 六个整数,0~100,含虎口。255 保持该指 |
get_positions() | 按编码器计算开合度。未归零的那一路为 None |
get_open_pct() | 读回板端开合度整数 |
open_all() / close_all() | 五指到极限,不含虎口 |
stop_all() | 急停 |
set_finger(lq_idx, open_) | 单指到开或合的极限。lq_idx 为 0~5 |
play_gesture(name) / play_fixed(fixed_id) | 按名字或编号播放手势 |
get_version_string() / get_serial_number() | 点分版本和序列号 |
home() / wait_home() | 开始归零并等待。期间不要发别的运动指令 |
get_encoder_status() | homed_mask == 0x3F 且 fault_mask == 0 后再定位 |
六路同时收到闭合目标时,虎口有时会停在张开附近。其余手指到位后再发一次同一组数。
