Description
System
22.04
Robot/Sim/Hardware (including firmware version)
Go2
Steps to reproduce
DimOS version
main latest
Logs / screenshots
dimos installed in /home/th/dimensional
▸ DimOS uses LCM transport which needs larger UDP buffers:
sudo sysctl -w net.core.rmem_max=67108864
sudo sysctl -w net.core.rmem_default=67108864
net.core.rmem_max = 67108864
net.core.rmem_default = 67108864
✓ LCM buffers configured
▸ verifying installation...
✓ python import: dimos ✓
✓ dimos CLI available
▸ post-install smoke test
▸ running: dimos --simulation run unitree-go2 (Ctrl+C to stop)
07:41:13.312[inf][dimos/robot/cli/dimos.py ] Starting DimOS
07:41:33.488[inf][dination/module_coordinator.py] Building the blueprint
07:41:33.544[war][ce/system_configurator/base.py] System configuration changes are recommended/required:
07:41:33.545[war][ce/system_configurator/base.py] - Multicast: sudo ip link set lo multicast on
- Multicast: sudo ip route add 224.0.0.0/4 dev lo
07:41:33.567[inf][ce/system_configurator/base.py] System configuration completed.
07:41:33.567[inf][dination/module_coordinator.py] Starting the modules
07:41:33.625[inf][ation/worker_manager_python.py] Worker pool started. n_workers=9
07:41:36.619[inf][/coordination/python_worker.py] Deployed module. module=PatrollingModule module_id=7 worker_id=7
07:41:36.755[inf][/coordination/python_worker.py] Deployed module. module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:36.779[inf][/coordination/python_worker.py] Deployed module. module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:36.900[inf][et_vis/websocket_vis_module.py] WebSocket visualization module initialized on port 7779, GPS goal tracking enabled
07:41:36.901[inf][/coordination/python_worker.py] Deployed module. module=WebsocketVisModule module_id=2 worker_id=2
07:41:39.044[inf][/coordination/python_worker.py] Deployed module. module=CostMapper module_id=4 worker_id=4
07:41:39.639[inf][dimos/utils/data.py ] Using local user data directory at '/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data'
07:41:40.083[inf][/coordination/python_worker.py] Deployed module. module=RerunBridgeModule module_id=0 worker_id=0
batch response: 404 Not Found: Cannot find any of the requested objects
error: failed to fetch some objects from 'https://lfs.dimensionalos.com/dimensionalOS/dimos'
07:41:43.663[inf][/coordination/python_worker.py] Deployed module. module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.664[inf][ation/worker_manager_python.py] Shutting down all workers...
07:41:43.669[inf][/coordination/python_worker.py] Worker stopping module... module=PatrollingModule module_id=7 worker_id=7
07:41:43.706[inf][/coordination/python_worker.py] Worker module stopped. module=PatrollingModule module_id=7 worker_id=7
07:41:43.714[inf][/coordination/python_worker.py] Worker stopping module... module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:43.749[inf][/coordination/python_worker.py] Worker module stopped. module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:43.758[inf][/coordination/python_worker.py] Worker stopping module... module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:43.759[inf][nning_a_star/global_planner.py] Cancelling goal. arrived=False but_will_try_again=False
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.763[inf][nning_a_star/global_planner.py] Cancelling goal. arrived=False but_will_try_again=False
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.777[inf][/coordination/python_worker.py] Worker module stopped. module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:43.784[inf][/coordination/python_worker.py] Worker stopping module... module=CostMapper module_id=4 worker_id=4
07:41:43.803[inf][/coordination/python_worker.py] Worker module stopped. module=CostMapper module_id=4 worker_id=4
07:41:43.828[inf][/coordination/python_worker.py] Worker stopping module... module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.864[inf][/coordination/python_worker.py] Worker module stopped. module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.933[inf][/coordination/python_worker.py] Worker stopping module... module=WebsocketVisModule module_id=2 worker_id=2
07:41:43.969[inf][/coordination/python_worker.py] Worker module stopped. module=WebsocketVisModule module_id=2 worker_id=2
07:41:44.009[inf][/coordination/python_worker.py] Worker stopping module... module=RerunBridgeModule module_id=0 worker_id=0
07:41:44.041[inf][/coordination/python_worker.py] Worker module stopped. module=RerunBridgeModule module_id=0 worker_id=0
07:41:44.076[inf][ation/worker_manager_python.py] All workers shut down
07:41:44.084[err][dimos/utils/logging_config.py ] Uncaught exception occurred
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/cli/dimos.py:275 in run │
│ │
│ 272 │ if cli_config_overrides: │
│ 273 │ │ kwargs["g"] = cli_config_overrides │
│ 274 │ │
│ ❱ 275 │ coordinator = ModuleCoordinator.build(blueprint, kwargs) │
│ 276 │ │
│ 277 │ if daemon: │
│ 278 │ │ # Health check before daemonizing — catch early crashes │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:268 in build │
│ │
│ 265 │ │ coordinator = cls(g=global_config) │
│ 266 │ │ coordinator.start() │
│ 267 │ │ │
│ ❱ 268 │ │ _deploy_all_modules(blueprint, coordinator, global_config, blueprint_args) │
│ 269 │ │ coordinator._connect_streams(blueprint) │
│ 270 │ │ _connect_module_refs(blueprint, coordinator) │
│ 271 │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:655 in _deploy_all_modules │
│ │
│ 652 │ for bp in blueprint.active_blueprints: │
│ 653 │ │ module_specs.append((bp.module, gc, bp.kwargs.copy())) │
│ 654 │ │
│ ❱ 655 │ module_coordinator.deploy_parallel(module_specs, blueprint_args) │
│ 656 │ │
│ 657 │ for bp in blueprint.active_blueprints: │
│ 658 │ │ module_coordinator._deployed_atoms[bp.module] = bp │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:165 in deploy_parallel │
│ │
│ 162 │ │ │ │ results[index] = module │
│ 163 │ │ │
│ 164 │ │ try: │
│ ❱ 165 │ │ │ safe_thread_map(list(specs_by_deployment.keys()), _deploy_group) │
│ 166 │ │ except: │
│ 167 │ │ │ self.stop() │
│ 168 │ │ │ raise │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:84 in │
│ safe_thread_map │
│ │
│ 81 │ │ if on_errors is not None: │
│ 82 │ │ │ zipped = [(items[i], outcomes[i]) for i in range(len(items))] │
│ 83 │ │ │ return on_errors(zipped, successes, errors) # type: ignore[no-any-return] │
│ ❱ 84 │ │ raise ExceptionGroup("safe_thread_map failed", errors) │
│ 85 │ │
│ 86 │ return [outcomes[i] for i in range(len(items))] # type: ignore[misc] │
│ 87 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ExceptionGroup: safe_thread_map failed (1 sub-exception)
╭──────────────────────────────────────── Sub-exception #1 ────────────────────────────────────────╮
│ ╭───────────────────────────── Traceback (most recent call last) ──────────────────────────────╮ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:68 in │ │
│ │ safe_thread_map │ │
│ │ │ │
│ │ 65 │ │ for fut in as_completed(futures): │ │
│ │ 66 │ │ │ idx = futures[fut] │ │
│ │ 67 │ │ │ try: │ │
│ │ ❱ 68 │ │ │ │ outcomes[idx] = fut.result() │ │
│ │ 69 │ │ │ except Exception as e: │ │
│ │ 70 │ │ │ │ outcomes[idx] = e │ │
│ │ 71 │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/_base.py:449 in result │ │
│ │ │ │
│ │ 446 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │ │
│ │ 447 │ │ │ │ │ raise CancelledError() │ │
│ │ 448 │ │ │ │ elif self._state == FINISHED: │ │
│ │ ❱ 449 │ │ │ │ │ return self.__get_result() │ │
│ │ 450 │ │ │ │ │ │
│ │ 451 │ │ │ │ self._condition.wait(timeout) │ │
│ │ 452 │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/_base.py:401 in __get_result │ │
│ │ │ │
│ │ 398 │ def __get_result(self): │ │
│ │ 399 │ │ if self._exception: │ │
│ │ 400 │ │ │ try: │ │
│ │ ❱ 401 │ │ │ │ raise self._exception │ │
│ │ 402 │ │ │ finally: │ │
│ │ 403 │ │ │ │ # Break a reference cycle with the exception in self._exception │ │
│ │ 404 │ │ │ │ self = None │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/thread.py:59 in run │ │
│ │ │ │
│ │ 56 │ │ │ return │ │
│ │ 57 │ │ │ │
│ │ 58 │ │ try: │ │
│ │ ❱ 59 │ │ │ result = self.fn(*self.args, **self.kwargs) │ │
│ │ 60 │ │ except BaseException as exc: │ │
│ │ 61 │ │ │ self.future.set_exception(exc) │ │
│ │ 62 │ │ │ # Break a reference cycle with the exception 'exc' │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coord │ │
│ │ inator.py:160 in _deploy_group │ │
│ │ │ │
│ │ 157 │ │ results: list[Any] = [None] * len(module_specs) │ │
│ │ 158 │ │ │ │
│ │ 159 │ │ def _deploy_group(dep: str) -> None: │ │
│ │ ❱ 160 │ │ │ deployed = self._managers[dep].deploy_parallel(specs_by_deployment[dep], b │ │
│ │ 161 │ │ │ for index, module in zip(indices_by_deployment[dep], deployed, strict=True │ │
│ │ 162 │ │ │ │ results[index] = module │ │
│ │ 163 │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/worker_manag │ │
│ │ er_python.py:163 in deploy_parallel │ │
│ │ │ │
│ │ 160 │ │ │ │
│ │ 161 │ │ try: │ │
│ │ 162 │ │ │ # item: (worker, module_class, global_config, kwargs) │ │
│ │ ❱ 163 │ │ │ return safe_thread_map( │ │
│ │ 164 │ │ │ │ assignments, │ │
│ │ 165 │ │ │ │ lambda item: RPCClient(item[0].deploy_module(item[1], item[2], item[3] │ │
│ │ 166 │ │ │ ) │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:84 in │ │
│ │ safe_thread_map │ │
│ │ │ │
│ │ 81 │ │ if on_errors is not None: │ │
│ │ 82 │ │ │ zipped = [(items[i], outcomes[i]) for i in range(len(items))] │ │
│ │ 83 │ │ │ return on_errors(zipped, successes, errors) # type: ignore[no-any-return] │ │
│ │ ❱ 84 │ │ raise ExceptionGroup("safe_thread_map failed", errors) │ │
│ │ 85 │ │ │
│ │ 86 │ return [outcomes[i] for i in range(len(items))] # type: ignore[misc] │ │
│ │ 87 │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ExceptionGroup: safe_thread_map failed (1 sub-exception) │
│ │
│ ╭────────────────────────────────────── Sub-exception #1 ──────────────────────────────────────╮ │
│ │ ╭─────────────────────────── Traceback (most recent call last) ────────────────────────────╮ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:6 │ │ │
│ │ │ 8 in safe_thread_map │ │ │
│ │ │ │ │ │
│ │ │ 65 │ │ for fut in as_completed(futures): │ │ │
│ │ │ 66 │ │ │ idx = futures[fut] │ │ │
│ │ │ 67 │ │ │ try: │ │ │
│ │ │ ❱ 68 │ │ │ │ outcomes[idx] = fut.result() │ │ │
│ │ │ 69 │ │ │ except Exception as e: │ │ │
│ │ │ 70 │ │ │ │ outcomes[idx] = e │ │ │
│ │ │ 71 │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/_base.py:449 in result │ │ │
│ │ │ │ │ │
│ │ │ 446 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │ │ │
│ │ │ 447 │ │ │ │ │ raise CancelledError() │ │ │
│ │ │ 448 │ │ │ │ elif self._state == FINISHED: │ │ │
│ │ │ ❱ 449 │ │ │ │ │ return self.__get_result() │ │ │
│ │ │ 450 │ │ │ │ │ │ │
│ │ │ 451 │ │ │ │ self._condition.wait(timeout) │ │ │
│ │ │ 452 │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/_base.py:401 in __get_result │ │ │
│ │ │ │ │ │
│ │ │ 398 │ def __get_result(self): │ │ │
│ │ │ 399 │ │ if self._exception: │ │ │
│ │ │ 400 │ │ │ try: │ │ │
│ │ │ ❱ 401 │ │ │ │ raise self._exception │ │ │
│ │ │ 402 │ │ │ finally: │ │ │
│ │ │ 403 │ │ │ │ # Break a reference cycle with the exception in self._exception │ │ │
│ │ │ 404 │ │ │ │ self = None │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/thread.py:59 in run │ │ │
│ │ │ │ │ │
│ │ │ 56 │ │ │ return │ │ │
│ │ │ 57 │ │ │ │ │
│ │ │ 58 │ │ try: │ │ │
│ │ │ ❱ 59 │ │ │ result = self.fn(*self.args, **self.kwargs) │ │ │
│ │ │ 60 │ │ except BaseException as exc: │ │ │
│ │ │ 61 │ │ │ self.future.set_exception(exc) │ │ │
│ │ │ 62 │ │ │ # Break a reference cycle with the exception 'exc' │ │ │
│ │ │ │ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/worker_m │ │ │
│ │ │ anager_python.py:165 in │ │ │
│ │ │ │ │ │
│ │ │ 162 │ │ │ # item: (worker, module_class, global_config, kwargs) │ │ │
│ │ │ 163 │ │ │ return safe_thread_map( │ │ │
│ │ │ 164 │ │ │ │ assignments, │ │ │
│ │ │ ❱ 165 │ │ │ │ lambda item: RPCClient(item[0].deploy_module(item[1], item[2], ite │ │ │
│ │ │ 166 │ │ │ ) │ │ │
│ │ │ 167 │ │ except: │ │ │
│ │ │ 168 │ │ │ self.stop() │ │ │
│ │ │ │ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_w │ │ │
│ │ │ orker.py:242 in deploy_module │ │ │
│ │ │ │ │ │
│ │ │ 239 │ │ │ │ response: WorkerResponse = self._conn.recv() │ │ │
│ │ │ 240 │ │ │ │ │ │
│ │ │ 241 │ │ │ if response.error: │ │ │
│ │ │ ❱ 242 │ │ │ │ raise RuntimeError(f"Failed to deploy module: {response.error}") │ │ │
│ │ │ 243 │ │ │ │ │ │
│ │ │ 244 │ │ │ actor = Actor(self._conn, module_class, self._worker_id, module_id, se │ │ │
│ │ │ 245 │ │ │ actor.set_ref(actor).result() │ │ │
│ │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ RuntimeError: Failed to deploy module: RuntimeError: Failed to pull LFS file │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data/repo/data/.lfs/mujoco_sim │ │
│ │ .tar.gz: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/mujoco_sim.tar.gz']' │ │
│ │ returned non-zero exit status 2. │ │
│ │ Traceback (most recent call last): │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 164, in _lfs_pull │ │
│ │ subprocess.run( │ │
│ │ File │ │
│ │ "/home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/subprocess. │ │
│ │ py", line 571, in run │ │
│ │ raise CalledProcessError(retcode, process.args, │ │
│ │ subprocess.CalledProcessError: Command '['git', 'lfs', 'pull', '--include', │ │
│ │ 'data/.lfs/mujoco_sim.tar.gz']' returned non-zero exit status 2. │ │
│ │ │ │
│ │ During handling of the above exception, another exception occurred: │ │
│ │ │ │
│ │ Traceback (most recent call last): │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_work │ │
│ │ er.py", line 441, in _worker_loop │ │
│ │ response = _handle_request(request, state) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_work │ │
│ │ er.py", line 377, in _handle_request │ │
│ │ state.instances[module_id] = module_class(**kwargs) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/go2/connection. │ │
│ │ py", line 221, in init │ │
│ │ self.connection = make_connection(self.config.ip, self.config.g) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/go2/connection. │ │
│ │ py", line 128, in make_connection │ │
│ │ return MujocoConnection(cfg) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/mujoco_connecti │ │
│ │ on.py", line 75, in init │ │
│ │ get_data("mujoco_sim") │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 259, in get_data │ │
│ │ archive_path = _decompress_archive(_pull_lfs_archive(archive_name)) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 203, in _pull_lfs_archive │ │
│ │ _lfs_pull(file_path, repo_root) │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 171, in _lfs_pull │ │
│ │ raise RuntimeError(f"Failed to pull LFS file {file_path}: {e}") │ │
│ │ RuntimeError: Failed to pull LFS file │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data/repo/data/.lfs/mujoco_sim │ │
│ │ .tar.gz: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/mujoco_sim.tar.gz']' │ │
│ │ returned non-zero exit status 2. │ │
│ │ │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
⚠ smoke test exited with code 1 (may be expected headless)
🎉 installation complete!
Dimos failed smoke test as the LFS is not available
thanks
Description
System
22.04
Robot/Sim/Hardware (including firmware version)
Go2
Steps to reproduce
DimOS version
main latest
Logs / screenshots
dimos installed in /home/th/dimensional
▸ DimOS uses LCM transport which needs larger UDP buffers:
sudo sysctl -w net.core.rmem_max=67108864
sudo sysctl -w net.core.rmem_default=67108864
net.core.rmem_max = 67108864
net.core.rmem_default = 67108864
✓ LCM buffers configured
▸ verifying installation...
✓ python import: dimos ✓
✓ dimos CLI available
▸ post-install smoke test
▸ running: dimos --simulation run unitree-go2 (Ctrl+C to stop)
07:41:13.312[inf][dimos/robot/cli/dimos.py ] Starting DimOS
07:41:33.488[inf][dination/module_coordinator.py] Building the blueprint
07:41:33.544[war][ce/system_configurator/base.py] System configuration changes are recommended/required:
07:41:33.545[war][ce/system_configurator/base.py] - Multicast: sudo ip link set lo multicast on
07:41:33.567[inf][ce/system_configurator/base.py] System configuration completed.
07:41:33.567[inf][dination/module_coordinator.py] Starting the modules
07:41:33.625[inf][ation/worker_manager_python.py] Worker pool started. n_workers=9
07:41:36.619[inf][/coordination/python_worker.py] Deployed module. module=PatrollingModule module_id=7 worker_id=7
07:41:36.755[inf][/coordination/python_worker.py] Deployed module. module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:36.779[inf][/coordination/python_worker.py] Deployed module. module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:36.900[inf][et_vis/websocket_vis_module.py] WebSocket visualization module initialized on port 7779, GPS goal tracking enabled
07:41:36.901[inf][/coordination/python_worker.py] Deployed module. module=WebsocketVisModule module_id=2 worker_id=2
07:41:39.044[inf][/coordination/python_worker.py] Deployed module. module=CostMapper module_id=4 worker_id=4
07:41:39.639[inf][dimos/utils/data.py ] Using local user data directory at '/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data'
07:41:40.083[inf][/coordination/python_worker.py] Deployed module. module=RerunBridgeModule module_id=0 worker_id=0
batch response: 404 Not Found: Cannot find any of the requested objects
error: failed to fetch some objects from 'https://lfs.dimensionalos.com/dimensionalOS/dimos'
07:41:43.663[inf][/coordination/python_worker.py] Deployed module. module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.664[inf][ation/worker_manager_python.py] Shutting down all workers...
07:41:43.669[inf][/coordination/python_worker.py] Worker stopping module... module=PatrollingModule module_id=7 worker_id=7
07:41:43.706[inf][/coordination/python_worker.py] Worker module stopped. module=PatrollingModule module_id=7 worker_id=7
07:41:43.714[inf][/coordination/python_worker.py] Worker stopping module... module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:43.749[inf][/coordination/python_worker.py] Worker module stopped. module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:43.758[inf][/coordination/python_worker.py] Worker stopping module... module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:43.759[inf][nning_a_star/global_planner.py] Cancelling goal. arrived=False but_will_try_again=False
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.763[inf][nning_a_star/global_planner.py] Cancelling goal. arrived=False but_will_try_again=False
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.777[inf][/coordination/python_worker.py] Worker module stopped. module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:43.784[inf][/coordination/python_worker.py] Worker stopping module... module=CostMapper module_id=4 worker_id=4
07:41:43.803[inf][/coordination/python_worker.py] Worker module stopped. module=CostMapper module_id=4 worker_id=4
07:41:43.828[inf][/coordination/python_worker.py] Worker stopping module... module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.864[inf][/coordination/python_worker.py] Worker module stopped. module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.933[inf][/coordination/python_worker.py] Worker stopping module... module=WebsocketVisModule module_id=2 worker_id=2
07:41:43.969[inf][/coordination/python_worker.py] Worker module stopped. module=WebsocketVisModule module_id=2 worker_id=2
07:41:44.009[inf][/coordination/python_worker.py] Worker stopping module... module=RerunBridgeModule module_id=0 worker_id=0
07:41:44.041[inf][/coordination/python_worker.py] Worker module stopped. module=RerunBridgeModule module_id=0 worker_id=0
07:41:44.076[inf][ation/worker_manager_python.py] All workers shut down
07:41:44.084[err][dimos/utils/logging_config.py ] Uncaught exception occurred
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/cli/dimos.py:275 in run │
│ │
│ 272 │ if cli_config_overrides: │
│ 273 │ │ kwargs["g"] = cli_config_overrides │
│ 274 │ │
│ ❱ 275 │ coordinator = ModuleCoordinator.build(blueprint, kwargs) │
│ 276 │ │
│ 277 │ if daemon: │
│ 278 │ │ # Health check before daemonizing — catch early crashes │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:268 in build │
│ │
│ 265 │ │ coordinator = cls(g=global_config) │
│ 266 │ │ coordinator.start() │
│ 267 │ │ │
│ ❱ 268 │ │ _deploy_all_modules(blueprint, coordinator, global_config, blueprint_args) │
│ 269 │ │ coordinator._connect_streams(blueprint) │
│ 270 │ │ _connect_module_refs(blueprint, coordinator) │
│ 271 │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:655 in _deploy_all_modules │
│ │
│ 652 │ for bp in blueprint.active_blueprints: │
│ 653 │ │ module_specs.append((bp.module, gc, bp.kwargs.copy())) │
│ 654 │ │
│ ❱ 655 │ module_coordinator.deploy_parallel(module_specs, blueprint_args) │
│ 656 │ │
│ 657 │ for bp in blueprint.active_blueprints: │
│ 658 │ │ module_coordinator._deployed_atoms[bp.module] = bp │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:165 in deploy_parallel │
│ │
│ 162 │ │ │ │ results[index] = module │
│ 163 │ │ │
│ 164 │ │ try: │
│ ❱ 165 │ │ │ safe_thread_map(list(specs_by_deployment.keys()), _deploy_group) │
│ 166 │ │ except: │
│ 167 │ │ │ self.stop() │
│ 168 │ │ │ raise │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:84 in │
│ safe_thread_map │
│ │
│ 81 │ │ if on_errors is not None: │
│ 82 │ │ │ zipped = [(items[i], outcomes[i]) for i in range(len(items))] │
│ 83 │ │ │ return on_errors(zipped, successes, errors) # type: ignore[no-any-return] │
│ ❱ 84 │ │ raise ExceptionGroup("safe_thread_map failed", errors) │
│ 85 │ │
│ 86 │ return [outcomes[i] for i in range(len(items))] # type: ignore[misc] │
│ 87 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ExceptionGroup: safe_thread_map failed (1 sub-exception)
╭──────────────────────────────────────── Sub-exception #1 ────────────────────────────────────────╮
│ ╭───────────────────────────── Traceback (most recent call last) ──────────────────────────────╮ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:68 in │ │
│ │ safe_thread_map │ │
│ │ │ │
│ │ 65 │ │ for fut in as_completed(futures): │ │
│ │ 66 │ │ │ idx = futures[fut] │ │
│ │ 67 │ │ │ try: │ │
│ │ ❱ 68 │ │ │ │ outcomes[idx] = fut.result() │ │
│ │ 69 │ │ │ except Exception as e: │ │
│ │ 70 │ │ │ │ outcomes[idx] = e │ │
│ │ 71 │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/_base.py:449 in result │ │
│ │ │ │
│ │ 446 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │ │
│ │ 447 │ │ │ │ │ raise CancelledError() │ │
│ │ 448 │ │ │ │ elif self._state == FINISHED: │ │
│ │ ❱ 449 │ │ │ │ │ return self.__get_result() │ │
│ │ 450 │ │ │ │ │ │
│ │ 451 │ │ │ │ self._condition.wait(timeout) │ │
│ │ 452 │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/_base.py:401 in __get_result │ │
│ │ │ │
│ │ 398 │ def __get_result(self): │ │
│ │ 399 │ │ if self._exception: │ │
│ │ 400 │ │ │ try: │ │
│ │ ❱ 401 │ │ │ │ raise self._exception │ │
│ │ 402 │ │ │ finally: │ │
│ │ 403 │ │ │ │ # Break a reference cycle with the exception in self._exception │ │
│ │ 404 │ │ │ │ self = None │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/thread.py:59 in run │ │
│ │ │ │
│ │ 56 │ │ │ return │ │
│ │ 57 │ │ │ │
│ │ 58 │ │ try: │ │
│ │ ❱ 59 │ │ │ result = self.fn(*self.args, **self.kwargs) │ │
│ │ 60 │ │ except BaseException as exc: │ │
│ │ 61 │ │ │ self.future.set_exception(exc) │ │
│ │ 62 │ │ │ # Break a reference cycle with the exception 'exc' │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coord │ │
│ │ inator.py:160 in _deploy_group │ │
│ │ │ │
│ │ 157 │ │ results: list[Any] = [None] * len(module_specs) │ │
│ │ 158 │ │ │ │
│ │ 159 │ │ def _deploy_group(dep: str) -> None: │ │
│ │ ❱ 160 │ │ │ deployed = self._managers[dep].deploy_parallel(specs_by_deployment[dep], b │ │
│ │ 161 │ │ │ for index, module in zip(indices_by_deployment[dep], deployed, strict=True │ │
│ │ 162 │ │ │ │ results[index] = module │ │
│ │ 163 │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/worker_manag │ │
│ │ er_python.py:163 in deploy_parallel │ │
│ │ │ │
│ │ 160 │ │ │ │
│ │ 161 │ │ try: │ │
│ │ 162 │ │ │ # item: (worker, module_class, global_config, kwargs) │ │
│ │ ❱ 163 │ │ │ return safe_thread_map( │ │
│ │ 164 │ │ │ │ assignments, │ │
│ │ 165 │ │ │ │ lambda item: RPCClient(item[0].deploy_module(item[1], item[2], item[3] │ │
│ │ 166 │ │ │ ) │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:84 in │ │
│ │ safe_thread_map │ │
│ │ │ │
│ │ 81 │ │ if on_errors is not None: │ │
│ │ 82 │ │ │ zipped = [(items[i], outcomes[i]) for i in range(len(items))] │ │
│ │ 83 │ │ │ return on_errors(zipped, successes, errors) # type: ignore[no-any-return] │ │
│ │ ❱ 84 │ │ raise ExceptionGroup("safe_thread_map failed", errors) │ │
│ │ 85 │ │ │
│ │ 86 │ return [outcomes[i] for i in range(len(items))] # type: ignore[misc] │ │
│ │ 87 │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ExceptionGroup: safe_thread_map failed (1 sub-exception) │
│ │
│ ╭────────────────────────────────────── Sub-exception #1 ──────────────────────────────────────╮ │
│ │ ╭─────────────────────────── Traceback (most recent call last) ────────────────────────────╮ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:6 │ │ │
│ │ │ 8 in safe_thread_map │ │ │
│ │ │ │ │ │
│ │ │ 65 │ │ for fut in as_completed(futures): │ │ │
│ │ │ 66 │ │ │ idx = futures[fut] │ │ │
│ │ │ 67 │ │ │ try: │ │ │
│ │ │ ❱ 68 │ │ │ │ outcomes[idx] = fut.result() │ │ │
│ │ │ 69 │ │ │ except Exception as e: │ │ │
│ │ │ 70 │ │ │ │ outcomes[idx] = e │ │ │
│ │ │ 71 │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/_base.py:449 in result │ │ │
│ │ │ │ │ │
│ │ │ 446 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │ │ │
│ │ │ 447 │ │ │ │ │ raise CancelledError() │ │ │
│ │ │ 448 │ │ │ │ elif self._state == FINISHED: │ │ │
│ │ │ ❱ 449 │ │ │ │ │ return self.__get_result() │ │ │
│ │ │ 450 │ │ │ │ │ │ │
│ │ │ 451 │ │ │ │ self._condition.wait(timeout) │ │ │
│ │ │ 452 │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/_base.py:401 in __get_result │ │ │
│ │ │ │ │ │
│ │ │ 398 │ def __get_result(self): │ │ │
│ │ │ 399 │ │ if self._exception: │ │ │
│ │ │ 400 │ │ │ try: │ │ │
│ │ │ ❱ 401 │ │ │ │ raise self._exception │ │ │
│ │ │ 402 │ │ │ finally: │ │ │
│ │ │ 403 │ │ │ │ # Break a reference cycle with the exception in self._exception │ │ │
│ │ │ 404 │ │ │ │ self = None │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/thread.py:59 in run │ │ │
│ │ │ │ │ │
│ │ │ 56 │ │ │ return │ │ │
│ │ │ 57 │ │ │ │ │
│ │ │ 58 │ │ try: │ │ │
│ │ │ ❱ 59 │ │ │ result = self.fn(*self.args, **self.kwargs) │ │ │
│ │ │ 60 │ │ except BaseException as exc: │ │ │
│ │ │ 61 │ │ │ self.future.set_exception(exc) │ │ │
│ │ │ 62 │ │ │ # Break a reference cycle with the exception 'exc' │ │ │
│ │ │ │ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/worker_m │ │ │
│ │ │ anager_python.py:165 in │ │ │
│ │ │ │ │ │
│ │ │ 162 │ │ │ # item: (worker, module_class, global_config, kwargs) │ │ │
│ │ │ 163 │ │ │ return safe_thread_map( │ │ │
│ │ │ 164 │ │ │ │ assignments, │ │ │
│ │ │ ❱ 165 │ │ │ │ lambda item: RPCClient(item[0].deploy_module(item[1], item[2], ite │ │ │
│ │ │ 166 │ │ │ ) │ │ │
│ │ │ 167 │ │ except: │ │ │
│ │ │ 168 │ │ │ self.stop() │ │ │
│ │ │ │ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_w │ │ │
│ │ │ orker.py:242 in deploy_module │ │ │
│ │ │ │ │ │
│ │ │ 239 │ │ │ │ response: WorkerResponse = self._conn.recv() │ │ │
│ │ │ 240 │ │ │ │ │ │
│ │ │ 241 │ │ │ if response.error: │ │ │
│ │ │ ❱ 242 │ │ │ │ raise RuntimeError(f"Failed to deploy module: {response.error}") │ │ │
│ │ │ 243 │ │ │ │ │ │
│ │ │ 244 │ │ │ actor = Actor(self._conn, module_class, self._worker_id, module_id, se │ │ │
│ │ │ 245 │ │ │ actor.set_ref(actor).result() │ │ │
│ │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ RuntimeError: Failed to deploy module: RuntimeError: Failed to pull LFS file │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data/repo/data/.lfs/mujoco_sim │ │
│ │ .tar.gz: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/mujoco_sim.tar.gz']' │ │
│ │ returned non-zero exit status 2. │ │
│ │ Traceback (most recent call last): │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 164, in _lfs_pull │ │
│ │ subprocess.run( │ │
│ │ File │ │
│ │ "/home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/subprocess. │ │
│ │ py", line 571, in run │ │
│ │ raise CalledProcessError(retcode, process.args, │ │
│ │ subprocess.CalledProcessError: Command '['git', 'lfs', 'pull', '--include', │ │
│ │ 'data/.lfs/mujoco_sim.tar.gz']' returned non-zero exit status 2. │ │
│ │ │ │
│ │ During handling of the above exception, another exception occurred: │ │
│ │ │ │
│ │ Traceback (most recent call last): │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_work │ │
│ │ er.py", line 441, in _worker_loop │ │
│ │ response = _handle_request(request, state) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_work │ │
│ │ er.py", line 377, in _handle_request │ │
│ │ state.instances[module_id] = module_class(**kwargs) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/go2/connection. │ │
│ │ py", line 221, in init │ │
│ │ self.connection = make_connection(self.config.ip, self.config.g) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/go2/connection. │ │
│ │ py", line 128, in make_connection │ │
│ │ return MujocoConnection(cfg) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/mujoco_connecti │ │
│ │ on.py", line 75, in init │ │
│ │ get_data("mujoco_sim") │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 259, in get_data │ │
│ │ archive_path = _decompress_archive(_pull_lfs_archive(archive_name)) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 203, in _pull_lfs_archive │ │
│ │ _lfs_pull(file_path, repo_root) │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 171, in _lfs_pull │ │
│ │ raise RuntimeError(f"Failed to pull LFS file {file_path}: {e}") │ │
│ │ RuntimeError: Failed to pull LFS file │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data/repo/data/.lfs/mujoco_sim │ │
│ │ .tar.gz: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/mujoco_sim.tar.gz']' │ │
│ │ returned non-zero exit status 2. │ │
│ │ │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
⚠ smoke test exited with code 1 (may be expected headless)
🎉 installation complete!
Dimos failed smoke test as the LFS is not available
thanks