如果你曾经对数字笔有过期望,但迟迟未能找到一款完美的选择,那么D-POINT可能会是你一直在寻找的答案。D-POINT是一款开源数字笔,它采用了相机跟踪和惯性测量技术,实现了六自由度(6DoF)的输入,拥有极低的延迟、压感和亚毫米级的准确性。最令人兴奋的是,这款数字笔可以在任何平坦的表面上使用,并且兼容普通的网络摄像头。
解决现实问题
你是否曾经感到对于数字笔的期望远远超过了市面上的产品?D-POINT应运而生,解决了这一问题。它不仅具备出色的精度和压感,还可以实现低延迟的输入,完全满足了用户对数字笔的高要求。
D-POINT的一大亮点是其兼容性。无论你是在平板电脑上做设计,还是在台式电脑上进行创作,它都能轻松胜任。更令人印象深刻的是,它可以与普通的网络摄像头一起使用,无需昂贵的专业设备。
项目由来
D-POINT项目起源于我的电气工程本科论文。为了帮助更多人享受到这一技术的便利,我将代码和设计文件开源,虽然这并不是一个“拿来就能用”的DIY项目。如果你想尝试自行构建,可以查看我们提供的设置指南。
设计
以下是系统工作原理的简要概述。如果你对细节感兴趣,包括文献综述和大量的评估数据,请阅读完整的论文(注意:我尚未在线上发布论文)。
硬件
D-POINT的主体采用3D打印制成,分为两半,如下图所示。数字笔内部包含了力传感器、通过USB-C充电的锂离子电池,以及用于逻辑和蓝牙的基于Arduino的开发板。八个打印的ArUco标记粘贴在数字笔背面,用于视觉位置估计。
视觉位置估计(VPE)
VPE过程包括四个主要步骤:
- 标记检测:首先,我们使用OpenCV检测数字笔上每个可见ArUco标记的角点。
- 滚动快门校正:我们使用简单的2D运动模型来估计并校正滚动快门对观察到的角点位置的影响。
- 透视点问题(PnP):从这些角点位置出发,我们使用PnP算法来估计数字笔相对于摄像头的位置。在可能的情况下,我们使用前一帧的姿态作为起点,通过虚拟视觉伺服(VVS)进行细化,否则我们回退到SQPnP。
- 坐标转换:利用数字笔的校准姿态以及相对于摄像头的绘图表面,我们计算出数字笔尖相对于绘图表面的位置和方向。
惯性融合
我们使用扩展卡尔曼滤波器(EKF)将VPE估计与加速度计和陀螺仪的惯性数据融合,并使用Rauch-Tung-Striebel(RTS)算法实时优化估计值。为了弥补来自摄像头帧的时延,我们使用了一种负时间测量更新算法。EKF是使用NumPy和Numba实现的。
使用惯性测量可以显著减少与仅使用摄像头实现相比的延迟,同时提高了对快速运动的准确性和报告速率。
结束语
D-POINT是数字笔领域的一项重要创新,它以其卓越的性能和兼容性在众多用户中引起了广泛关注。无论你是数字创作爱好者、设计师还是工程师,D-POINT都将成为你创作过程中的得力助手。
现在,你可以通过访问我们的GitHub页面来获取更多信息,了解D-POINT的细节,并有机会尝试构建自己的数字笔。让D-POINT帮助你释放创造力,体验数字创作的乐趣!
项目链接:
行动起来!
不要错过这个机会,访问我们的GitHub页面,了解D-POINT的更多信息,并开始你的数字创作之旅!让D-POINT成为你创造的得力助手,体验数字创作的乐趣!