Skip to content

[pull] main from gazebosim:main#60

Merged
pull[bot] merged 1 commit into
MRE-Code-Hub:mainfrom
gazebosim:main
Jun 17, 2026
Merged

[pull] main from gazebosim:main#60
pull[bot] merged 1 commit into
MRE-Code-Hub:mainfrom
gazebosim:main

Conversation

@pull

@pull pull Bot commented Jun 17, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

## Summary
During the reset audit, the `Buoyancy` plugin failed the tests. After an environment reset, the model didn’t consistently return to its early-episode trajectory.

## Test logic
1. Recorded an early trajectory window of a model in `graded_buoyancy.sdf` before resetting.
2. Let the simulation run for a while, ensuring the system moves explicitly away from its initial state.
3. Executed a world reset.
4. Recorded the post-reset trajectory for the exact same early-episode time window.
5. Compared both trajectories to ensure they match identically, confirming whether the reset successfully brought the system back to a clean initial state.

## Root cause
The issue stems from how `Buoyancy` tracks the running state of links. It originally relied on the `EachNew` entity scan to fetch and cache components like `Volume` and `CenterOfVolume`. When the world resets, the entities are restored but they aren't strictly considered "new" again by the `ECM`. This led to broken buoyancy states where required components couldn't be reliably rebuilt on reset.

## Fix logic
1. Add ISystemReset for the `Buoyancy`
2. Clear the cached states: `centerOfVolumes`,`volumes` and `buoyancyForces`
3. Introduce a `rescanEntities` flag. Once a reset occurs, this flag triggers a fresh, full entity component scan in the very next `PreUpdate` step, gracefully recovering the required runtime components.
Signed-off-by: momo <2438833481@qq.com>

* remove unusable variable

Signed-off-by: momo <2438833481@qq.com>

* reinside common helper and change to ResetAll to observe behaviours

Signed-off-by: momo <2438833481@qq.com>

* remove wrapper and clear the design edge

Signed-off-by: momo <2438833481@qq.com>

* remove MsgReceiver and use Subscription.hh

Signed-off-by: momo <2438833481@qq.com>

* fix reset_sensors

Signed-off-by: momo <2438833481@qq.com>

* add reset test for Buoyancy

Signed-off-by: momo <2438833481@qq.com>

* Fix Buoyancy Reset

Signed-off-by: momo <2438833481@qq.com>

* use ResetAll() to reset

Signed-off-by: momo <2438833481@qq.com>

---------

Signed-off-by: momo <2438833481@qq.com>
@pull pull Bot locked and limited conversation to collaborators Jun 17, 2026
@pull pull Bot added the ⤵️ pull label Jun 17, 2026
@pull pull Bot merged commit 9ed5127 into MRE-Code-Hub:main Jun 17, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Development

Successfully merging this pull request may close these issues.

1 participant