轻轻按一下,屏幕就显出接触轮廓;一颗USB触觉指尖的桌面实验
使用原版DIGIT视觉触觉传感器,观察软表面接触物体时的图像变化,并保存无接触与轻触图像。来自Meta研究团队及学术合作,设计和接口代码公开。本页固定购买原版成品、Linux电脑USB运行路线,不需要机械臂,也不等同于从零浇胶制板。
alan000
选择GelSight DG-01原版成品;项目名相近的DIGIT360、Pinki和GelSight Mini使用不同资料。本路线只需一颗传感器与数据线,不买机械臂或第二颗传感器。商品页2026-10-04显示$355、预计4—6周交期,不当作即日现货承诺。


原图展示内部结构及3颗M2×5、1颗M2×3紧固件的位置;这是原制造指南,不是本路线拆装要求。收到成品后检查表面是否破损、接口是否松动,不自行拆胶、喷涂或重刷固件。


上游声明Linux支持。下面是本页建议的隔离安装组合,未由本站实机验证:
```
python3 -m venv digit-env
source digit-env/bin/activate
python -m pip install "numpy<2" "opencv-python<4.12" "digit-interface==0.2.1"
```
使用带桌面的Python环境,不装opencv-python-headless;成功后记录python --version与pip freeze。

插入Micro-USB数据线,等待设备识别。在虚拟环境运行:
```
python -c "from digit_interface import DigitHandler; print(DigitHandler.list_digits())"
```
序列号以机身标签及枚举结果为准,不把D12345示例号照抄。若为空,先检查数据线与USB口;权限问题再看官方udev说明。


把以下代码保存为digit\_[demo.py](http://demo.py),在虚拟环境执行python digit\_[demo.py](http://demo.py)。输入自己的序列号。窗口应先出现空载图;没有画面不要盲目加压。
```
import cv2
from digit_interface import Digit, DigitHandler
print(DigitHandler.list_digits())
serial = input("Enter your DIGIT serial: ").strip()
d = Digit(serial)
d.connect()
try:
while True:
frame = d.get_frame()
if frame is None:
raise RuntimeError("No frame: check USB and camera permissions")
cv2.imshow("DIGIT", frame)
key = cv2.waitKey(1) & 0xFF
if key == ord("s"):
cv2.imwrite("digit-contact.png", frame)
print("Saved digit-contact.png")
if key == 27:
break
finally:
d.disconnect()
cv2.destroyAllWindows()
```
代码依据原接口编写,做了语法检查,尚未连接实物验证。

让图像稳定后按s保存digit-contact.png,先重命名为baseline.png。再用干净指腹或光滑圆帽轻触表面,观察局部图像变化,按s保存后改名contact.png。保存键会覆盖同名文件,每次先改名。不要用尖角刻划或硬压。

拿开物体,观察图像是否回到接近空载状态,再保存release.png。记录序列号、光照设定、图像尺寸和演示物。只有图像变化不等于已测出牛顿值、深度或剪切力;这些需要额外标定与算法。

聚焦图像窗口按Esc,程序释放相机。保存三张图、程序和环境版本。原仓库提供多种机械手适配CAD,但不在当前BOM;后续接机器人前另补机械、电气和控制条件。原许可CC BY-NC4.0及署名随资料保留。

