VisionProTeleop 视频流回传教程:如何把机器人相机画面实时传回 Vision Pro?
VisionProTeleop 视频流回传教程:如何把机器人相机画面实时传回 Vision Pro?
【免费下载链接】VisionProTeleopVisionOS App + Python Library to stream hand tracking data from Vision Pro, video/audio stream to Vision Pro.项目地址: https://gitcode.com/gh_mirrors/vi/VisionProTeleop
想一边看着机器人“眼睛”看到的画面,一边用双手在空间里遥控它?VisionProTeleop 视频流回传功能正是为此而生。这套开源方案由VisionOS 端 App(Tracking Streamer)+ Python 库(avp_stream)组成,能把手部追踪数据从 Vision Pro 发送给机器人,同时把机器人相机画面通过WebRTC 低延迟协议实时回传到你的眼前,实测 WiFi 环境下端到端延迟仅约50–150ms,非常适合机器人遥操作与仿真遥操作场景。
视频流回传需要准备什么?
开始之前,只需三样东西:
- Vision Pro 设备:安装并打开Tracking StreamerApp;
- 一台装有相机的电脑(机器人主机),运行 Python 环境;
- 同一局域网:Vision Pro 与电脑连同一个 WiFi(如需跨网络,可改用“外部网络模式”,用房间码连接)。
安装 Python 库非常简单,一条命令即可:
pip install --upgrade avp_stream第一步:在 Vision Pro 上开启视频流接收
打开 Tracking Streamer App 后,界面右侧会出现两个按钮:
- 左侧“START”:仅启动手部追踪;
- 右侧“START with Video Streaming”:同时开启视频流回传模式,即接收来自机器人的相机画面。
请务必点击右侧按钮,并记下屏幕上显示的Vision Pro IP 地址(如10.31.181.201),稍后 Python 端连接时需要用到。
第二步:用 Python 把相机画面推送到 Vision Pro
这是核心环节。在机器人主机上创建脚本,通过VisionProStreamer配置视频并启动 WebRTC 推流:
from avp_stream import VisionProStreamer avp_ip = "10.31.181.201" # 换成你 Vision Pro 上显示的 IP s = VisionProStreamer(ip=avp_ip) # 配置机器人相机:设备、格式、分辨率、帧率 s.configure_video(device="/dev/video0", format="v4l2", size="640x480", fps=30) s.start_webrtc() while True: r = s.get_latest() # 同时还能获取手部追踪数据 # 在这里写你的机器人控制代码跑起来之后,机器人相机画面就会实时出现在 Vision Pro 中,同时你还能继续读取手部、头部追踪数据用于控制,形成完整的“看–想–动”闭环。
完整的可运行示例见 examples/06_stream_from_camera.py,核心实现位于 avp_stream/streamer.py 的configure_video()与start_webrtc()方法。
不同系统的摄像头参数怎么填?
format参数因操作系统而异,常见组合如下:
| 系统 | device 示例 | format | 推荐分辨率 |
|---|---|---|---|
| Linux | /dev/video0 | v4l2 | 640x480 / 1280x720 |
| Windows | 0 | dshow | 640x480 |
| macOS | 0 | avfoundation | 1280x720 |
如果你不确定摄像头支持哪些参数,项目提供了检测脚本,一条命令自动测试设备并给出可用配置:
python test_video_devices.py --live它会把每个设备支持的分辨率 / 帧率组合全部测一遍,并显示实时预览,帮你快速锁定正确参数。
第三步:调节视频画面显示效果
推流成功后,你可以直接用手在 Vision Pro 里调整视频窗口:距离、高度、大小都支持拖拽调节,也可以一键隐藏/显示视频流,避免遮挡视野。
这在遥操作时非常实用——例如把视频窗固定在机器人旁边,视线就不用频繁切换。
进阶玩法:给视频流加点“料”
视频流回传不只是简单转发画面,你可以在推流前对每一帧做自定义处理,比如叠加文字、绘制检测框、边缘检测等:
import cv2 def add_overlay(frame): """在画面上叠加文字与信息""" cv2.putText(frame, "Robot View", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2) return frame s = VisionProStreamer(ip=avp_ip) s.register_frame_callback(add_overlay) s.configure_video(device="/dev/video0", format="v4l2", size="640x480", fps=30) s.start_webrtc()可参考 examples/07_process_frames.py,里面有文字叠加、边缘检测、时间戳水印等多种现成示例。
立体视觉:给 Vision Pro 传 3D 画面
Vision Pro 是空间计算设备,当然支持立体视频。如果你的相机输出左右拼接的画面,只需在配置时把stereo=True打开:
s.configure_video(device="/dev/video0", format="v4l2", size="1280x480", fps=30, stereo=True)注意:立体模式要求帧画面为左右水平拼接格式,即
[左眼画面 | 右眼画面],宽度是单眼的两倍。
无相机也能推流:合成画面与仿真渲染
即使没有物理相机,也可以生成合成帧推送给 Vision Pro,非常适合仿真场景:
import numpy as np def render_frame(): # 从你的仿真器拿到渲染图像,转为 RGB 数组 return np.zeros((720, 1280, 3), dtype=np.uint8) s = VisionProStreamer(ip=avp_ip) s.register_frame_callback(render_frame) s.configure_video(size="1280x720", fps=60) # 不填 device 即合成模式 s.start_webrtc()如果使用 MuJoCo / Isaac Lab 仿真,项目还支持把整个仿真场景以3D AR 形式呈现在 Vision Pro 中(configure_mujoco()/configure_isaac()),比 2D 画面更沉浸。
顺带把声音也传回去
视频回传的同时也能传音频,比如让机器人端麦克风的声音实时传到 Vision Pro 耳机里:
s.configure_video(device="/dev/video0", format="v4l2", size="1280x720", fps=30) s.configure_audio(device=":0", stereo=True) # 默认麦克风 s.start_webrtc()视频流回传性能怎么样?
视频流回传的延迟是遥操作体验的关键。项目提供的基准测试数据显示:在 640x480、1280x720 等常见分辨率下,WebRTC 视频流端到端延迟保持在较低水平,足以支撑流畅的实时遥控操作。
如果延迟偏高,可以优先尝试:降低分辨率(如 640x480)、降低帧率(30fps 足够)、确保路由器 5GHz 频段、让电脑有线连接网络。
遇到问题?快速排查清单
- 画面黑屏:确认 Vision Pro 端点的是“START with Video Streaming”而非普通 START;
- 连接失败:核对 IP 地址是否正确、两台设备是否在同一网络;
- 摄像头打不开:用
python test_video_devices.py --live重新检测可用参数; - 跨网络遥控:使用外部网络模式,把 IP 换成 Vision Pro 上显示的房间码(如
ABC-1234)即可。
更多细节可查阅项目文档 docs/source/video_streaming.rst 与 docs/source/quickstart.rst,获取完整 API 与配置说明。
总结
VisionProTeleop 视频流回传功能让“用眼睛看机器人所见,用双手控制机器人动作”成为现实:Vision Pro 端一键开启、Python 端几行代码配置,即可获得低至 50–150ms 延迟的实时画面回传,还支持立体 3D、帧叠加、合成画面和音频回传等进阶能力。无论你是做真实机器人遥操作,还是仿真验证,它都是一套开箱即用的高性价比方案。
【免费下载链接】VisionProTeleopVisionOS App + Python Library to stream hand tracking data from Vision Pro, video/audio stream to Vision Pro.项目地址: https://gitcode.com/gh_mirrors/vi/VisionProTeleop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
