Skip to content

DimSim sensors and movement do not work with Zenoh transport #4124

Description

@ruthwikdasyam

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions