当前位置: 首页 > article >正文

【VRChat 全身动捕】VIVE 手柄改 tracker 定位器教程,低成本光学动捕解决方案(持续更新中2024.11.26)

更新 0.0.1(2024/11/26):
1.解决了内建蓝牙无法识别、“steamVR 蓝牙不可用” 的解决方案
2.解决了 tracker 虽然建立了连接但是在 steamVR 界面上看不到的问题
3.解决了 VIVE 基站1.0 无法被蓝牙识别 && 无法被 steamVR 搜索到 && 基站在 steamVR 上看不见的问题

一、准备工作

1.简介

头显:PICO 4 PRO
需要手柄改 tracker 数量:4个(身上3个,头显上1个用于校准定位)

2.手柄选型

海鲜市场的手柄质量参差不齐,大家要多看看评价再购入。
今天是 2024.11.25,海鲜市场手柄平均价格大概在 100元/个。

3.准备材料

新鲜手柄 4 个;
接收器U盘 4 个;
延长数据线(长度2m+,接口 usb 公头转母头) 4 个;
VIVE 激光发射基站(1.0版本基站9或13灯版本,忘了是13还是11灯)2 个(至少2个);

请添加图片描述
请添加图片描述
在这里插入图片描述

二、开始折腾吧

1.使用 microUSB 线缆连接手柄至 PC

插好

2.提取手柄原始 json 文件

打开 steam 目录,按这个目录进行寻找:
xxx:\steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64

找到这个 lighthouse_console.exe 文件,然后管理员身份运行它。

在这里插入图片描述
确保你的手柄已经插在电脑上了,然后输入命令,进行手柄配置文件下载。
(注意,如果这个程序打开后,闪退了,那么说明你的电脑没有识别到手柄)

命令:

downloadconfig

在这里插入图片描述

警告:下载后,一定一定一定要 备份一份这个下载的 .json 手柄配置文件
警告:下载后,记得备份一份 .json 手柄配置文件
警告:下载后,记得备份一份 .json 手柄配置文件

警告:为什么让大家备份,因为每个手柄的配置文件都是独一无二的,
我们一会儿要下载这个手柄的配置文件然后更改它,再传一个新的到手柄中去,
那么一旦失败了,你又没有备份,没有原始的配置文件,你的手柄就可以扔垃圾桶了。

3.修改 json 文件,并上传手柄修改为 tracker 后的 json 文件

然后使用 IDE 或者记事本打开,搜索 “device” :

在这里插入图片描述

将 “device_class”: “controller”, 改为 “device_class”: “generic_tracker”,
看起来是这样的:

在这里插入图片描述

然后拉到文件最下面,修改这3行代码:

在这里插入图片描述

将它们修改为:

"model_name": "Vive Tracker MV",
"render_model": "vr_tracker_vive_1_0",
"tracked_controller_role": "",

保存退出,然后,回到我们刚才的控制台,输入命令:
把 xxxx 换成你自己的手柄配置文件名。
再次警告,你应该保留并备份原始的手柄配置文件,再进行上传这个修改之后的 json 文件。

uploadconfig LHR-xxxxxx.json

在这里插入图片描述

至此,手柄的配置文件已经修改好了。

在这里插入图片描述

4.steamVR 配置

手柄关机状态下,同时按下手柄上这两个按键,直至蓝灯闪烁

在这里插入图片描述
在这里插入图片描述
打开 steamVR,右键设备 -> 配对控制器
选择 tracker(HTC Vive 追踪器)

在这里插入图片描述

进入界面后等待一下,手柄的蓝灯闪烁变为 绿灯常亮
同时,显示控制器已经连接成功

用这种方法,将 4 个手柄重复进行配置,同时,你的电脑上应该至少插着 4 条 USB 公头转母头延长线,
延长线的母头一端用来插接收器,接收器用来接收 tracker(手柄)发送至电脑的数据。

在这里插入图片描述

5.修改 steamVR 配置文件,以适配混搭手柄 or tracker or 头显…

进入目录:xxx:\steam\steamapps\common\SteamVR\resources\settings

修改文件:

在这里插入图片描述

照我下面这样改,一共要改两个参数:
requireHmd,变量值改为 false:Hmd是头显的意思,将它改了之后,就算不连接头显我们也能方便地操作 steamVR 的相关设置,这对于混搭非 HTC 头显 + tracker + 基站 的用户很重要。
activateMultipleDrivers,变量值改为 true:这个设置允许 SteamVR 同时加载和启用多个 VR 驱动程序。通常,SteamVR 只会使用一个驱动程序来支持一个 VR 设备(例如 HTC Vive、Oculus Rift 等)。当该设置为 true 时,SteamVR 可以同时支持多个驱动程序,这就是用来混搭的选项,一定要 true。

修改后保存,退出。

在这里插入图片描述

6.调试基站

先把两个基站通上电,放在桌子对角上。

在这里插入图片描述
在这里插入图片描述

先将一个基站的模式调成 b 模式(注意顺序):
(调模式按后面这个小按钮,如图)

关于基站的模式,有 A、b、c 3种,具体的我们之后再讲,先简单介绍
如果使用有线连接,那么基站分别调节为 A、b 模式
如果使用无线连接,那么基站分别调节为 b、c 模式
请注意,这个有线连接我也没搞明白,大概是要连接头显?还是电脑?不知道。
一般来说,使用无线连接即可。

为什么要先调节1个基站到 b 模式 而不是先调成 c 模式:
c 模式如果一段时间没有识别到或者连接到电脑,那么基站将会自动断电,这很不方便调试。
而且这个时间很短,只有十几秒而已。

在这里插入图片描述
在这里插入图片描述

重新打开 tracker 或者手柄改的 tracker,进入配对模式并连接(之前讲过的,亮绿灯)
然后 拿手柄在两个基站中间晃动,确保它们能照射到手柄

在这里插入图片描述

然后再打开另一个基站,以相同方式调节成 c 模式,再迅速摆回到它应有的位置。

有一个小细节,c 模式不会像 b 模式那样上来就开始照射,而是在开启阶段进入一种扫描状态
它的同步灯不会亮起:

在这里插入图片描述

只有在它发现了另一个基站(设置成 b 模式的基站之后,它才会亮起同步灯):
此时就进入了正常工作的状态,基站的调试完成了

在这里插入图片描述

7.修改 steamVR 设置

在调试好基站之后,steamVR 也许不能马上识别到这两个基站:

在这里插入图片描述

这是因为没有 tracker 导致的,虽然我们使用了加密狗插在了电脑上,
但好像必须要 tracker 启动来引导一下,基站才能够跟着 tracker 一起被识别。

不用着急,先来设置一下 steamVR。

右键 steamVR,选择:开发者 -> 开发者设置 ->

在这里插入图片描述

状态监测 -> 检查 Steam 取消勾选

在这里插入图片描述

重置 -> 禁用电源管理 -> 重启 steamVR

在这里插入图片描述

8.让连接正常化

重启 steamVR 后,现在我们的基站处于打开状态并且已经正常运转。
我们直接重启手柄,重新配对。
配对手柄前面我讲过了,忘了自己去看。

在重启 steamVR 之后,会一片空白,什么设备都没有。
不用着急,此时手柄可能会自动关机,因为没有被配对。
在配对模式下自动关机后(如果没关机可以手动关机然后再开机,不需要进入配对模式,只开机即可),
直接点一下开机键,就会正常显示了:

在这里插入图片描述

至此,基础的连接已经全部结束,剩余的手柄tracker也重复这个步骤即可。
如果说发生了一些问题无法识别,那么请反复重启 steamVR 和手柄,
识别的时机很重要,先后顺序严格,注意看我的描述,漏掉任何一个步骤可能都不行。

三、关于一些其它问题…

1.接收器的均匀排布

为什么加密狗(tracker接收器类似于u盘那个东西)要使用延长线呢,
因为每个接收器都不能离得太近否则会有信号干扰。

接收器和电脑之间 的 推荐距离:>= 45cm
接收器和接收器之间 的 推荐距离:每个接收器距离最少 >=25cm,建议>=30cm

排布的几何规律:平铺,减少重叠部分(不同tracker和不同接收器之间的连线尽量不交叉)
理想状态是每个不同的接收器距离不同的 tracker 的距离基本相同。

2.头显上面的 tracker 怎么办?

说实话,在我把它绑到头上之后我才意识到一个问题。
固定还是什么别的都可以接受,我难以接受的是它的重量。
经测量,这个手柄的重量是 203g,让我的颈椎难以承受。

所以,如果有条件的话,这个手柄可以被换成一个真正的 tracker,以用于减轻重量,预防颈椎病。

在这里插入图片描述

三、后续待更新

1.说明

实在是没时间整 工作太忙
还剩下一些工作没有完成:
1.基站的安装和调试,以及连接,因为有些基站无法被搜索到,是个问题
2.关于如何在 vrchat 中进行实操使用等等

2.待更新…


http://www.kler.cn/a/410961.html

相关文章:

  • 《基于FPGA的便携式PWM方波信号发生器》论文分析(三)——数码管稳定显示与系统调试
  • c++编程玩转物联网:使用芯片控制8个LED实现流水灯技术分享
  • 第八篇:CamX RawHdr Feature Enable
  • 刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)
  • synchronized 锁的性能优化:自适应自旋、锁消除、锁粗化与偏向锁
  • docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
  • docker如何安装mysql8
  • 香橙派--安装RKMPP、x264、libdrm、FFmpeg(支持rkmpp)以及opencv(支持带rkmpp的ffmpeg)(适用于RK3588平台)
  • C语言数据结构学习:循环队列
  • GreatSQL 运行时内存太高,超过90%怎么办
  • 带有悬浮窗功能的Android应用
  • 极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【三】
  • 第 35 章 - Go语言 容器化应用
  • 分布式查询处理优化之数据分片
  • 医院信息化与智能化系统(22)
  • 微信小程序 WXS 的概念与基本用法教程
  • 101页PDF | 德勤_XX集团信息化顶层规划设计信息化总体解决方案(限免下载)
  • uniapp-vue2引用了vue-inset-loader插件编译小程序报错
  • 【网络安全】
  • 【从零开始的LeetCode-算法】43. 网络延迟时间
  • Spring Boot 3 集成 Spring Security(2)
  • 15 go语言(golang) - 并发编程goroutine原理及数据安全
  • Linux -日志 | 线程池 | 线程安全 | 死锁
  • 自由学习记录(25)
  • 充满智慧的埃塞俄比亚狼
  • 图像分割——区域增长