Skip to content

Commit

Permalink
Update Reset simulation tutorial (#2147)
Browse files Browse the repository at this point in the history
---------

Signed-off-by: Ian Chen <[email protected]>
  • Loading branch information
iche033 authored Sep 14, 2023
1 parent 839282a commit 2bef470
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions tutorials/reset_simulation.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,19 @@ In addition to the API, we have also expanded the simulation system API with a R
System authors may now choose to implement the Reset interface to have a more intelligent
reset process (avoiding reloading assets or regenerating scene graphs being the motivating examples).
Since this interface is opt-in, systems that don't implement the API will still be reset via destruction and reconstruction.
The [physics](https://github.com/gazebosim/gz-sim/blob/gz-sim8/src/systems/physics/Physics.cc#L928-L937) and [rendering systems](https://github.com/gazebosim/gz-sim/blob/gz-sim8/src/systems/scene_broadcaster/SceneBroadcaster.cc#L452-L458) are the first two to implement this optimized reset functionality, with more to come as it makes sense to.
The [physics](https://github.com/gazebosim/gz-sim/blob/23881936d93d335a2ad1086008416f1f36c3fdcc/src/systems/physics/Physics.cc#L919-L928) and [scene_broadcaster](https://github.com/gazebosim/gz-sim/blob/23881936d93d335a2ad1086008416f1f36c3fdcc/src/systems/scene_broadcaster/SceneBroadcaster.cc#L489-L495) systems are the first two to implement this optimized reset functionality, with more to come as it makes sense.

Following the tutorial \subpage createsystemplugins we should implement `ISystemReset` interface.
Follow the tutorial \subpage createsystemplugins to see how to support Reset by implementng the `ISystemReset` interface.

## Transport API

To call the reset transport API we should call the service `/world/default/control` and fill the request message type
`gz.msgs.WorldControl`, this service return a `gz.msgs.Boolean` with the status of the reset (true is everything was fine, false otherwise)
To invoke reset over transport API, we should call the service `/world/<world_name>/control` and fill the request message type
`gz.msgs.WorldControl`. This service returns a `gz.msgs.Boolean` with the status of the reset (true means everything was fine, false otherwise)

The `WorldControl` message now contains a reset field that we should filled if we want to reset the world:
The `WorldControl` message now contains a `reset` field for resetting the world:

```bash
# the world name is `default` in this example
gz service -s /world/default/control --reqtype gz.msgs.WorldControl --reptype gz.msgs.Boolean --timeout 3000 --req 'reset: {all: true}'
```

Expand Down

0 comments on commit 2bef470

Please sign in to comment.