NotesUESTC/定位技术/README.md

120 lines
10 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Lighthouse定位原理
2016年Valve携手HTC一同发布了跨时代般的VR头显:HTC VIVE,随之而来的是一套全新的空间定位技术命名为Lighthouse的定位系统具备高精度、高响应、轻便易用等特点至今仍是VR全身追踪玩家首选的追踪设备。本文章详细解析Lighthouse初代系统1.0基站系统与不完全解析第二代系统2017年6月发布的2.0基站系统基站原理与追踪器定位原理为方便理解将以1.0基站指代初代系统2.0基站指代第二代系统。
## 一、Lighthouse定位原理
### 1.1 Lighthouse定位架构
每个1.0基站包含一个称为同步闪光灯的红外灯阵列和俩组马达集成激光发射器。系统内20ms为一个扫描周期。基站的定位原理如下图所示
<img src="./Image/positioning-principle.png" style="zoom:80%;" />
一个周期的定位过程1、首先基站的红外灯阵列闪烁一次发射一组红外光同步光覆盖整个扫描范围当追踪器*1 上一组光敏每个追踪器含有多组光敏传感器组件搭载的光电转换芯片接收到该端光敏传感器捕捉到的来自基站的红外同步光信息后启动全部传感器与惯性系统IMU并将数据清零。2、基站的X轴马达横向发射激光旋转10ms闪烁一次后停止3、基站的红外灯阵列再闪烁一次追踪器捕捉到第二次红外光同步信息后将准备捕捉Y轴光数据 4、Y轴马达纵向发射激光旋转10ms闪烁一次后停止至基站下次红外灯阵列闪烁后代表一个扫描周期结束。如下图所示
![](./Image/Lighthouse扫描过程.webp)
### 1.2 Lighthouse基站运行模式
1.0基站共有三种运行模式通过按钮切换单独A模式有线A、B模式无线B、C模式。一个空间内只运行一个基站时设置为A模式或B模式均可单独运行。一个空间内运行双基站当俩个基站设置为A模式与B模式有线模式由A模式的基站作为主基站。将线缆连接俩个基站后B模式的基站将与A模式基站通过线缆同步扫描周期同步红外光阵列点亮时间与马达转速、激光发射器点亮间当基站处于B、C模式无线模式由B模式的基站作为主基站C模式的基站上的一组光敏捕捉到B模式基站的红外同步光后通过分析一段时间内捕捉到的红外同步光的频率便可与B基站同步扫描周期同步红外光阵列点亮时间与马达转速、激光发射器点亮时间当一个空间内运行双基站时由追踪器判定使用哪一个基站的激光当多组光敏同时捕捉到某一个基站的光信息最多时优先使用该组基站的激光参与融合计算。
## 二、 Lighthouse基站拆解
### 2.1 基站的面板拆解
1.0基站有俩种型号分别为9灯与15灯基站(最早生产15灯基站2017年后生产的基站基本为9灯基站)9灯基站红外光同步阵列含9颗灯珠、15灯基站(红外光同步阵列含15颗灯珠)。9灯基站与15灯基站区别为红外同步阵列灯珠数量定位效果与原理相同9灯阵列灯珠亮度更高。
<img src="./Image/15灯基站.png" style="zoom:33%;" />
<center>15灯基站运行图片</center>
<img src="./Image/9灯基站.png" style="zoom:33%;" />
<center>9灯基站运行图片</center>
Tracker1.0等1.0追踪器搭载TS3633芯片设备将与基站完成红外光同步识别捕捉到的红外光信息为基站发出时才会进行定位。而后代更换TS4231或TSTS4631芯片的追踪器(如Tracker2018、Tracker3.0、Vive Pro头显与Vive2.0手柄等上取消了红外光同步模式当这类追踪器运行在1.0基站模式下,捕捉到红外光信息后将直接启动全部传感器,但无法判断是否为基站发射的同步光。当环境存在其他发射红外光的设备时,追踪器可能将其会误判为基站发射的同步光而错误定位,也就会产生所谓“干扰”丢追现象。
<img src="./Image/基站拆解图.png" alt="基站拆解图" style="zoom:67%;" />
### 2.2 Tracker 1.0跟踪器原理和拆解
每个追踪器表面都覆盖有多组光敏传感器与光电转换器。当一组光敏传感器俩次捕捉到红外同步光后分俩次捕捉到俩组激光。随后由该组光敏组件上搭载的光电转换器如TS3633等开始分别计算这俩组X轴与Y轴激光分别到达该组光敏的角度与时间这个时间正好是基站X轴与Y轴马达旋转到特定的面、点亮激光发射器的时间与角度基站位置为绝对静止马达转速与激光发射器点亮时间为已知一组马达一个周期旋转10ms并闪烁一次而分布在追踪器上的光敏传感器的位置也是已知的便可依此得到一组时间差数据发送给微控制器与FPGA。追踪器通过结合多组光电转换器得到的时间差数据并融合IMU惯性系统进行计算随后将数据发送给电脑便可得出追踪器的绝对位置与运动轨迹。下图为Tracker1.0跟踪器的拆解图:
<img src="./Image/Tracker拆解图.png" alt="Tracker拆解图" style="zoom:67%;" />
<center>Tracker1.0上覆盖的多组光敏与光电转换器</center>
<img src="./Image/Tracker1.0 Mainboard.png" style="zoom: 67%;" />
<center>Tracker1.0主板</center>
<img src="./Image/Tracker1.0主板2.png" style="zoom: 67%;" />
<center>Tracker1.0主板</center>
### 2.3 基站2.0结构和原理
第二代基站将原先俩组马达与一组红外光阵列的结构改为单马达集成俩组激光发射器,取消红外光同步模式。每组激光发射器的相对位置有差别(如下图所示),每组发射器点亮时间也略有间隔,发射的每组激光都包含信息(包括识别信息)。当搭载TS4231或TSTS4631芯片的追踪器如Tracker2018、Tracker3.0、Vive Pro头显与Vive2.0手柄等接收到来自2.0基站的光信息后,追踪器可快速归位并直接进入定位状态,并且可识别捕捉到的激光来自哪一个基站。
![](./Image/基站2.0原理1.png)
<center>单马达集成俩组激光发射器结构(来自网络)‍</center>
<img src="./Image/基站2.0原理拆解.png" alt="基站2.0原理拆解" style="zoom:67%;" />
<center>单马达集成俩组激光发射器结构(来自网络)‍</center>
2.0基站扫描过程马达将快速旋转至设定转速集成的俩组激光发射器旋转至特定位置时间隔几纳秒分别闪烁一次呈V字形发射X、Y轴激光。激光组件闪烁俩次后至下一次旋转到特定位置并再次闪烁前为一个扫描周期。如下图所示
<img src="./Image/基站2.0扫描过程.webp" style="zoom:67%;" />
<center>2.0基站运行过程(来自网络)</center>
2.0基站取消了红外光同步模式而改为激光通讯使得每个基站可独立运行多基站需要设置信道理论最多16个基站同时运行且启动、恢复对比1.0基站更加迅速但不再兼容旧款搭载TS3633芯片无法解码短波激光信息的追踪器如Tracker1.0Vive初代头显与Vive 1.0手柄等)。**单马达结构也存在弊端**。集成俩组激光发射器且转速非常高的马达更容易损耗。当系统中某个基站上的一组激光发射器出现老化或马达转速异常时,将直接影响到整个系统的定位稳定性。且独立运行且基站间无同步的工作模式更容易导致多个基站之间发射的激光频率产生差异。一个空间内同时运行多个基站时,如果每个基站的相对位置过于紧凑或都处于同一平面(扫描区域重合较多)可能会导致追踪器对多个方向的激光束接收混乱,产生所谓“干扰”丢追现象。
### 2.4 基站2.0模式下追踪器定位原理
每个追踪器表面都覆盖有多组光敏传感器与光电转换器。当一组光敏传感器俩次捕捉到来自基站的激光后由该组光敏组件上搭载的光电转换器TS4231或TS4631开始解码短波激光信息并分别计算这俩组X轴与Y轴激光到达该组光敏的角度与时间这个时间正好是基站俩组激光发射器旋转至特定位置的时间与发射激光的角度基站位置为绝对静止马达转速与激光发射器点亮时间为已知而分布在追踪器上的光敏传感器的位置也是已知的便可依此得到一组时间差数据发送给微控制器与FPGA。追踪器通过结合多组光电转换器得到的时间差数据并融合IMU惯性系统进行计算随后将数据发送给电脑便可得出追踪器的绝对位置与运动轨迹。
<img src="./Image/Tracker2.0主板.png" style="zoom:67%;" />
<center>Tracker2.0上覆盖的多组光敏传感器与光电转换器(来自网络)</center>
Tracker2018拆解图如下图所示:
<img src="./Image/Tracker2.0主板1.png" style="zoom:67%;" />
<center>Tracker2018搭载的TS4231芯片将刷新率从上一代TS3633的60Hz提升到了100Hz效率更高</center>
<img src="./Image/Tracker2.0主板2.png" style="zoom:67%;" />
<center>Tracker2018主板</center>
<img src="./Image/Tracker2.0主板3.png" style="zoom:67%;" />
<center>Tracker2018使用ATSAMG55微处理器</center>
### 2.5 Tracker3.0拆解图
Tracker3.0压缩了体积,但保持了覆盖光敏组件的数量。
<img src="./Image/Tracker3.0.png" style="zoom:67%;" />
<img src="./Image/Tracker3.0-光敏模组.png" style="zoom:67%;" />
<center>Tracker3.0上搭载的TS4631芯片</center>
<img src="./Image/Tracker3.0-主板.png" style="zoom:67%;" />
<center>Tracker3.0上的主板</center>
<img src="./Image/Tracker3.0-主板2.png" style="zoom:67%;" />
<center>Tracker3.0上的主板</center>
<img src="./Image/Tracker3.0-手柄TS4631.png" style="zoom:67%;" />
<center>Index手柄上搭载的TS4631芯片特写</center>
<img src="./Image/TundraTracker-TS4631.png" style="zoom:67%;" />
<center>N7R似乎采用的是和HTC同款方案效果却不及HTC</center>