-
Notifications
You must be signed in to change notification settings - Fork 283
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
Use a std::promise/std::future to avoid busy waiting the step ack messages in NetworkManagerPrimary #470
Merged
chapulina
merged 3 commits into
gazebosim:ign-gazebo4
from
ivanpauno:ivanpauno/use-promise-waiting-for-step-ack
Dec 10, 2020
Merged
Use a std::promise/std::future to avoid busy waiting the step ack messages in NetworkManagerPrimary #470
chapulina
merged 3 commits into
gazebosim:ign-gazebo4
from
ivanpauno:ivanpauno/use-promise-waiting-for-step-ack
Dec 10, 2020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…sages Signed-off-by: Ivan Santiago Paunovic <[email protected]>
CC @chapulina for permissions |
caguero
changed the title
Use a std::promise/std::future to avoid busy waiting the step ack messages in NetworkManagetPrimary
Use a std::promise/std::future to avoid busy waiting the step ack messages in NetworkManagerPrimary
Dec 7, 2020
chapulina
approved these changes
Dec 10, 2020
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.
Towards the future! LGTM. I'll just make the style change below and get it in. Thanks!
Signed-off-by: Louise Poubel <[email protected]>
ivanpauno
added a commit
that referenced
this pull request
Jan 7, 2021
…sages in NetworkManagerPrimary (#470) Signed-off-by: Ivan Santiago Paunovic <[email protected]> Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Louise Poubel <[email protected]> Hacking the nectwork secondary loop to allow taking steps asynchronously Signed-off-by: Ivan Santiago Paunovic <[email protected]> tweaks so the secondary sends ack messages more eagerly, and 'goes ahead' more slowly Signed-off-by: Ivan Santiago Paunovic <[email protected]> Something that works with the distributed_levels demo Signed-off-by: Ivan Santiago Paunovic <[email protected]> Primary acks secondaries steps each N/2 Signed-off-by: Ivan Santiago Paunovic <[email protected]> Use real robots in the distributed levels world Signed-off-by: Ivan Santiago Paunovic <[email protected]> Speedup primary in distributed simulation Signed-off-by: Ivan Santiago Paunovic <[email protected]> Clenup NewtworkManagerPrimary::Step() code Signed-off-by: Ivan Santiago Paunovic <[email protected]> Primary indicates how many steps secondaries can move ahead Signed-off-by: Ivan Santiago Paunovic <[email protected]> Scripts to run the distributed_levels simulation with N robots and M secondaries Signed-off-by: Ivan Santiago Paunovic <[email protected]> Record statistics with ign_imgui Signed-off-by: Ivan Santiago Paunovic <[email protected]> Delete unrelated file Signed-off-by: Ivan Santiago Paunovic <[email protected]>
Lobotuerk
added a commit
to Lobotuerk/ign-gazebo
that referenced
this pull request
Jan 11, 2021
* Initial commit Signed-off-by: Martiño Crespo <[email protected]> * Added plugin files Signed-off-by: Martiño Crespo <[email protected]> * Initial .sdf file Signed-off-by: Martiño Crespo <[email protected]> * Pipeline for getting sensor contacts Signed-off-by: Martiño Crespo <[email protected]> * Added visualization of postion and forces Signed-off-by: Martiño Crespo <[email protected]> * Added plugin for Transform Control Signed-off-by: Martiño Crespo <[email protected]> * Added initial interpolation Signed-off-by: Martiño Crespo <[email protected]> * Code check Signed-off-by: Martiño Crespo <[email protected]> * Update info after specified milliseconds Signed-off-by: Martiño Crespo <[email protected]> * Set marker lifetime for better performance Signed-off-by: Martiño Crespo <[email protected]> * Added Depth Camera Signed-off-by: Martiño Crespo <[email protected]> * Added callback and unpacking to Depth Camera messages Signed-off-by: Martiño Crespo <[email protected]> * Compute and visualize normal forces Signed-off-by: Martiño Crespo <[email protected]> * PR Feedback 1 Signed-off-by: Martiño Crespo <[email protected]> * Update sdf example to a more realistic environment Signed-off-by: Martiño Crespo <[email protected]> * Allow moving Depth Camera from model origin Signed-off-by: Martiño Crespo <[email protected]> * Make markers dimensions available as parameters Signed-off-by: Martiño Crespo <[email protected]> * Visualize sensor as a marker instead of <visual> and filter out normal forces outside sensor Signed-off-by: Martiño Crespo <[email protected]> * PR Feedback 2 Signed-off-by: Martiño Crespo <[email protected]> * PR Feedback 3 Signed-off-by: Martiño Crespo <[email protected]> * Minor fixes for sdf, sensor marker and profiler Signed-off-by: Martiño Crespo <[email protected]> * PR Feedback 4 Signed-off-by: Martiño Crespo <[email protected]> * fix mac warning Signed-off-by: Mabel Zhang <[email protected]> * Helper function to set component data (gazebosim#436) Signed-off-by: Louise Poubel <[email protected]> * Remove unneeded if statement (gazebosim#432) Signed-off-by: John Shepherd <[email protected]> * Fixes flaky RecordAndPlayback test in INTEGRATION_log_system (gazebosim#463) The flakiness comes from two sources: 1. Poses recorded by the LogRecorder are published by the SceneBroadcaster system throttled at 60 Hz. The throttle mechanism uses real-time instead of sim-time which causes a variance in the number of recorded poses from run to run. However, the expected number of recorded poses was calculated with the assumption that the simulation would run with a 1.0 RTF. If the CPU load is high, there could be a mismatch between the expected and the actual number of recorded poses, which causes the test to fail. This can be checked by running the test with `cpulimit -l 20 -f bin/INTEGRATION_log_system -- --gtest_filter="*RecordAndPlayback"` 2. An attempt is made to match up played back poses with the closest timestamp in the recorded file. These poses are again published by the SceneBroadcaster, so they are subject to the same kind of timing issues as the recorded poses. The solution in this patch for the first issue is to determine the expected number of recorded poses by counting them in a separate system that mimics the throttling mechanism of ign-transport. For the second issue, a testing system is added to the playback server bypassing the SceSceneBroadcaster altogether. Signed-off-by: Addisu Z. Taddese <[email protected]> * Make PeerTracker test more robust (gazebosim#452) Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Michael Carroll <[email protected]> * Clarify how sim time is interpreted in a System's step (gazebosim#467) Signed-off-by: Ashton Larkin <[email protected]> * 3 ➡️ 4: fixes for gazebosim#463 (gazebosim#469) Signed-off-by: Louise Poubel <[email protected]> * Link link tutrial (gazebosim#472) Signed-off-by: Louise Poubel <[email protected]> * Switch to async state service request (gazebosim#461) Signed-off-by: Ian Chen <[email protected]> * Use a std::promise/std::future to avoid busy waiting the step ack messages in NetworkManagerPrimary (gazebosim#470) Signed-off-by: Ivan Santiago Paunovic <[email protected]> Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Fix tests that use Fuel paths with uppercase letters (gazebosim#480) As of gazebosim/gz-fuel-tools#130, fuel paths use all lowercase letters. This fixes some tests that had uppercase letters. Signed-off-by: Addisu Z. Taddese <[email protected]> * 4.1.0 (gazebosim#485) Signed-off-by: Ashton Larkin <[email protected]> * Update key event handling (gazebosim#466) Signed-off-by: John Shepherd <[email protected]> * Fix slot in Plotting plugin (gazebosim#490) Signed-off-by: Alejandro Hernández <[email protected]> * Tape Measure Plugin (gazebosim#456) Signed-off-by: John Shepherd <[email protected]> * Satisfy make codecheck (gazebosim#491) Signed-off-by: Louise Poubel <[email protected]> * Move deselect and preview termination to render thread (gazebosim#493) Signed-off-by: John Shepherd <[email protected]> * Fix codecheck (gazebosim#499) Signed-off-by: Nate Koenig <[email protected]> Co-authored-by: Nate Koenig <[email protected]> * Logical Audio Sensor Plugin (gazebosim#401) Signed-off-by: Ashton Larkin <[email protected]> * Codecheck - initialize primitive in LogicalAudio component (gazebosim#502) Signed-off-by: Ashton Larkin <[email protected]> * 3 to 4: fix codecheck for ign-gazebo4 Signed-off-by: Ashton Larkin <[email protected]> * 3 to 4: resolve codecheck warnings Signed-off-by: Ashton Larkin <[email protected]> * add frame_id and child_frame_id attribute support for DiffDrive (gazebosim#361) Add configuration of the odom frame_id and child_frame_id fields from sdf attributes <frame_id> and <child_frame_id> Signed-off-by: Guillaume <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> * Require ign-gui 4.1.0 (gazebosim#505) Signed-off-by: Louise Poubel <[email protected]> * Fix shadow artifacts by disabling double sided rendering (gazebosim#446) * read double sided sdf param Signed-off-by: Ian Chen <[email protected]> * update migration Signed-off-by: Ian Chen <[email protected]> * Make the tunnels example world more interesting (gazebosim#462) Signed-off-by: Louise Poubel <[email protected]> * add double sided msg to sdf conversion Signed-off-by: Ian Chen <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Add ability to record video based on sim time (gazebosim#414) * add ability to record video from gui camera using sim time Signed-off-by: Ian Chen <[email protected]> * add msg Signed-off-by: Ian Chen <[email protected]> * use QueryBoolText Signed-off-by: Ian Chen <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Add lockstep mode to video recording (gazebosim#419) Signed-off-by: Ian Chen <[email protected]> Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Kinetic energy monitor plugin (gazebosim#492) Signed-off-by: Gonzalo de Pedro <[email protected]> Signed-off-by: Nate Koenig <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Disable right click menu when using measuring tool (gazebosim#458) Signed-off-by: John Shepherd <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Bump to 3.6.0 (gazebosim#524) Signed-off-by: Louise Poubel <[email protected]> * Don't make docs on macOS (gazebosim#528) add comment about doxygen bug Signed-off-by: Louise Poubel <[email protected]> Signed-off-by: Steve Peters <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Updates to ardupilot migration tutorial (gazebosim#525) Signed-off-by: Louise Poubel <[email protected]> * Update gtest to 1.10.0 for Windows compilation (ign-gazebo3) (gazebosim#506) * Compile new gtest with c++11 * Use INSTANTIATE_TEST_SUITE_P instead of deprecated -INSTANTIATE_TEST_CASE_P Signed-off-by: Jose Luis Rivero <[email protected]> * Apply suggestions from code review Signed-off-by: Michael Carroll <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * change nullptr to a int ptr for qt 5.15.2 bug (gazebosim#527) See: https://bugreports.qt.io/browse/QTBUG-89114 Signed-off-by: acxz <[email protected]> Co-authored-by: Louise Poubel <[email protected]> Signed-off-by: Louise Poubel <[email protected]> * Generate valid topics everywhere (support names with spaces) (gazebosim#522) Signed-off-by: Louise Poubel <[email protected]> * One more tutorial version bump Signed-off-by: Michael Carroll <[email protected]> * Fix bad merge Signed-off-by: Michael Carroll <[email protected]> * change nullptr to a int ptr for qt 5.15.2 bug (gazebosim#527) See: https://bugreports.qt.io/browse/QTBUG-89114 Signed-off-by: acxz <[email protected]> Co-authored-by: Louise Poubel <[email protected]> Signed-off-by: Louise Poubel <[email protected]> * Generate valid topics everywhere (support names with spaces) (gazebosim#522) Signed-off-by: Louise Poubel <[email protected]> * Change deprecated test case->suite Signed-off-by: Michael Carroll <[email protected]> * 3 ➡️ 4 (gazebosim#533) * Clarify how sim time is interpreted in a System's step (gazebosim#467) * add frame_id and child_frame_id attribute support for DiffDrive (gazebosim#361) * Add ability to record video based on sim time (gazebosim#414) * add ability to record video from gui camera using sim time * add msg * use QueryBoolText * Add lockstep mode to video recording (gazebosim#419) * Disable right click menu when using measuring tool (gazebosim#458) * Bump to 3.6.0 (gazebosim#524) * Don't make docs on macOS (gazebosim#528) * Updates to ardupilot migration tutorial (gazebosim#525) * Update gtest to 1.10.0 for Windows compilation (ign-gazebo3) (gazebosim#506) * Compile new gtest with c++11 * Use INSTANTIATE_TEST_SUITE_P instead of deprecated -INSTANTIATE_TEST_CASE_P * Apply suggestions from code review * One more tutorial version bump * Fix bad merge * change nullptr to a int ptr for qt 5.15.2 bug (gazebosim#527) * Generate valid topics everywhere (support names with spaces) (gazebosim#522) * Change deprecated test case->suite Co-authored-by: Ashton Larkin <[email protected]> Co-authored-by: G.Doisy <[email protected]> Co-authored-by: Ian Chen <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Louise Poubel <[email protected]> Co-authored-by: John Shepherd <[email protected]> Co-authored-by: Steve Peters <[email protected]> Co-authored-by: Jose Luis Rivero <[email protected]> Co-authored-by: Akash Patel <[email protected]> * Add support for topic statistics on breadcrumb deployments (gazebosim#532) * Add support for topic statistics on breadcrumb deployments Signed-off-by: Nate Koenig <[email protected]> * Require version 9.1 of ignition transport Signed-off-by: Nate Koenig <[email protected]> * Move to after mutex Signed-off-by: Nate Koenig <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Carlos Agüero <[email protected]> Co-authored-by: Martiño Crespo <[email protected]> Co-authored-by: Louise Poubel <[email protected]> Co-authored-by: Mabel Zhang <[email protected]> Co-authored-by: John Shepherd <[email protected]> Co-authored-by: Addisu Z. Taddese <[email protected]> Co-authored-by: Michael Carroll <[email protected]> Co-authored-by: Ashton Larkin <[email protected]> Co-authored-by: Ian Chen <[email protected]> Co-authored-by: Ivan Santiago Paunovic <[email protected]> Co-authored-by: Alejandro Hernández Cordero <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: G.Doisy <[email protected]> Co-authored-by: Gonzo <[email protected]> Co-authored-by: Steve Peters <[email protected]> Co-authored-by: Jose Luis Rivero <[email protected]> Co-authored-by: Akash Patel <[email protected]> Co-authored-by: Carlos Agüero <[email protected]>
chapulina
added a commit
that referenced
this pull request
Mar 9, 2021
…sages in NetworkManagerPrimary (#470) Signed-off-by: Ivan Santiago Paunovic <[email protected]> Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Louise Poubel <[email protected]>
chapulina
added a commit
that referenced
this pull request
Mar 10, 2021
…sages in NetworkManagerPrimary (#470) Signed-off-by: Ivan Santiago Paunovic <[email protected]> Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Louise Poubel <[email protected]>
chapulina
added a commit
that referenced
this pull request
Mar 10, 2021
…sages in NetworkManagerPrimary (#470) Signed-off-by: Ivan Santiago Paunovic <[email protected]> Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Louise Poubel <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Minimal improvement, mainly intended to get used to the development cycle.
This PR avoids busy waiting in a loop until all
stepAck
messages are received by instead using a std::promise/std::future as a notification mechanism.I tested this with the
distributed_levels
example, seems to be working fine.colcon test
was also run locally,INTEGRATION_diff_drive_system
andINTEGRATION_wheel_slip
are failing but seemed unrelated (they also fail when I useign-gazebo4
branch).Note: I don't have push access to the repo, so I'm working from a fork. It would be nice to get access, so I can add reviewers/labels appropriately.
maybe @mjcarroll can take a look