dimensionalOS / dimensionalOS/dimos
DimSim sensors and movement do not work with Zenoh transport
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.5k
- Forks
- 808
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 233
Description
Problem
DimSim’s bridge publishes sensors and consumes movement commands over LCM. With DimOS using Zenoh, the scene renders, but camera, LiDAR, and odometry do not reach the Zenoh-based stack. Movement commands also lack a forwarding path.
Reproduction
dimos --transport zenoh --simulation dimsim --dimsim-scene=apartment --no-dimsim-headless run unitree-go2-agentic
Open http://localhost:8090/ and connect Rerun.
Actual: The scene renders, but simulated sensor data is absent from the Zenoh-based visualization/mapping stack.
Expected: Sensors and movement work with either supported transport.
Suspected cause
dimos/robot/unitree/dimsim_connection.py relies on the simulator publishing directly to shared LCM topics:
- Camera and LiDAR observable streams are not populated.
- The odometry subscription follows the selected transport rather than explicitly consuming simulator LCM.
move()returns success without forwarding commands.
Sensor absence was observed during local use; the missing Zenoh movement path was identified by code inspection.
Proposed fix
Bridge simulator LCM sensors into the active DimOS transport and forward movement commands back to LCM. Preserve TF/frame conventions and prevent duplicate publishing or feedback loops in LCM mode.
Acceptance criteria
- Camera, LiDAR, odometry, and TF reach Zenoh subscribers.
- Zenoh movement commands move the simulated robot.
- LCM mode remains functional without duplicate messages or loops.
- Subscriptions and transports shut down cleanly.
Workaround
Launch with --transport lcm or DIMOS_TRANSPORT=lcm.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the documented DimOS Zenoh reproduction command and read dimos/robot/unitree/dimsim_connection.py to trace simulator LCM sensor subscriptions, transport publishing, and movement handling. Done means camera, LiDAR, odometry, TF, and movement work over Zenoh, while LCM remains functional without duplicate messages or feedback loops and shutdown is clean.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- distributed-systems, robotics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100