gui#
Gazebo GUI : Graphical interfaces for robotics applications
Maintainer: jenn [AT] openrobotics [DOT] org
Gazebo GUI builds on top of Qt to provide widgets which are useful when developing robotics applications, such as a 3D view, plots, dashboard, etc, and can be used together in a convenient unified interface.
Gazebo GUI ships with several widgets ready to use and offers a plugin interface which can be used to add custom widgets.
Table of Contents
Features
Qt-based widgets, with support for both Qt5 widgets and QtQuick
Plugin-based interface, so it’s easy to add new widgets
Several plugins ready to be used
3D scene integration using Gazebo Rendering
Install
See the installation tutorial.
Usage
Take a look at the tutorials for usage instructions and API documentation.
Known issue of command line tools
In the event that the installation is a mix of Debian and from source, command
line tools from gz-tools
may not work correctly.
A workaround for a single package is to define the environment variable
GZ_CONFIG_PATH
to point to the location of the Gazebo library installation,
where the YAML file for the package is found, such as
export GZ_CONFIG_PATH=/usr/local/share/gz
Multiple paths can be specified using the :
delimiter. For example,
export GZ_CONFIG_PATH=/user/local/share/gz/:/path/to/some/other/location
Folder Structure
include/gz/gui
: Contains all the files which will be installed, such as C++ headers,.qrc
,.qss
andqml
files. Plugin-specific resources go under/plugins
; everything in the top-level is meant to be of common use across plugins.src
: Contains all the C++ source code and headers which are not installed. Plugin-specific code goes under/plugins
.test
: All integration, performance and regression tests go here, under their specific folders.examples/standalone
: Example code for standalone applications using Gazebo GUI as a library. Each example has instructions in a README file.examples/config
: Example configuration files which can be loaded usinggz gui -c <path to file>
examples/plugin
: Example plugins which can be compiled and loaded as explained in this tutorial.tutorials
: Markdown files for the tutorials.conf
: Files needed by gz-tools.doc
: Files used by Doxygen when generating documentation.
Contributing
Please see the contribution guide.
Code of Conduct
Please see CODE_OF_CONDUCT.md.
Versioning
This library uses Semantic Versioning. Additionally, this library is part of the Gazebo project which periodically releases a versioned set of compatible and complimentary libraries. See the Gazebo website for version and release information.
License
This library is licensed under Apache 2.0. See also the LICENSE file.
Gazebo GUI 9
Gazebo GUI 9.0.0 (2024-09-25)
Baseline: this includes all changes from 8.3.0 and earlier.
Only set shadow texture size if configured by the user in the SDFormat file
Miscellaneous documentation fixes
Update badges for ionic gz-gui9
Expose shadow texture size for directional lighting in SDF
Enable ubuntu noble github actions, require 3.22.1
Fix color distortion in low light conditions
Added dark mode for drawer and menu buttons
Adding cone primitives.
Fix compiler warnings
Define GZ_GUI_VERSION_NAMESPACE in config.hh
Use >= for Qt PKGCONFIG_VER_COMPARISON
Remove HIDE_SYMBOLS_BY_DEFAULT: replace by a default configuration in gz-cmake.
Enable HIDE_SYMBOLS_BY_DEFAULT + patches (take II)
Qt6 migrations that are compatible with Qt5
Added motion duration to the ‘move to pose’ service of the camera tracking plugin.
First pass at level1 clazy checks for qt
Use gz::utils::ImplPtr as much as possible
Bumps in Ionic: gz-gui9
Gazebo GUI 8
Gazebo GUI 8.3.0 (2024-06-20)
Backport: Adding cone primitives.
Gazebo GUI 8.2.0 (2024-06-14)
Enhanced tracking camera and user visualization experience
Add package.xml
Gazebo GUI 8.1.1 (2024-04-10)
Fix compiler warnings in GCC-13 (Noble)
Use relative install paths for plugin shared libraries and gz-tools data
Gazebo GUI 8.1.0 (2024-03-14)
Update CI badges in README
Fix plugin filter on Windows
Tidy namespaces
Infrastructure
Add check for vulkan support in rendering
Add optional binary relocatability
Gazebo GUI 8.0.0 (2023-09-29)
Use fully-qualified message names to avoid deprecation warning
Fix crash when starting Topic Viewer
Add namespace for plugins for doxygen in gz-sim
ign -> gz
Documentation fixes
Suppress new Jammy warnings
Fix issue with topic info.
Make plugins include message types they use
Fix segfaulting tests
WorldControl: use event by default
Find any major version of Protobuf
Fix TopicInfo depcrecation warnings
Fix data race issues in CameraTracking plugin
Bump msgs and transport version in Harmonic
Add Vulkan QML backend
Add fallback rendering for other APIs
Infrastructure
⬆️ Bump main to 8.0.0~pre1
Gazebo GUI 7
Gazebo GUI 7.X.X (202X-XX-XX)
Gazebo GUI 7.2.1 (2023-09-26)
Fix segfaulting tests
Find any major version of Protobuf
Fix data race issues in CameraTracking plugin
Infrastructure
Gazebo GUI 7.2.0 (2023-05-14)
Add support for bayer images to get displayed in gazebo gui
Disable deprecation messages about onFoo connections
Apply low-pass filter to RTF display
Disable Teleop_TEST on macOS
ign -> gz Migrate config and log directories : gz-gui
6 ➡️ 7
CI workflow: use checkout v3
Rename COPYING to LICENSE
ign to gz
Add Camera FPS plugin
Update maintainer email
Fix INTEGRATION_camera_tracking test
3.12.0 release
3.12.0 pre1
ign -> gz Migrate Ignition Headers : gz-gui
Add pointer check in Application::RemovePlugin
Add key publisher test
Update cmd/CMakeLists to conform with all other gz libraries
Fix image display test
Add degree as an optional unit for rotation in GzPose
🎈 3.11.2
Gazebo GUI 7.1.0 (2023-03-10)
Set View Camera controller from plugin configuration
Add service for configuring view control sensitivity
Fix large / unexpected camera movements
Added Reset button to world_control
Add view control reference visual
Tries to fix a scenario when a user sends a malformed point cloud
Fix mistaken dialog error message
Replace color and pose for GridConfig with GzColor and GzPose
Replace pose in Grid3d with GzPose
Remove redundant namespace references
Update codeowners
Fix warnings on Jammy
GzColor ColorDialogue fix
Fix attribute update when
Add plotting to common widget pose
Add test for Plugin::ConfigStr()
Gazebo GUI 7.0.0 (2022-09-XX)
Use RTLD_NODELETE=true when loading libraries
Update cmd/CMakeLists to conform with all other gz libraries
Clean up headers
Fixed topic echo test
Use stepping field in message
Teleop: Refactor and support vertical
Remove deprecated image.data API
Remove deprecated Scene3d plugin
Add common widget for vector3
Allow Dialogs to have a MainWindow independent config
Add common widget for pose
Example running a dialog before the main window
Add .cc extension to suppress CMake warnings
Update GoogleTest to latest version
Common widget GzColor
Make display tests more robust
Bash completion for flags
Disable failing test on Citadel
Search menu keyboard control
User camera FOV control in SDF files
Add config relative path environment variable
Add repo specific issue templates
Sort plugin list in alphabetical order (including when filtering)
Rename Ignition to Gazebo
set cameraPassCountPerGpuFlush to 6
Add Ubuntu Jammy CI
Avoid nullptr access in MinimalScene
Added array to snackbar qml
Fix some Qt warnings
Fix nondiscard warnings with lock_guard
Remove Bionic from future releases (Garden+)
Use gz-rendering’s screenToScene functions
Added Snackbar qtquick object
Fix menu scrolling when a new plugin is added
Add Metal support to MinimalScene and Qt Application
Cleanup GUI plugin menu
Attempt at fixing Helpers test on macOS
Removed unused code in MinimalScene plugin
Point cloud visualization plugin
Set per-point color on markers
Bumps in garden
Added macOS source code installation
Gazebo GUI 6
Gazebo GUI 6.7.0 (2023-05-12)
Add degree as an optional unit for rotation in GzPose.
Fix image display test.
Update cmd/CMakeLists to conform with all other gz libraries.
Add key publisher test.
Add pointer check in Application::RemovePlugin.
ign -> gz Migrate Ignition Headers : gz-gui.
Fix INTEGRATION_camera_tracking test.
Update maintainer email.
Add Camera FPS plugin.
Rename COPYING to LICENSE.
CI workflow: use checkout v3.
Fix data race issues in CameraTracking plugin.
Gazebo GUI 6.7.0 (2022-12-02)
Set View Camera controller from plugin configuration
Add service for configuring view control sensitivity
Fix large / unexpected camera movements
Add view control reference visual
Gazebo GUI 6.6.1 (2022-08-17)
Fix mistaken dialog error message
Replace color and pose for
GridConfig
withGzColor
andGzPose
Replace pose in
Grid3d
withGzPose
Remove redundant namespace references
Update codeowners
Fix warnings on Jammy
Gazebo GUI 6.6.0 (2022-08-10)
GzColor ColorDialogue fix
Fix attribute update when
<dialog>
isn’t presentAdd plotting to common widget pose
Add test for Plugin::ConfigStr()
Gazebo GUI 6.5.0 (2022-08-02)
Teleop
: Refactor and support verticalChange
IGN_DESIGNATION
toGZ_DESIGNATION
Ignition -> Gazebo
Allow Dialogs to have a MainWindow independent config
Add common widget for Vector3
Add common widget for Pose
Add common widget for Color
Example running a dialog before the main window
Test fixes and improvements
Bash completion for flags
Shortcut to search and auto highlight search bar
Search menu keyboard control
User camera FOV control in SDF files
Add config relative path environment variable
Add repo specific issue templates
Sort plugin list in alphabetical order (including when filtering)
Set
cameraPassCountPerGpuFlush
to 6Avoid nullptr access in MinimalScene
Fix some Qt warnings
Use
gz-rendering
’sscreenToScene
functionsAdded Snackbar qtquick object
Fix menu scrolling when a new plugin is added
TransportSceneManager
: Prevent freeze when inserted from menuPopulate plugins that were empty
Prevent
MinimalScene
💥 if another scene is already loadedImprove
KeyPublisher
’s usabilityRemoved unused code in
MinimalScene
plugin
Gazebo GUI 6.4.0 (2022-02-01)
Improve inserting WorldControl and WorldStats from menu
Added a button that allows shutting down both the client and server.
Prevent Scene3D 💥 if another scene is already loaded
Add project() to examples and remove hard-dependency on Ogre1
Gazebo GUI 6.3.0 (2022-01-06)
NavSat (GPS) map plugin
Gazebo GUI 6.2.0 (2021-12-08)
Grid config: set values from startup and improve layout
Fix codecheck
Offer a way to disable warnings on marker manager
Add PreRender event to MinimalScene
Use qmldir to define QML module with IgnSpinBox
Fix TopicEcho plugin message display
Don’t set visual scale for point markers
Set marker point size from message
Don’t crash if a plugin has invalid QML
Added log storing for gz-gui
Gazebo GUI 6.1.0 (2021-11-05)
Improved doxygen
Fix mimimal scene deadlock on shutdown
Fix memory leak
Set near/far camera clipping distance
Support emitting an event on play/pause/step
Gazebo GUI 6.0.0 (2021-09-XX)
Add a filter to the plugin menu
New events
Drop
SpawnCloneFromName
HoverOnScene
Mouse Events based on ignition::common
New plugins
Interactive view control
Marker Manager
Moved tape measure and grid config from gz-sim to gz-gui
PIMPL GUI events
Added winID to fix second windows in OGRE2.2
Added camera tracking
Split transport scene manager into a plugin outside Scene3D. Adds MinimalScene
Remove deprecations: tock
Depend on gz-msgs8, gz-transport11, gz-rendering6
Infrastructure
Gazebo GUI 5
Gazebo GUI 5.5.0 (2022-03-28)
Fix some Qt warnings
Added Snackbar QtQuick object
Fix menu scrolling when a new plugin is added
Improve KeyPublisher’s usability
Backport GridConfig improvements to Grid3D
Gazebo GUI 5.4.0 (2022-01-31)
Improve inserting WorldControl and WorldStats from menu
Added a button that allows shutting down both the client and server.
Prevent Scene3D 💥 if another scene is already loaded
Add project() to examples and remove hard-dependency on Ogre1
Fix codecheck
Use qmldir to define QML module with IgnSpinBox
Fix TopicEcho plugin message display
Don’t crash if a plugin has invalid QML
Added log storing for gz-gui
Gazebo GUI 5.3.0 (2021-10-13)
Improved doxygen
Fix memory leak
Add a filter to the plugin menu
👩🌾 Remove bitbucket-pipelines.yml
Fix doc build error
Gazebo GUI 5.2.0 (2021-07-27)
New teleop plugin implementation.
Fix plugin added signal, add PluginByName
Fixed tests by passing valid argv
Screenshot plugin fixed dbg message
Detect gz instead of using cmake module to check for gz-tools
Gazebo GUI 5.1.0 (2021-06-23)
Depend on common 4.1 and rendering 5.1
Update codeowners
Confirmation dialog when closing main window
Avoid Grid3D crash
Emit more events from Scene3D
Removed duplicated code with
rendering::sceneFromFirstRenderEngine
Remove
tools/code_check
and update codecovRefactor Image Display to use ConvertToRGB function
Fixed material specular in Scene3D
Updated scale for capsule in Scene3D
Support Capsule and Ellipsoid in Scene3D
check_test_ran.py
: remove grep/xsltproc
Gazebo GUI 5.0.0 (2021-03-31)
Bump in edifice: gz-common4
Bump in edifice: gz-msgs7 and gz-transport10
Bump in edifice: gz-rendering5
Documentation updates
Gazebo GUI 4
Gazebo GUI 4.X.X
Gazebo GUI 4.X.X (20XX-XX-XX)
Gazebo GUI 4.5.0 (2021-07-26)
New teleop plugin implementation.
Fix codeowners
Fix plugin added signal, add PluginByName
Fixed tests by passing valid argv
Screenshot plugin fixed dbg message
Detect gz instead of using cmake module to check for gz-tools
Gazebo GUI 4.4.0 (2021-06-21)
Bump required gz-rendering version to 4.8
Update codeowners
Confirmation dialog when closing main window
Avoid grid3D crash
Emit more events from Scene3D
Removed duplicated code with rendering::sceneFromFirstRenderEngine
Remove
tools/code_check
and update codecovRefactor Image Display to use ConvertToRGB function
Fixed material specular in scene3D
check_test_ran.py
: remove grep/xsltprocImprove the height of plugins in the right split
Scene3D: port mesh material fixes from gz-sim
Gazebo GUI 4.3.0 (2021-03-11)
Screenshot plugin
Master branch updates
👩🌾 Disable tests that initialize App on macOS: they’re all flaky
Remove issue & PR templates
Backport Publisher test from v4
Fix version number
Better error messages when component can’t be loaded
Make Grid3D plugin more flexible
Add Windows Installation
Gazebo GUI 4.2.0 (2021-02-09)
Added issue and PR templates
Visualize single channel 8 bit image data
Gazebo GUI 4.1.1 (2021-01-05)
Use default value of double ptr argv for CLI
Generate valid topics depending on world name
Gazebo GUI 4.1.0 (2020-12-18)
Publish plugin API docs
Tutorial tweaks
Floating and standalone plugins respect minimum dimensions
Add scrollable indicator for plugin menu
Add qml-module-qtcharts dependency
Re-enable image.config test
Improve fork experience
Resolve updated codecheck issues
Port Gazebo GUI events to Gazebo GUI
Change deprecated Qt::MidButton
Add right mouse events and tests
Avoid crash on macOS
Gazebo GUI 4.0.0 (2020-09-29)
GitHub migration
Fixed ImageDisplay in Ubuntu 20.04
Re-enable publisher test
Disable TopicViewer test on Windows and macOS
Documentation updates
Fix qt anchor warnings
Plotting: transport plotting and interface
Use std::chrono instead of common::Time
Depend on QtCharts and change application base class to QApplication
Depend on gz-msgs6 and gz-transport9
Depend on gz-rendering4
Gazebo GUI 3
Gazebo GUI 3.12.0 (2022-11-30)
Add degree as an optional unit for rotation in GzPose.
Fix image display test.
Update cmd/CMakeLists to conform with all other gz libraries.
Add key publisher test.
Add pointer check in Application::RemovePlugin.
Ign to gz header migration.
Gazebo GUI 3.11.2 (2022-08-17)
Fix mistaken dialog error message
Gazebo GUI 3.11.1 (2022-08-15)
Replace pose in Grid3d with GzPose
Remove redundant namespace references
Update codeowners
GzColor
ColorDialogue
fixFix attribute update when
<dialog>
isn’t presentAdd test for
Plugin::ConfigStr()
Gazebo GUI 3.11.0 (2022-08-02)
Dialog read attribute fixes
Fixed topic echo test
Teleop: Refactor and support vertical
Change
IGN_DESIGNATION
toGZ_DESIGNATION
Ignition -> Gazebo
Gazebo GUI 3.10.0 (2022-07-13)
Add common widget for vector3
Allow Dialogs to have a MainWindow independent config
Add common widget for pose
Example running a dialog before the main window
Common widget GzColor
Fix ign_TEST
Make display tests more robust
Bash completion for flags
Disable failing test on Citadel
Search menu keyboard control
Add config relative path environment variable
Sort plugin list in alphabetical order (including when filtering)
Added array to snackbar qml
Fix some Qt warnings
Added Snackbar qtquick object
Fix menu scrolling when a new plugin is added
Improve KeyPublisher’s usability
Backport GridConfig improvements to Citadel’s Grid3D
Gazebo GUI 3.9.0 (2022-01-14)
Added a button that allows shutting down both the client and server.
Prevent Scene3D 💥 if another scene is already loaded
Add project() to examples and remove hard-dependency on Ogre1
Fix codecheck
Use
qmldir
to define QML module withIgnSpinBox
Fix
TopicEcho
plugin message displayDon’t crash if a plugin has invalid QML
Added log storing for
gz gui
CLI
Gazebo GUI 3.8.0 (2021-10-12)
Improved doxygen
Add a filter to the plugin menu
👩🌾 Remove bitbucket-pipelines.yml
Require gz-rendering 3.5
New teleop plugin implementation.
Gazebo GUI 3.7.0 (2021-07-14)
Fix codeowners
Fix plugin added signal, add PluginByName
Fixed tests by passing valid argv
Screenshot plugin fixed dbg message
Detect gz instead of using cmake module to check for gz-tools
Gazebo GUI 3.6.0 (2021-06-17)
Update codeowners
Confirmation dialog when closing main window
Avoid grid3D crash
Emit more events from Scene3D
Removed duplicated code with rendering::sceneFromFirstRenderEngine
Remove
tools/code_check
and update codecovFixed material specular in
Scene3D
check_test_ran.py
: remove grep/xsltproc
Gazebo GUI 3.5.1 (2021-03-18)
Scene3D: port mesh material fixes from gz-sim
Improve the height of plugins in the right split
Gazebo GUI 3.5.0 (2021-03-10)
Screenshot plugin
Master branch updates
Backport Publisher test from v4
Better error messages when component can’t be loaded
Make Grid3D plugin more flexible
Add Windows Installation
Fix codecheck
Gazebo GUI 3.4.0 (2020-12-10)
Publish plugin API docs
Tutorial tweaks
Floating and standalone plugins respect minimum dimensions
Add scrollable indicator for plugin menu
Re-enable image.config test
Improve fork experience
Resolve updated codecheck issues
Port Gazebo GUI events to Gazebo GUI
Change deprecated Qt::MidButton
Add right mouse events and tests
Gazebo GUI 3.3.0 (2020-08-31)
rename key publisher plugin
Add shift + drag to rotate camera
Scroll bar adjustment
Minimize GUI plugin
Fix tests on actions
Disable failing tests
Use world name in default topics
Fix running plugins with bad world name
Disable more tests known to fail on macOS and Windows
Add render event
Fixed left menu events
Added Topic Viewer plugin, list all transport topics
Fix ImageDisplay in Ubuntu 20.04
Gazebo GUI 3.2.0 (2020-06-22)
Sort GUI plugins alphabetically
Add color palette to plugin settings to change background color
Close plugin menu after a plugin has been added
Resize undocked plugins by dragging corners
Move each plugin to its own directory
Add Key Publisher plugin
GitHub migration
Gazebo GUI 3.1.0 (2020-03-27)
Remove old gz-gui0 stuff
Fix homebrew warnings
Add space for pausing sim
Prettify plugin menu
Expose QML context to plugins
Fix changing topics in ImageDisplay
Made image display responsive.
Downstream applications can override icon using MainWindow::setIcon once they get the window.
Add support for visualizing int 16 bit images in ImageDisplay
Example opening a dialog and accessing main window from plugin
Example composing one plugin with multiple QML files
Protect against null tinyxml GetText
Example using Ign*.qml components
Config tutorial
Add copyright to all QML files
Documentation updates
Gazebo GUI 3.0.0 (2019-12-10)
Depend on gz-transport8 and gz-msgs5
Depend on gz-rendering3
Gazebo GUI 2
Gazebo GUI 2.3.3 (2020-08-31)
Fix running plugins with bad world names.
Disable more tests known to fail on macOS and Windows.
Gazebo GUI 2.3.2 (2020-08-19)
Revert pull request #107
Gazebo GUI 2.3.1 (2020-08-17)
Fix running plugins with bad world name
Gazebo GUI 2.3.0 (2020-08-11)
Add shift + drag to rotate camera
Scroll bar adjustment
Minimize GUI plugin
Fix tests on actions
Disable failing tests
Use world name in default topics
Gazebo GUI 2.2.0 (2020-06-17)
Sort GUI plugins alphabetically
Add color palette to plugin settings to change background color
Close plugin menu after a plugin has been added
Resize undocked plugins by dragging corners
Move each plugin to its own directory
GitHub migration
Fix homebrew warnings
Gazebo GUI 2.1.0 (2020-03-04)
Add space for pausing sim
Expose QML context to plugins
Prettify plugin menu
Example opening a dialog and accessing main window from plugin
Example using Ign*.qml components
Protect against null tinyxml GetText
Config tutorial
Add copyright to all QML files
Fix changing topics in ImageDisplay
Gazebo GUI 2.0.1
Made image display responsive.
Downstream applications can override this using MainWindow::setIcon once they get the window.
Gazebo GUI 2.0.0
Delete QmlApplicationEngine later.
Decouple toolbar colors from material theme colors.
Stop mouse wheel propagation at the card level.
Fix theme support.
Don’t install plugin headers, move images to unported.
Application PluginAdded signal.
Use the new
msgs::Image::pixel_format_type
field, and treatmsgs::Image::pixel_format
as a backup.Upgrade to ignition-msgs4 and ignition-transport7.
Fix topic echo test and make msgs visible.
Gazebo GUI 1
Gazebo GUI 1.X.X
Move files not ported to v1 to a separate dir for clarity.
Get gz-gui plugin interface in case there are others.
Gazebo GUI 1.0.0