DIGIT|让手指的触感变成一幅图

轻轻按一下,屏幕就显出接触轮廓;一颗USB触觉指尖的桌面实验

使用原版DIGIT视觉触觉传感器,观察软表面接触物体时的图像变化,并保存无接触与轻触图像。来自Meta研究团队及学术合作,设计和接口代码公开。本页固定购买原版成品、Linux电脑USB运行路线,不需要机械臂,也不等同于从零浇胶制板。

alan000

参数信息

默认图像流
640×480 / 30 像素 / fps

复现文档

核对型号与购买范围

选择GelSight DG-01原版成品;项目名相近的DIGIT360、Pinki和GelSight Mini使用不同资料。本路线只需一颗传感器与数据线,不买机械臂或第二颗传感器。商品页2026-10-04显示$355、预计4—6周交期,不当作即日现货承诺。

![product.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/6724c7744b604aaf915f0d941a0a96bb.png)

![guide-1.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/fd04aca2fc4d4dd69cac2fe6af6317fd.jpg)

认识接触层,保持成品完整

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

![render.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/f8dc9fe1243d41d38ffe2eb23bab0f2c.png)

![assembly-6.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/55c3980f94fd45f2a7248796cb727a3f.png)

准备Linux与独立Python环境

上游声明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。

![guide-1.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/fd04aca2fc4d4dd69cac2fe6af6317fd.jpg)

接USB并读取真实序列号

插入Micro-USB数据线,等待设备识别。在虚拟环境运行:

```

python -c "from digit_interface import DigitHandler; print(DigitHandler.list_digits())"

```

序列号以机身标签及枚举结果为准,不把D12345示例号照抄。若为空,先检查数据线与USB口;权限问题再看官方udev说明。

![product.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/6724c7744b604aaf915f0d941a0a96bb.png)

![guide-1.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/fd04aca2fc4d4dd69cac2fe6af6317fd.jpg)

打开实时图像窗口

把以下代码保存为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()

```

代码依据原接口编写,做了语法检查,尚未连接实物验证。

![guide-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/6f89f31e89ba47a29c13ae6324fb1b99.jpg)

保存空载与轻触两张图

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

![guide-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/6f89f31e89ba47a29c13ae6324fb1b99.jpg)

释放接触并验证恢复

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

![guide-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/6f89f31e89ba47a29c13ae6324fb1b99.jpg)

退出、保存资料并规划扩展

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

![render.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/f8dc9fe1243d41d38ffe2eb23bab0f2c.png)

![guide-2.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/32cafe80-9852-40b3-8eb7-33016844416a/files/image/5906005302774525bf2aa7d0cd91b3fd.jpg)