diff --git a/Image/steamVR启动.png b/Image/steamVR启动.png
new file mode 100644
index 0000000..76c7365
Binary files /dev/null and b/Image/steamVR启动.png differ
diff --git a/Image/手柄示意图.png b/Image/手柄示意图.png
new file mode 100644
index 0000000..58fbd3c
Binary files /dev/null and b/Image/手柄示意图.png differ
diff --git a/Image/设备连接状态.png b/Image/设备连接状态.png
new file mode 100644
index 0000000..780cc05
Binary files /dev/null and b/Image/设备连接状态.png differ
diff --git a/README.md b/README.md
index 8580263..a659aac 100644
--- a/README.md
+++ b/README.md
@@ -1,144 +1,170 @@
-# Lighthouse-UESTC
-
-> 特别注意:最近发现SteamVR在重启后,本项目提供的配置文件会被覆盖,从而导致识别不正常。所以重新使用的时候需要重新覆盖配置文件。
-
-描述:这个项目是利用valve的高精度激光定位系统Lighthouse实现对其他非高精度的定位设备进行误差评估的系统。Lighthouse的工作原理文档路径为`Docs\Lighthouse工作原理.md`。
-
-## 一、硬件设备
-
-### 1.1 设备的准备
-
- 将Lighthouse用于定位参考设备,只需要准备如下即可,目前经过实验室的是1.0版本的9灯基站和以及1.0的手柄。
-
-| 设备名 | 数量 | 备注 |
-| ------------------- | ---- | ------------------------------------------------------------ |
-| HTC 激光基站 & 电源 | 2 | 根据情况可以选择1.0、2.0、3.0的版本,购买的时候一般商家会配套电源。二手产品需要注意购买电源 |
-| HTC 手柄或者Tracker | 1 | 根据情况可以选择1.0、2.0、3.0的版本,购买的时候需要对应购买接收器。 |
-| 激光基站的支架 | 2 | 基站的顶部需要额外增加万向转接头,可以调整基站方向。 |
-
-### 1.2 Lightouse的安装与设置
-
- Lighthouse基站安装一般推荐安装在较高的位置,可以俯瞰地面的设备。一般安装在2m以上的位置,可以选择天花板倒置安装,也可以选择支架安装。
-
-
-
-## 二、软件的准备
-
- 软件的核心安装步骤有3个步骤。主要容易出问题的是步骤2。目前提供的样例配置文件会针对特定的手柄设备,如果硬件ID不一样,可能需要通过2.1到2.3中的配置原理,进行变更。核心步骤如下:
-
-1. Steam和SteamVR的安装
-2. **更换配置文件,样例的配置文件在`Code\steamvr_config`目录下**,直接替换Steam下面的目录文件`C:\Program Files (x86)\Steam\steamapps\common`(默认)即可
-3. Python安装以及openvr库的安装,运行Python读取坐标
-
-### 2.1 软件的配置原理
-
- 软件方面主要需要安装Steam平台和SteamVR。理论上SteamVR底层的OpenVR可以支持各种语言。目前最简单的是采用python读取数据。
-
-### 2.2 SteamVR的配置原理
-
- 正常来说,SteamVR的启动必须需要头显才能启动。所以,采取的方式有两种,第一种是绕过头盔启动。第二种方式是把控制器的虚拟为头盔。
-
-#### 2.2.1 查看SteamVR的log
-
- 既然是设备是通过steamVR来驱动链接的,那么在steamVR启动的时候,肯定就要做设备初始化等等的工作,那么设备加载初始化的时候,到底是加载了那些文件了,导致非要加载头显HMD。我们可以通过查看log来查看SteamVR到底加载了那些驱动和设置。查看log的方式如下图所示:
-
-
-
-
-
-#### 2.2.2 配置文件的修改——绕过头盔启动
-
- 在找到SteamVR的log后(log文件:`vrserver.txt`),我们可以对log进行分析:
-
-```shell
-... [Settings] Load Default Json Settings from ...\common\SteamVR\drivers\htc\resources\settings\default.vrsettings
-... [Settings] Load Default Json Settings from ...\common\SteamVR\drivers\lighthouse\resources\settings\default.vrsettings
-... [Settings] Load Default Json Settings from ...\common\SteamVR\drivers\null\resources\settings\default.vrsettings
-... [Settings] Load Default Json Settings from ...\common\SteamVR\resources\settings\default.vrsettings
-... [Settings] Load Json Settings from C:\Program Files (x86)\Steam\config\steamvr.vrsettings
-```
-
- 实际经过发现,**只需要修改2个文件就可以实现绕过头显启动,分别为上面的第3和第4个文件**。
-
- 一般来说,SteamVR的驱动路径为`C:\Program Files (x86)\Steam\steamapps\common\SteamVR`,如果找不到也可以在Steam平台上找到SteamVR,然后选择`右键->管理->浏览本地文件`。
-
- 找到并修改`Resource\Settings\default.vrsettings`:
-
-```json
-// requireHmd == false可以使得SteamVR面板的头盔图标亮起, 但是一会儿就处于休眠状态
-"requireHmd" : false
-// 强制驱动为null driver, null driver是steamvr的一个空驱动
-"forcedDriver" : "null"
-// 强制多个驱动,估计是增加可以激活lighthouse的控制器
-"activateMultipleDrivers" : true
-```
-
- 找到`drivers\null\resources\settings\default.vrsettings`进行修改:
-
-```json
-{
- "driver_null" : {
- // 由false修改为ture
- "enable" : true,
- "serialNumber" : "Null Serial Number",
- "modelNumber" : "Null Model Number",
- "windowX" : 0,
- "windowY" : 0,
- "windowWidth" : 2160,
- "windowHeight" : 1200,
- "renderWidth" : 1512,
- "renderHeight" : 1680,
- "secondsFromVsyncToPhotons" : 0.01111111,
- "displayFrequency" : 90.0
- }
-}
-```
-
-#### 2.2.3 配置文件的修改——控制器的虚拟为头盔
-
- 配置文件完整样例在:`Code\steamvr_config`下,下面是修改的原理介绍以及实际修改方法。
-
- **要将控制器虚拟为头盔,操作和2.2.2的配置一致,但是需要额外添加配置**。通过SteamVR的选项`菜单->设备->管理追踪器->管理定位器`,即可看到控制器的ID信息。如下图所示,本机的定位ID为:LHR-FFA35F47
-
-
-
-
- 对应的修改配置文件,我们在配置文件接近结尾处,添加Json的键值对`TrackingOverrides`, 将控制器的路径映射到头显。值得注意的是,控制器的路径和设备有关,需要根据实际设备的信息调整,不能盲目修改。
-
-```json
-{
- // 上方省略
- // 这个地方添加了追踪映射
- "TrackingOverrides" : {
- // 注意LHR-FFA35F47一般是控制器设备的信息,根据实际设备进行填写
- "/devices/htc/vive_trackerLHR-FFA35F47" : "/user/head"
- },
- // 以下不用修改
- "version": "1",
- "jsonid": "vrsettings"
-}
-```
-
-### 2.3 Python读取定位数据
-
-```shell
-# 安装openvr库
-pip install openvr
-# 进入工作目录
-cd Code/triad_openvr
-# 获取指定设备的位置和姿态, 这里需要根据实际的设备类型对代码进行调整
-python tracker_test.py
-```
-
-
-
-## 三、问题和解决方案
-
-### 3.1 此设备目前不在定位,请确认其在一个定位器的定位范围内。
-
- 上述问题在SteamVR的面板显示如下图所示。这种问题产生的原因是因为基站的位置放置错误。两个基站放置的太近了,一般两个基站需要相距1米以上。
-
-
-
-
-
+# Lighthouse-UESTC
+
+#
+
+> [!WARNING]
+>
+> **特别注意:最近发现SteamVR在重启后,本项目提供的配置文件会被覆盖,从而导致识别不正常。所以重新使用的时候需要重新覆盖配置文件。**
+
+描述:这个项目是利用valve的高精度激光定位系统Lighthouse实现对其他非高精度的定位设备进行误差评估的系统。Lighthouse的工作原理文档路径为`Docs\Lighthouse工作原理.md`。
+
+## 一、硬件设备
+
+### 1.1 设备的准备
+
+ 将Lighthouse用于定位参考设备,只需要准备如下即可,目前经过实验室的是1.0版本的9灯基站和以及1.0的手柄。
+
+| 设备名 | 数量 | 备注 |
+| ------------------- | ---- | ------------------------------------------------------------ |
+| HTC 激光基站 & 电源 | 2 | 根据情况可以选择1.0、2.0、3.0的版本,购买的时候一般商家会配套电源。二手产品需要注意购买电源 |
+| HTC 手柄或者Tracker | 1 | 根据情况可以选择1.0、2.0、3.0的版本,购买的时候需要对应购买接收器。 |
+| 激光基站的支架 | 2 | 基站的顶部需要额外增加万向转接头,可以调整基站方向。 |
+
+### 1.2 Lightouse的安装与设置
+
+ Lighthouse基站安装一般推荐安装在较高的位置,可以俯瞰地面的设备。一般安装在2m以上的位置,可以选择天花板倒置安装,也可以选择支架安装。
+
+
+
+## 二、软件的准备
+
+ 软件的核心安装步骤有3个步骤。主要容易出问题的是步骤2。目前提供的样例配置文件会针对特定的手柄设备,如果硬件ID不一样,可能需要通过2.1到2.3中的配置原理,进行变更。核心步骤如下:
+
+1. Steam和SteamVR的安装
+2. **更换配置文件,样例的配置文件在`Code\steamvr_config`目录下**,直接替换Steam下面的目录文件`C:\Program Files (x86)\Steam\steamapps\common`(默认)即可
+3. Python安装以及openvr库的安装,运行Python读取坐标
+
+### 2.1 软件的配置原理
+
+ 软件方面主要需要安装Steam平台和SteamVR。理论上SteamVR底层的OpenVR可以支持各种语言。目前最简单的是采用python读取数据。
+
+### 2.2 SteamVR的配置原理
+
+ 正常来说,SteamVR的启动必须需要头显才能启动。所以,采取的方式有两种,第一种是绕过头盔启动。第二种方式是把控制器的虚拟为头盔。
+
+#### 2.2.1 查看SteamVR的log
+
+ 既然是设备是通过steamVR来驱动链接的,那么在steamVR启动的时候,肯定就要做设备初始化等等的工作,那么设备加载初始化的时候,到底是加载了那些文件了,导致非要加载头显HMD。我们可以通过查看log来查看SteamVR到底加载了那些驱动和设置。查看log的方式如下图所示:
+
+
+
+
+
+#### 2.2.2 配置文件的修改——绕过头盔启动
+
+ 在找到SteamVR的log后(log文件:`vrserver.txt`),我们可以对log进行分析:
+
+```shell
+... [Settings] Load Default Json Settings from ...\common\SteamVR\drivers\htc\resources\settings\default.vrsettings
+... [Settings] Load Default Json Settings from ...\common\SteamVR\drivers\lighthouse\resources\settings\default.vrsettings
+... [Settings] Load Default Json Settings from ...\common\SteamVR\drivers\null\resources\settings\default.vrsettings
+... [Settings] Load Default Json Settings from ...\common\SteamVR\resources\settings\default.vrsettings
+... [Settings] Load Json Settings from C:\Program Files (x86)\Steam\config\steamvr.vrsettings
+```
+
+ 实际经过发现,**只需要修改2个文件就可以实现绕过头显启动,分别为上面的第3和第4个文件**。
+
+ 一般来说,SteamVR的驱动路径为`C:\Program Files (x86)\Steam\steamapps\common\SteamVR`,如果找不到也可以在Steam平台上找到SteamVR,然后选择`右键->管理->浏览本地文件`。
+
+ 找到并修改`Resource\Settings\default.vrsettings`:
+
+```json
+// requireHmd == false可以使得SteamVR面板的头盔图标亮起, 但是一会儿就处于休眠状态
+"requireHmd" : false
+// 强制驱动为null driver, null driver是steamvr的一个空驱动
+"forcedDriver" : "null"
+// 强制多个驱动,估计是增加可以激活lighthouse的控制器
+"activateMultipleDrivers" : true
+```
+
+ 找到`drivers\null\resources\settings\default.vrsettings`进行修改:
+
+```json
+{
+ "driver_null" : {
+ // 由false修改为ture
+ "enable" : true,
+ "serialNumber" : "Null Serial Number",
+ "modelNumber" : "Null Model Number",
+ "windowX" : 0,
+ "windowY" : 0,
+ "windowWidth" : 2160,
+ "windowHeight" : 1200,
+ "renderWidth" : 1512,
+ "renderHeight" : 1680,
+ "secondsFromVsyncToPhotons" : 0.01111111,
+ "displayFrequency" : 90.0
+ }
+}
+```
+
+#### 2.2.3 配置文件的修改——控制器的虚拟为头盔
+
+ 配置文件完整样例在:`Code\steamvr_config`下,下面是修改的原理介绍以及实际修改方法。
+
+ **要将控制器虚拟为头盔,操作和2.2.2的配置一致,但是需要额外添加配置**。通过SteamVR的选项`菜单->设备->管理追踪器->管理定位器`,即可看到控制器的ID信息。如下图所示,本机的定位ID为:LHR-FFA35F47
+
+
+
+
+ 对应的修改配置文件,我们在配置文件接近结尾处,添加Json的键值对`TrackingOverrides`, 将控制器的路径映射到头显。值得注意的是,控制器的路径和设备有关,需要根据实际设备的信息调整,不能盲目修改。
+
+```json
+{
+ // 上方省略
+ // 这个地方添加了追踪映射
+ "TrackingOverrides" : {
+ // 注意LHR-FFA35F47一般是控制器设备的信息,根据实际设备进行填写
+ "/devices/htc/vive_trackerLHR-FFA35F47" : "/user/head"
+ },
+ // 以下不用修改
+ "version": "1",
+ "jsonid": "vrsettings"
+}
+```
+
+### 2.3 启动SteamVR
+
+ 在steam中启动SteamVR,等待一段时间后弹出:
+
+
+
+ 按住手柄的启动按键,直到指示灯变绿:
+
+
+
+ 等待软件搜索设备,即lighthouse基站(定位器)和手柄(追踪器),如果搜索不到则需要在两个基站之间晃动手柄。直到设备被全部搜索,如下图所示:
+
+
+
+ 此时说明lighthouse配置完成且能够正常获取数据。
+
+### 2.4 Python读取定位数据
+
+```shell
+# 安装openvr库
+pip install openvr
+# 进入工作目录
+cd Code/triad_openvr
+# 获取指定设备的位置和姿态, 这里需要根据实际的设备类型对代码进行调整
+python tracker_test.py
+```
+
+
+
+## 三、问题和解决方案
+
+### 3.1 此设备目前不在定位,请确认其在一个定位器的定位范围内。
+
+ 上述问题在SteamVR的面板显示如下图所示。这种问题产生的原因是因为基站的位置放置错误。两个基站放置的太近了,一般两个基站需要相距1米以上。
+
+
+
+
+
+
+### 3.2 SteamVR在重启后,会导致设备无法正常识别,从而不能正常使用。
+
+ SteamVR在重启后,本项目提供的配置文件会被覆盖,从而导致识别不正常。所以重新使用的时候需要重新覆盖配置文件。
+
+ 解决方法:**更换配置文件,样例的配置文件在`Code\steamvr_config`目录下**,直接替换Steam下面的目录文件`C:\Program Files (x86)\Steam\steamapps\common`(默认)即可