gazebosim / gz-sim

Open source robotics simulator. The latest version of Gazebo.
https://gazebosim.org
Apache License 2.0
669 stars 262 forks source link

Gazebo emits the error message: "Tried to convert SDF [world] into [plugin]" #1555

Closed azeey closed 1 year ago

azeey commented 2 years ago

Environment

Description

Steps to reproduce

  1. Run INTEGRATION_diff_drive test

Output

Repeated output of

[Err] [Conversions.cc:1757] Tried to convert SDF [world] into [plugin]
AndrejOrsula commented 1 year ago

Hello,

I am encountering a similar error message in my project after upgrading Gazebo Fortress Sim (ignition-gazebo6) from 6.9 to anything newer (tested with source build 6.10 and binary install 6.12). The issue is likely related to something specific in my application - so reading my reply might not be useful, but I thought I would share some info here in case someone else encounters a similar problem.

I get the same error message, and my simulation does not start successfully. It appears that the execution halts right before or during the first simulation step. There are no additional debug/warning/error messages that would indicate the issue originated from somewhere else, but I am not certain. I have not investigated the issue in depth.

I believe the regression is related to the changes of source code contained within this repository sometimes after commit https://github.com/gazebosim/gz-sim/commit/2938ede79feeb0fb1638370b910f06fb530be0ee (6.9) because I can upgrade all other Gazebo libraries (besides libignition-gazebo6 and libignition-launch5) and my application works fine. To test this, I am using a pre-built Docker image with my application that contains libignition-gazebo6:amd64=6.9.0-1~focal. As soon as I upgrade it to the new (and only) available version on apt (6.12.0-1~focal), I encounter the problematic behaviour. Similarly, if I build the Docker image from scratch (using the latest releases of every package), my application works again only if I compile this repository (branch ign-gazebo6) from the source using https://github.com/gazebosim/gz-sim/commit/2938ede79feeb0fb1638370b910f06fb530be (6.9). I have not tested/investigated what is the last commit that works for me, yet.


Maybe not the best place to discuss this, but I am looking for a suggestion on a related point. I want to make my Docker builds containing Gazebo more reproducible. Could somebody recommend me a simple way of fixing the versions of all Gazebo libraries to a specific date/commit? I would like each build to always use the same version of the code rather than a fortress collection that might eventually get updated. Binary installation does not seem to be possible as only the last released build is available on apt. I am fine with building all Gazebo libraries from source. Using gazebodistro only links to a specific branch. It seems too tedious to specify the exact commit hash for each repository (or even forking them). Are there any other suggestions? Thank you