Meta Quest3 遥操作
Open-TeleVision: Teleoperation with Immersive Active Visual Feedback 提供了使用Quest 进行本地数据流开发的使用指南,但是该指南使用并没有详细的步骤,本文记录使用Meta Quest3进行遥操作的配置步骤,英文配置链接见TeleVision issue.
1 将Quest设置为开发者模式
根据 Meta Horizon 的介绍创建/加入组织,验证账号并且打开开发者模式开关。
注册Meta账户
进入网站 Meta Quest Dashboard,注册一个Meta账号。注意要用Facebook账户来注册Meta账号,用email注册后无法在后续步骤中使用电话验证。
加入组织
Meta账户需要加入或者创建组织。这里我选择创建组织,进入Create New Organization,选择一个未被使用的名字作为组织名(这里由于我的学校名字被使用了,我直接用个人名字的英文形式作为组织名了),相当于创建了一个只有我一个人的组织,并输入所需信息。
验证账户
进入verification tab,使用ADD Mobile Number的电话验证方式完成验证,经测Two-Factor Authentication 的验证方式无法成功验证账户,Add Credit Card 的方式未尝试。
使能开发者模式
在安卓手机上下载软件Meta Horizon App, 图标是两个白色半圆弧构成的圆。进入后与头显设备配对并进入设置。
进入设置,
进入开发者模式,打开开发者模式开关。注意:如果没有开发者模式开关,而是超链接,说明前面有步骤没完成。
现在,Quest已经能够进入开发者模式了。
2安装adb
adb( (Android Debug Bridge CLI tool)可以通过Android SDK Platform Tools下载安装。下载platform-tools-latest-linux.zip
后解压,在文件夹下面有一个叫做adb
的二进制文件,命令行运行.adb
会输出一大串文档。
lyl@pc:~/Downloads/platform-tools-latest-linux/platform-tools$ ./adb
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as /home/lyl/Downloads/platform-tools-latest-linux/platform-tools/adb
Running on Linux 6.8.0-48-generic (x86_64)
global options:
-a listen on all network interfaces, not just localhost
-d use USB device (error if multiple devices connected)
........................................
3 Quest连接到电脑
使用USB-C线将Quest连接到ubuntu电脑,Quest会弹出窗口询问是否允许连接,选择总是允许连接。
接着在命令行中运行
./adb devices
# 如果usb没连好
# * daemon not running; starting now at tcp:5037
# * daemon started successfully
# List of devices attached
# 如果连接好了
# * daemon not running; starting now at tcp:5037
# ADB server didn't ACK
# Full server startup log: /tmp/adb.1000.log
# Server had pid: 6444
# --- adb starting (pid 6444) ---
# 11-15 16:41:28.863 6444 6444 I adb : main.cpp:63 Android Debug Bridge version 1.0.41
# 11-15 16:41:28.863 6444 6444 I adb : main.cpp:63 Version 35.0.2-12147458
# 11-15 16:41:28.863 6444 6444 I adb : main.cpp:63 Installed as /home/lyl/Downloads/platform-tools/adb
# 11-15 16:41:28.863 6444 6444 I adb : main.cpp:63 Running on Linux 6.8.0-48-generic (x86_64)
# 11-15 16:41:28.863 6444 6444 I adb : main.cpp:63
# 11-15 16:41:28.865 6444 6444 I adb : auth.cpp:416 adb_auth_init...
# 11-15 16:41:28.865 6444 6444 I adb : auth.cpp:152 loaded new key from '/home/lyl/.android/adbkey' with fingerprint D4D3F56EE8C59535660FE246857D47C4991D79A8546714D11C1C07402749223D
# 11-15 16:41:28.865 6444 6444 I adb : auth.cpp:391 adb_auth_inotify_init...
# 11-15 16:41:28.865 6444 6444 I adb : udp_socket.cpp:170 AdbUdpSocket fd=12
# 11-15 16:41:28.865 6444 6444 I adb : udp_socket.cpp:170 AdbUdpSocket fd=17
# 11-15 16:41:28.865 6444 6444 I adb : udp_socket.cpp:274 SetMulticastOutboundInterface for index=3
# 11-15 16:41:28.865 6444 6444 I adb : udp_socket.cpp:533 bind endpoint=0.0.0.0:5353
# 11-15 16:41:28.865 6444 6444 I adb : udp_socket.cpp:274 SetMulticastOutboundInterface for index=3
# 11-15 16:41:28.865 6444 6444 I adb : udp_socket.cpp:558 bind endpoint=[0000:0000:0000:0000:0000:0000:0000:0000]:5353 scope_id=0
# 11-15 16:41:29.866 6444 6444 E adb : usb_libusb.cpp:598 failed to open device: Access denied (insufficient permissions)
# 11-15 16:41:29.866 6444 6444 I adb : transport.cpp:1153 2G0YC5ZG1500G7: connection terminated: failed to open device: Access denied (insufficient permissions)
# * failed to start daemon
# adb: failed to check server version: cannot connect to daemon