Skip to content

Repository files navigation

Multi Modal Mario Kart

Projekt realizowany w ramach przedmiotu Interfejsy człowiek komputer na 1 roku studiów magisterskich Automatyka i Robotyka.

Cel

Projekt miał na celu realizacje gry inspirowanej na Mario Kart natomiast zamieniając sterowanie na bazujące na wielomodalnościowym podejściu. Zaproponowane przez nas sterowanie opiera się na wizji, dzwięku oraz dotyku. Takie rozwiązanie może zapewnić nadzwyczajne doświadczenia z gry oraz stanowić bazę pod multimodalne interfejsy użytkownika w przyszłości, które dzięki rozwojowi metod analizy danych i sztucznej inteligencji zyskują popularność.

Struktura

Projekt składa się z 2 kluczowych folderów

  • Unreal_project w którym znajduje się gra stworzona z pomocą silnika Unreal Engine
  • Control_scripts zawierający skrypty w pythonie umożliwiające wielomodalnościowe sterowanie

Środowisko

Unreal Engine

Gra w Unreal Engine została przygotowana w wersji 5.7.4, w celu uruchomienia gry należy zainstalować środowisko w w.w wersji lub uruchomić plik '.exe' na platformę windows znajdujący się w realeases githuba.

Python (uv)

Aby przygotować środowisko Python ze wszystkimi zależnościami potrzebnymi do uruchomienia skryptów sterujących (w tym bibliotek do obsługi wizji, dźwięku, komunikacji szeregowej oraz klawiatury), użyj menedżera uv (lub innego, np. pip) i wykonaj poniższe polecenia w katalogu głównym projektu:

# 1. Stworzenie wirtualnego środowiska Python 3.11 (nadpisując istniejące, jeśli potrzeba)
uv venv --python 3.11 --clear

# 2. Instalacja wszystkich zależności z obu plików requirements.txt oraz dodatkowych bibliotek (pyserial, keyboard)
uv pip install -r requirements.txt -r Control_scripts/Audio/requirements.txt pyserial keyboard

# 3. Aktywacja środowiska w terminalu:
# PowerShell:
.venv\Scripts\Activate.ps1
# CMD:
.venv\Scripts\activate.bat
# Linux/macOS:
source .venv/bin/activate

Komunikacja

Komunikacja z grą odbywa się za pomocą protokołu udp i jest zdefiniowana w pliku connection_settings.json.

Modalności

Sterowanie grą składa się z poniższych modalności

Jak uruchomić wszystkie modalności

Uruchamiaj każdą modalność w osobnym terminalu (z katalogu głównego projektu). Najpierw uruchom Unreal Engine, potem skrypty sterujące.

Przykładowa kolejność:

  1. Unreal Engine (Unreal_project).
  2. Dotyk (pedal):
python Control_scripts/Pedal/Program/komunikacja/comms.py
  1. Dzwięk:
python Control_scripts/Audio/keyword_detection.py
  1. Wizja (wybierz jedną wersję):
python Control_scripts/steering_DG/steering_w_angles/main_controller.py

lub

python Control_scripts/steering_DG/steering_w_centroids/main_controller.py
  1. Wizja 2 (MediaPipe Hands):
python Control_scripts/Camera/camera_module.py
  1. Klawiatura (opcjonalnie, przykład):
python Control_scripts/Examples/player_1.py

Wszystkie skrypty korzystają z ustawień sieciowych z connection_settings.json.

About

Repository for a grup project at AGH 2026

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages