【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.mzph.cn/bicheng/62435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++设计模式之组合模式中如何实现同一层部件的有序性

在组合模式中,为了实现同一层上部件的有序性,可以采取以下几种设计方法: 1. 使用有序集合 使用有序集合(如 std::list、std::vector 或其他有序容器)来存储和管理子部件。这种方法可以确保子部件按照特定顺序排列&am…

Web 端语音对话 AI 示例:使用 Whisper 和 llama.cpp 构建语音聊天机器人

大语言模型(LLM)为基于文本的对话提供了强大的能力。那么,能否进一步扩展,将其转化为语音对话的形式呢?本文将展示如何使用 Whisper 语音识别和 llama.cpp 构建一个 Web 端语音聊天机器人。 系统概览 如上图所示&…

网络地址转换

NAT概述 解决公有地址不足,并且分配不均匀的问题 公有地址:由专门的机构管理、分配,可以在因特网上直接通信 私有地址:组织和个人可以任意使用,只能在内网使用的IP地址 A、B、C类地址中各预留了一些私有IP地址 A&…

电脑无互联网连接怎么解决?分享5种解决方案

无互联网连接是指设备无法与互联网进行通信或连接失败。这可能会导致我们无法正常上网,给我们的日常生活和工作带来很大的不便。但请不要担心,下面将为您介绍一些解决无互联网连接问题的方法。 一、检查网络是否正常连接 首先,确保您的路由器…

使用 F5 TTS 文字转音频

F5 TTS 支持 ZeroShot 音频克隆,只有将需要音频传给模型,模型既可以生成以对应声音生成的音频,F5 最强大的地方就是可以使用定制的人声。F5 使用了 DIT 架构进行训练,结构如下: 本地使用 F5 TTS F5 使用很简单&#x…

【Redis】Redis 预备知识

目录 1. 基本全局命令 KEYS EXISTS DEL EXPIRE TTL TYPE 2. 数据结构和内部编码 3. 单线程架构 Redis 提供了5种数据结构,理解每种数据结构的特点对于 Redis 开发运维非常重要,同时掌握每种数据结构的常见命令,会在使用 Redis 的时…

【从零开始的LeetCode-算法】3304. 找出第 K 个字符 I

Alice 和 Bob 正在玩一个游戏。最初,Alice 有一个字符串 word "a"。 给定一个正整数 k。 现在 Bob 会要求 Alice 执行以下操作 无限次 : 将 word 中的每个字符 更改 为英文字母表中的 下一个 字符来生成一个新字符串,并将其 追加 到原始的…

云原生革命:构建未来应用的无限可能

在这个数字化飞速发展的时代,云原生技术如同一股不可阻挡的潮流,正深刻改变着软件开发和部署的方式。它不仅仅是一种技术变革,更是一场关于如何更高效、更灵活地构建和运行应用的革命。今天,我们就来深入探讨云原生的魅力所在&…

软件设计模式复习

一、软件生存周期 二、软件开发过程模型 瀑布模型 特征: 从上一阶段承接的成果物作为本阶段的工作对象; 对上一阶段成果实施本阶段的活动; 给出本阶段的成果,作为下一阶段的输入; 对本阶段的工作进行评审&#xff0c…

centos7 yum install 失败,mirrorlist.centos.org连接不上

由于centos7停止支持,导致mirrorlist.centos.orgdns解析都是失效啦,yum命令没法安装程序. 换一个镜像源就好 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/…

搭建文件服务器并使用Qt实现文件上传和下载(带账号和密码)

文章目录 0 背景1 搭建文件服务器2 代码实现文件上传和下载2.1 在pro文件中添加网络支持2.2 创建网络管理类2.3 文件上传2.4 文件下载 3 扩展(其他方法实现文件上传和下载)3.1 python3.2 npm3.3 ftp服务器 4 完整的代码 0 背景 因为需要使程序具备在远程…

JVM 常见面试题及解析(2024)

目录 一、JVM 基础概念 二、JVM 内存结构 三、类加载机制 四、垃圾回收机制 五、性能调优 六、实战问题 七、JVM 与其他技术结合 八、JVM 内部机制深化 九、JVM 相关概念拓展 十、故障排查与异常处理 一、JVM 基础概念 1、什么是 JVM?它的主要作用是…

自动化运维(k8s)之微服务信息自动抓取:namespaceName、deploymentName等全解析

前言:公司云原生k8s二开工程师发了一串通用性命令用来查询以下数值,我想着能不能将这命令写成一个自动化脚本。 起初设计的 版本一:开头加一条环境变量,执行脚本后,提示输入:需要查询的命名空间&#xff0c…

鸿蒙一次开发,多端部署,响应式布局

鸿蒙一次开发,多端部署,响应式布局 一、定义屏幕相关常量 BreakpointConstants.ets import BreakpointType from ../bean/BreakpointType export default class BreakPointConstants{/*** 小屏幕设备的Breakpoints 标记*/static readonly BREAKPOINT_…

ubuntu防火墙入门(一)——设置服务、关闭端口

本机想通过git clone gitgithub.com:skumra/robotic-grasping.git下载代码,firewall-config中需要为当前区域的防火墙开启SSH服务吗 是的,如果你想通过 git clone gitgithub.com:skumra/robotic-grasping.git 使用 SSH 协议从 GitHub 下载代码&#xff0…

springboot332基于springboot养老院管理系统pf(论文+源码)_kaic

毕 业 设 计(论 文) 养老院管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计…

js:函数

函数 函数:实现抽取封装,执行特定任务的代码块,方便复用 声明 函数命名规范 尽量小驼峰 前缀应该为动词,如getName、hasName 函数的调用 函数体是函数的构成部分 函数传参 参数列表里的参数叫形参,实际上写的数据叫实…

基于Matlab的图像去噪算法仿真

中值滤波的仿真 本节选用中值滤波法对含有高斯噪声和椒盐噪声的图像进行去噪,并用Matlab软件仿真。 (1)给图像加入均值为0,方差为0.02的高斯噪声,分别选择33模板、55模板和77模板进行去噪 Matlab部分代码&#xff1…

前端网络安全分析

前端常见的网络安全包括:xss(跨站脚本攻击)、csrf(跨站请求伪造)、sql注入攻击等。 1)跨站脚本攻击(xss) 原理: 攻击者往web页面中注入恶意 script 代码(或…

【Linux】-学习笔记06

第二章、时间同步服务器 2.1时间同步服务器的使用 2.1.1系统时区时间的管理 timedatectl set-time "2024-02-13 10:41:55" ##设定系统时间 timedatectl list-timezones ##显示系统的所有时区 timedatectl set-timezone "Asia/Shangh…