Skip to content

Feature/mujoco reset localization - #1112

Open
BloodWork44 wants to merge 2 commits into
mainfrom
feature/mujoco_reset_localization
Open

BloodWork44 wants to merge 2 commits into
mainfrom
feature/mujoco_reset_localization

Conversation

@BloodWork44

Copy link
Copy Markdown
Contributor

Summary

The localization is now notified when the simulator is reset.

Proposed changes

The domain bridge doesn't support services or actions out of the box. ros2/domain_bridge#82 adds this support, which lets us call the localization reset service over the domain bridge.

Related issues

Mujoco Simulator Reset - #852

Checklist

  • Run pixi run build
  • Write documentation
  • Test on your machine
  • Test on multi robot simulation
  • Create issues for future work
  • Triage this PR and label it

Cornelius Krupp and others added 2 commits October 24, 2026 19:22
include:
  subdir: "src/lib/domain_bridge"
  remote: "ssh://git@github.com/bit-bots/domain_bridge"
  branch: "main"
  commit: "a988587e9e664c46710cf90436907b60ee1caea8"
git-include-version: 0.1.4
@github-project-automation github-project-automation Bot moved this to 🆕 New in Software Oct 25, 2026
@BloodWork44
BloodWork44 requested review from jaagut and removed request for jgueldenstein October 25, 2026 12:07
@Flova

Flova commented Oct 25, 2026

Copy link
Copy Markdown
Member

I think calling services one to many is a fundermental problem, as they are build to be 1to1 because the caller gets exactly one response.

@MegaIng

MegaIng commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

What do you mean with "one to many"?

The simulator does as many individual 1to1 service calls as there are robots, each robot's service gets mapped to a different service in the many domain id.

@Flova

Flova commented Oct 25, 2026

Copy link
Copy Markdown
Member

Ah okay nvm this makes more sense. I only looked at the description not at the code tbh..

@jaagut

jaagut commented Oct 30, 2026

Copy link
Copy Markdown
Member

Tested this in multi-robot simulation: localization reset generally works after forcing regeneration of the domain bridge's generated dispatcher. Thanks!

It needs the follow-up #1116, stacked on this branch, which imports bit-bots/domain_bridge#1 via git-include.

Why: the bridge discovers supported service/action types at build time. Without a declared dependency on bitbots_localization, it can build before ResetFilter is installed. The generated dispatcher can then remain stale even after rebuilding with --cmake-force-configure, because its generation rule only depended on the generator script and template. That produces Failed to add service bridge for service reset_localization at bridge startup, followed by the simulator reporting localization unavailable despite it running in each robot domain.

The follow-up fixes build ordering, refreshes discovery on each build without rewriting unchanged output, and fails early if the required reset interface is missing. It also adds generator regressions and a remapped cross-domain reset service test; the service tests passed with Cyclone DDS, Fast DDS (static and dynamic), and Zenoh.

Please include #1116 before merging this PR so users do not need the manual regeneration workaround.

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

Labels

None yet

Projects

Status: 🆕 New

Development

Successfully merging this pull request may close these issues.

4 participants