Gestro
Gestro Documentation

Gestro

Controlling Linux system using hand gestures

Check out our docs >>

Contributors Issues License Releases LastCommit
  1. About Gestro
  2. Getting Started
  3. Launching Gestro

  4. Contributors
  5. Future Enhancement
  6. Social Media
  7. Documentation
  8. License

About Gestro

Gestro is developed by a group of students from The University of Glasgow currently undertaking the course of ENG5220 - Real-time Embedded Systems under Team 26.

Gestro is an application which allows users to control their Linux system using hand gestures so that users will be able to perform certains actions without the use of a keyboard and mouse. This is particularly useful in cases where users want to control their Linux PC while: being away from it, being unfamiliar with modern devices (such as Elderly people), et cetera.

By using a webcam and libraries such as OpenCV, X11, et cetera, Gestro is able to successfully translate hand gestures performed by users into commands that performs certain operations including, but not limited to, muting and unmuting the system's volume, move window, mouse move and clicks. Gestro is designed to be displayed using a Qt application on the users' Linux system running the Ubuntu distribution.

More details can be found below. However, for the complete information about Gestro, please visit our website.

Demonstration Video

Click to view our demonstration video!

Screenshot of demonstration

Note: Although each function is shown separately in the video, all of them can be selected and used at the same time.

Features

Built With

Built On

Getting Started

Gestro is designed to be used on Linux PCs running the Ubuntu distribution. In particular, it was tested and found to be running perfectly on PCs running Ubuntu 18.04 LTS.

Prerequisites

Gestro requires the following tools and libraries to run (other versions are not tested):

These required tools and libraries will be installed if you follow step 2 of the installation guide below.

Installation Guide

If permission is denied while trying to run any of the scripts, please enter the following Commands into the terminal and try running the script again, sudo chmod +x <script_name>.sh.

For example, for the install_dependencies.sh, enter sudo chmod +x install_dependencies.sh into the terminal.

1. Download the latest release from our Github and extract the contents into the Home folder.

Note: Make sure the folder with the contents is named "Gestro". If not, rename it to "Gestro".

Alternatively, launch a terminal and run:

git clone https://github.com/RandomGuy-coder/Gestro.git

2. Launch a terminal and enter the following commands into it to install the requirements:

cd ~/Gestro
sudo ./install_dependencies.sh

Note: If CMake version is found to be too low, please follow instructions here to update CMake. After updating CMake, make sure to close and reopen the terminal before starting from step 2 again.

3. Enter the following commands into the terminal to run the build script.

sudo chmod +x build.sh && sudo ./build.sh

If any of the following errors occured: >

This application failed to start because it could not find or load the Qt platform plugin "xcb" in "".
  
/usr/lib/qt5/bin/uic: error while loading shared libraries: libdouble-conversion.so.1: cannot open shared object file: No such file or directory
  
  1. Run this command in the terminal:
  2. sudo apt-get install libxcb-xinerama0
      

    If the previous command said that libxcb-xinerama0 is already installed or the newest version, run this:

    sudo apt install --reinstall libxcb-xinerama0
      
  3. Then, run this command:
  4. sudo apt install --reinstall libdouble-conversion1
      
  5. Now, close and relaunch the terminal, then run the following commands:
cd ~/Gestro && sudo ./build.sh
  

Launching Gestro

Firstly, launch a terminal and enter the following commands to cd into the Gestro's bin directory:

cd ~/Gestro/bin

Main Program

Start the Gestro application by running the following commands:

./Gestro

For instructions on how to use the Gestro application, please see User Manual on our website.

Unit Tests

Run the unit tests by running the following commands in a terminal:

cd ~/Gestro && sudo make test

Contributors:

ENG5220 - Real-time Embedded Systems - Team 26:

Future Enhancement:

Here are some of the planned features for this project:

Propose for a new feature or report a bug here!

Feel free to contribute to this project by forking it and submitting a pull request for the added changes.

Social Media:

Documentation

Check out Gestro's documentation page!

License

Distributed under the GPL-3.0 License. See LICENSE for more information.


Copyright © 2022; ENG5220 - Real-Time-Embedded-Systems - Team 26
Distributed by a GNU GPL-3.0 License.