Ignition GUI : Graphical interfaces for robotics applications
Maintainer: louise [AT] openrobotics [DOT] org
Ignition 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.
Ignition GUI ships with several widgets ready to use and offers a plugin interface which can be used to add custom widgets.
Table of Contents
- 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 Ignition Rendering
We recommend following the Binary Install instructions to get up and running as quickly and painlessly as possible.
The Source Install instructions should be used if you need the very latest software improvements, you need to modify the code, or you plan to make a contribution.
Ignition GUI's binary packages are still pre-releases and unstable.
On Ubuntu Bionic, it's possible to install Ignition GUI's version 1 pre-releases as follows:
Add OSRF packages:
echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main" > /etc/apt/sources.list.d/gazebo-stable.list echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-prerelease bionic main" > /etc/apt/sources.list.d/gazebo-prerelease.list sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 sudo apt update
Install Ignition GUI:
sudo apt install libignition-gui-dev
There are currently two versions under active development:
Version 0: It makes use of
QWidgets, which are common on traditional desktop-oriented interfaces. Requires Ubuntu Xenial or Higher.
Version 1: It makes use of
QtQuick, which allows developing more modern-looking apps with animations and a mobile/web feel. Requires Ubuntu Bionic or higher.
sudo apt update sudo apt -y install wget lsb-release gnupg sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-prerelease `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-prerelease.list' wget http://packages.osrfoundation.org/gazebo.key -O - | apt-key add - sudo apt update sudo apt install -y \ build-essential \ cmake \ qtbase5-dev \ libtinyxml2-dev \ libprotoc-dev \ libprotobuf-dev \ mercurial \ libignition-cmake1-dev \ libignition-common-dev \ libignition-math4-dev \ libignition-msgs-dev \ libignition-rendering-dev \ libignition-tools-dev \ libignition-transport4-dev
Clone source code, note you'll need the
hg clone http://bitbucket.org/ignitionrobotics/ign-gui -b default
sudo apt update sudo apt -y install wget lsb-release gnupg sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-prerelease `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-prerelease.list' wget http://packages.osrfoundation.org/gazebo.key -O - | apt-key add - sudo apt update sudo apt install -y g++-8 libignition-cmake2-dev libignition-common3-dev libignition-math6-dev libignition-msgs3-dev libignition-plugin-dev libignition-rendering-dev libignition-tools-dev libignition-transport6-dev libtinyxml2-dev qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8
Clone source code, note you'll need the
hg clone http://bitbucket.org/ignitionrobotics/ign-gui -b gz11
Building from source
Build and install as follows:
cd ign-gui mkdir build cd build cmake .. make -j4 sudo make install
Take a look at the tutorials for usage instructions and API documentation.
After building, to run all tests:
cd build make test
See this tutorial for further instructions on how to disable testing, run test coverage, etc.
include/ignition/gui: Contains all the files which will be installed, such as C++ headers,
qmlfiles. 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
test: All integration, performance and regression tests go here, under their specific folders.
examples/standalone: Example code for standalone applications using Ignition GUI as a library. Each example has instructions in a README file.
examples/config: Example configuration files which can be loaded using
ign 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 ign-tools.
doc: Files used by Doxygen when generating documentation.
Please see CONTRIBUTING.md.
Code of Conduct
Please see CODE_OF_CONDUCT.md.
This library uses Semantic Versioning. Additionally, this library is part of the Ignition Robotics project which periodically releases a versioned set of compatible and complimentary libraries. See the Ignition Robotics website for version and release information.