Skip to content
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

Prevent hanging when world has only non-world plugins #1383

Merged
merged 5 commits into from Mar 19, 2022

Conversation

chapulina
Copy link
Contributor

🦟 Bug fix

Summary

When loading a world without any world plugins, we load a predefined set of plugins by default, see this tutorial. The problem is that if a world has some non-world plugin, such as a model plugin, then we were not loading those default world plugins. Which causes the UI to "hang", because there's no SceneBroadcaster, and the simulation not to do anything, because there's no Physics.

This PR makes sure that we load the default world plugins even if there are other plugins loaded.

Try it out

Before this PR, loading the added test world leaves an empty screen. With the PR, the UI shows the model and it moves.

ign gazebo test/worlds/model_plugin_only.sdf

Target branch

I targeted ign-gazebo6 to take advantage of the new SystemManager class introduced in #1340. This bug is also present in Citadel, so I'll think about a way of backporting the fix. I looked into backporting #1340 but it may depend on other non-backportable PRs.

Implementation detail

I noticed that the configureEntity variable wasn't being used. I took a quick look into the "reset" PRs, and didn't see how it was meant to be used. I changed its name for clarity and also I'm making sure it's used now. Let me know if this conflicts with any of the reset work, @mjcarroll @azeey .

Checklist

  • Signed all commits for DCO
  • Added tests
  • Updated documentation (as needed)
  • Updated migration guide (as needed)
  • codecheck passed (See contributing)
  • All tests passed (See test coverage)
  • While waiting for a review on your PR, please help review another open pull request to support the maintainers

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.

🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸

Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
@chapulina chapulina added the OOBE 📦✨ Out-of-box experience label Mar 10, 2022
@github-actions github-actions bot added the 🏯 fortress Ignition Fortress label Mar 10, 2022
@osrf-triage osrf-triage added this to Inbox in Core development Mar 10, 2022
@chapulina chapulina moved this from Inbox to In review in Core development Mar 10, 2022
Signed-off-by: Louise Poubel <louise@openrobotics.org>
@codecov
Copy link

codecov bot commented Mar 10, 2022

Codecov Report

Merging #1383 (2a29ccd) into ign-gazebo6 (65fcbfd) will increase coverage by 0.01%.
The diff coverage is 100.00%.

❗ Current head 2a29ccd differs from pull request most recent head ba93cb1. Consider uploading reports for the commit ba93cb1 to get more accurate results

@@               Coverage Diff               @@
##           ign-gazebo6    #1383      +/-   ##
===============================================
+ Coverage        62.96%   62.98%   +0.01%     
===============================================
  Files              301      301              
  Lines            24244    24256      +12     
===============================================
+ Hits             15266    15277      +11     
- Misses            8978     8979       +1     
Impacted Files Coverage Δ
src/SimulationRunner.cc 92.08% <100.00%> (+0.01%) ⬆️
src/SystemInternal.hh 100.00% <100.00%> (ø)
src/SystemManager.cc 100.00% <100.00%> (ø)
src/systems/wheel_slip/WheelSlip.cc 64.95% <0.00%> (-0.86%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 65fcbfd...ba93cb1. Read the comment docs.

@chapulina chapulina merged commit 3106687 into ign-gazebo6 Mar 19, 2022
@chapulina chapulina deleted the chapulina/6/796 branch March 19, 2022 00:10
Core development automation moved this from In review to Done Mar 19, 2022
@chapulina chapulina moved this from Done to Highlights in Core development Mar 21, 2022
chapulina added a commit that referenced this pull request Apr 13, 2022
* GzSceneManager: Prevent crash 💥 when inserted from menu (#1371)

Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: ahcorde <ahcorde@gmail.com>

Co-authored-by: ahcorde <ahcorde@gmail.com>

* Prepare version 6.7.0 (#1373)

* Prepare version 6.7.0

Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>

* Populate GUI plugins that are empty (#1375)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Fix visualization python tutorial (#1377)

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Add xyz and rpy offset to published odometry pose (#1341)

* Added xyz and rpy offset to published pose

Signed-off-by: Aditya <aditya050995@gmail.com>

* Added headless rendering tutorial (#1386)

* Added headless rendering tutorial

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Update tutorials/headless_rendering.md

Co-authored-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Update tutorials/headless_rendering.md

Co-authored-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Mention ogre2

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Added note about software rendering

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* add 'on linux systems'

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Add xyz and rpy offset to published odometry pose (#1341)

* Added xyz and rpy offset to published pose

Signed-off-by: Aditya <aditya050995@gmail.com>
Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>
Co-authored-by: Louise Poubel <louise@openrobotics.org>
Co-authored-by: Aditya Pande <aditya050995@gmail.com>

* Allow to turn on/off lights (#1343)

Signed-off-by: ahcorde <ahcorde@gmail.com>
Co-authored-by: Louise Poubel <louise@openrobotics.org>

* Add gazebo Entity id to rendering sensor's user data (#1381)

Adds the gazebo::Entity id to a rendering::Sensor's UserData object. The main use case is so that we can get back the corresponding gazebo Entity in the rendering thread when processing sensors.

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

Co-authored-by: Nate Koenig <nkoenig@users.noreply.github.com>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* Don't mark entities with a ComponentState::NoChange component as modified (#1391)

Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>

* Disable ModelCommandAPI_TEST.RgbdCameraSensor on macOS (#1397)

Disabling test since it's very flaky.

Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>

* Disable PeerTracker.PeerTrackerStale on macOS (#1398)

Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>

* Toggle Light visuals (#1387)

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Prevent hanging when world has only non-world plugins (#1383)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* Component inspector: refactor Pose3d C++ code into a separate class (#1400)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* add initial_position param to joint controller system (#1406)

Similar to the <initial_position> parameter in the JointTrajectoryController system, this PR adds an <initial_position> parameter to the JointPositionController to let users specifies the initial target pos for a joint.

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

* Fix JointStatePublisher topic name for nested models (#1405)

The joint-state-publisher system currently assumes it's always attached to the top level model and hence generates an incorrect topic name for nested models. This PR updates it to generate the correct topic name.

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

* Added user command to set multiple entities (#1394)

Signed-off-by: ahcorde <ahcorde@gmail.com>
Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Louise Poubel <louise@openrobotics.org>

* Disable tests that are expected to fail on Windows (#1408)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Fortress: Install Ogre 2.2, simplify docker (#1395)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* SceneBroadcaster: only send changed state information for change events (#1392)

Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>

Co-authored-by: Louise Poubel <louise@openrobotics.org>

* Add wheel slip user command (#1241)

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Distortion camera integration test (#1374)

Signed-off-by: William Lew <WilliamMilesLew@gmail.com>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
Co-authored-by: Louise Poubel <louise@openrobotics.org>

* Add the Model Photo Shoot system, port of Modelpropshop plugin from Gazebo classic (#1331)

This system can be used to generate thumbnails of models. In comparison to the Modelpropshop plugin in Gazebo classic, this adds the ability to generate thumbnails after randomizing the joint positions of the model.

Signed-off-by: Marco A. Gutierrez <marco@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>

* Referring to Fuel assets within a heightmap (#1419)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Disable sensors in sensors system when battery is drained (#1385)

Added a new parameter <disable_on_drained_battery> to the sensors system. If set to true, sensors will be disabled if the model is out of battery.

It listens to the battery state of charge from the battery plugin, and if the charge reaches zero, all child sensors and nested sensors are set to be inactive.

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

* 🏁🎈 5.4.0 (#1420)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* ServerConfig accepts an sdf::Root DOM object (#1333)

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>
Co-authored-by: Michael Carroll <michael@openrobotics.org>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* Preparing 6.8.0 release (#1425)

* Prepareing 6.8.0 release

Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>

* Update changelog after merging forward port

Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>

* Add Gaussian noise to Odometry Publisher (#1393)

* Added gaussian noise and odometry with covariance publisher

Signed-off-by: Aditya <aditya050995@gmail.com>

Co-authored-by: Louise Poubel <louise@openrobotics.org>

* Fix deprecation warnings for ModelPhotoShoot (#1437)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: ahcorde <ahcorde@gmail.com>
Co-authored-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Co-authored-by: Aditya Pande <aditya050995@gmail.com>
Co-authored-by: Nate Koenig <nkoenig@users.noreply.github.com>
Co-authored-by: Nate Koenig <nate@openrobotics.org>
Co-authored-by: Ian Chen <ichen@osrfoundation.org>
Co-authored-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
Co-authored-by: Addisu Z. Taddese <addisu@openrobotics.org>
Co-authored-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
Co-authored-by: William Lew <WilliamMilesLew@gmail.com>
Co-authored-by: Marco A. Gutiérrez <marcogg@marcogg.com>
Co-authored-by: Michael Carroll <michael@openrobotics.org>
@osrf-triage
Copy link

This pull request has been mentioned on Gazebo Community. There might be relevant details there:

https://community.gazebosim.org/t/new-ignition-releases-2022-04-13-fortress-edifice/1367/1

@j-rivero j-rivero removed this from Highlights in Core development May 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏯 fortress Ignition Fortress OOBE 📦✨ Out-of-box experience
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants