Hi there,
I’m currently using Gazebo Fortress with the SubT Simulator, and the models in the world are taking up to 10 minutes to load with a medium complexity map. I have the models saved locally in the standard cache location (.ignition/fuel/fuel.ignitionrobotics.org/openrobotics/models) and the cache files are accessed only after Ogre 2.2 times out when attempting to load texture & deletes the buffer memory.
This issue doesn’t occur with Ignition Dome, and the map loads normally with Ignition Dome.
This is likely a physics engine related problem, as Ignition Dome doesn’t use Ogre2. The log from Ogre2 when the map is being loaded says the following:
“17:33:42: Can’t assign material scene::Material(55155) because this Material does not exist. Have you forgotten to define it in a .material script?
17:33:42: Can’t assign material scene::Material(55154) because this Material does not exist. Have you forgotten to define it in a .material script?
17:33:42: WARNING: Deleting mapped buffer without having it unmapped. This is often sign of a resource leak or a bad pattern. Umapping the buffer for you…”
Once the buffer is unmapped, the scene loads.
Possible Causes:
- Ogre2 has an issue loading textures
- There is an issue with namespace changes from ignition::gazebo to gz::sim
- There is a problem with the setup of the Ignition Fortress & Ignition Fuel
Related errors occur:
- EGL related
" 17:28:41: Trying to init device: EGL_EXT_device_drm /dev/dri/card0…
17:28:41: Created GL 4.5 context for device EGL_EXT_device_drm /dev/dri/card0
17:28:41: Destroying device: EGL_EXT_device_drm /dev/dri/card0…
17:28:41: EGL Device: EGL_EXT_device_drm /dev/dri/card1
17:28:41: Trying to init device: EGL_EXT_device_drm /dev/dri/card1…
17:28:41: OGRE EXCEPTION(3:RenderingAPIException): eglInitialize failed for device EGL_EXT_device_drm [ /dev/dri/card1 in EGLSupport::getGLDisplay at /var/lib/jenkins/workspace/ogre-2.2-debbuilder/repo/RenderSystems/GL3Plus/src/windowing/EGL/PBuffer/OgreEglPBufferSupport.cpp (line 322)
17:28:41: OGRE EXCEPTION(3:RenderingAPIException): eglInitialize failed for device EGL_EXT_device_drm /dev/dri/card1 in EGLSupport::getGLDisplay at /var/lib/jenkins/workspace/ogre-2.2-debbuilder/repo/RenderSystems/GL3Plus/src/windowing/EGL/PBuffer/OgreEglPBufferSupport.cpp (line 322)
17:28:41: Destroying device: EGL_EXT_device_drm /dev/dri/card1…
17:28:41: EGL Device: EGL_MESA_device_software
17:28:41: Trying to init device: EGL_MESA_device_software…
17:28:41: Created GL 3.3 context for device EGL_MESA_device_software [
17:28:41: Destroying device: EGL_MESA_device_software…
17:28:41: EGL Device: EGL_MESA_device_software
17:28:41: Trying to init device: EGL_MESA_device_software…
17:28:41: Created GL 3.3 context for device EGL_MESA_device_software
17:28:41: Destroying device: EGL_MESA_device_software …"
Could be caused by a graphics card issue, or this may be a red herring.
2. Level manager error:
[Err] [LevelManager.cc:218] Could not find a plugin tag with name gz::sim. Levels and distributed simulation will not work.
Found that it’s likely benign and can be ignored - Launch ignition through network issue · Issue #1350 · gazebosim/gz-sim · GitHub
Things I have tried:
- Saved cache files in different likely locations, and edited multiple environment variables of gazebo to point towards the files
- Set the uri of all the models that are being pointed towards, to be towards the local versions using model:// syntax
- Compiled Ignition Fuel from source with debug mode on and debugged it using GDB. Tried multiple versions, and the code is pretty box standard from what I can tell.
- Installing different versions of Ignition Gazebo
- Using Ogre1. Ogre1 did the same thing without the material error in the log, but the same time hanging whilst the models are being loaded into the world.
Any suggestions on where to go from here? I’ve tried everything I can think of and it’s really slowing my development time down! Thank you in advance for your help.