微软专利介绍了用于VR、AR定位追踪系统的LED同步机制
用于VR/AR系统的LED同步机制
(映维网 2021年12月02日)AR/VR头显允许用户查看虚拟环境并与之交互。头显可以与手持控制器和/或其他手持外设接口。为了提升体验的沉浸感,当用户在空间中移动设备以提供输入时,可以追踪头显和手持控制器的姿态。这种姿态追踪同时可用于游戏以外的其他计算设备交互。
为了追踪用户的位置移动,或用于单独控制器的移动,头显设备可以使用光学传感器,例如用于检测在头显附近发光的LED标记的摄像头。当使用这种LED标记时,系统需要同步LED发射和摄像头曝光之间的定时。LED发射时间和摄像头曝光窗口之间的定时同步对于图像质量、精度和功耗非常重要。Bluetooth Low Energy(BLE)通常具有10ms或更长的数据包延迟和不确定性,这对于LED发射时间控制而言并不实际。另外,头显的摄像头模块和蓝牙芯片可能来自不同的时钟源,从而可能导致时钟漂移。所以,LED和摄像头定时同步成为一项具有挑战性的任务。
当实施LED光学同步机制时(例如六自由度VR控制器中使用的同步机制),为了确保正确的图像捕获,LED发射时间可设置为远长于摄像头曝光时间。由于头显和六自由度控制器之间没有定时同步,光学图像同步精度可能会受到限制。为了减少过多的LED发射时间,必须在接近摄像头实际曝光时间的情况下激活LED。在许多系统中,为了确保摄像头能够捕获LED,由于摄像头曝光时间的不确定性,LED发射时间可能比摄像头曝光时间长得多。这可能导致功耗增加。
另外,为了拍摄更清晰的图像,可以减少摄像头曝光时间,尤其是当摄像头或控制器处于运动状态时。对于头显,光学同步需要视线视图,因此头显应具有控制器的清晰视图。然后,每当控制器移动到摄像头视场之外时,控制器必须进入重新初始化模式。在重新同步过程中,LED通常需要设置为完全打开,亮度增加或最大,以便启用图像捕获并进入重新同步,这同样会增加功耗。
控制器和头显之间的通信通常为无线,并在许多情况下使用蓝牙。对于头显,当使用高频时钟时,需要计算每个摄像机帧的时钟周期数以追踪摄像头帧时间。另外,LED循环的开始时间需要与头显同步。
不准确的同步会导致较差的图像质量和准确性,造成控制器追踪问题,从而对用户体验产生负面影响。另外,不准确的同步会造成不必要的计算资源使用和过度的功耗。在名为“Led synchronization for virtual and augmented reality devices”的专利申请中,微软提出了一种LED同步方法。
微软指出,发明主要描述了用于实现蓝牙物理层无线同步机制的技术。另外,所述机制不需要更改现有的蓝牙物理层和其他协议层,而且LED定时调整可在纳秒级实施,以设置LED开启开始时间和开启持续时间,从而进行精确定时控制。结果,所述系统和设备可以节省功率并生成更清晰和减少模糊的图像。一旦建立了初始同步,可以继续保持同步直到系统断电(即便控制器移入和移出摄像头视场,因为所述无线同步机制不需要头显和控制器LED之间的视线)。
所述发明包括基于Phase Lock Loop(PLL)的时钟乘法器的实现,从而提升主时钟。可实施LED帧定时器以测量camera帧时间至所需精度。可通过将平均摄像头和蓝牙时钟漂移误差添加到LED帧计数器中来实现用于camera帧和LED定时同步的无线数字PLL,以确保同步误差在期望范围内。
蓝牙RF RX/TX开关控制引脚或其他RF检测电路可用作蓝牙同步参考。在一个实施例中,两个帧定时器可用于存储前一帧时间和当前帧时间以生成帧时间误差。平均帧时间误差可以添加到当前帧计时器。在一个实施例中,硬件帧计数器可用于计数帧时间并生成准确的帧触发信号。
LED偏移估计器可用于LED初始启动时间估计。硬件LED偏移计数器和LED持续时间计数器可用于控制LED启动时间和持续时间。帧时间误差同时可以在由头显计算。在这种情况下,头显可以发送帧时间一次,然后发送帧错误。
在一个实施例中,头显摄像头可使用曝光的选通管脚或其他帧同步信号进行头显和控制器之间的camera帧和LED同步控制。
具有使能引脚和脉宽调制(PWM)输入引脚的并联或串行控制器可用于控制LED的开/关和亮度。亮度可由头显以闭环方式控制。当头显确定是由于头显和控制器之间的距离变化而导致LED太暗或太亮时,头显可命令控制器增加或减少亮度。摄像头组件都有一个可用于追踪摄像头启动时间的频闪信号。
在一个实施例中,为了查找LED开始时间,中可以实现二进制搜索过程。在一个实施例中,LED可在发射时间的第一个周期开始时打开,并且头显可确定LED是否可被检测到。如果未检测到LED,则可以确定LED在循环的前半部分未激活,并且在下一个循环中,可以假定为循环的后半部分。所述过程可以在将时间段一分为二的情况下继续,并且搜索可以以这种方式继续,直到可以将开始时间确定为所需的精度。
在一个实施例中,如果头显和控制器使用相同的时钟源,则不需要分割时钟源,因为没有时钟漂移,所以可以使用其他技术来优化功耗。在这样的实施例中,PLL、硬件计数器和摄像头选通信号、以及摄像头和蓝牙时钟漂移误差估计和校正功能都是可选的。所述技术可在期望主设备和从设备之间的精确定时的任何情况下实施,例如在使用暴露在RF RX/TX开关信号的TDD无线通信系统中。
图1是一个示例性设备。在图1所示的配置中,VR设备100可包括形成传感器子系统120的各种机载传感器,例如一个或多个朝外的光学摄像头102。控制器160可以包括分布在控制器160的表面上的多个光源。
图2到图5示出了头显和六自由度控制器与蓝牙主时钟同步的系统示例。
图2示出了具有闪光灯信号235的头部追踪摄像头230。在一个实施例中,可以有多个摄像头用于头显头部和控制器追钟。摄像头可以从同一时钟源同步。
图3所示为蓝牙主天线310和蓝牙主时钟320,显示为BT MCLK1(24 MHz)。蓝牙主时钟320是主蓝牙芯片的时钟基准。图3中同时示出了蓝牙主模块330,它是头显的蓝牙主控制器,TX/RX开关信号暴露在芯片上。
图3进一步说明了主时钟发生器340,其为蓝牙主从物理层定时基准生成3.2 KHz主时钟360。在一个实施例中,时钟乘法器350将主时钟乘以7500以生成用于帧定时器输入时钟的24mhz同步时钟。在一个实施例中,可以使用Cirrus Logic CS2000-OTP。应当理解,主时钟可以是其他值的倍数,这取决于具体实现。
图4示出了LED驱动器410,其分别使用LED开/关和亮度控制的使能引脚412和PWM输入414驱动一个或多个LED串420。图4同时示出了控制器MCU 430,其可以是用于六自由度控制器LED定时和蓝牙通信的微控制器。LED串420包括一个或多个串行或并行LED串。
图4进一步示出了帧时间同步器440,其从从主控制器430接收的帧时间分组生成camera帧时间。帧时间同步器440比较当前和更新的帧定时器,以估计在固定时段内接收下一帧时间包之前平均到帧定时器的时钟漂移。这样,帧时间同步器440逐帧补偿camera时钟漂移,而不依赖可能高达数百毫秒的蓝牙延迟。
图4进一步示出了LED偏移估计器450,其可配置为参考帧起始点来估计用于初始同步的LED ON定时偏移。图4同时示出了存储LED ON定时偏移的LED偏移计数器460。在一个实施例中,可将LED偏移计数器460调整为1/24 MHz=41.6 ns的精度。图4进一步示出了LED持续时间计数器470,其可用于控制LED接通时间。当控制器处于运动状态时,较短的LED持续时间可使图像清晰稳定。
图5示出了设备蓝牙天线510和蓝牙从模块520,其可以是六自由度控制器上的蓝牙从设备控制器,其中TX/RX开关信号用于主同步和从同步。图5进一步示出了主时钟恢复功能530,其将3.2khz主时钟恢复为时钟乘法器输入之一。在1.5m距离处,由于物理层中的TDD定时调整,主时钟和恢复的主时钟可能有5ns的差异。对于41.6 ns的定时分辨率,这种差异可以忽略,而LED定时控制没有明显差异。
图5进一步示出了时钟乘法器540,它可以与图3中的时钟乘法器350相同,并用于主时钟乘法,以在从设备生成作为帧时间基准的24mhz同步时钟。图5同时示出了蓝牙MCK2(24 MHz)550,它是作为从蓝牙芯片时钟参考的蓝牙从主时钟。由于主时钟和从时钟使用不同的时钟源,蓝牙从主时钟的时钟与主时钟相比会漂移。然而,从时钟乘法器540的输出被锁相到3.2khz主时钟以克服时钟漂移。
相关专利:Microsoft Patent | Led synchronization for virtual and augmented reality devices
名为“Led synchronization for virtual and augmented reality devices”的专利申请最初在2020年5月提交,并在日前由美国专利商标局公布。