You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-28Lines changed: 19 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@ VisionProTeleop
2
2
===========
3
3
4
4
5
-
> **🎉 UPDATE: Now supporting Low-Latency Video Streaming!** You can now stream back your robot's camera feed back to Vision Pro via webRTC protocol, alongside the original hand tracking data stream. No complicated network setting required. Update the app, `pip install --upgrade avp_stream`, and you're done!
5
+
> **🎉 UPDATE: Now supporting Low-Latency Video Streaming!** You can now stream back your robot's video/audio feed back to Vision Pro via webRTC protocol, alongside the original hand tracking data stream. No complicated network setting required. Update the app, `pip install --upgrade avp_stream`, and you're done!
6
6
7
7
8
8
<divalign="center">
@@ -22,23 +22,31 @@ VisionProTeleop
22
22
23
23
24
24
25
-
This VisionOS app and python library streams your Head + Wrist + Hand Tracking result via gRPC over a WiFi network, so any robots connected to the same wifi network can subscribe and use. **It can also stream stereo (or mono) camera feeds from your robot, back to the Vision Pro.**
25
+
This VisionOS app and python library streams your Head + Wrist + Hand Tracking result via gRPC over a WiFi network, so any robots connected to the same wifi network can subscribe and use. **It can also stream stereo (or mono) video / audio feeds from your robot, back to the Vision Pro.**
26
26
27
-
> **For a more detailed explanation, check out this short [paper](./assets/short_paper_new.pdf).**
27
+
> **For a more detailed explanation, check out this short [paper](./assets/short_paper_new.pdf).*
28
28
29
29
30
30
[](https://www.star-history.com/#improbable-ai/visionproteleop&type=date&legend=top-left)
31
31
32
32
33
33
## Benchmark Results
34
34
35
-
We performed comprehensive glass-to-glass latency measurements to evaluate the end-to-end performance of our video streaming system. The results show consistently low latency across all tested resolutions, with wired connections achieving **~20ms** at lower resolutions and wireless connections maintaining **~50-100ms** even at 4K.
35
+
We performed comprehensive round-trip latency measurements to benchmark our video streaming system. The measurement captures the full cycle:
36
+
1. Python encodes a timestamp into a video frame as a marker
37
+
2. WebRTC transmission happens over the network
38
+
3. Vision Pro decodes the image, and reads the marekr
39
+
4. sends timing data back via gRPC
40
+
5. Python calculates latency.
41
+
42
+
This provides a conservative upper bound on user-experienced latency. According to our own testing, the system can consistently hit under 100ms both in wired mode and wireless mode for resolution under 720p. When wired up (requires developer strap), you can get stable 50ms latency even for **stereo 4K streaming**.
36
43
37
44
For detailed methodology, test configurations, and complete results, see the **[Benchmark Documentation](docs/benchmark.md)**.
38
45
39
46

40
47
41
48
49
+
42
50
## How to Use
43
51
44
52
If you use this repository in your work, consider citing:
@@ -92,7 +100,7 @@ while True:
92
100
93
101
### Step 4. [🎉V2 Update🎉] Stream video feeds back to Vision Pro!
94
102
95
-
Streaming your robot's video feed back to Vision Pro requires one additional line: `start_video_streaming`. This feature is only supported on the latest version of the VisionOS app, and python package. Make sure you upgrade both python library / visionOS app.
103
+
Streaming your robot's video feed back to Vision Pro requires one additional line: `start_streaming`. This feature is only supported on the latest version of the VisionOS app, and python package. Make sure you upgrade both python library / visionOS app.
96
104
97
105
```python
98
106
from avp_stream import VisionProStreamer
@@ -101,8 +109,8 @@ s = VisionProStreamer(ip = avp_ip)
0 commit comments