Skip to content

Gestro revolutionises the way of controlling one’s PC in real-time with the use of hand gestures, made possible using Computer Vision approaches.

License

Notifications You must be signed in to change notification settings

RandomGuy-coder/Gestro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gestro

Gestro Logo

Controlling Linux system using hand gestures


Contributors Issues License Releases LastCommit

Contents
  1. About Gestro
  2. Getting Started
  3. Launching Gestro
  4. Contributors
  5. Future Enhancement
  6. Social Media
  7. Documentation
  8. License

About Gestro

Screenshot of demonstration

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

Check out our demonstration video:

Gestro Demonstration Video

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

Features

  • Enter Spacebar (Used for Play and Pause).
  • Track mouse.
  • Perform mouse clicks.
  • Mute and Unmute Volume.
  • Move and Minimise window.

Built With

  • A PC running Ubuntu 18.04 LTS.
  • A webcam.

Built On

  • Iir
  • X11
  • Qt 5
  • C++
  • CMake
  • OpenCV
  • Doxygen
  • libasound2-dev
  • Google Unit Test Framework

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

  • A PC running Ubuntu.
  • A webcam.

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

  • X11
  • Qt 5
  • OpenCV 4.5.5
  • libasound2-dev
  • Google Unit Test FrameWork

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:
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
  1. Then, run this command:
sudo apt install --reinstall libdouble-conversion1
  1. 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:

  • Enter other keys
  • Close Window
  • Change window size
  • Play Next and Previous
  • Zoom in and Zoom out
  • Switch between applications
  • Increase and Decrease Brightness

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:

Follow us on:

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.

About

Gestro revolutionises the way of controlling one’s PC in real-time with the use of hand gestures, made possible using Computer Vision approaches.

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •