UNIVERSITATEA ALEXANDRU IOAN CUZA IAŞI
FACULTATEA DE INFORMATICĂ
LUCRARE DE LICENŢĂ
Simularea traficului semaforizat inteligent propusă de
Bogdan Grădinariu Sesiunea: iunie 2011
Coordonator ştiinţific
Asist. univ. doctorand Vârlan Cosmin
1
UNIVERSITATEA ALEXANDRU IOAN CUZA IAŞI
FACULTATEA DE INFORMATICĂ
Simularea traficului semaforizat inteligent
Bogdan Grădinariu
Sesiunea: iunie 2011
Coordonator ştiinţific
Asist. univ. doctorand Vârlan Cosmin
2
DECLARAŢIE PRIVIND ORIGINALITATE ŞI RESPECTAREA DREPTURILOR DE AUTOR
Prin prezenta declar că Lucrarea de licenţă cu titlul “Titlul complet al lucrării” este scrisă de mine şi nu a mai fost prezentată niciodată la o altă facultate sau instituţie de învăţământ superior din ţară sau străinătate. De asemenea, declar că toate sursele utilizate, inclusiv cele preluate de pe Internet, sunt indicate în lucrare, cu respectarea regulilor de evitare a plagiatului: ●
toate fragmentele de text reproduse exact, chiar şi în traducere proprie din altă limbă, sunt scrise între ghilimele şi deţin referinţa precisă a sursei;
●
reformularea în cuvinte proprii a textelor scrise de către alţi autori deţine referinţa precisă;
●
codul sursă, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizate cu respectarea drepturilor de autor şi deţin referinţe precise;
●
rezumarea ideilor altor autori precizează referinţa precisă la textul original.
Iaşi, 27.06.2011
Absolvent Bogdan Grădinariu _________________________
3
DECLARAŢIE DE CONSIMŢĂMÂNT
Prin prezenta declar că sunt de acord ca Lucrarea de licenţă cu titlul “Simularea traficului semaforizat inteligent”, codul sursă al programelor şi celelalte conţinuturi (grafice, multimedia, date de test etc.) care însoţesc această lucrare să fie utilizate în cadrul Facultăţii de Informatică. De asemenea, sunt de acord ca Facultatea de Informatică de la Universitatea Alexandru Ioan Cuza Iaşi să utilizeze, modifice, reproducă şi să distribuie în scopuri necomerciale programele-calculator, format executabil şi sursă, realizate de mine în cadrul prezentei lucrări de licenţă
Iaşi, 27.06.2011
Absolvent Bogdan Grădinariu _________________________
4
CUPRINS INTRODUCERE...............................................................................................................6 Contribuţii..................................................................................................................... 8 Capitolul 1. Semaforizarea........................................................................................9 1.1 Semaforizarea - Descriere...............................................................................9 1.2 Semaforizare - Utilitate..................................................................................10 1.3 Semaforizarea - Scurt istoric..........................................................................11 1.4. Design.....................................................................................................12 1.5 Semaforizarea - Semaforizarea eficienta.......................................................13 1.6 Semaforizarea - Semaforizarea inteligentă....................................................16 Capitolul 2. Arhitectura aplicaţiei.............................................................................18 2.1 Premise şi direcţii de dezvoltare....................................................................18 2.2 Tehnologii şi servicii.......................................................................................19 2.3 Elemente notabile de implementare...............................................................20 2.3.1 Elemente notabile de implementare. Harta.................................................20 2.3.2 Elemente notabile de implementare. Waypoint...........................................21 2.3.3 Elemente notabile de implementare. Car....................................................22 Capitolul 3. Avantajele şi dezavantajele unei semaforizari inteligente.....................25 Capitolul 4. Viitorul semafoarelor ............................................................................27
5
INTRODUCERE
Traficul auto din oraşe este foarte afectat de sistemele curente de semaforizare. În momentul în care se aşteaptă la un semafor, şoferul pierde timp şi maşina consumă combustibil. Prin urmare, reducerea intervalului de timp de aşteptare la semafor ar reduce semnificativ cantitatea inutilă de dioxid de carbon emisă în atmosferă şi ar ajuta societatea să economisească milioane de Euro anual. Pentru ca această idee să poată fi pusă în practică, trebuie introdus un nou concept, acela de “Semaforizare inteligentă”. Sistemele clasice de semaforizare se bazează doar pe microcontrolere şi microprocesoare, fapt care implică anumite limitări.Datorită intervalelor predefinite fixe de timp în care semafoarele îşi modifică stările(
roşu/galben/verde
)
semaforizarea
devine
ineficientă
datorită
lipsei
flexibilităţii( în sensul că indiferent de condiţii, semafoarele vor acţiona întotdeauna la fel ). Pentru a eficientiza controlul traficului prin semafoare, la implementarea logicii semafoarelor trebuie să se pună accentul pe dinamism şi pe algoritmi inteligenţi de analiză a traficului. O astfel de semaforizare ar putea analiza în timp real numărul de maşini care aşteaptă la semafor şi să ia decizii ce ar favoriza fluidizarea traficului. Ideea de “Semaforizare inteligentă” nu este una nouă. Încă de când a fost conceput semaforul, se dorea ca acesta sa poată rezolva problematica traficului într-un mod cât mai eficient, însă, din motive tehnologice, până nu demult timp, acest lucru nu a fost în totalitate posibil. La ora actuală există numeroase sisteme care implementează un management inteligent al traficului auto, însă nici unul nu este standardizat. Acestea sunt răspândite în toate colţurile lumii ( se presupune că în Statele Unite toate semafoarele sunt coordonate de un sistem inteligent ). Mai nou, ţi în România s-a arătat un interes faţă de acest nou tip de dirijare al traficului. Din 2010, prin proiectul “Civitas” din cadrul proiectului “Archimedes”, şi în Iaşi există o astfel de semaforizare concentrată pe ruta “Rond Agronomie” - “Campus
6
studenţesc Tudor Vladimerescu”. Aplicaţia prezentată în această lucrare a fost concepută iniţial pentru a participa la licitaţia organizată de Primaria Iaşi pentru a stabili un sistem de management “real-time” al semafoarelor din Iaşi. Aplicaţia în cauză este o aplicaţie web care simulează traficul ieşean pe bulevardul Carol şi dirijează acest trafic printr-un sistem de semaforizare inteligentă. Scopul acesteia este demonstrarea practică a faptului că semaforizarea inteligentă poate îmbunătăţi fluxul traficului şi poate reduce numărul de accidente rutiere. Această lucrare familiarizează cititorului conceptul de “semafor” şi prezintă succint un scurt istoric al evoluţiei acestui concept în domeniul transporturilor auto. În cel de-al doilea capitol este prezentată aplicaţia de semaforizare inteligentă în sine, de la general la particular. Capitolul trei surprinde principalele avantaje şi dezavantaje ale unui sistem de management inteligent al traficului, pe când ultimul capitol prezintă o viziune asupra viitorului prin prisma semafoarelor inteligente.
7
Contribuţii Am implementat o aplicaţie care permite atât gestionarea unor puncte cheie a unui sistem rutier( intersecţii semaforizate ), cât şi simularea traficului şi a semaforizării pe acest sistem rutier. În afară de serviciul online de hărţi oferit de “google maps”, nu există alte contribuţii externe în elaborarea acestei lucrări de licenţă. Principalele contribuţii aduse la elaborarea acestei lucrări de licenţă sunt: ●
elaborarea unui algoritm de calculare al “costurilor” maşinilor aflate în trafic
●
implementarea simulării traficului
●
implementarea sistemului de management al semafoarelor
8
Capitolul 1. Semaforizarea 1.1 Semaforizarea - Descriere
Conceptul de semafor este adesea asociat cu un dispozitiv ce are rolul de a decide priorităţile unui sistem. În viaţa de zi cu zi, semafoarele sunt folosite în multe domenii, dintre care amintim : ●
informatică
●
domeniull nautic
●
domeniul feroviar
●
domeniul rutier Indiferent de domeniul în care este folosit, la un nivel abstract, semaforul are
acelaşi rol : sincronizarea accesului unei resurse de către mai multe entităţi. În informatică, un semafor reprezintă un algoritm care realizează managementul accesului la resurse partajate. Câteva exemple unde este nevoie de un astfel de mecanism: ●
accesul mai multor procese la o zonă de memorie
●
accesul a două thread-uri din acelaşi proces la zone de memorie a acestui proces
●
accesul procesoarelor( din sisteme multi-core ) la memoria RAM Să presupunem un scenariu în care utilizatorul deschide acelaşi fisier text în două
ferestre separate. În momentul în care acesta face o modificare într-una din cele două ferestre, procesul asociat acesteia accesează şi modifica datele fişierului înregistrate într-o zonă de memorie care este simultan accesată şi de cealaltă fereastră. Efectul acestei modificări este dezastruos: acelaşi fişier text deschis în două ferestre diferite are reprezentări diferite. Utilitatea mecanismului de sincronizare este imediat evidentă. Dacă în cazul precedent ar fi existat un semafor care să decidă care proces are dreptul de a accesa şi
9
modifica zona de memorie ce conţinea datele fişierului respectiv, rezultatul ar fi fost diferit. Dacă în informatică se doreşte sincronizarea accesului mai multor procese la aceeasi zonă de memorie, in domeniul transporturilor, fie feroviar, nautic sau auto, se doreşte sincronizarea vehiculelor care folosesc aceleaşi rute. Prin analogie cu domeniul informatic, putem considera vehiculele drept procese şi rutele drept zone de memorie. Să presupunem că două vehicule vor să traverseze acelaşi punct cheie dintr-o anumita rută în acelaşi timp. Ca şi în exemplul precedent, lipsa unui sistem de semaforizare poate conduce la rezultate dezastruase. În acest caz, fara un semafor care să ofere prioritate unui vehicul la traversarea punctului cheie, există posibilitatea ca ambele vehicule să traverseze în acelaşi timp, astfel încât să intre în coliziune.
1.2 Semaforizare - Utilitate
În mod ideal, orice două entităţi ce folosesc simultan aceeaşi resursa, au nevoie de un mecanism de acordare a priorităţii, un mecanism care, pe baza anumitor factori, este capabil să decidă care dintre cele două entităţi are dreptul de a folosi acea resursă la un moment dat. Fără această sincronizare pot apărea conflicte la nivelul accesului resursei. Pentru ca două trenuri să nu se ciocnească este nevoie de un semafor, pentru ca un proces sa nu corupa datele altui proces este nevoie de un semafor, pentru a nu se produce un accident într-o intersecţie este nevoie de un semafor. Indiferent de domeniul de utilizare, conceptul şi utilitatea semaforului rămân neschimbate.
10
1.3 Semaforizarea - Scurt istoric
Încă din secolul XVIII s-a simţit nevoia unui sistem de prioretizare a circulaţiei, pentru a reduce atât numărul coliziunilor autovehiculelor, cât şi a blocărilor de trafic. Primele semafoare pentru traficul auto au fost proiectate de către inginerul feroviar J.P.Knight şi fost folosite în Londra, la data de 10 decembrie 1868. Acestea semanau cu semafoarele feroviare din acel timp : aveau două braţe colorate cu verde şi cu roşu( braţul verde indica prioritatea ). Pe timp de noapte semafoarele aveau ataşate câte o lampa pe baza de gaz, colorată pe o jumătate verde şi pe cealaltă roşu care era rotită manual prin intermediul unei manete, astfel încât jumătatea verde să fie orientată spre vehiculele care aveau prioritate. Aceste semafoare au fost un eşec, nu datorita faptului că ar fi fost ineficiente, ci pentru că la data de 2 ianuarie 1869, la mai puţin de o lună de la inaugurare, o lampa a explodat, omorând un poliţist. În 1912, un poliţist american, Lester Wire, a abordat problema semaforului dintr-o perspectiva modernă. Acesta a inventat şi montat în Salt Lake City primul semafor auto electric. După doar doi ani, tânăra companie americana “American Traffic Signal Company”, pe baza design-ului lui James Hoge, a instalat un sistem de semaforizare în Ohio, care avea, în plus, faţă de cel precedent un sistem auditiv( buzzer ) care era declanşat înainte de schimbarea culorii semaforului pentru a atenţiona autovehiculele. Acest model creat de James permitea poliţiei şi pompierilor să controleze semafoarele în caz de urgenţă. Primul semafor cu trei culori pentru patru direcţii a fost inventat de ofiţerul de poliţie William Potts, în Detroi, Michigan, în 1920. În 1922 T.E. Hayes a brevetat 11
"Combination traffic guide and traffic regulating signal" .Ashville, Ohio pretind că la ei s-a folosit ultimul semafor de acest gen, până în 1982 când a fost dus la un muzeu local. Primele semafoare interconectate au fost instalate în Salt Lake City în 1917, cu şase intersecţii controlate simultan de un întrerupător manual. Controlul automat a fost introdus în martie 1922, în Houston, Texas. Primul semafor automatizat a fost lansat în Wolverhampton în 1927. În 1923 Garrett Morgan a brevetat versiunea lui. Modelul acestuia era un stâlp sub forma unui "T". Unicul avantaj al acestui tip de semafor era faptul că putea fi controlat de la distanţă printr-un sistem mecanic. Culorile semaforului, care reprezintă stop şi mergi, se presupune că au fost derivate de la sistemul maritim, de identificare a bordului (roşu) şi tribordului (verde), unde vasul din stânga se opreşte că să treacă cel din dreapta. Semafoarele cronometrate au apărut în 1999, în Taiwan şi au fost aduse în America după ce un inginer le-a înteles scopul. Aceste semafoare încă se mai folosesc, fiind utile pietonilor pentru a-şi cronometra timpul pe care îl au pentru a traversa.
1.4. Design
În mod traditional sunt folosite becuri incandescente si cu halogen. Din cauza eficientei scazute a productie de becuri si a singurului punct de esec (arderea filamentului) municipalitatile au hotarât sa se foloseasca o multime de LED-urile. Acestea sunt mai ieftine, au capacitate de iluminat mai mare, si în cazul în care un LED se arde mai ramân celelalte sa lumineze. Semnale luminoase customizabile - 3M High Visibility Signal - folosesc optica difuza a luminii si lentile pentru a crea semnalul luminos. Lumina trece prin doua lentile de sticla din spatele semnalului luminos. Prima lentila este mata transforma lumina într-o minge uniforma de lumina,cu diametrul de 125 mm. Apoi lumina trece prin a doua lentila, cunoscuta sub denumirea de lentila limitatoare. Folosind o folie speciala de aluminiu, aceste semnale erau mascate astfel sa fie vazute doar de pe anumite benzi. Lentilele fresnel concentreaza lumina si creaza o uniformizare a luminii pentru banda respectiva.
12
În Statele Unite, semafoarele au becuri cu diametru de 300 mm. Înainte becurile trebuiau să aibă diametru de 200 mm, dar au fost scoase în favoarea becurilor cu dimensiuni mai mari. În Marea Britanie au fost introduse becurile de 300 mm, dar după folosirea acestora s-au gândit că nu este necesară folosirea lor şi au revenit la becurile de 200 mm.
1.5 Semaforizarea - Semaforizarea eficienta
Principalele motive pentru care a fost simţită nevoia introducerii sistemelor de semaforizare pe străzi sunt numărul mare de accidente rutiere în jurul intersectiilor şi de blocajele de trafic. Dacă scopul semaforului este acela de diminua numarul accidentelor şi de a fluidiza traficul, atunci se pune în discuţie problema eficientei semaforizării. Chiar dacă în mod teoretic semaforizarea ar trebui sa fie benefică, în practică, nu orice intersecţie trebuie semaforizată. Potrivit inginerilor de trafic, semafoarele pot avea deopotrivă atât efecte pozitive cât şi efecte negative. Este adevărat că în timp pot diminua numarul accidentelor “din lateral”, dar excesul de semafoare şi semaforizările ineficiente cresc frecvenţa accidentelor “din spate” şi defavorizează pietonii şi cicliştii. Semafoarele pot creste capacitatea traficului la intersecţii, însă, de asemenea, pot fi cauza întârzierilor excesive în trafic. În acest sens, Hans Monderman - inginer de trafic danez, un adevărat pionier in domeniul resurselor partajate - declara : “Ne dorim semafoare doar acolo unde sunt utile şi eu nu am gasit înca un astfel de loc.” Pentru a înlatura efectele negative ale semafoarelor, de-a lungul anilor au fost propuse numeroase metode de eficientizare a semaforizărilor. Puţine însă şi-au atins scopul, unele fiind aplicabile doar în cazuri izolate. 13
O prima mare îmbunătăţire a fost introducerea semafoarelor pietonale, care facilitează trecerea în siguranţa a pietonilor de pe o parte pe alta străzii în cauză. În cazul unei intersectii a două străzi, semafoarele pietonale nu îngreunează traficul, deoarece acestea se pot sincroniza cu cele auto de pe planul paralel( cealalta stradă ). Astfel semafoarele pietonale sunt verzi doar când semafoarele auto de pe aceeaşi stradă sunt roşii, fapt care fluidizează traficul ( maşinile nu trebuie să oprească special pentru trecerea pietonilor ). În unele locuri, semafoarelor pietonale le sunt ataşate dispozitive sonore ce au ca rol ghidarea pietonilor orbi sau cu probleme de vedere. În Iaşi, aceste dispozitive sunt declanşate doar în momentul în care semaforul pietonal indică verde, pe când în Australia, dispozitivul emite efecte sonore slabe cât timp semaforul este roşu şi efecte sonore mai puternice cât timp este verde. În unele locuri, semafoarele pietonale au ataşat un dispozitiv cu buton şi sunt tot timpul roşii. Acestea se fac verzi doar “la cerere” : în momentul în care pietonul apasă pe acel buton, semaforul pietonal se schimbă din roşu în verde şi cele auto corespunzătoare se schimbă din verde în roşu. În acest fel, nu se întrerupe fluxul de maşini la un interval regulat de timp, ca la semafoarele normale, ci doar în momentul în care există o cerere pietonala de traversare, fapt care mareşte capacitatea traficului în acea intersectie. În aceiaşi ordine de idei, o îmbunătăţire a constituit-o introducerea semafoarelor pentru ciclişti, care uşurează traficul acolo unde sunt piste de ciclişti. Încă de la cel de-al treilea sistem de semaforizare oficial ( 1914 ), s-a pus problema controlării semaforizării în cazuri de urgenţă. Acest lucru se referă la modificarea fazelor semafoarelor unei intersecţii astfel încât să faciliteze trecerea mai rapidă a vehiculelor de urgenţa ( maşini de poliţie, ambulanţe, maşini de pompieri etc. ). În majoritatea cazurilor, acest lucru nu se mai realizează ca în 1914, unde centralista care primea apelul de urgenţa “construia” ruta maşinii şi modifica manual starea semafoarelor de pe acea rută, ci se folosesc transmiţătoare instalate pe aceste maşini care emit unde 14
radio sau unde infraroşii ce pot fi captate de semafoare. În momentul în care un semafor primeste semnalul transmis de maşina, acesta îşi schimbă culoarea în roşu, indiferent de starea anterioara. Astfel, în momentul producerii unei urgenţe( accident, incendiu etc. )se blochează toata intersecţia, facilitând circulaţia maşinilor de urgenţă fără perturbaţii. Dupa trecerea maşinii ce a declanşat ciclul de urgenţă, semafoarele îşi reiau activitatea în regim normal. Mai nou, acest tip de control al semaforizării în caz de urgenţă se realizează automat prin intermediul semnalului gps: maşinile cu prioritate sunt monitorizate constant, iar cand se apropie de o intersecţie, aceasta intră în ciclul de urgenţă, şi revine la normal după ce maşina a depaşit intersecţia. Odată implementat un astfel de sistem, “maşinile de urgenţă” se pot extinde, în sensul în care şi alte maşini pot beneficia de o prioritizare în trafic. Acest lucru s-a încercat şi la Iaşi prin proiectul “Civitas” din cadrul proiectului “Archimedes”, prin intermediul căruia toate vehiculele de transport în comun ar fi trebuit să beneficieze de această prioritizare în trafic. O altă inovaţie este constituita din cronometrarea fazelor semafoarelor.
Astfel,
semafoare
arată
nu
numai
starea
( verde/galben/roşu ) ci şi durata de timp a acestora. Adevărata utilitate a acestora este pusă la îndoială, deoarece, chiar dacă ofera atât pietonilor cât şi şoferilor un plus de informaţie care poate fi utilă pentru planificarea traversării intersecţiei, limitează modul de schimbare al fazelor semafoarelor care implementează o soluţie “dinamică”( ex: semaforizarea în caz de urgenţă ). Pentru anumite tipuri speciale de vehicule s-au creat semafoare speciale. Un exemplu în acest sens este semaforul pentru tramvai. Acesta are patru becuri de aceeaşi culoare( în general albă ) care sunt poziţionate sub forma unui “T”. Modul in care sunt aprinse indică grafic direcţia de mers:
15
Altă îmbunătăţire o constituie instalarea unor senzori în intersectii, senzori care detectează prezenţa maşinilor. Cu ajutorul senzorului folosit ca un declanşator, se aplică cazul semaforizării “la cerere” de la semafoarele pietonale cu buton: în momentul în care se apropie o maşină de intersecţie, senzorul o detectează şi semaforul încearcă să îşi schimbe starea( din roşu în verde ). Dacă nu este declanşat senzorul, semaforul ramane roşu. În realitate, în multe cazuri, senzorul nu putea detecta biciclete sau maşini mici, acest sistem dovedindu-se ineficient. O soluţie a fost renunţarea la senzori şi dotarea semafoarelor cu camere infraroşii. Acestea şi-au gasit o nouă utilitate: monitorizarea traficului şi raportarea oricarei încălcări a legislaţiei traficului. În acest sens, în momentul în care semaforul intră în faza roşie,
camera
este
programată
să
fotografieze orice vehicul care nu respectă culoarea semaforului şi trece pe roşu. Cu tot cu aceste inovaţii care tind să crească eficienţa semmaforizărilor, în viaţa reală nu are loc întotdeauna
fluidizarea
traficului. Acest rezultat parţial nesatisfăcător a condus la crearea unui nou concept, acel de “Semaforizare inteligentă”.
1.6 Semaforizarea - Semaforizarea inteligentă
Sistemele de semaforizare au evoluat în timp de la o simpla automatizare la un management al traficului din ce în ce mai inteligent. Cele mai simple semafoare se 16
bazează pe un ceas intern, pe baza căruia alocă fiecarei stare( roşu/galben/verde ) o anumita perioadă de timp predefinită. Acest model de semaforizare este des întâlnit în oraşe, unde fluxul de maşini este previzibil, dacă nu chiar constant. În acest sens, semaforizarea “simplă” poate face faţă unor scenarii predefinite( ore de vârf, zile de sărbătoare, etc. ), dar poate fi depăşită într-o situaţie “ieşită din comun”( ex: trafic atipic într-o duminică dupa-amiază ). Pentru a putea face faţă oricarui scenariu de trafic, trebuie să existe o legătură, un mod de comunicare între maşină şi semafoare. S-au mai încercat “comunicări” prin intermediul senzorilor de proximitate sau de presiune, însă, pentru ca semaforul să poată lua decizia cea mai bună, trebuie să existe o legatură mult mai strânsă între acesta şi maşini. Una din cele mai realiste şi des întâlnite soluţii pentru o semaforizare inteligentă este aceea ca fiecare vehicul să raporteze semaforului poziţia sa şi destinaţia. Pe baza acestor date, semaforul ar trebui să fie capabil să ia cea mai bună decizie( ex: care bandă să fie verde )care să minimizeze durata de aşteptare medie a maşinilor până ajung la destinaţie. Semaforul inteligent rezolvă această problemă calculând un “scor” pentru fiecare maşină. Acest scor reprezintă diferenţa dintre durata estimată de timp în care fiecare vehicul ar ajunge la destinaţie dacă semaforul ar fi verde şi durata estimată de timp în care fiecare vehicul ar ajunge la destinaţie dacă semaforul ar fi roşu. Următorul pas este ca semaforul să determine care acţiune maximizează scorul mediu al fiecarui vehicul. Datorită faptului că semafoarele sunt interconectate, există posibilitatea ca acestea să dirijeze traficul pe alte rute în cazul în care o rută este prea aglomerată sau în cazul producerii unui accident sau blocaj. Există şi alte abordări ale unei semaforizări inteligente, însă principiul de bază nu diferă: folosirea de sisteme multi-agent în care comunicarea şi coordonarea joacă un rol foarte important. Cu toate că există multe implementări ale acestui tip de sistem( conform Primariei există şi în Iaşi încă din 2010 ), nu s-a gasit o soluţie optima generală.
17
Capitolul 2. Arhitectura aplicaţiei 2.1 Premise şi direcţii de dezvoltare Această aplicaţie are ca scop implementarea unui sistem inteligent de semaforizare şi monitorizare al traficului, în vederea fluidizării traficului. Altfel spus, aplicaţia încearcă să minimizeze timpul mediu petrecut în trafic al unui vehicul. Acest lucru se realizează prin asocierea fiecărui vehicul aflat în circulaţie a unui punctaj care poate fi tradus într-un fel de grad de prioritate al vehiculului. Aplicaţia încearcă minimizarea timpului de aşteptare( la intersecţiile semaforizate )a vehiculelor cu prioritate mai mare. Aplicaţia oferă posibilitatea managementului manual al intersecţilor şi semafoarelor, punând la dispoziţia utilizatorului o interfaţă grafică prin care se pot adăuga/modifica/şterge intersecţiile şi semafoarele folosite. Iniţial, semafoarele au presetate câteva cicluri care pot fi activate manual sau automat. Pe parcursul rulării aplicaţiei, în măsura în care semafoarele “învaţă”, acestea tind sa nu respecte aceste reguli de funcţionare presetate şi să prefere modificarea dinamică a ciclurilor. Pentru monitorizarea traficului, o unealtă des întâlnită este simulatorul de trafic. Aplicaţia implementează, de asemenea, şi un simulator de trafic, care are atât rolul de a genera date pentru sistemul inteligent de semaforizare, cât şi rolul de a prezenta aplicaţia într-un mod cât mai “user-friendly”, acesta generând o interfaţă grafică intuitivă şi uşor accesibilă.
18
2.2 Tehnologii şi servicii
Dintre o multitudine de posibilităţi şi moduri de implementare a acestui software, am ales să construiesc aplicaţia sub forma unei aplicaţii web. Sub această formă, aplicaţia oferă mai multe avantaje decât o aplicaţie desktop, şi anume: ●
independenţa faţă de platformă ( nu contează de pe ce sistem pc/laptop/tabletă/mobil - sau de pe ce sistem de operare rulezi aplicaţia windows/linux/mac os/android - deoarece aplicaţia este rulată într-un browser )
●
nivel ridicat de utilizabilitate ( pentru a rula aplicaţia, nu este nevoie decât de accesarea URL-ului acesteia într-un browser; nu este nevoie de vreo instalare vreo-unui software auxiliar )
●
accesibilitate uşoară ( aplicaţia poate fi rulată din orice colţ al lumii )
●
integrarea serviciilor web ( posibilitatea de a utiliza un serviciu web - ex: google maps, google calendar etc. )
●
centralizarea datelor
Tehnologiile folosite sunt cele tipice pentru o aplicaţie web, şi anume: ●
PHP pentru partea “backend”. Prin acest limbaj de programare sunt generate paginile HTML, se setează sesiunile şi se realizează schimbul de informaţii cu baza de date.
●
MySql pentru stocarea datelor. Prin intermediul acestui sistem de management relaţional al bazelor de date sunt stocate detaliile referitoare la intersecţii, semafoare( nume, localizare ) şi cicluri de bază.
●
JavaScript pentru partea “frontend”. Acest limbaj reprezintă punctul cheie al aplicaţiei, deoarece prin intermediul acestuia se ofera dinamismul de care are nevoie aplicaţia. Toate calculele şi toţi algoritmii sunt scrişi în acest limbaj de programare. Tot prin javascript se realizează conexiunea cu serviciul google maps, care oferă ( prin intermediul unui api scris in javascript ) baza interfeţei grafice a aplicaţiei.
19
Pentru a simula un sistem real de semaforizare, am preferat ca interfaţa grafică să reflecte cât mai mult realitatea. Astfel, în loc să creez propriul sistem de străzi pe care să ruleze simularea, am ales să folosesc serviciul de cartografie şi localizare oferit de google, şi anume, google maps. 2.3 Elemente notabile de implementare
Ca şi structură, aplicaţia este constituită din două parţi majore: 1. Managementul semafoarelor 2. Simularea traficului
Prima parte se referă efectiv la construirea şi editarea zonelor de semaforizare din simulare. Aceasta conţine un meniu care se modifică dinamic în funcţie de acţiunile interprinse de utilizator şi o interfaţă grafică ( hartă google maps ), unde utilizatorul poate selecta punctele exacte pe hartă ale intersecţiilor cu semafoarele corespunzătoare. Cea de a doua parte se ocupă strict de simulare, în sensul că utilizatorul are la dispoziţie harta cu semafoarele setate în prima parte a aplicaţiei, unde poate să observe simularea sau să participe activ la aceasta. Utilizatorul are control asupra demersului esimulării ( start/stop ) şi asupra câtorva parametri ce modifică viteza vehiculelor şi densitatea vehiculelor aflate în trafic. La deschiderea simulării, utilizatorul are posibilitatea să îşi aleagă un vehicul cu care să participe la simulare. Controlat prin intermediul săgeţilor de la tastatură, maşina “condusă” de utilizator se comportă ca celelalte maşini, în sensul că poate aştepta sau nu la semafoare sau poate avea accident.
2.3.1 Elemente notabile de implementare. Harta
Google maps este un serviciu furnizat de Google prin intermediul căruia utilizatorul are posibilitatea de a vizualiza orice ţară, localitate sau punct de interes geografic ( şi nu numai ) online. Acest serviciu este gratuit, ceea ce înseamnă că oricine 20
are o conexiune la internet poate beneficia de el. Este cel mai mare serviciu de hărţi la nivel mondial şi în acelaşi timp cel mai mare motor de căutare în funcţie de localizare. Pentru ca acest serviciu să poată fi integrat în alte aplicaţii, google a lansat un API (Application Programming Interface) care oferă utilizatorilor posibilitatea de a comunica cu acesta şi la nivel programatic. Aplicaţia de semaforizare se foloseşte de versiunea a doua a api-ului google maps pentru limbajul de programare javascript. 2.3.2 Elemente notabile de implementare. Waypoint
Problema simulării traficului a adus nevoia de a ghida maşinile dupa anumite puncte cheie numite “waypoints”. Conceptul de waypoint este adesea asociat cu un set de coordonate care determină un punct fizic pe hartă. Acestea sunt folosite în lumea reală în navigarea navală şi aeriană. În cazul aplicaţiei, waypoint-ul este un obiect javascript care menţine o referinţă la un anume punct pe hartă. Acesta poate fi privit ca o structură de tip “Nod” în cazul unui graf. La fel ca şi nodul unui graf, waypoint-ul menţine referinţe la alte obiecte de acelaşi tip, construindu-se astfel un drum reprezentat printr-un graf neorientat. Constructorul acestuia este supraîncărcat, astfel incât waypoint-u poate fi complet configurat încă de la iniţializare: poate fi instanţiat ●
fără parametri
●
cu un punct de tip “GLatLng” ( care face parte din api-ul google maps )
●
cu un punct şi o listă de alte obiecte de tip waypoint ( care vor fi noduri adiacente cu acesta în graful rezultat )
●
cu un punct, o listă de waypoint-uri şi un identificator unic ( de tip string )
●
cu un punct, o listă de waypoint-uri, un id şi un obiect de tip semafor
( a se vedea anexa X ) Pentru a păstra un design cât mai modularizat, comunicare dintre semafor şi vehicule se realizează prin intermediul waypoint-urilor. Astfel, waypoint-urile pot avea asociate câte un semafor, cu care pot comunica. Acestea sunt conştiente de starea curentă 21
a semaforului şi prin apelul metodei okToPass, waypoint-ul comunică vehicului dacă poate trece mai departe ( dacă semaforul asociat este verde ). Acest obiect este important pentru navigarea automată a maşinilor, deoarece, pe lângă drumul oferit, acesta poate calcula distanţa dintre sine şi orice alt waypoint de pe hartă prin intermediul metodei getDistanceFrom, poate calcula diferenţa gradului de înclinaţie ( grade sau radiani ) dintre sine şi orice alt waypoint de pe hartă prin metoda getAngleDiff şi poate returna în mod aleator următorul waypoint din drum în cazul în care acesta are mai mulţi “vecini”( scuteşte “şoferul” de luarea unor decizii de drum, lăsându-l
să
se
concentreze
asupra
“şofatului”
)
prin
intermediul
metodei
getNextWayPoint.
2.3.3 Elemente notabile de implementare. Car
Pentru ca simularea traficului să fie cît mai realistă, este nevoie de un sistem inteligent care să furnizeze datele de care au nevoie semafoarele. Obiectul de tip Car reprezintă entitatea ce furnizează aceste seturi de date. Acesta este reprezentat pe hartă printr-o imagine sugestivă( imaginea unui vehicul privit de sus ) şi poate parcurge trasee predefinite. Din punct de vedere al modului de interacţiunii cu simularea, maşinile ( de tip Car ) pot fi dirijate prin două moduri : ●
automat
●
manual În modul automat, maşinile pargurg un drum predefinit format din obiecte de tip
WayPoint. Graful descris de aceste puncte reprezintă traseul pe care maşina are voie să îl parcurgă. Astfel, maşinile merg din waypoint în waypoint, generând datele pentru sistemul de semaforizare. În momentul în care waypoint-ul curent al unui vehicul este asociat cu un semafor ( adică maşina este în apropierea unui semafor ), waypoint-ul comunică atît cu vehiculul, fuurnizându-i informaţii despre starea semaforului ( vehicul 22
are voie să treacă doar dacă apelul metodei okToPass a waypoint-ului returnează un mesaj corespunzător ). În cel de-al doilea mod - cel manual - utilizatorul controlează maşina. Astfel, spre deosebire de modul automat de dirijare, maşina nu mai este conştientă de vreun drum predefinit deoarece utilizatorul are control total asupra vehicului. Acesta dirijează vehiculul prin intermediul tastelor direcţionale( săgeţi ) sau prin tastele “W”, “S”, “A”, “D” şi îl frânează prin intermediul tastei “SPACE”. Astfel, pentru a ●
accelera, utilizatorul apasă una din tastele “săgeată înainte” sau “W”
●
decelera, utilizatorul apasă una din tastele “săgeată înapoi” sau “S”
●
vira la stânga, utilizatorul apasă una din tastele “săgeată stânga” sau “A”
●
vira la dreapta, utilizatorul apasă una din tastele “săgeată dreapta” sau “D”
●
frâna brusc, utilizatorul apasă tasta “SPACE”
●
porni/opri girofarul( unde este cazul ), utilizatoorul apasă tasta “G” În starea manuală, vehiculul nu este conştient nici de prezenţa( implicit nici de
starea ) semafoarelor, deoarece posibilitatea luării unei decizii ( de oprire la semafor ) este lăsată doar pe seama utilizatorului. Din punct de vedere al gradului de prioritate, vehiculele sunt împărţite în două categorii: ●
maşini fără prioritate
●
maşini cu prioritate Această prioretizare se referă la modul în care interacţionează sistemul de
semaforizare cu vehiculele. În cazul maşinilor cu prioritate, în momentul apropierii de o intersecţie semaforizată, sistemul blochează toată intersecţia - schimbă culoarea tuturor semafoarelor în roşu - pentru a furniza vehicului cu prioritate un drum fără perturbaţii. Acest comportament simulează cazul real în care o maşină de urgenţă( maşină de poliţie / ambulanţă / maşină de pomieri ) traversează o intersecţie. Pe lângă modul diferit în care semafoarele percep vehiculele cu prioritate, încă o diferenţă între cele două tipuri de vehicule constă din modul de afişare pe hartă:
23
vehiculele fără prioritate sunt reprezentate ca nişte maşini normale, pe când cele cu prioritate iau forma unor maşini de poliţie, sugerând astfel cazul de urgenţă. În cazul în care utilizatorul alege dirijarea unui vehicul cu prioritate, acesta mai are o extraopţiune, şi anume pornirea/închiderea “girofarului”( declanşat prin apăsarea tastei “G” ). Acesta nu este decât un mod grafic de a reprezenta starea de urgenţă a vehicului. Prin urmare, o maşină de poliţie cu girofarul oprit va fi tratată ca orice alt vehicul fără prioritate. În momentul în care aceasta are girofarul pornit, sistemul de semaforizare îi va fluidiza traseul. Obiectul de tip Car paote fi, ca şi în cazul obiectelor de tip WazPoint, configurat complet doar din instanţiere, acesta având constructori supraîncărcaţi pentru: ● niciun parametru ● o colecţie ( javascript literal object ) de optiuni de configurare ● un string ce indică tipul vehicului (“normal“ sau “police”) ● tipul vehicului şi un string ce determină numele maşinii ● tipul, numele şi o colecţie ( javascript literal object ) de opţiuni de configurare Opţiunile de configurare de bază constau în: ● viteză ● înclinaţie ● fps( “frames per second” - numărul de cadre pe secundă ) ● waypoint ( în cazul în care maşina este ghidată automat ) Viteza este calculată ca fiind raportul dintre pasul curent de incrementare al distanţei ( calculat în metri ) - memorat în proprietatea speed - şi durata de timp de incrementare a distanţei( fps-ul ). Pentru o simulare cât mai fidelă, reprezentarea vehiculelor nu se face doar printr-o imagine statică. Imaginea se roteşte în funcţie de gradul de înclinaţie al maşinii exprimat în grade. De rotirea imaginilor se ocupa scriptul php “rotateImg.php”, care primeşte ca parametri adresa imaginii (adresă relativă ) şi numărul de grade şi returnează imaginea primită ca parametru rotită la gradul de înclinaţie specificat.
24
Capitolul 3. Avantajele şi dezavantajele unei semaforizari inteligente
Un astfel de sistem prezinta in mod clar o serie de avantaje: 1. Fluidizarea traficului printr-o îmbunătăţire a condiţiilor de trafic cu aproximativ
15-35% 2. Imbunătăţirea serviciilor RATP sau a celor transport in comun prin respectarea
unei programări a sosirii în şi plecării vehiculelor din staţii 3. Semnalizarea instantanee a echipamentelor defecte din intersecţii şi posibilitatea
intervenţiei operative pentru remedierea defectelor 4. Imbunătăţirea serviciilor vehiculelor de intervenţie - Poliţie, Ambulanţă, Pompieri
prin crearea unei faze de blocare a intersectiei 5. Eliminarea factorului de decizie uman in dirijarea traficului in intersectii si
economisirea de resurse umane (agenti de politie) cu posibilitatea redestribuirii acestora in alte arii 6. Imbunatatirea gradului de confort atat pentru conducatorii auto, cat si pentru
pietonii 7. Eliminarea blocajelor la orele de varf 8. O mai buna supraveghere a traficului/conditiilor de trafic prin intermediul unui
centru de control 9. Detectarea ilegalitatilor prin intermediul dispozitivelor instalate in intersectii:
trecere pe rosu, incalcarea limitelor legale de viteza, convorbiri mobile etc. 10. O analiza statistica riguroasa a conditiilor de trafic in functie de intervale orare,
sezon, conditii meteorologice, diverse evenimente sau manifestatii 11. Distribuirea datelor in timp real soferilor in trafic petru o redirijare preemptiva a
traficului si o mai buna incarcare/echilibrare a diferitelor trasee 12. Limitarea numarului de accidente rutiere si victime 13. Un prim pas catre crearea unui CCTV(Closed Circuit Television) local
25
14. O infrastructura moderna de dirijare a circulatiei auto/pietonale la standarde
occidentale
Principalele dezavantaje ale folosirii unui sistem inteligent de semaforizare: 1. În primul rand un mare dezavantaj este costul unui astfel de proiect (pentru
municipiul Bucuresti a ajuns la un pret de 18 milioane de euro http://www.financiarul.com/articol_3099/controlul-inteligent-al-traficului--18mil--euro.html). Pornind de la echipamentele necesare (camere de supraveghere, servere,terminale), respectiv costul deployment-ului pe infrastructura existenta si cumpararea efectiva a software-ului necesar(algortmii de fluidizare a traficului), totalul de plata poate fi descurajant 2. Necesitatea unei administrari/supravegheri
periodice a unui astfel de sistem
complex 3. Necesitatea unei securizari ridicate a unui astfel de sistem, ceea ce implica alte
costuri suplimentare 4. Nu exista garantia unei colaborari cu firmele de transport in comun 5. Cresterea frecventeo accidentelor “rear-end” 6. Complicarea situatiei pentru un oras/municipiu cu tramvaie care nu introduce
decat un alt factor in analiza acestei probleme complexe
26
Capitolul 4. Viitorul semafoarelor Deja nu mai putem numi folosirea de led-uri (Light-Emitting Diode) ca fiind o inovaţie, deja peste 50% din fostele elemente de semaforizare au fost înlocuite cu versiuni ecologice, ce consumă mai puţin şi au o durată de viaţă mai mare. Partea de inovaţie în acest domeniu se ocupă pe cât posibil de îmbunătăţirea elementelor active ce participă la acest proces. Este vorba de două direcţii importante: îmbunătăţirea design-ului semafoarelor şi concentrarea atenţiei asupra acestora. Semafoarele nu şi-au schimbat aproape deloc design-ul de aprope 90 de ani, de la inventarea acestora în anii 20. Acest fapt este un clar indicator al reuşitei conceptului de semafor, însă, datorită numărului tot mai mare de autoturisme care apar pe zi, circa 150.000 (conform statisticii Organizaţiei Internaţionale a Producătorilor de Autoturisme din
2007),
nevoia
de
îmbunătăţiri
Sistemul de semaforizare automată implementat de Ford 27
devine
evidentă.
Un pas spre viitor este făcut ce compania americană Ford, care după ce deja a uimit publicul cu sistemele integrate în ultimele modele de maşini lansate pe piaţă, de exemplu ”Frânarea activă inteligentă” (un sistem ce utilizează un radar pentru a detecta şi frâna în funcţie de distanţă faţă de autovehicolul din faţă), ”Asistenţă pentru pastrarea benzii” (un sistem ce ajută şoferul prin atenţionări în momentul în care schimbă banda de mers făra a semnaliza) şi chiar ”Recunoaştere Automată a semnelor de circulaţie” (recunoaşte şi se adaptează la semnele de circulaţie detectate). Compania a lansat în martie 2011 un comunicat de presă, în era descris următorul proiect la care lucrează. Este vorba de un sistem bazat pe poziţionarea GPS. Dotarea fiecarui autoturism cu un astfel de dispozitiv va permite semafoarelor ( în ideea creării de sisteme independente ) să ia decizii în funcţie de trafic. Dacă de exemplu un autoturism se apropie cu viteză prea mare de o intersecţie (date primite prin GPS), iar culoarea semaforului este roşie, sistemul va determina ca respectivul autovehicul este un pericol pentru ceilalţi participanţi la trafic, aşa că îi va atenţiona. Aici intervine sistemul propriu al autotorismelor ce primesc semnalul, care reacţionează şi atenţionează conducătorii auto de necesitatea de a frâna. Dacă acesta nu decelerează destul de rapid, se vor amplifica avertismentele sonore din interiorul maşinii şi într-un caz final, chiar va frâna pentru acesta. Compania Siemens a început să lucreze recent la un proiect legat de sistemul de semaforizare. Aceştia au creat un sistem de microsimulare, exact ca şi targetul aceastei lucrări de licenţă, doar că 3D. Beneficiile unui asfel de sistem: simulări ieftine şi rapide pentru diverse scenarii de test, o înţelegere mai bună a conceptelor aplicate
în
traficul de zi cu zi, etc.
28
Astfel de aplicaţii sunt absolut vitale pentru dezvoltarea şi progresul mijloacelor de semaforizare, în special în zilele noastre, deoarece fluidizarea a devenit o necesitate, nu doar ceva util.
29
O altă direcţie în acest sens a fost propusă de designerul Hanyoung Lee. Acesta a creat aşa numitul ”Perete Virtual”, care este în principiu o barieră laser, care afişează persoae ce trec strada. Laserele sunt perfect sigure, puterea lor nefiind una prea mare, dar cel mai probabil sunt destul de puternice pentru a opri o maşină. Imaginile vorbesc de la sine:
30