|
|
|
@ -11,7 +11,7 @@ from pathlib import Path |
|
|
|
|
|
|
|
class TeleVuer: |
|
|
|
def __init__(self, use_hand_tracking: bool, pass_through:bool=False, binocular: bool=True, img_shape: tuple=None, |
|
|
|
cert_file=None, key_file=None, webrtc: bool=False, webrtc_url: str=None): |
|
|
|
cert_file=None, key_file=None, webrtc: bool=False, webrtc_url: str=None, display_fps: float=60.0): |
|
|
|
""" |
|
|
|
TeleVuer class for OpenXR-based XR teleoperate applications. |
|
|
|
This class handles the communication with the Vuer server and manages image and pose data. |
|
|
|
@ -31,8 +31,10 @@ class TeleVuer: |
|
|
|
:param key_file: str, path to the SSL key file. |
|
|
|
:param webrtc: bool, whether to use WebRTC for real-time communication. if False, use ImageBackground. |
|
|
|
:param webrtc_url: str, URL for the WebRTC offer. |
|
|
|
:param display_fps: float, target frames per second for display updates (default: 60.0). |
|
|
|
""" |
|
|
|
self.use_hand_tracking = use_hand_tracking |
|
|
|
self.display_fps = display_fps |
|
|
|
self.pass_through = pass_through |
|
|
|
|
|
|
|
self.binocular = binocular |
|
|
|
@ -309,7 +311,7 @@ class TeleVuer: |
|
|
|
to="bgChildren", |
|
|
|
) |
|
|
|
# 'jpeg' encoding should give you about 30fps with a 16ms wait in-between. |
|
|
|
await asyncio.sleep(0.016) |
|
|
|
await asyncio.sleep(1.0 / self.display_fps) |
|
|
|
|
|
|
|
async def main_image_monocular(self, session): |
|
|
|
if self.use_hand_tracking: |
|
|
|
@ -350,7 +352,7 @@ class TeleVuer: |
|
|
|
], |
|
|
|
to="bgChildren", |
|
|
|
) |
|
|
|
await asyncio.sleep(0.016) |
|
|
|
await asyncio.sleep(1.0 / self.display_fps) |
|
|
|
|
|
|
|
async def main_image_binocular_webrtc(self, session): |
|
|
|
if self.use_hand_tracking: |
|
|
|
@ -389,7 +391,7 @@ class TeleVuer: |
|
|
|
to="bgChildren", |
|
|
|
) |
|
|
|
|
|
|
|
await asyncio.sleep(0.016) |
|
|
|
await asyncio.sleep(1.0 / self.display_fps) |
|
|
|
|
|
|
|
async def main_image_monocular_webrtc(self, session): |
|
|
|
if self.use_hand_tracking: |
|
|
|
@ -427,7 +429,7 @@ class TeleVuer: |
|
|
|
to="bgChildren", |
|
|
|
) |
|
|
|
|
|
|
|
await asyncio.sleep(0.016) |
|
|
|
await asyncio.sleep(1.0 / self.display_fps) |
|
|
|
# ==================== common data ==================== |
|
|
|
@property |
|
|
|
def head_pose(self): |
|
|
|
|