Skip to content

tum-robotics/garmi-gui

Repository files navigation

garmi-gui

Actions Status Documentation Status PyPI version PyPI platforms codecov

GUI for the GARMI robot's face screen with remote control to show images, play videos and sounds, and render text.

Install

To install run

pip install garmi-gui

or if you're working with the code in a local clone of the repository

pip install -v -e .[dev]

Checkout the contribution guide for more details.

Run

The Python package installs executables for convenience. You can start the GUI by simply running garmi-gui. This will start the GUI in fullscreen mode. For development purposes it is convenient to run the GUI in windowed mode, you can do so by executing garmi-gui --windowed.

Remote Control

The GUI is controlled remotely using xmlrpc. There is a convenience terminal script to quickly execute GUI functions. You can run the tool by executing garmi-gui-control --hostname <gui-hostname> where <gui-hostname> is the hostname of the computer running the GUI.

To control the GUI from Python simply connect with an xmlrpc client and call the remote functions like this:

from xmlrpc import client

hostname = "localhost"
port = 8000

server_url = f"http://{hostname}:{port}"
proxy = client.ServerProxy(server_url)

proxy.show_image("happy.png")
proxy.play_sound("success.wav")

You may specify an absolute path to a file on the computer running the GUI, relative paths are evaluated relative to the resources directory. Checkout the documentation or the control script for a complete list of possible commands.

Requirements

To install this package you need pip >= 19.3 and SDL >= 2.0.8. You can upgrade pip by running pip install --upgrade pip. SDL can be installed on Ubuntu systems by executing sudo apt-get install libsdl-dev in a terminal.