🖊️D-POINT:具有光学惯性跟踪功能的数字笔

type
status
slug
summary
tags
category
icon
password
Date
D-POINT:具有光学惯性跟踪功能的数字笔
D-POINT是一款开源数字手写笔,它使用摄像头跟踪和惯性测量来实现 6DoF(六自由度)输入,具有低延迟、压力敏感度和亚毫米精度。该手写笔可在任何平面上使用,并可与消费级网络摄像头配合使用。
写作演示.mp4
 
该项目是我电气工程本科论文的一部分。我开源了代码和设计文件,希望它们对某些人有用,但它并不是一个“即插即用”的 DIY 项目。如果您想尝试构建它,请按照设置指南进行操作。
设计
这是对系统工作原理的一个非常简短的概述。如需了解所有详细信息以及文献综述和大量评估,请阅读完整论文(注意:我尚未在线发布此论文)。
notion image
硬件
触控笔的主体由两半 3D 打印而成,如下所示。触控笔包含一个力传感器、一个通过 USB-C 充电的锂离子电池和一个用于逻辑和蓝牙的基于 Arduino 的开发板。八个打印的ArUco标记粘在触控笔的背面,用于视觉姿势估计。
notion image
视觉姿势估计(VPE)
VPE 流程涉及四个主要步骤:
  1. 标记检测:
    1. 首先,我们使用 OpenCV 检测手写笔上每个可见 ArUco 标记的角点。
  1. 卷帘快门校正:我们使用简单的 2D 运动模型来估计和校正卷帘快门
    1. 对观察到的角位置的影响。
  1. 透视 n 点 (PnP):PnP
    1. 根据这些角位置,我们使用
      算法来估计触控笔相对于相机的姿势。如果可能,我们会使用前一帧的姿势作为起点,使用虚拟视觉伺服 (VVS) 进行改进,否则我们会返回到 SQPnP。
  1. 坐标转换:
    1. 使用校准过的手写笔和绘图表面相对于相机的位姿,我们计算手写笔尖端相对于绘图表面的位置和方向。
惯性融合
我们使用扩展卡尔曼滤波器 (EKF) 将 VPE 估计值与来自加速度计和陀螺仪的惯性数据融合,并使用 Rauch-Tung-Striebel (RTS) 算法实时细化估计值。为了考虑相机帧的时间延迟,我们使用负时间测量更新算法。 EKF 使用 NumPy 和Numba实现。
与仅使用摄像头实现相比,使用惯性测量可以显着减少延迟,同时还提高快速移动的准确性和报告率。
 
家庭机器人Hello,算法!