Maintainer: louise [AT] openrobotics [DOT] org
Build | Status |
---|---|
Test coverage | |
Ubuntu Bionic | |
Homebrew | |
Windows |
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.
- 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, if you need to modify the code, or if you plan to make a contribution.
On Ubuntu Bionic, it's possible to install Ignition GUI's version 1 as follows:
Add OSRF packages:
echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main" > /etc/apt/sources.list.d/gazebo-stable.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-gui4-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.
Install dependencies:
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-add-repository -s "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -c -s) main"
sudo apt-get build-dep -y ignition-gui4
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:
# This checks out the `default` branch. You can append `-b ign-gui#` (replace # with a number) to checkout a specific version
git clone http://github.com/ignitionrobotics/ign-gui
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.
In the event that the installation is a mix of Debian and from source, command
line tools from ign-tools
may not work correctly.
A workaround for a single package is to define the environment variable
IGN_CONFIG_PATH
to point to the location of the Ignition library installation,
where the YAML file for the package is found, such as
export IGN_CONFIG_PATH=/usr/local/share/ignition
However, that environment variable only takes a single path, which means if the installations from source are in different locations, only one can be specified.
Another workaround for working with multiple Ignition libraries on the command line is using symbolic links to each library's YAML file.
mkdir ~/.ignition/tools/configs -p
cd ~/.ignition/tools/configs/
ln -s /usr/local/share/ignition/fuel4.yaml .
ln -s /usr/local/share/ignition/transport7.yaml .
ln -s /usr/local/share/ignition/transportlog7.yaml .
...
export IGN_CONFIG_PATH=$HOME/.ignition/tools/configs
This issue is tracked here.
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,.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 Ignition GUI as a library. Each example has instructions in a README file. -
examples/config
: Example configuration files which can be loaded usingign 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.
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.
This library is licensed under Apache 2.0. See also the LICENSE file.