-
Notifications
You must be signed in to change notification settings - Fork 272
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds support for ISystemReset
in test fixture
#2647
base: main
Are you sure you want to change the base?
Conversation
This PR adds support for the Reset API to the test fixture. As `TestFixture` is one of the main ways one can get access to the ECM in python when trying to write some scripts for Deep Reinforcement Learning I realized that without `Reset` supported in the `TestFixture` API, end users would have a very hard time using our python APIs (which are actually quite nice). For reference I'm hacking a demo template here: https://github.com/arjo129/gz_deep_rl_experiments/tree/ionic Signed-off-by: Arjo Chakravarty <[email protected]>
This allows us to reset simulations without having to call into gz-transport making the code more readable from an external API. Depends on #2647 Signed-off-by: Arjo Chakravarty <[email protected]>
ISystemReset
in test fixture
src/TestFixture.cc
Outdated
return *this; | ||
} | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Signed-off-by: Arjo Chakravarty <[email protected]>
Upon further examination I think this may break ABI cause we are adding a base class. I probably should port this to Gazebo J. |
} | ||
), | ||
pybind11::return_value_policy::reference, | ||
"Wrapper around a system's post-update callback" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Wrapper around a system's post-update callback" | |
"Wrapper around a system's reset callback" |
@@ -96,6 +96,12 @@ class GZ_SIM_VISIBLE TestFixture | |||
public: TestFixture &OnPostUpdate(std::function<void( | |||
const UpdateInfo &, const EntityComponentManager &)> _cb); | |||
|
|||
/// \brief Wrapper around a system's update callback | |||
/// \param[in] _cb Function to be called every update |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/// \param[in] _cb Function to be called every update | |
/// \param[in] _cb Function to be called every reset |
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🎉 New feature
Closes #
Summary
This PR adds support for the Reset API to the test fixture. As
TestFixture
is one of the main ways one can get access to the ECM in python when trying to write some scripts for Deep Reinforcement Learning I realized that withoutReset
supported in theTestFixture
API, end users would have a very hard time using our python APIs (which are actually quite nice). For reference I'm hacking a demo template here (its still barebones):https://github.com/arjo129/gz_deep_rl_experiments/tree/ionic
Test it
I've added a test in #2648, but that includes some additional APIs to improve usability.
Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
messages.