Meta Quest 3 VR Teleop

将 Meta Quest 3 耳机变成实时机器人手臂控制器 - 无需引导臂。 手部跟踪姿势流通过 UDP 传输到 Python,然后传输到任何支持的手臂。 Wi-Fi 6 上的延迟低于 120 毫秒。

<120毫秒
端到端延迟
50赫兹
UDP 数据包速率
无活性氧
必需的
3+
兼容武器

耳机 → UDP → 机械臂

该系统是围绕单向 UDP 桥构建的。 Quest 3 上的 Unity 应用程序读取手部跟踪数据并通过 Wi-Fi 广播二进制姿势数据包。 控制 PC 上的 Python 服务器接收这些数据包,并通过其本机 SDK 将命令转发给机器人。 没有 ROS,没有中间件——只有套接字。

元任务 3 Unity手部追踪
VRHandPoseSender.cs
XR Hands 子系统
UDP 无线网络 端口 8888 / 8889
二进制数据包·45字节
〜50赫兹
Python服务器 UDP接收线程
安全验证器
有界队列
机器人控制器 ARM 专用 SDK
工作空间夹紧
紧急停止
机械臂 6自由度末端执行器
实时运动

关键的架构见解:只有机器人控制器模块在手臂模型之间发生变化。 Quest 3 Unity 应用程序、UDP 协议和 Python 服务器基础设施均与 Arm 无关。 从一只手臂切换到另一只手臂需要替换大约 80 行 Python 代码。

兼容的机械臂

模块化控制器模式意味着每个手臂仅更改一个 Python 文件。 所有手臂共享相同的 Quest 3 Unity 应用程序和 UDP 协议。

AgileX 派珀

6 自由度手臂 · 通过 USB 适配器的 CAN 总线 · Piper_sdk Python 库

控制器: piper_controller.py

生产就绪

开臂

7自由度手臂·SocketCAN/ROS 2 MoveIt2·社区开源

控制器: openarm_controller.py

贝塔

DK1 双手套件

双六自由度臂 · 同时使用端口 8888(右)和 8889(左)

控制器: dk1_controller.py

贝塔

VLAI L1

双 6 自由度人形手臂 · TCP/IP 上的 ROS 2 桥

控制器: vlai_l1_controller.py

开发中

要添加新手臂,请使用五个方法实现控制器类 - connect, disconnect, set_pose, set_gripper, emergency_stop — 并交换 teleoperation_main.py 中的导入。 请参阅 适配器接口指南.

系统概览

耳机 Meta Quest 3(手部追踪模式)
运输 Wi-Fi 上的 UDP(端口 8888 / 8889)
包率 来自 Unity 的 ~50 Hz; 机器人指令频率为 30 Hz
数据包大小 45 字节(固定长度二进制,小尾数)
端到端延迟 Wi-Fi 6 LAN 上为 50–120 毫秒
主机运行时 Python 3.10+(无需 ROS)
统一版本 2022.3 带 XR Hands 包的 LTS+
主要参考臂 AgileX Piper(通过 USB 的 CAN 总线)
完整规格和协议 →

社区

对 Quest 3 远程操作有疑问或想分享您的设置吗?

询问论坛 → 不和谐#vr-teleop →

准备好 Teleop 了吗?

获取 Unity 脚本、Python 服务器和 Piper_controller.py — 运行第一个 VR 远程操作会话所需的一切。