dimensionalOS / dimensionalOS/dimos

DimSim sensors and movement do not work with Zenoh transport

Open
#4,124 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.