Informatii generale
- Categorie: Roboti
- Judetul: București
- Surse: GitHub - yokosumei/BayCruiser-repository2025InfoEducatie-: Repositoryul proiectului BayCruiser din cadrul Olimpiadei InfoEducatie
Descriere
Probleme reale: Cazurile frecvente de înec de pe plajele aglomerate, unde intervenția salvamarilor este adesea întârziată din cauza vizibilității reduse, distanței față de victimă sau lipsei de informare în timp real. Statisticile la nivel global arată că reacția rapidă este esențială pentru supraviețuirea victimelor și fiecare secundă contează. În plus, aglomerația, valurile și lipsa unei perspective aeriene pot duce la dificultăți majore în localizarea victimei. Soluțiile convenționale devin insuficiente în situații critice, unde timpul de reacție și coordonarea eficientă pot face diferența dintre viață și moarte.
Soluția: BayCruiser este o dronă autonomă echipată cu inteligență artificială care detectează în mod automat persoanele aflate în pericol de înec, folosind camere video și algoritmi de recunoaștere a comportamentului specific unei victime. Imediat ce detectează un incident, transmite alertă în timp real către salvamari printr-un website dedicat, transmite locația precisă către mijloacele de transport și lansează un colac de salvare direct către victimă, oferindu-i susținere până la sosirea salvamarului.
Drona utilizează algoritmi avansați AI pentru a detecta:
-Persoane la risc de înec
-Creaturi marine periculoase (meduze, rechini)
-Nivelul de adâncime al apei din jurul plajei
-Curenți de ruptură (rip currents).
Tehnologii
BayCruiser este o dronă autonomă de salvare, proiectată pentru intervenții rapide în zonele de risc de înec. Integrează o platformă de zbor F450, sisteme AI locale și o arhitectură software multi-thread dezvoltată în Python, care rulează direct pe un Raspberry Pi 4B. Structura modulară, alături de detecția comportamentală, îi permite să funcționeze autonom în medii necunoscute, fără pilot uman.
Arhitectură Software
Sistemul software rulează complet local pe Raspberry Pi 4B, fără dependență de cloud. Comunicarea internă este organizată în fire de execuție independente, fiecare cu rol dedicat: captură video, detecție AI, transmitere video, control dronă și comunicare WebSocket. Aceste fire sunt sincronizate printr-o mașină de stare internă, care garantează coerența operațiilor și prioritizarea comenzilor.
Comenzile către flight controller-ul Pixhawk 2.4.8 sunt transmise prin MAVLink folosind biblioteca DroneKit. Interfața web este construită cu Flask și Flask-SocketIO, oferind control complet asupra dronei prin browser și actualizare în timp real a statusului.
Modele AI
Zona de recunoaștere a dronei integrează mai multe modele de inteligență artificială:
-YOLOv11n – pentru detecția obiectelor (persoane, rechini, meduze)
-YOLOv11n-Segmentation – pentru segmentarea semantică a cadrului video (curenți, adâncimi)
-YOLOv11n-Pose Estimation + XGBoost – pentru analiza comportamentală a mișcărilor umane și clasificarea riscului de înec
Modelele funcționează asincron, în fire de execuție independente, și sunt activate doar la nevoie. Spre exemplu, XGBoost este activat doar când YOLOv11n detectează o persoană. Pe baza secvențelor de keypoints (34 puncte pe 30 de cadre), se formează un vector de intrare [1020] pentru clasificare comportamentală.
Controlul Drona
Zona de control este responsabilă de execuția acțiunilor fizice: decolare, aterizare, deplasare, orbitare, lansare colac, semnalizare acustică și luminoasă. Acțiunile sunt inițiate fie automat (la detecție), fie manual (din interfață). Comenzile sunt prioritizate, iar comanda de aterizare are prioritate absolută și întrerupe orice altă operație.
Comenzile sunt procesate pe fire separate, cu logică de stare care restricționează execuția în funcție de context (idle, patrol, emergency). Fluxul video și statusul sistemului sunt transmise în timp real către interfața web, care permite și activarea/oprirea modelelor AI.
Interfață Web
Interfața web rulează local, fără conexiune la internet. Utilizatorul poate:
-vizualiza fluxuri video (raw sau procesate)
comuta între modele AI
-controla drona (takeoff, land, goto, orbit)
-confirma sau respinge alerte
vizualiza statusul complet al sistemului
Interfața este responsivă, accesibilă din browser (desktop, tabletă, telefon) și nu necesită instalare. Comenzile sunt transmise prin WebSocket, iar datele video sunt servite în MJPEG.
Arhitectură Multi-thread
Pentru a menține performanța în timp real pe un sistem embedded, toate sarcinile sunt rulate în paralel, fiecare având propriul fir:
-camera_thread: captură video + timestamp + locație
-detection_thread: YOLOv11n
-segmentation_thread: YOLOv11n-Segmentation
-pose_xgb_thread: YOLOv11n-Pose + clasificare
-stream_thread: transmisie video live
-status_broadcast_loop: status sistem transmis UI
-drone_task_threads: pentru fiecare comandă (goto, land etc.)
Această organizare permite detecție continuă, reacție imediată și control simultan, fără blocaje între componente.
Componente Hardware
-Cadrul dronă: F450, 450 mm
-Motoare: 4x Brushless 2212, 1000KV
-ESC: 4x 30A BLHeli
-Flight Controller: Pixhawk 2.4.8
-Modul GPS: TS100 cu busolă HMC5883L
-Raspberry Pi 4B (4GB RAM)
-Cameră AI: Raspberry Pi Camera v2 (Sony IMX219)
-Servomotoare: 4x SG90 (2 pentru gimbal, 2 pentru colac)
-Gimbal: 2 axe, printat 3D
-Colac salvare: sistem mecanic cu cârlige servo
-Panou solar: 50W, monocristalin
-Sistem încărcare: regulator DC-DC 12.6V + BMS 3S
-Baterii: LiPo 3S 5000mAh
-Modul telemetrie: 2x (radio + calculator)
-LED-uri avertizare: 4x 5V adresabile
-Sistem sonor: modul audio activ
-Piese printate 3D: carcase, prinderi, gimbal, cârlige
Cerinte sistem
Drona echipata cu dronekit
Raspberry Pi4B si camera video AI Raspberry
Platformă și sistem de operare
Sistem de operare: Raspberry Pi OS (Bookworm) 64-bit
Kernel minim: Linux 5.15+
Arhitectură: ARMv8 (Raspberry Pi 4B)
Sistem de operare: Raspberry Pi OS (Bookworm) 64-bit
Kernel minim: Linux 5.15+
Arhitectură: ARMv8 (Raspberry Pi 4B).
Python: ≥ 3.10
Flask >= 2.2 – server web și rutare
Flask-SocketIO >= 5.3 – comunicare WebSocket în timp real
Eventlet >= 0.33 – server async pentru WebSocket
OpenCV >= 4.5 – procesare imagini și afișare stream
Ultralytics >= 8.0.100 – pentru YOLOv11 (.pt)
joblib – salvare/încărcare modele XGBoost
xgboost >= 1.7 – clasificare mișcare (înot vs. înec)
numpy – manipulare matrici și keypoints
scikit-learn – pipeline de preprocesare pentru XGBoost
picamera2 >= 0.3 – captură video de pe camera Pi
dronekit – comunicare MAVLink cu drona
PyTorch
Chrome / Edge / Firefox (desktop și mobil)
suport:WebSocket+HTML5 video stream.
Conexiune wifi constanta.
Porturi deschise:5000;
camera0 activată pentru PiCamera2.
Controller radio pentru drona.
Realizatori
Daria Antonia Stan
- Scoala: Colegiul National de Informatica “Tudor Vianu”
- Clasa: 9
- Judet: București
- Oras: Bucuresti
Teodor Preda
- Scoala: Colegiul national de informatica “Tudor Vianu”
- Clasa: 9
- Judet: București
- Oras: București