[!WARNING]
STATUS REPOZITORIJUMA: ARHIVIRAN (DEPRECATED)Ovaj repozitorijum sadrži prvobitnu bare-metal verziju kontrolnog servera (pokretanu direktno na host operativnom sistemu) i više se ne održava. Kompletan backend je sada dokerizovan (Docker) i premešten u novi, odvojeni repozitorijum.
Inženjersko objašnjenje tranzicije: Iako je direktno pokretanje asinhronih Python skripti uz
systemdservise funkcionisalo, održavanje stabilnosti sistema postalo je nemoguće zbog specifičnih zahteva hardverskih biblioteka i Python okruženja.Edukativni i infrastrukturni benefiti: Prelazak na Docker arhitekturu donosi izolovan i predvidljiv deployment. Učenicima je omogućeno bezbedno eksperimentisanje sa AI i mrežnim kodom unutar sandbox kontejnera, bez rizika od oštećenja glavnog operativnog sistema.
Istorijska arhiva: Originalni kod za mrežni gateway i hardversku orkestraciju na Raspberry Pi 5 platformi pre prelaska na kontejnerizaciju.
Glavni razlog za napuštanje ovog pristupa je tzv. "Dependency Hell" specifičan za rad sa ugrađenim (embedded) sistemima i Python bibliotekama:
-
Sistemski konflikti: Biblioteke poput
aiortczahtevaju specifične verzijeOpenSSLiPyAV(koja se oslanja naFFmpegshared objekte). Ažuriranje sistemskog paketa na Raspberry Pi OS-u često bi dovelo do pucanja Python linkova, čineći server neupotrebljivim. -
PEP 668 Restrikcije: Moderni Debian-bazirani sistemi (Bookworm+) blokiraju
pip installizvan virtuelnih okruženja radi zaštite OS-a, što je komplikovalo automatizacijusystemdservisa i pristup hardverskim GPIO pinovima. -
Kompilacija na uređaju: Mnoge Python biblioteke za AI i video obradu zahtevaju sate kompilacije direktno na procesoru Raspberry Pi-ja. Docker omogućava korišćenje pre-built image-a, smanjujući vreme setup-a sa 45 minuta na ispod 2 minuta (
$O(1)$ deployment).
- UDP Command Center: Ultra-brza obrada komandi kretanja preko UDP protokola na portu
1606. - WebRTC Vision Engine: Optimizovan video striming niskih latencija putem WebRTC
/offerendpointa (Port1607). - Mecanum Kinematics: Napredni algoritmi za kontrolu kretanja motora sa preciznim PWM mapiranjem.
- Shared Camera Track: Istovremeno opsluživanje N WebRTC klijenata bez konflikata zahvaljujući
asyncioizolaciji memorije. - Fail-Safe Sistemi:
Motor Watchdogmehanizam koji zaustavlja robot u slučaju gubitka mrežnog signala ("Runaway Robot" prevencija).
| Komponenta | Tehnologija | Uloga u ovoj verziji (Napušteno) |
|---|---|---|
| OS Platforma | Raspberry Pi OS (64-bit) | Hardversko jezgro sistema |
| Language | Python 3.11+ | Glavna asinhrona logika (asyncio) |
| Camera Core | Libcamera / PyAV | Video capture i obrada |
| GPIO Control | LGPIO / Gpiozero | Upravljanje motorima |
| Networking | UDP & WebRTC (aiortc) |
Mrežni gateway |
Bez obzira na softversku tranziciju, fizička mapa pinova ostaje ista:
- Global PWM: GPIO 18 (Brzina)
- Motor A / B (Front): GPIO 17, 27 / 22, 23
- Motor C / D (Rear): GPIO 24, 25 / 5, 6
Autor: Danilo Stoletović • Mentor: Dejan Batanjac
ETŠ „Nikola Tesla“ Niš • 2026