RGLGazeboPlugin icon indicating copy to clipboard operation
RGLGazeboPlugin copied to clipboard

Empty PointCloud2 Using Nvidia Driver 570

Open Infinite-Echo opened this issue 5 months ago • 3 comments

Description: I'm encountering an issue where the RGLGazeboPlugin publishes empty PointCloud2 messages. I have tried this on Gazebo Fortress and Harmonic (both on Ubuntu 22.04), and it occurs both when using the plugin through binary packages and when building from source.

System Info: OS: Ubuntu 22.04 GPU: GeForce RTX 3070 Mobile / Max-Q RAM: 64GB CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (16 cores)

What I’ve Tried:

  1. Gazebo Fortress on Ubuntu 22.04 installed through ROS repo
  2. Gazebo Harmonic on Ubuntu 22.04 installed using guide
  3. Built Gazebo Harmonic and the RGL libraries from inside a VS Code dev container

Results: All of the above attempts resulted in the same outcome, with no errors appearing; however, the /rgl_lidar and /rgl_lidar/world topics publish empty messages. I used the example sonoma_with_rgl.sdf provided to test.

Only feedback I get from Gazebo is by using the verbose flag where I get the following output:
[Msg] Gazebo Sim GUI    v8.9.0
[Msg] Received world [test_world.sdf] from the GUI.
[Msg] Gazebo Sim Server v8.9.0
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-echo'
[Msg] Loading SDF world file[/home/ws/test_world.sdf].
[Msg] Serving entity system service on [/entity/system/add]
[Mon Jul 14 23:33:40 2025]: Logging configured: level=info, file=(disabled), stdout=true
[23:33:40][    33 us][info]: RGL Version 0.20.0 branch=develop commitSHA1=d1ff3b6cf618518d60a4cc6acb9231e3aa9e9e28
[23:33:40][ 30057 us][info]: Running on GPU: NVIDIA GeForce RTX 3070 Laptop GPU
[23:33:40][    31 us][info]: Built against OptiX SDK version: 7.2.0
[23:33:40][     8 us][info]: Built against OptiX ABI version: 41
[23:33:40][     3 us][info]: Built against CUDA Toolkit version: 11.7
[23:33:40][    15 us][info]: Installed CUDA runtime version: 11.7
[23:33:40][     8 us][info]: Installed CUDA driver version: 12.8
[23:33:40][ 11150 us][info]: Installed NVidia kernel driver version: 570.158.01
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-physics-system]. Using [gz-sim-physics-system] instead.
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-sensors-system]. Using [gz-sim-sensors-system] instead.
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-user-commands-system]. Using [gz-sim-user-commands-system] instead.
[Msg] Create service on [/world/sonoma/create]
[Msg] Remove service on [/world/sonoma/remove]
[Msg] Pose service on [/world/sonoma/set_pose]
[Msg] Pose service on [/world/sonoma/set_pose_vector]
[Msg] Light configuration service on [/world/sonoma/light_config]
[Msg] Physics service on [/world/sonoma/set_physics]
[Msg] SphericalCoordinates service on [/world/sonoma/set_spherical_coordinates]
[Msg] Enable collision service on [/world/sonoma/enable_collision]
[Msg] Disable collision service on [/world/sonoma/disable_collision]
[Msg] Material service on [/world/sonoma/visual_config]
[Msg] Material service on [/world/sonoma/wheel_slip]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-scene-broadcaster-system]. Using [gz-sim-scene-broadcaster-system] instead.
[Wrn] [SdfEntityCreator.cc:933] Gazebo does not support Ogre material scripts. See https://gazebosim.org/api/sim/8/migrationsdf.html#:~:text=Materials for details.
[Wrn] [SdfEntityCreator.cc:949] Using an internal gazebo.material to parse Gazebo/Grey
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-ackermann-steering-system]. Using [gz-sim-ackermann-steering-system] instead.
[Msg] AckermannSteering subscribing to twist messages on [/cmd_vel]
[Msg] Trying to load 'pattern_uniform' pattern...
[Msg] Successfully loaded pattern 'pattern_uniform'.
[Msg] Start publishing PointCloudPacked messages on topic 'rgl_lidar'
[Msg] Loaded level [default]
[Msg] Serving world controls on [/world/sonoma/control], [/world/sonoma/control/state] and [/world/sonoma/playback/control]
[Msg] Serving GUI information on [/world/sonoma/gui/info]
[Msg] World [sonoma] initialized with [default_physics] physics profile.
[Msg] Serving world SDF generation service on [/world/sonoma/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path add service on [/gazebo/resource_paths/add].
[Msg] Resource path get service on [/gazebo/resource_paths/get].
[Msg] Resource path resolve service on [/gazebo/resource_paths/resolve].
[Msg] Resource paths published on [/gazebo/resource_paths].
[Msg] Server control service on [/server_control].
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[Wrn] [OBJLoader.cc:91] Both `d` and `Tr` parameters defined for "Asphalt". Use the value of `d` for dissolve (line 8 in .mtl.)
Both `d` and `Tr` parameters defined for "Track". Use the value of `d` for dissolve (line 22 in .mtl.)
Both `d` and `Tr` parameters defined for "Grass". Use the value of `d` for dissolve (line 36 in .mtl.)
Both `d` and `Tr` parameters defined for "RumbleStrip_Barrier". Use the value of `d` for dissolve (line 50 in .mtl.)
Both `d` and `Tr` parameters defined for "Checker". Use the value of `d` for dissolve (line 64 in .mtl.)
Both `d` and `Tr` parameters defined for "Railing". Use the value of `d` for dissolve (line 78 in .mtl.)
Both `d` and `Tr` parameters defined for "Fence". Use the value of `d` for dissolve (line 92 in .mtl.)
Both `d` and `Tr` parameters defined for "Wall". Use the value of `d` for dissolve (line 107 in .mtl.)
Both `d` and `Tr` parameters defined for "Trim". Use the value of `d` for dissolve (line 121 in .mtl.)
Both `d` and `Tr` parameters defined for "Window". Use the value of `d` for dissolve (line 135 in .mtl.)
Both `d` and `Tr` parameters defined for "Roof". Use the value of `d` for dissolve (line 149 in .mtl.)
Both `d` and `Tr` parameters defined for "TireStack". Use the value of `d` for dissolve (line 163 in .mtl.)
Both `d` and `Tr` parameters defined for "Bridge". Use the value of `d` for dissolve (line 177 in .mtl.)
Both `d` and `Tr` parameters defined for "Concrete". Use the value of `d` for dissolve (line 191 in .mtl.)
Both `d` and `Tr` parameters defined for "Stands". Use the value of `d` for dissolve (line 205 in .mtl.)

[Msg] Loading plugin [gz-rendering-ogre2]
[Msg] Serving scene information on [/world/sonoma/scene/info]
[Msg] Serving graph information on [/world/sonoma/scene/graph]
[Msg] Serving full state on [/world/sonoma/state]
[Msg] Serving full state (async) on [/world/sonoma/state_async]
[Msg] Publishing scene information on [/world/sonoma/scene/info]
[Msg] Publishing entity deletions on [/world/sonoma/scene/deletion]
[Msg] Publishing state changes on [/world/sonoma/state]
[Msg] Publishing pose messages on [/world/sonoma/pose/info]
[Msg] Publishing dynamic pose messages on [/world/sonoma/dynamic_pose/info]
[GUI] [Wrn] [Gui.cc:477] The [GzScene3D] GUI plugin has been removed since Garden.
SDF code to replace GzScene3D is available at https://github.com/gazebosim/gz-sim/blob/gz-sim7/Migration.md
Loading the following plugins instead:
* GzSceneManager
* InteractiveViewControl
* CameraTracking
* MarkerManager
* SelectEntities
* EntityContextMenuPlugin
* Spawn
* VisualizationCapabilities
[Wrn] [OBJLoader.cc:91] Both `d` and `Tr` parameters defined for "Hybrid". Use the value of `d` for dissolve (line 8 in .mtl.)
Both `d` and `Tr` parameters defined for "Wheels3". Use the value of `d` for dissolve (line 22 in .mtl.)
Both `d` and `Tr` parameters defined for "Hybrid_Interior". Use the value of `d` for dissolve (line 36 in .mtl.)
Both `d` and `Tr` parameters defined for "Windows". Use the value of `d` for dissolve (line 50 in .mtl.)

[GUI] [Msg] Added plugin [3D Scene] to main window
[GUI] [Msg] Loaded plugin [MinimalScene] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMinimalScene.so]
[GUI] [Msg] Using world control service [/world/sonoma/control]
[GUI] [Msg] Listening to stats on [/world/sonoma/stats]
[GUI] [Msg] Added plugin [World control] to main window
[GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldControl.so]
[GUI] [Msg] Listening to stats on [/world/sonoma/stats]
[GUI] [Msg] Added plugin [World stats] to main window
[GUI] [Msg] Loaded plugin [WorldStats] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldStats.so]
[GUI] [Msg] A new topic has been entered: '/cmd_vel ' 
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
[GUI] [Msg] Added plugin [Teleop] to main window
[GUI] [Msg] Loaded plugin [Teleop] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libTeleop.so]
[GUI] [Msg] Refreshing topic list for point cloud messages.
[GUI] [Msg] Subscribed to /rgl_lidar
[GUI] [Msg] Subscribed to rgl_lidar/world
[GUI] [Msg] Added plugin [RGL Visualize] to main window
[GUI] [Msg] Loaded plugin [RGLVisualize] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libRGLVisualize.so]
[GUI] [Msg] Added plugin [Scene Manager] to main window
[GUI] [Msg] Loaded plugin [GzSceneManager] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libGzSceneManager.so]
[GUI] [Msg] Camera view controller topic advertised on [/gui/camera/view_control]
[GUI] [Msg] Camera reference visual topic advertised on [/gui/camera/view_control/reference_visual]
[GUI] [Msg] Camera view control sensitivity advertised on [/gui/camera/view_control/sensitivity]
[GUI] [Msg] Added plugin [Interactive view control] to main window
[GUI] [Msg] Loaded plugin [InteractiveViewControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libInteractiveViewControl.so]
[GUI] [Msg] Added plugin [Camera tracking] to main window
[GUI] [Msg] Loaded plugin [CameraTracking] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libCameraTracking.so]
[GUI] [Msg] Listening to stats on [/world/sonoma/stats]
[GUI] [Msg] Added plugin [Marker Manager] to main window
[GUI] [Msg] Loaded plugin [MarkerManager] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMarkerManager.so]
[GUI] [Msg] Added plugin [Select entities] to main window
[GUI] [Msg] Loaded plugin [SelectEntities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSelectEntities.so]
[GUI] [Msg] Currently tracking topic on [/gui/currently_tracked]
[GUI] [Msg] Added plugin [Entity Context Menu] to main window
[GUI] [Msg] Loaded plugin [EntityContextMenuPlugin] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libEntityContextMenuPlugin.so]
[GUI] [Msg] Added plugin [Spawn] to main window
[GUI] [Msg] Loaded plugin [Spawn] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSpawn.so]
[GUI] [Msg] View as transparent service on [/gui/view/transparent]
[GUI] [Msg] View as wireframes service on [/gui/view/wireframes]
[GUI] [Msg] View center of mass service on [/gui/view/com]
[GUI] [Msg] View inertia service on [/gui/view/inertia]
[GUI] [Msg] View collisions service on [/gui/view/collisions]
[GUI] [Msg] View joints service on [/gui/view/joints]
[GUI] [Msg] View frames service on [/gui/view/frames]
[GUI] [Msg] Added plugin [Visualization capabilities] to main window
[GUI] [Msg] Loaded plugin [VisualizationCapabilities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libVisualizationCapabilities.so]
[Wrn] [Ogre2Camera.cc:421] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.
[Wrn] [Ogre2Camera.cc:421] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.
[Wrn] [Ogre2Camera.cc:421] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.
[Wrn] [Ogre2Camera.cc:421] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.
[GUI] [Wrn] [Application.cc:908] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x"
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
[GUI] [Wrn] [MarkerManager.cc:414] Unable to delete all markers in namespace[/rgl_lidar], namespace can't be found.
[GUI] [Msg] Move to service on [/gui/move_to]
[GUI] [Msg] Follow service on [/gui/follow] (deprecated)
[GUI] [Msg] Tracking topic on [/gui/track]
[GUI] [Msg] Tracking status topic on [/gui/currently_tracked]
[GUI] [Msg] Move to pose service on [/gui/move_to/pose]
[GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose]
[GUI] [Msg] Follow offset service on [/gui/follow/offset] (deprecated)
[GUI] [Wrn] [OBJLoader.cc:91] Both `d` and `Tr` parameters defined for "Asphalt". Use the value of `d` for dissolve (line 8 in .mtl.)
Both `d` and `Tr` parameters defined for "Track". Use the value of `d` for dissolve (line 22 in .mtl.)
Both `d` and `Tr` parameters defined for "Grass". Use the value of `d` for dissolve (line 36 in .mtl.)
Both `d` and `Tr` parameters defined for "RumbleStrip_Barrier". Use the value of `d` for dissolve (line 50 in .mtl.)
Both `d` and `Tr` parameters defined for "Checker". Use the value of `d` for dissolve (line 64 in .mtl.)
Both `d` and `Tr` parameters defined for "Railing". Use the value of `d` for dissolve (line 78 in .mtl.)
Both `d` and `Tr` parameters defined for "Fence". Use the value of `d` for dissolve (line 92 in .mtl.)
Both `d` and `Tr` parameters defined for "Wall". Use the value of `d` for dissolve (line 107 in .mtl.)
Both `d` and `Tr` parameters defined for "Trim". Use the value of `d` for dissolve (line 121 in .mtl.)
Both `d` and `Tr` parameters defined for "Window". Use the value of `d` for dissolve (line 135 in .mtl.)
Both `d` and `Tr` parameters defined for "Roof". Use the value of `d` for dissolve (line 149 in .mtl.)
Both `d` and `Tr` parameters defined for "TireStack". Use the value of `d` for dissolve (line 163 in .mtl.)
Both `d` and `Tr` parameters defined for "Bridge". Use the value of `d` for dissolve (line 177 in .mtl.)
Both `d` and `Tr` parameters defined for "Concrete". Use the value of `d` for dissolve (line 191 in .mtl.)
Both `d` and `Tr` parameters defined for "Stands". Use the value of `d` for dissolve (line 205 in .mtl.)

[GUI] [Wrn] [OBJLoader.cc:91] Both `d` and `Tr` parameters defined for "Hybrid". Use the value of `d` for dissolve (line 8 in .mtl.)
Both `d` and `Tr` parameters defined for "Wheels3". Use the value of `d` for dissolve (line 22 in .mtl.)
Both `d` and `Tr` parameters defined for "Hybrid_Interior". Use the value of `d` for dissolve (line 36 in .mtl.)
Both `d` and `Tr` parameters defined for "Windows". Use the value of `d` for dissolve (line 50 in .mtl.)

[GUI] [Msg] Refreshing topic list for point cloud messages.
[GUI] [Msg] Subscribed to /rgl_lidar
[GUI] [Wrn] [Application.cc:908] [QT] file::/RGLVisualize/RGLVisualize.qml:58: ReferenceError: floatCombo is not defined
[GUI] [Wrn] [MarkerManager.cc:414] Unable to delete all markers in namespace[/rgl_lidar], namespace can't be found.
[GUI] [Msg] Subscribed to /rgl_lidar/world

I'd love to get this working for a project I am working on and would appreciate any help/suggestions. Thanks!

If anyone wants to try to replicate my dev container here are the files:

Dockerfile

FROM nvidia/cuda:11.7.1-devel-ubuntu22.04

ARG DEBIAN_FRONTEND=noninteractive
ARG USERNAME=USERNAME
ARG USER_UID=1000
ARG USER_GID=$USER_UID

# Delete user if it exists in container (e.g Ubuntu Noble: ubuntu)
RUN if id -u $USER_UID ; then userdel `id -un $USER_UID` ; fi

# Create the user
RUN groupadd --gid $USER_GID $USERNAME \
    && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
    #
    # [Optional] Add sudo support. Omit if you don't need to install software after connecting.
    && apt-get update \
    && apt-get install -y sudo \
    && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
    && chmod 0440 /etc/sudoers.d/$USERNAME

SHELL [ "/bin/bash" , "-c" ]

# Optimize apt caching
# Basically we are disabling docker-clean to make repetitive image building faster, 
#   packages should still be removed when docker is pruned
RUN mv /etc/apt/apt.conf.d/docker-clean /etc/apt/ && \
    echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \
    > /etc/apt/apt.conf.d/keep-cache && \
    apt-get update

# Install bootstrap tools
RUN --mount=type=cache,sharing=locked,target=/var/cache/apt \
    apt-get install -y --no-install-recommends \
    cmake \
    git \
    python3 \
    sudo \
    wget \
    python3-pip \
    python3-venv \
    lsb-release \
    gnupg \
    curl \ 
    vim \
    nano 


RUN --mount=type=cache,sharing=locked,target=/var/cache/apt \
    apt-get install -y --no-install-recommends \
    software-properties-common
    
RUN add-apt-repository universe; \
    apt-get update
    
RUN export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}'); \
    curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" 
    
RUN --mount=type=cache,sharing=locked,target=/var/cache/apt \
    apt-get install -y --no-install-recommends /tmp/ros2-apt-source.deb

RUN --mount=type=cache,sharing=locked,target=/var/cache/apt \
    apt-get update && apt-get install -y --no-install-recommends \
    ros-humble-desktop \
    ros-dev-tools 
    
RUN echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

RUN curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg; \
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

RUN --mount=type=cache,sharing=locked,target=/var/cache/apt \
    apt-get update && apt-get install -y \
    gz-harmonic \
    gz-tools2 \
    ros-humble-ros-gzharmonic

RUN git clone --branch v0.2.0-harmonic --depth 1 --single-branch https://github.com/RobotecAI/RGLGazeboPlugin.git; \
    git clone --branch v0.20.0 --depth 1 --single-branch https://github.com/RobotecAI/RobotecGPULidar.git

# if anyone tries to replicate this they should either place their downloaded Optix folder in the same place as this copy is expecting or 
# use a --mount target
COPY ../NVIDIA-OptiX-SDK-7.2.0-linux64-x86_64 /optix

RUN --mount=type=cache,sharing=locked,target=/var/cache/apt \
    cd RobotecGPULidar; \
    source /opt/ros/humble/setup.bash; \
    ./setup.py --install-deps; \
    ./setup.py --install-pcl-deps; \
    ./setup.py --install-ros2-deps;

#### UNCOMMENT TO BUILD GAZEBO FROM SCRATCH
# RUN cd /root/ && mkdir -p /root/gz/src; \
#     cd /root/gz/src; \
#     curl -O https://raw.githubusercontent.com/gazebo-tooling/gazebodistro/master/collection-harmonic.yaml; \
#     vcs import < collection-harmonic.yaml;

# RUN sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg; \
#     echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null; \
#     sudo apt-get update; \
#     cd /root/gz/src; \
#     sudo apt -y install $(sort -u $(find . -iname 'packages-'`lsb_release -cs`'.apt' -o -iname 'packages.apt' | grep -v '/\.git/') | sed '/gz\|sdf/d' | tr '\n' ' ')

# RUN cd /root/gz/; \
#     colcon build --cmake-args ' -DBUILD_TESTING=OFF' --merge-install; \
#     echo "source `pwd`/install/setup.bash" >> ~/.bashrc;

ENV SHELL=/bin/bash
USER $USERNAME
CMD ["/bin/bash"]

devcontainer.json

{
	"name": "rglgazebo_dev",
	"privileged": true,
	"remoteUser": "echo", #replace with your username
    "build": {
        "dockerfile": "Dockerfile",
		"args": {
			"USERNAME": "echo" #replace with your username
		}
    },
	"runArgs": [
		"--cap-add=SYS_PTRACE", // Allows the container to trace processes using ptrace system call
		"--security-opt=seccomp=unconfined", // Disables seccomp security profiles for the container
		"--ipc=host", // Shares the host's IPC namespace with the container
		"--net=host", // Shares the host's network namespace with the container
		"--pid=host", // Shares the host's PID namespace with the container
		"--gpus=all",
		"--cap-add=sys_nice",
		"--ulimit=rtprio=99",
		"--ulimit=memlock=-1",
		"--runtime=nvidia",
		"-e", "DISPLAY=${env:DISPLAY}"
	],
    "workspaceFolder": "/home/ws",
    "workspaceMount": "source=${localWorkspaceFolder},target=/home/ws,type=bind",
	"containerEnv": {
    	"DISPLAY": "unix:0",
		"ROS_AUTOMATIC_DISCOVERY_RANGE": "LOCALHOST",
		"ROS_DOMAIN_ID": "0", # optional
		"NVIDIA_DRIVER_CAPABILITIES": "all"
    },
	"mounts": [
		"source=/tmp/.X11-unix,target=/tmp/.X11-unix,type=bind,consistency=cached",
       	"source=/dev/dri,target=/dev/dri,type=bind,consistency=cached",
		{
			"source": "${localEnv:XAUTHORITY:-$HOME/.Xauthority}",
			"target": "/root/.Xauthority",
			"type": "bind"
		},
		{
			"source": "${localEnv:HOME}${localEnv:USERPROFILE}/.bash_history",
			"target": "/root/.bash_history",
			"type": "bind"
		},
		{
			"source": "/dev/shm",
			"target": "/dev/shm",
			"type": "bind"
		}
    ],
	"postCreateCommand": "sudo chown -R $(whoami) /home",
    "customizations": {
        "vscode": {
            "settings": {},
            "extensions": [
                "mhutchie.git-graph"
                // "eamodio.gitlens",
                // "donjayamanne.githistory",
                // "ms-python.vscode-pylance",
                // "ms-python.python"
				// "ms-vscode.cpptools",
				// "ms-vscode.cpptools-extension-pack"
              ]
        }
    }
  }

Here are some images showing the echo'd output of both rgl_lidar and rgl_lidar/world: Image Image

Infinite-Echo avatar Jul 14 '25 23:07 Infinite-Echo

Update:

I modified the steps described by @msz-rai in #63 (link):

Start the container with support for X11 passthrough (so we can use the GUI):

docker run   --net=host   --gpus all   -v $(pwd):/code   -v /tmp/.X11-unix:/tmp/.X11-unix   -e DISPLAY=$DISPLAY   -e NVIDIA_DRIVER_CAPABILITIES=all   -e QT_X11_NO_MITSHM=1   -it nvidia/cuda:12.2.2-devel-ubuntu22.04 /bin/bash

Install Gazebo using this link:

apt-get update
apt-get install curl lsb-release gnupg
curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
apt-get update
apt-get install gz-harmonic

Install git and clone repo:

apt-get install git
git clone https://github.com/RobotecAI/RGLGazeboPlugin.git
cd RGLGazeboPlugin/

Follow the steps listed here:

mkdir build && cd build
cmake .. && make -j && make install
cd ..
# Make it visible to Gazebo via environment variables:
export GZ_SIM_SYSTEM_PLUGIN_PATH=`pwd`/install/RGLServerPlugin:$GZ_SIM_SYSTEM_PLUGIN_PATH
export GZ_GUI_PLUGIN_PATH=`pwd`/install/RGLVisualize:$GZ_GUI_PLUGIN_PATH

Run the test world:

export RGL_PATTERNS_DIR=`pwd`/lidar_patterns
gz sim -v 4 test_world/rgl_playground.sdf

This did not work on my laptop that has a RTX 3070:

click to see logs and nvidia-smi output

Output Logs

[Msg] Gazebo Sim GUI    v8.9.0
[Dbg] [gz.cc:166] Subscribing to [/gazebo/starting_world].
[Dbg] [gz.cc:168] Waiting for a world to be set from the GUI...
[Msg] Copied installed config [/usr/share/gz/gz-sim8/gui/gui.config] to default config [/root/.gz/sim/8/gui.config].
[Dbg] [Gui.cc:275] Waiting for subscribers to [/gazebo/starting_world]...
[Msg] Received world [test_world/rgl_playground.sdf] from the GUI.
[Dbg] [gz.cc:172] Unsubscribing from [/gazebo/starting_world].
[Msg] Gazebo Sim Server v8.9.0
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[Dbg] [Application.cc:96] Initializing application.
[Dbg] [Application.cc:170] Qt using OpenGL graphics interface
[Msg] Loading SDF world file[/RGLGazeboPlugin/test_world/rgl_playground.sdf].
[GUI] [Dbg] [Application.cc:657] Create main window
[Wrn] [LocalCache.cc:104] Server directory does not exist [/root/.gz/fuel/fuel.gazebosim.org]
[Msg] Downloading model [fuel.gazebosim.org/openrobotics/models/playground]
[Dbg] [FuelClient.cc:1968] Downloading from a referral link [https://gz-fuel-resources-production.s3.amazonaws.com/OpenRobotics/016a7965-86aa-4bef-bd01-79722c68d4dd/.zips/4.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAS5OHIRKDBY6VUUFF%2F20250725%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250725T003214Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=266119f13ffb5e666034f1637a61ac61e40b7b2d7770aef55ab540b2c407c2b2]
[GUI] [Dbg] [PathManager.cc:68] Requesting resource paths through [/gazebo/resource_paths/get]
[GUI] [Dbg] [Gui.cc:355] GUI requesting list of world names. The server may be busy downloading resources. Please be patient.
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/materials/textures/playground_diffuse.jpg]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/materials/textures/playground_spec.jpg]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/meshes/playground.dae]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/model.config]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/model.sdf]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/1.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/2.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/3.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/4.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/5.png]
[Msg] Downloading model [fuel.gazebosim.org/kennywang/models/mine cart engine]
[Dbg] [FuelClient.cc:1968] Downloading from a referral link [https://gz-fuel-resources-production.s3.amazonaws.com/kennywang/dab19015-d1ca-4fb7-a0ee-0201dc8c4bf8/.zips/1.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAS5OHIRKDBY6VUUFF%2F20250725%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250725T003216Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=82585fcda4ba9f6f696a8184348833192b351666d1224764297b280722572743]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/scripts/model.material]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/textures/MineCartEngine_Albedo.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/textures/MineCartEngine_Metalness.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/textures/MineCartEngine_Roughness.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/meshes/minecartengine.dae]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/metadata.pbtxt]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/model.config]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/model.sdf]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/1.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/2.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/3.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/4.png]
[Msg] Serving entity system service on [/entity/system/add]
[Fri Jul 25 00:32:19 2025]: Logging configured: level=info, file=(disabled), stdout=true
[00:32:19][    12 us][info]: RGL Version 0.20.0 branch=develop commitSHA1=d1ff3b6cf618518d60a4cc6acb9231e3aa9e9e28
[00:32:19][ 10948 us][info]: Running on GPU: NVIDIA GeForce RTX 3070 Laptop GPU
[00:32:19][     6 us][info]: Built against OptiX SDK version: 7.2.0
[00:32:19][     1 us][info]: Built against OptiX ABI version: 41
[00:32:19][     1 us][info]: Built against CUDA Toolkit version: 11.7
[00:32:19][     3 us][info]: Installed CUDA runtime version: 11.7
[00:32:19][     1 us][info]: Installed CUDA driver version: 12.8
[00:32:19][  4468 us][info]: Installed NVidia kernel driver version: 570.172.08
[GUI] [Dbg] [Gui.cc:355] GUI requesting list of world names. The server may be busy downloading resources. Please be patient.
[Dbg] [SystemManager.cc:80] Loaded system [rgl::RGLServerPluginManager] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-physics-system]. Using [gz-sim-physics-system] instead.
[Dbg] [Physics.cc:883] Loaded [gz::physics::dartsim::Plugin] from library [/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics-dartsim-plugin.so]
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::Physics] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-user-commands-system]. Using [gz-sim-user-commands-system] instead.
[Msg] Create service on [/world/rgl_playground/create]
[Msg] Remove service on [/world/rgl_playground/remove]
[Msg] Pose service on [/world/rgl_playground/set_pose]
[Msg] Pose service on [/world/rgl_playground/set_pose_vector]
[Msg] Light configuration service on [/world/rgl_playground/light_config]
[Msg] Physics service on [/world/rgl_playground/set_physics]
[Msg] SphericalCoordinates service on [/world/rgl_playground/set_spherical_coordinates]
[Msg] Enable collision service on [/world/rgl_playground/enable_collision]
[Msg] Disable collision service on [/world/rgl_playground/disable_collision]
[Msg] Material service on [/world/rgl_playground/visual_config]
[Msg] Material service on [/world/rgl_playground/wheel_slip]
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::UserCommands] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-scene-broadcaster-system]. Using [gz-sim-scene-broadcaster-system] instead.
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::SceneBroadcaster] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-contact-system]. Using [gz-sim-contact-system] instead.
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::Contact] for entity [1]
[Msg] Trying to load 'pattern_preset' pattern...
[Msg] Loading pattern_preset 'Alpha Prime'...
[Msg] Successfully loaded pattern 'pattern_preset'.
[Msg] Start publishing PointCloudPacked messages on topic 'rgl_lidar'
[Dbg] [SystemManager.cc:80] Loaded system [rgl::RGLServerPluginInstance] for entity [12]
[Wrn] [SdfEntityCreator.cc:933] Gazebo does not support Ogre material scripts. See https://gazebosim.org/api/sim/8/migrationsdf.html#:~:text=Materials for details.
[Wrn] [SdfEntityCreator.cc:939] Custom material scripts are not supported.
[Msg] Loaded level [default]
[Msg] Serving world controls on [/world/rgl_playground/control], [/world/rgl_playground/control/state] and [/world/rgl_playground/playback/control]
[Msg] Serving GUI information on [/world/rgl_playground/gui/info]
[Msg] World [rgl_playground] initialized with [1ms] physics profile.
[Msg] Serving world SDF generation service on [/world/rgl_playground/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path add service on [/gazebo/resource_paths/add].
[Msg] Resource path get service on [/gazebo/resource_paths/get].
[Msg] Resource path resolve service on [/gazebo/resource_paths/resolve].
[Msg] Resource paths published on [/gazebo/resource_paths].
[Msg] Server control service on [/server_control].
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[GUI] [Dbg] [Gui.cc:413] [GUI] [Dbg] [Gui.cc:413] [GUI] [Dbg] [PathManager.cc:57] /world/rgl_playground/gui/info]...]...Received resource paths.

[Dbg] [SimulationRunner.cc:533] Creating PostUpdate worker threads: 5
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (0)
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (1)
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (2)
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (3)
[GUI] [Dbg] [GuiRunner.cc:149] Requesting initial state from [/world/rgl_playground/state]...
[Wrn] [SDFFeatures.cc:365] DART: Ellipsoid is not a supported collision geomerty primitive, using generated mesh of an ellipsoid instead
[Dbg] [SDFFeatures.cc:332] Mesh construction from an SDF has not been implemented yet for dartsim. Use AttachMeshShapeFeature to use mesh shapes.
[Dbg] [SDFFeatures.cc:864] The geometry element of collision [collision] couldn't be created
[Dbg] [SDFFeatures.cc:332] Mesh construction from an SDF has not been implemented yet for dartsim. Use AttachMeshShapeFeature to use mesh shapes.
[Dbg] [SDFFeatures.cc:864] The geometry element of collision [collision] couldn't be created
[Msg] Serving scene information on [/world/rgl_playground/scene/info]
[Msg] Serving graph information on [/world/rgl_playground/scene/graph]
[Msg] Serving full state on [/world/rgl_playground/state]
[Msg] Serving full state (async) on [/world/rgl_playground/state_async]
[Msg] Publishing scene information on [/world/rgl_playground/scene/info]
[Msg] Publishing entity deletions on [/world/rgl_playground/scene/deletion]
[Msg] Publishing state changes on [/world/rgl_playground/state]
[Msg] Publishing pose messages on [/world/rgl_playground/pose/info]
[Msg] Publishing dynamic pose messages on [/world/rgl_playground/dynamic_pose/info]
[GUI] [Msg] Loading config [/root/.gz/sim/8/gui.config]
[GUI] [Dbg] [Application.cc:528] Loading plugin [MinimalScene]
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL
[Dbg] [EntityComponentManager.cc:1656] Updated state thread iterators: 16 threads processing around 3 entities each.
[GUI] [Msg] Added plugin [3D View] to main window
[GUI] [Msg] Loaded plugin [MinimalScene] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMinimalScene.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [EntityContextMenuPlugin]
[GUI] [Msg] Currently tracking topic on [/gui/currently_tracked]
[GUI] [Msg] Added plugin [Entity Context Menu] to main window
[GUI] [Msg] Loaded plugin [EntityContextMenuPlugin] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libEntityContextMenuPlugin.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [GzSceneManager]
[GUI] [Msg] Added plugin [Scene Manager] to main window
[GUI] [Msg] Loaded plugin [GzSceneManager] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libGzSceneManager.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [InteractiveViewControl]
[GUI] [Msg] Camera view controller topic advertised on [/gui/camera/view_control]
[GUI] [Msg] Camera reference visual topic advertised on [/gui/camera/view_control/reference_visual]
[GUI] [Msg] Camera view control sensitivity advertised on [/gui/camera/view_control/sensitivity]
[GUI] [Msg] Added plugin [Interactive view control] to main window
[GUI] [Msg] Loaded plugin [InteractiveViewControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libInteractiveViewControl.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [CameraTracking]
[GUI] [Msg] Added plugin [Camera tracking] to main window
[GUI] [Msg] Loaded plugin [CameraTracking] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libCameraTracking.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [MarkerManager]
[GUI] [Msg] Listening to stats on [/world/rgl_playground/stats]
[GUI] [Msg] Added plugin [Marker Manager] to main window
[GUI] [Msg] Loaded plugin [MarkerManager] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMarkerManager.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [SelectEntities]
[GUI] [Msg] Added plugin [Select entities] to main window
[GUI] [Msg] Loaded plugin [SelectEntities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSelectEntities.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Spawn]
[GUI] [Msg] Added plugin [Spawn] to main window
[GUI] [Msg] Loaded plugin [Spawn] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSpawn.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [VisualizationCapabilities]
[GUI] [Msg] View as transparent service on [/gui/view/transparent]
[GUI] [Msg] View as wireframes service on [/gui/view/wireframes]
[GUI] [Msg] View center of mass service on [/gui/view/com]
[GUI] [Msg] View inertia service on [/gui/view/inertia]
[GUI] [Msg] View collisions service on [/gui/view/collisions]
[GUI] [Msg] View joints service on [/gui/view/joints]
[GUI] [Msg] View frames service on [/gui/view/frames]
[GUI] [Msg] Added plugin [Visualization capabilities] to main window
[GUI] [Msg] Loaded plugin [VisualizationCapabilities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libVisualizationCapabilities.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [WorldControl]
[GUI] [Msg] Using world control service [/world/rgl_playground/control]
[GUI] [Msg] Listening to stats on [/world/rgl_playground/stats]
[GUI] [Dbg] [WorldControl.cc:237] Using an event to share WorldControl msgs with the server
[GUI] [Msg] Added plugin [World control] to main window
[GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldControl.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [WorldStats]
[GUI] [Msg] Listening to stats on [/world/rgl_playground/stats]
[GUI] [Msg] Added plugin [World stats] to main window
[GUI] [Msg] Loaded plugin [WorldStats] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldStats.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Shapes]
[GUI] [Msg] Added plugin [Shapes] to main window
[GUI] [Msg] Loaded plugin [Shapes] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libShapes.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Lights]
[GUI] [Msg] Added plugin [Lights] to main window
[GUI] [Msg] Loaded plugin [Lights] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libLights.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [TransformControl]
[GUI] [Msg] Added plugin [Transform control] to main window
[GUI] [Msg] Loaded plugin [TransformControl] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libTransformControl.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Screenshot]
[GUI] [Msg] Screenshot service on [/gui/screenshot]
[GUI] [Msg] Added plugin [Screenshot] to main window
[GUI] [Msg] Loaded plugin [Screenshot] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libScreenshot.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [CopyPaste]
[GUI] [Msg] Added plugin [Copy/Paste] to main window
[GUI] [Msg] Loaded plugin [CopyPaste] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libCopyPaste.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [ComponentInspector]
[GUI] [Msg] Added plugin [Component inspector] to main window
[GUI] [Msg] Loaded plugin [ComponentInspector] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libComponentInspector.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [EntityTree]
[GUI] [Msg] Currently tracking topic on [/gui/currently_tracked]
[GUI] [Msg] Added plugin [Entity tree] to main window
[GUI] [Msg] Loaded plugin [EntityTree] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libEntityTree.so]
[GUI] [Dbg] [Application.cc:398] Loading window config
[GUI] [Msg] Using server control service [/server_control]
[GUI] [Dbg] [Application.cc:671] Applying config
[GUI] [Wrn] [Application.cc:908] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x"
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[GUI] [Dbg] [MinimalScene.cc:749] Create scene [scene]
[GUI] [Dbg] [MinimalScene.cc:1037] Creating texture node render interface for OpenGL
[GUI] [Dbg] [TransformControl.cc:453] TransformControl plugin is using camera [scene::Camera(65527)]
[GUI] [Dbg] [Spawn.cc:308] Spawn plugin is using camera [scene::Camera(65527)]
[GUI] [Dbg] [SelectEntities.cc:452] SelectEntities plugin is using camera [scene::Camera(65527)]
[GUI] [Dbg] [MarkerManager.cc:169] Advertise /marker/list service.
[GUI] [Dbg] [MarkerManager.cc:179] Advertise /marker/list.
[GUI] [Dbg] [MarkerManager.cc:189] Advertise /marker_array.
[GUI] [Dbg] [CameraTracking.cc:205] CameraTrackingPrivate plugin is moving camera [scene::Camera(65527)]
[GUI] [Msg] Move to service on [/gui/move_to]
[GUI] [Msg] Follow service on [/gui/follow] (deprecated)
[GUI] [Msg] Tracking topic on [/gui/track]
[GUI] [Msg] Tracking status topic on [/gui/currently_tracked]
[GUI] [Msg] Move to pose service on [/gui/move_to/pose]
[GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose]
[GUI] [Msg] Follow offset service on [/gui/follow/offset] (deprecated)
[GUI] [Dbg] [InteractiveViewControl.cc:176] InteractiveViewControl plugin is moving camera [scene::Camera(65527)]
[GUI] [Dbg] [EntityContextMenuPlugin.cc:79] Entity context menu plugin is using camera [scene::Camera(65527)]
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Dbg] [Application.cc:528] Loading plugin [RGLVisualize]
[GUI] [Msg] Refreshing topic list for point cloud messages.
[GUI] [Msg] Subscribed to /rgl_lidar
[GUI] [Msg] Added plugin [RGL Visualize] to main window
[GUI] [Msg] Loaded plugin [RGLVisualize] from path [/RGLGazeboPlugin/install/RGLVisualize/libRGLVisualize.so]
[GUI] [Msg] Refreshing topic list for point cloud messages.
[GUI] [Dbg] [RGLVisualize.cc:294] Clearing markers on /rgl_lidar
[GUI] [Msg] Subscribed to /rgl_lidar
[GUI] [Wrn] [Application.cc:908] [QT] file::/RGLVisualize/RGLVisualize.qml:58: ReferenceError: floatCombo is not defined
[GUI] [Wrn] [MarkerManager.cc:414] Unable to delete all markers in namespace[/rgl_lidar], namespace can't be found.
[GUI] [Dbg] [RGLVisualize.cc:294] Clearing markers on /rgl_lidar
[GUI] [Msg] Subscribed to /rgl_lidar/world

nvidia-smi output

Thu Jul 24 19:40:44 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.172.08             Driver Version: 570.172.08     CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3070 ...    On  |   00000000:01:00.0  On |                  N/A |
| N/A   65C    P0             29W /   80W |    1590MiB /   8192MiB |      7%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            3233      G   /usr/lib/xorg/Xorg                      287MiB |
|    0   N/A  N/A            3590      G   /usr/bin/gnome-shell                     51MiB |
|    0   N/A  N/A            6891      G   /proc/self/exe                          108MiB |
|    0   N/A  N/A            7243      G   /opt/google/chrome/chrome                 2MiB |
|    0   N/A  N/A            7292      G   ...ersion=20250723-180037.362000        100MiB |
|    0   N/A  N/A          286433      C   gz sim server                           606MiB |
|    0   N/A  N/A          286434      G   gz sim gui                              326MiB |
+-----------------------------------------------------------------------------------------+

This did work on my desktop that has a RTX 2070 however:

click to see logs and nvidia-smi output

Output Logs

[Msg] Gazebo Sim GUI    v8.9.0
[Msg] Copied installed config [/usr/share/gz/gz-sim8/gui/gui.config] to default config [/root/.gz/sim/8/gui.config].
[Dbg] [gz.cc:166] Subscribing to [/gazebo/starting_world].
[Dbg] [gz.cc:168] Waiting for a world to be set from the GUI...
[Dbg] [Gui.cc:275] Waiting for subscribers to [/gazebo/starting_world]...
[Msg] Received world [test_world/rgl_playground.sdf] from the GUI.
[Dbg] [gz.cc:172] Unsubscribing from [/gazebo/starting_world].
[Msg] Gazebo Sim Server v8.9.0
[Msg] Loading SDF world file[/RGLGazeboPlugin/test_world/rgl_playground.sdf].
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[Dbg] [Application.cc:96] Initializing application.
[Dbg] [Application.cc:170] Qt using OpenGL graphics interface
[GUI] [Dbg] [Application.cc:657] Create main window
[Wrn] [LocalCache.cc:104] Server directory does not exist [/root/.gz/fuel/fuel.gazebosim.org]
[Msg] Downloading model [fuel.gazebosim.org/openrobotics/models/playground]
[Dbg] [FuelClient.cc:1968] Downloading from a referral link [https://gz-fuel-resources-production.s3.amazonaws.com/OpenRobotics/016a7965-86aa-4bef-bd01-79722c68d4dd/.zips/4.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAS5OHIRKDBY6VUUFF%2F20250724%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250724T235134Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7cf4708fbd99a28e10ba4a26178481500b7ab6e1d2b5f7961c3eb2615233b591]
[GUI] [Dbg] [PathManager.cc:68] Requesting resource paths through [/gazebo/resource_paths/get]
[GUI] [Dbg] [Gui.cc:355] GUI requesting list of world names. The server may be busy downloading resources. Please be patient.
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/materials/textures/playground_diffuse.jpg]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/materials/textures/playground_spec.jpg]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/meshes/playground.dae]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/model.config]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/model.sdf]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/1.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/2.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/3.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/4.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/openrobotics/models/playground/4/thumbnails/5.png]
[Msg] Downloading model [fuel.gazebosim.org/kennywang/models/mine cart engine]
[Dbg] [FuelClient.cc:1968] Downloading from a referral link [https://gz-fuel-resources-production.s3.amazonaws.com/kennywang/dab19015-d1ca-4fb7-a0ee-0201dc8c4bf8/.zips/1.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAS5OHIRKDBY6VUUFF%2F20250724%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250724T235135Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ed433dd9ed9915cb702a17cbef065ac5644bc2118f9e6911afa36f7d2bb55480]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/scripts/model.material]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/textures/MineCartEngine_Albedo.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/textures/MineCartEngine_Metalness.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/materials/textures/MineCartEngine_Roughness.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/meshes/minecartengine.dae]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/metadata.pbtxt]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/model.config]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/model.sdf]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/1.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/2.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/3.png]
[Dbg] [Zip.cc:180] Created file [/root/.gz/fuel/fuel.gazebosim.org/kennywang/models/mine cart engine/1/thumbnails/4.png]
[Msg] Serving entity system service on [/entity/system/add]
[Thu Jul 24 23:51:39 2025]: Logging configured: level=info, file=(disabled), stdout=true
[23:51:39][    19 us][info]: RGL Version 0.20.0 branch=develop commitSHA1=d1ff3b6cf618518d60a4cc6acb9231e3aa9e9e28
[23:51:39][ 20283 us][info]: Running on GPU: NVIDIA GeForce RTX 2070
[23:51:39][    20 us][info]: Built against OptiX SDK version: 7.2.0
[23:51:39][     3 us][info]: Built against OptiX ABI version: 41
[23:51:39][     3 us][info]: Built against CUDA Toolkit version: 11.7
[23:51:39][    13 us][info]: Installed CUDA runtime version: 11.7
[23:51:39][     4 us][info]: Installed CUDA driver version: 12.2
[23:51:39][ 10692 us][info]: Installed NVidia kernel driver version: 535.247.01
[GUI] [Dbg] [Gui.cc:355] GUI requesting list of world names. The server may be busy downloading resources. Please be patient.
[Dbg] [SystemManager.cc:80] Loaded system [rgl::RGLServerPluginManager] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-physics-system]. Using [gz-sim-physics-system] instead.
[Dbg] [Physics.cc:883] Loaded [gz::physics::dartsim::Plugin] from library [/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics-dartsim-plugin.so]
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::Physics] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-user-commands-system]. Using [gz-sim-user-commands-system] instead.
[Msg] Create service on [/world/rgl_playground/create]
[Msg] Remove service on [/world/rgl_playground/remove]
[Msg] Pose service on [/world/rgl_playground/set_pose]
[Msg] Pose service on [/world/rgl_playground/set_pose_vector]
[Msg] Light configuration service on [/world/rgl_playground/light_config]
[Msg] Physics service on [/world/rgl_playground/set_physics]
[Msg] SphericalCoordinates service on [/world/rgl_playground/set_spherical_coordinates]
[Msg] Enable collision service on [/world/rgl_playground/enable_collision]
[Msg] Disable collision service on [/world/rgl_playground/disable_collision]
[Msg] Material service on [/world/rgl_playground/visual_config]
[Msg] Material service on [/world/rgl_playground/wheel_slip]
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::UserCommands] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-scene-broadcaster-system]. Using [gz-sim-scene-broadcaster-system] instead.
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::SceneBroadcaster] for entity [1]
[Wrn] [SystemLoader.cc:75] Trying to load deprecated plugin [ignition-gazebo-contact-system]. Using [gz-sim-contact-system] instead.
[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::Contact] for entity [1]
[Msg] Trying to load 'pattern_preset' pattern...
[Msg] Loading pattern_preset 'Alpha Prime'...
[Msg] Successfully loaded pattern 'pattern_preset'.
[Msg] Start publishing PointCloudPacked messages on topic 'rgl_lidar'
[Dbg] [SystemManager.cc:80] Loaded system [rgl::RGLServerPluginInstance] for entity [12]
[Wrn] [SdfEntityCreator.cc:933] Gazebo does not support Ogre material scripts. See https://gazebosim.org/api/sim/8/migrationsdf.html#:~:text=Materials for details.
[Wrn] [SdfEntityCreator.cc:939] Custom material scripts are not supported.
[Msg] Loaded level [default]
[Msg] Serving world controls on [/world/rgl_playground/control], [/world/rgl_playground/control/state] and [/world/rgl_playground/playback/control]
[Msg] Serving GUI information on [/world/rgl_playground/gui/info]
[Msg] World [rgl_playground] initialized with [1ms] physics profile.
[Msg] Serving world SDF generation service on [/world/rgl_playground/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path add service on [/gazebo/resource_paths/add].
[Msg] Resource path get service on [/gazebo/resource_paths/get].
[Msg] Resource path resolve service on [/gazebo/resource_paths/resolve].
[Msg] Resource paths published on [/gazebo/resource_paths].
[Msg] Server control service on [/server_control].
[GUI] [Dbg] [Gui.cc:413] Requesting GUI from [/world/rgl_playground/gui/info]...
[GUI] [Dbg] [PathManager.cc:57] Received resource paths.
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[Dbg] [SimulationRunner.cc:533] Creating PostUpdate worker threads: 5
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (0)
[GUI] [Dbg] [GuiRunner.cc:149] Requesting initial state from [/world/rgl_playground/state]...
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (1)
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (2)
[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (3)
[Wrn] [SDFFeatures.cc:365] DART: Ellipsoid is not a supported collision geomerty primitive, using generated mesh of an ellipsoid instead
[Dbg] [SDFFeatures.cc:332] Mesh construction from an SDF has not been implemented yet for dartsim. Use AttachMeshShapeFeature to use mesh shapes.
[Dbg] [SDFFeatures.cc:864] The geometry element of collision [collision] couldn't be created
[Dbg] [SDFFeatures.cc:332] Mesh construction from an SDF has not been implemented yet for dartsim. Use AttachMeshShapeFeature to use mesh shapes.
[Dbg] [SDFFeatures.cc:864] The geometry element of collision [collision] couldn't be created
[Msg] Serving scene information on [/world/rgl_playground/scene/info]
[Msg] Serving graph information on [/world/rgl_playground/scene/graph]
[Msg] Serving full state on [/world/rgl_playground/state]
[Msg] Serving full state (async) on [/world/rgl_playground/state_async]
[Msg] Publishing scene information on [/world/rgl_playground/scene/info]
[Msg] Publishing entity deletions on [/world/rgl_playground/scene/deletion]
[Msg] Publishing state changes on [/world/rgl_playground/state]
[Msg] Publishing pose messages on [/world/rgl_playground/pose/info]
[Msg] Publishing dynamic pose messages on [/world/rgl_playground/dynamic_pose/info]
[GUI] [Msg] Loading config [/root/.gz/sim/8/gui.config]
[GUI] [Dbg] [Application.cc:528] Loading plugin [MinimalScene]
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL
[Dbg] [EntityComponentManager.cc:1656] Updated state thread iterators: 16 threads processing around 3 entities each.
[GUI] [Msg] Added plugin [3D View] to main window
[GUI] [Msg] Loaded plugin [MinimalScene] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMinimalScene.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [EntityContextMenuPlugin]
[GUI] [Msg] Currently tracking topic on [/gui/currently_tracked]
[GUI] [Msg] Added plugin [Entity Context Menu] to main window
[GUI] [Msg] Loaded plugin [EntityContextMenuPlugin] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libEntityContextMenuPlugin.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [GzSceneManager]
[GUI] [Msg] Added plugin [Scene Manager] to main window
[GUI] [Msg] Loaded plugin [GzSceneManager] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libGzSceneManager.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [InteractiveViewControl]
[GUI] [Msg] Camera view controller topic advertised on [/gui/camera/view_control]
[GUI] [Msg] Camera reference visual topic advertised on [/gui/camera/view_control/reference_visual]
[GUI] [Msg] Camera view control sensitivity advertised on [/gui/camera/view_control/sensitivity]
[GUI] [Msg] Added plugin [Interactive view control] to main window
[GUI] [Msg] Loaded plugin [InteractiveViewControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libInteractiveViewControl.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [CameraTracking]
[GUI] [Msg] Added plugin [Camera tracking] to main window
[GUI] [Msg] Loaded plugin [CameraTracking] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libCameraTracking.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [MarkerManager]
[GUI] [Msg] Listening to stats on [/world/rgl_playground/stats]
[GUI] [Msg] Added plugin [Marker Manager] to main window
[GUI] [Msg] Loaded plugin [MarkerManager] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMarkerManager.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [SelectEntities]
[GUI] [Msg] Added plugin [Select entities] to main window
[GUI] [Msg] Loaded plugin [SelectEntities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSelectEntities.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Spawn]
[GUI] [Msg] Added plugin [Spawn] to main window
[GUI] [Msg] Loaded plugin [Spawn] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSpawn.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [VisualizationCapabilities]
[GUI] [Msg] View as transparent service on [/gui/view/transparent]
[GUI] [Msg] View as wireframes service on [/gui/view/wireframes]
[GUI] [Msg] View center of mass service on [/gui/view/com]
[GUI] [Msg] View inertia service on [/gui/view/inertia]
[GUI] [Msg] View collisions service on [/gui/view/collisions]
[GUI] [Msg] View joints service on [/gui/view/joints]
[GUI] [Msg] View frames service on [/gui/view/frames]
[GUI] [Msg] Added plugin [Visualization capabilities] to main window
[GUI] [Msg] Loaded plugin [VisualizationCapabilities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libVisualizationCapabilities.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [WorldControl]
[GUI] [Msg] Using world control service [/world/rgl_playground/control]
[GUI] [Msg] Listening to stats on [/world/rgl_playground/stats]
[GUI] [Dbg] [WorldControl.cc:237] Using an event to share WorldControl msgs with the server
[GUI] [Msg] Added plugin [World control] to main window
[GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldControl.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [WorldStats]
[GUI] [Msg] Listening to stats on [/world/rgl_playground/stats]
[GUI] [Msg] Added plugin [World stats] to main window
[GUI] [Msg] Loaded plugin [WorldStats] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldStats.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Shapes]
[GUI] [Msg] Added plugin [Shapes] to main window
[GUI] [Msg] Loaded plugin [Shapes] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libShapes.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Lights]
[GUI] [Msg] Added plugin [Lights] to main window
[GUI] [Msg] Loaded plugin [Lights] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libLights.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [TransformControl]
[GUI] [Msg] Added plugin [Transform control] to main window
[GUI] [Msg] Loaded plugin [TransformControl] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libTransformControl.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [Screenshot]
[GUI] [Msg] Screenshot service on [/gui/screenshot]
[GUI] [Msg] Added plugin [Screenshot] to main window
[GUI] [Msg] Loaded plugin [Screenshot] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libScreenshot.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [CopyPaste]
[GUI] [Msg] Added plugin [Copy/Paste] to main window
[GUI] [Msg] Loaded plugin [CopyPaste] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libCopyPaste.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [ComponentInspector]
[GUI] [Msg] Added plugin [Component inspector] to main window
[GUI] [Msg] Loaded plugin [ComponentInspector] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libComponentInspector.so]
[GUI] [Dbg] [Application.cc:528] Loading plugin [EntityTree]
[GUI] [Msg] Currently tracking topic on [/gui/currently_tracked]
[GUI] [Msg] Added plugin [Entity tree] to main window
[GUI] [Msg] Loaded plugin [EntityTree] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libEntityTree.so]
[GUI] [Dbg] [Application.cc:398] Loading window config
[GUI] [Msg] Using server control service [/server_control]
[GUI] [Dbg] [Application.cc:671] Applying config
[GUI] [Wrn] [Application.cc:908] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x"
[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL
[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
[GUI] [Dbg] [MinimalScene.cc:749] Create scene [scene]
[GUI] [Dbg] [MinimalScene.cc:1037] Creating texture node render interface for OpenGL
[GUI] [Dbg] [TransformControl.cc:453] TransformControl plugin is using camera [scene::Camera(65527)]
[GUI] [Dbg] [Spawn.cc:308] Spawn plugin is using camera [scene::Camera(65527)]
[GUI] [Dbg] [SelectEntities.cc:452] SelectEntities plugin is using camera [scene::Camera(65527)]
[GUI] [Dbg] [MarkerManager.cc:169] Advertise /marker/list service.
[GUI] [Dbg] [MarkerManager.cc:179] Advertise /marker/list.
[GUI] [Dbg] [MarkerManager.cc:189] Advertise /marker_array.
[GUI] [Dbg] [CameraTracking.cc:205] CameraTrackingPrivate plugin is moving camera [scene::Camera(65527)]
[GUI] [Msg] Move to service on [/gui/move_to]
[GUI] [Msg] Follow service on [/gui/follow] (deprecated)
[GUI] [Msg] Tracking topic on [/gui/track]
[GUI] [Msg] Tracking status topic on [/gui/currently_tracked]
[GUI] [Msg] Move to pose service on [/gui/move_to/pose]
[GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose]
[GUI] [Msg] Follow offset service on [/gui/follow/offset] (deprecated)
[GUI] [Dbg] [InteractiveViewControl.cc:176] InteractiveViewControl plugin is moving camera [scene::Camera(65527)]
[GUI] [Dbg] [EntityContextMenuPlugin.cc:79] Entity context menu plugin is using camera [scene::Camera(65527)]
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Wrn] [Application.cc:908] [QT] qrc:/qml/PluginMenu.qml:130: TypeError: Cannot read property 'width' of null
[GUI] [Dbg] [Application.cc:528] Loading plugin [RGLVisualize]
[GUI] [Msg] Refreshing topic list for point cloud messages.
[GUI] [Msg] Subscribed to /rgl_lidar
[GUI] [Msg] Added plugin [RGL Visualize] to main window
[GUI] [Msg] Loaded plugin [RGLVisualize] from path [/RGLGazeboPlugin/install/RGLVisualize/libRGLVisualize.so]
[GUI] [Dbg] [RGLVisualize.cc:294] Clearing markers on /rgl_lidar
[GUI] [Msg] Subscribed to /rgl_lidar/world

nvidia-smi output

Thu Jul 24 19:06:01 2025       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.247.01             Driver Version: 535.247.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 2070        Off | 00000000:09:00.0  On |                  N/A |
|  0%   54C    P2              40W / 185W |   1301MiB /  8192MiB |     28%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      2663      G   /usr/lib/xorg/Xorg                          280MiB |
|    0   N/A  N/A      2815      G   /usr/bin/gnome-shell                         37MiB |
|    0   N/A  N/A      5641      G   ...seed-version=20250724-050039.153000       43MiB |
|    0   N/A  N/A     30449      C   gz sim server                               646MiB |
|    0   N/A  N/A     30450      G   gz sim gui                                  247MiB |
+---------------------------------------------------------------------------------------+

Based on this I am guessing that the newer nvidia-drivers/cuda runtime I have installed on my laptop are incompatible with the plugin but I plan on looking further into this tomorrow.

Infinite-Echo avatar Jul 25 '25 00:07 Infinite-Echo

Okay so I downgraded by laptop's drivers to 535 which did result in the plugin working:

plugin logs

[Fri Jul 25 19:42:32 2025]: Logging configured: level=info, file=(disabled), stdout=true [19:42:32][ 140 us][info]: RGL Version 0.20.0 branch=develop commitSHA1=d1ff3b6cf618518d60a4cc6acb9231e3aa9e9e28 [19:42:32][ 5402 us][info]: Running on GPU: NVIDIA GeForce RTX 3070 Laptop GPU [19:42:32][ 12 us][info]: Built against OptiX SDK version: 7.2.0 [19:42:32][ 2 us][info]: Built against OptiX ABI version: 41 [19:42:32][ 4 us][info]: Built against CUDA Toolkit version: 11.7 [19:42:32][ 158 us][info]: Installed CUDA runtime version: 11.7 [19:42:32][ 4 us][info]: Installed CUDA driver version: 12.2 [19:42:32][ 11828 us][info]: Installed NVidia kernel driver version: 535.261.03 libEGL warning: egl: failed to create dri2 screen libEGL warning: egl: failed to create dri2 screen

nvidia-smi output

Fri Jul 25 19:49:05 2025
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.261.03 Driver Version: 535.261.03 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 3070 ... On | 00000000:01:00.0 On | N/A | | N/A 55C P8 18W / 80W | 534MiB / 8192MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | 0 N/A N/A 3040 G /usr/lib/xorg/Xorg 194MiB | | 0 N/A N/A 3386 G /usr/bin/gnome-shell 107MiB | | 0 N/A N/A 6332 G /proc/self/exe 113MiB | | 0 N/A N/A 18938 G ...seed-version=20250725-050036.824000 95MiB | +---------------------------------------------------------------------------------------+

I think its safe to say that most likely driver version 570 has some breaking change causing RGL to fail silently.

Whether the failure occurs in the Gazebo Plugin or RGL itself, I am not sure.

@msz-rai You appear to be active in the repo, would you like me to close this issue and open a new one in the Robotec GPU Lidar repo or keep this one?

Infinite-Echo avatar Jul 25 '25 19:07 Infinite-Echo

@Infinite-Echo

Thank you for reporting this issue and taking the time to analyze it in detail.

I can confirm the problem - I was able to reproduce it using driver version 570. It appears that this driver version is incompatible with libraries built for legacy compute capabilities (more info). The current version of RGL used in the plugin (v0.20.0) is built for compute capability 5.2, which was chosen to maintain compatibility with a broad range of GPUs.

We've already updated the CUDA architecture in RGL's develop branch (PR #351), but a new release including this change hasn’t been published yet. It’s planned and will be released soon.

Important note: With the CUDA architecture bump, GPU compatibility has changed. RGL now requires at least an NVIDIA Turing GPU (GeForce RTX 2000 series or newer).

Workaround: Until the updated release is available, you can manually build the RGL native library from the develop branch (build instructions) and replace the existing one in the plugin (e.g., inside the install directory or the CMake cache at build/external/RobotecGPULidar/lib/ before building the project).

We’ll keep this issue open until the new RGL release is published and fully integrated with the plugin.

msz-rai avatar Jul 28 '25 08:07 msz-rai