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.
Click to view our demonstration video!
Note: Although each function is shown separately in the video, all of them can be selected and used at the same time.
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.
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.
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:
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.
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
- 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
- Then, run this command:
sudo apt install --reinstall libdouble-conversion1
- Now, close and relaunch the terminal, then run the following commands:
cd ~/Gestro && sudo ./build.sh
Firstly, launch a terminal and enter the following commands to cd into the Gestro's bin directory:
Start the Gestro application by running the following commands:
For instructions on how to use the Gestro application, please see User Manual on our website.
Run the unit tests by running the following commands in a terminal:
ENG5220 - Real-time Embedded Systems - Team 26:
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.
Check out Gestro's documentation page!
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.