Open
Conversation
Add native DimSim bridge and nav blueprint for browser-based 3D simulation with LCM transport. Uses globally installed dimsim CLI (https://jsr.io/@antim/dimsim). - DimSimBridge (NativeModule) manages the dimsim subprocess - DimSimTF publishes transform tree from odom - sim-nav blueprint wires bridge + TF + voxel mapping + A* + frontier exploration Usage: dimos run sim-nav TODO: - General eval workflow integration - Test headless integration
82073b9 to
15526d4
Compare
Contributor
Author
|
@greptileai go for it |
dimos/robot/sim/tf_module.py
Outdated
Comment on lines
+172
to
+174
| def move(self, twist: Twist, duration: float = 0.0) -> bool: | ||
| """Send movement command to the simulator via cmd_vel.""" | ||
| self.cmd_vel.publish(twist) |
Contributor
There was a problem hiding this comment.
duration parameter is unused. Other move() implementations in the codebase (unitree, drone) use this to execute timed movements.
2 tasks
| }, | ||
| } | ||
|
|
||
| match global_config.viewer_backend: |
Collaborator
There was a problem hiding this comment.
I'd suggest we should be moving to a config that is not created at import time. To facilitate that in future, maybe this should all be wrapped into a function? Then if we remove the global_config variable in future this API wouldn't need to change.
- Remove out-of-order odom drop in tf_module — server-side physics publishes at 50Hz from a single source, timestamp filtering caused jitter by dropping near-identical timestamps over UDP multicast Sensor rates: - Odom: 50 Hz - Lidar: 10 Hz, 15,000 points, 4m range - RGB: 2 Hz, 960×432 JPEG - Depth: 2 Hz, 960×432 16UC1 Usage: dimos run sim-nav # normal DIMSIM_HEADLESS=1 DIMSIM_RENDER=gpu dimos run sim-nav # headless Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
|
TODO
|
…prints - bridge.py: download compiled binary from GitHub Releases (no Deno dependency), auto-symlink to ~/.local/bin, support DIMSIM_CONNECT_ONLY and DIMSIM_CHANNELS env vars for parallel eval instances - New e2e test: test_dimsim_nav.py — 6 smoke tests for sim-nav sensor pipeline (color, depth, odom, lidar, cmd_vel control, odom rate). Runs in CI with CPU rendering, force-kills port 8090 on setup/teardown to prevent leaks - Eval tests: EVALS_DIR now reads from ~/.dimsim/evals/ (installed by dimsim setup) instead of reaching into DimSim source tree. Added force-kill cleanup to both sequential and parallel eval fixtures - New sim blueprints: sim-agentic, sim-eval, sim-parallel-eval, sim-spatial, sim-temporal-memory - Simulation developer docs at docs/development/simulation.md
…merged # Conflicts: # dimos/robot/all_blueprints.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…wn, untrack generated artifacts - Fix global_config.viewer_backend → global_config.viewer (AttributeError) - Add @rpc decorator to DimSimBridge.start() override - Update self.config.executable after binary download in _maybe_build() - Add start_new_session=True to all test subprocess.Popen calls - Implement duration-based motion in DimSimTF.move() - Fix docstring filenames to match actual test file names - Untrack assets/temporal_memory/ and add to .gitignore
…it__.py files - Replace all removed shorthand aliases with ClassName.blueprint() pattern (CostMapper, VoxelGridMapper, ReplanningAStarPlanner, WavefrontFrontierExplorer, SpatialMemory, WebsocketVisModule, RerunBridgeModule, FoxgloveBridge) - Replace deleted dimos.agents.agent with MCP agent (McpServer + McpClient) - Replace dimos.perception.experimental.temporal_memory shorthand with direct import - Fix spec.Camera/Pointcloud import path (dimos.spec.perception) - Fix CameraInfo import (module vs class) - Fix LCM() constructor (remove autoconf param) - Fix rerun bridge import (RerunBridgeModule + _resolve_viewer_mode) - Remove all __init__.py files (not allowed in dimos) - Fix all_blueprints.py sorting and add dim-sim-bridge/dim-sim-tf modules - Add skipif_in_ci back to test_dimsim_nav (requires dimsim binary)
- Remove `from __future__ import annotations` from bridge.py and tf_module.py (broke Module port creation from type annotations) - Convert DimSimBridgeConfig from @DataClass to pydantic model (parent NativeModuleConfig is pydantic) - Fix all msg imports: use `from dimos.msgs.*.X import X` (module-level imports returned modules, not classes) - Replace `None` with named `_suppress` function in rerun visual_override (pydantic requires callable, lambdas not picklable) - Add missing PatrollingModule to sim_agentic blueprint - Fix os.killpg PermissionError on macOS in test teardown - Add venv bin to PATH in e2e test subprocess env
Fix update flow: prefer compiled binary over PATH in _resolve_paths(), always sync self.config.executable after version check, create symlink before running setup. Add eval creation section to simulation.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix update flow: prefer compiled binary over PATH in _resolve_paths(), always sync self.config.executable after version check, create symlink before running setup. Add eval creation section to simulation.md. Remove skipif_in_ci from test_dimsim_nav only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
|
@leshy summary of changes:
To try the tests out : |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.