diff --git a/dimos/robot/foxglove_bridge.py b/dimos/robot/foxglove_bridge.py index fdd65281c8..30fa248784 100644 --- a/dimos/robot/foxglove_bridge.py +++ b/dimos/robot/foxglove_bridge.py @@ -25,8 +25,9 @@ class FoxgloveBridge(Module): _thread: threading.Thread _loop: asyncio.AbstractEventLoop - def __init__(self, *args, **kwargs): + def __init__(self, *args, shm_channels=None, **kwargs): super().__init__(*args, **kwargs) + self.shm_channels = shm_channels or [] self.start() @rpc @@ -35,7 +36,13 @@ def run_bridge(): self._loop = asyncio.new_event_loop() asyncio.set_event_loop(self._loop) try: - bridge = LCMFoxgloveBridge(host="0.0.0.0", port=8765, debug=False, num_threads=4) + bridge = LCMFoxgloveBridge( + host="0.0.0.0", + port=8765, + debug=False, + num_threads=4, + shm_channels=self.shm_channels, + ) self._loop.run_until_complete(bridge.run()) except Exception as e: print(f"Foxglove bridge error: {e}") diff --git a/dimos/robot/unitree_webrtc/unitree_go2.py b/dimos/robot/unitree_webrtc/unitree_go2.py index 0ed63bf354..e4c16e198f 100644 --- a/dimos/robot/unitree_webrtc/unitree_go2.py +++ b/dimos/robot/unitree_webrtc/unitree_go2.py @@ -464,7 +464,7 @@ def _deploy_visualization(self): self.websocket_vis.path.connect(self.global_planner.path) self.websocket_vis.global_costmap.connect(self.mapper.global_costmap) - self.foxglove_bridge = FoxgloveBridge() + self.foxglove_bridge = FoxgloveBridge(shm_channels=["/go2/color_image#sensor_msgs.Image"]) def _deploy_perception(self): """Deploy and configure perception modules.""" diff --git a/pyproject.toml b/pyproject.toml index 5af8fa590a..f826636c68 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -102,7 +102,7 @@ dependencies = [ "dask[complete]==2025.5.1", # LCM / DimOS utilities - "dimos-lcm @ git+https://github.com/dimensionalOS/dimos-lcm.git@de4038871a4f166c3007ef6b6bc3ff83642219b2" + "dimos-lcm @ git+https://github.com/dimensionalOS/dimos-lcm.git@03e320b325edf3ead9b74746baea318d431030bc" ] [project.scripts]