logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/radovi ma14068/logisiticki...

8
Rad za Internacionalnu konferenciju MHCL 2009 Beograd - RADNI MATERIJAL - Realizacija za drugu godinu istraživanja na Projektu 14068 Logisitički model optimalnog rutiranja sistema za sakupljanje otpada Predrag Milić, Goran Petrović, Miomir Jovanović, Zoran Marinković Radom je opisana ideja razvijanog modela za optimalno rutiranje vozila za sakupljanje otpada u gradskom prostoru. Koncept je izložen kroz opis primenjenog hardvera za GPS/GPRS komunikaciju sa vozilom upotrebom mobilne komunikacije i Interent konekcije. Rad prikazuje razvijen softver za upravljanje podacima, monitoring geografskih i saobraćajnih podataka. Modelom su opisani parametri koji su od interesa za on-line praćenje vozila na terenu. Dobijena iskustva su prikazana u radu u vidu izvoda iz softverske realizacije monitoringa gradskog prostora i postupaka optimizacije putanja. Aplikacija je u fazi razvoja i primenjena je na komunalnom sistemu u Nišu. Rezultati i iskustva primene u tom logističkom sistemu izloženi su u radu. Opis hardvera za GPS/GPRS komunikaciju Sve kompanije koje poseduju i u svom radu koriste flotu vozila imaju potrebu za sistemom koji će im omogućiti nadgledanje kretanja svakog vozila pojedinačno [1,2]. Sistem koji to omogućava je relativno jednostavan i zasnovan je na modernim GPS/GPRS komunikacionim sistemima. Iako po nameni i funkcijama koje nude ovi sistemi mogu biti različiti, zajednički su im osnovna funkcija (lociranje i praćenje vozila) kao i naziv Automatic Vehicle Location (AVL sistemi). Primer jednog takvog AVL sistema dat je na slici *.*. Sl. *.*. Komponente AVL sistema za praćenje vozila Sistem za praćenje vozila za sakupljanje otpada koji je razvijen na Mašinskom fakultetu u Nišu (u saradnji sa kompanijom “Galeb Group”) sastoji se od modula Oris 08D koji se ugrađuje u komunalna vozila, PC računara - servera na koji se podaci automatski skladište, kao i aplikarivnog softvera - routing za vizualizaciju prikupljenih podataka. “Oris 08D” u sebi poseduje GPS (Global Positioning System) prijemnik pomoću koga se određuje tačna lokacija vozila. Prijemnik koristi mikrotalasne signale, dobijene od GPS satelita (24 GPS satelita u svakom trenutku kruži u orbiti Zemlje[3]), na osnovu kojih može veoma precizno da sračuna lokaciju, vreme, kao i brzinu i pravac kretanja vozila. Svaki GPS satelit kontinualno šalje signale koji se sastoje od vremena kad je signal poslat, orbitalne pozicije satelita, kao i generalno stanje sistema. Prijemnik meri vreme koje protekne od trenutka slanja do trenutka prijema signala na

Upload: others

Post on 03-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

Rad za Internacionalnu konferenciju MHCL 2009 Beograd - RADNI MATERIJAL - Realizacija za drugu godinu istraživanja na Projektu 14068

Logisitički model optimalnog rutiranja sistema za sakupljanje otpada

Predrag Milić, Goran Petrović, Miomir Jovanović, Zoran Marinković

Radom je opisana ideja razvijanog modela za optimalno rutiranje vozila za sakupljanje otpada u gradskom prostoru. Koncept je izložen kroz opis primenjenog hardvera za GPS/GPRS komunikaciju sa vozilom upotrebom mobilne komunikacije i Interent konekcije. Rad prikazuje razvijen softver za upravljanje podacima, monitoring geografskih i saobraćajnih podataka. Modelom su opisani parametri koji su od interesa za on-line praćenje vozila na terenu. Dobijena iskustva su prikazana u radu u vidu izvoda iz softverske realizacije monitoringa gradskog prostora i postupaka optimizacije putanja. Aplikacija je u fazi razvoja i primenjena je na komunalnom sistemu u Nišu. Rezultati i iskustva primene u tom logističkom sistemu izloženi su u radu. Opis hardvera za GPS/GPRS komunikaciju

Sve kompanije koje poseduju i u svom radu koriste flotu vozila imaju potrebu za sistemom koji će im omogućiti nadgledanje kretanja svakog vozila pojedinačno [1,2]. Sistem koji to omogućava je relativno jednostavan i zasnovan je na modernim GPS/GPRS komunikacionim sistemima. Iako po nameni i funkcijama koje nude ovi sistemi mogu biti različiti, zajednički su im osnovna funkcija (lociranje i praćenje vozila) kao i naziv Automatic Vehicle Location (AVL sistemi). Primer jednog takvog AVL sistema dat je na slici *.*.

Sl. *.*. Komponente AVL sistema za praćenje vozila Sistem za praćenje vozila za sakupljanje otpada koji je razvijen na Mašinskom fakultetu u Nišu (u saradnji sa kompanijom “Galeb Group”) sastoji se od modula Oris 08D koji se ugrađuje u komunalna vozila, PC računara - servera na koji se podaci automatski skladište, kao i aplikarivnog softvera - routing za vizualizaciju prikupljenih podataka. “Oris 08D” u sebi poseduje GPS (Global Positioning System) prijemnik pomoću koga se određuje tačna lokacija vozila. Prijemnik koristi mikrotalasne signale, dobijene od GPS satelita (24 GPS satelita u svakom trenutku kruži u orbiti Zemlje[3]), na osnovu kojih može veoma precizno da sračuna lokaciju, vreme, kao i brzinu i pravac kretanja vozila. Svaki GPS satelit kontinualno šalje signale koji se sastoje od vremena kad je signal poslat, orbitalne pozicije satelita, kao i generalno stanje sistema. Prijemnik meri vreme koje protekne od trenutka slanja do trenutka prijema signala na

Page 2: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

osnovu koga, metodom geometrijske trilateracije, sračunava trenutnu svoju lokaciju. Lokacija prijemnika je definisana koordinatama - longitudom i latitudom.

Ovaj modul u sebi ima i GSM/GPRS modul koji koristi mrežu mobilne telefonije za prenos podataka do servera. Osnovu ove komunikacije čini SIM (Subscriber Identity Module) kartica pomoću koje uređaj šalje podatke na unapred definisanu IP adresu servera. Pored osnovnih parametara, brzine, smera kretanja i tačne pozicije, uređaj ima mogućnost slanja više razlicitih statusa, koje može da detektuje, a to su nivo napona akumulatora, nivo goriva, detekciju otvaranja/zatvaranja vrata i prtljažnog prostora, aktiviranju panik tastera, kao i posebno definisanih tastera od strane krajnjeg korisnika [4]. Intenzitet i količina ostvarenog GSM/GPRS saobraćaja mogu biti kontrolisani podešavanjem parametara slanja uređaja. Uređaj ima mogućnost automatskog prilagođenja parametara slanja u skladu sa kretanjem ili mirovanjem vozila. U slučaju detektovanja alarmnog stanja uređaj može poslati alarmnu SMS poruku korisniku.

2.0 Opis rada softvera “routing”

Slika 1. Tok informacija kroz sistem

Page 3: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

Na sistemu prikazanom na slici 1 mogu se uočiti dva nivoa prenosa podataka. GPS modem koji se nalazi u vozilu šalje putem mobilne telefonije (GPRS-om) podatke vezane za poziciju vozila, vreme kao i digitalne i analogne merne podatke koji su dobijeni sa mernih uredjaja u vozilu. Ovi podaci se šalju na unapred definisani port servera. Odvojena aplikacija „ORIS Server“ osluškuje port i sve podatke koje primi na tom portu (uzet je port 1701) tumači i zapisuje u bazu podataka koja je formirana u MySql-u. Oblik podataka koji prima server je sledeći:

Slika 2 Oblik podataka koji stižu na server

Slika 3 Oblik podataka koji koji se snimaju na serveru

Ovim se završava prvi nivo prenosa podatak. Podacima iz baze može pristupiti više host aplikacija koje mogu samo čitati podatke sa servera i zasebno ih interpretirati. Drugi nivo prenosa podataka se odvja paralelno od servera ka host aplikacijama.

Host aplikacija pod nazivom “routing” ima sledeće namene: - praćenje vozila i podataka o stanju vozila primenom GPS-GPRS uredjaja, - rutiranje saobraćajnih sretstava za sakupljanje otpada (definisanje ruta vozila kojim treba

da se kreće prilikom sakupljanja smeća) – u fazi realizacije, - amutomatsko reprogramiranje ruta vozila na osnovu podataka sa terena – u fazi realizacije.

Slika 4 Izgled aplikacije (razvijane za JKP Merijana)

Page 4: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

Softver ima sledeće celine: - osnovni modul koji integriše sve ostale module, - modul za unos podataka o putnoj mreži, - modul za prikaz podataka, - modula za komunikaciju sa serverom na kome se nalaze podaci o položajima vozila i

mernim signalima i za prikazivanje pozicije vozila, - modul za odredjivanje objekata (raskrsnica i segmenata ulica – formiranje grafa) na

putnoj mreži i odredjivanje najkraćih rastojanja. - modul za rutiranje saobraćajnih sretstava sa primenom različitih metoda rutiranja, - modul za zaključivanje stepena izvršenja rute

Softver je pisan u programskom jeziku C# sa korišćenjem MSSQL i MySQL servera za rad sa podacima. Na glavnoj formi aplikacije mogu se uočiti dve grupe alata. Prva grupa alata služi za rad sa fajlovima i za navigaciju na karti. Druga grupa alata služi za prelaz iz jednog u drugi modul softvera (npr. za prelaz sa modula za rutiranje na modul za praćenje). Kako je za rad softvera neophodan uredjaj za GPS pozicioniranje tako i mapa koja se koristi mora imati veliku tačnost. Softver koristi GPS mapu grada. Mapa koja se koristi nije sastavni deo softvera već se po potrebi može učitati. Za tu namenu koristi se poseban modul koji ima sledeće zadatke:

- Učitavanje tekstualnog podatka na osnovu pred selekcije (pred selektija podrazumeva izbor tipa podataka iz mape koji želimo da učitamo),

- Tumačenje učitanih podataka (ovaj mod, - Sortiranje podataka u bazi podataka.

Slika 5 Izgled forme za unos mape

Predstavljanje mape na panelu forme pomoću GDI++ naredbi kao i ostalih grafičkih objakta vrši se na osnovu potataka o putnoj mreži zi baze pri čemu je svaka ulica predstavljena kao objekat sa mogućnošću selekcije i predsavljanje podataka na levom panelu. drawmap[] arr = new drawmap[redrb]; //definisanje vektora objekata unapred definisanog broja objekata try { dataConnection.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=| DataDirectory|\map_data.mdf;Integrated Security=True;User Instance=True";//konekcija sa bazom dataConnection.Open();//otvaranje konekcije dataCommand.Connection = dataConnection; int rednibrojgraf; for (rednibrojgraf = 1; rednibrojgraf <(redrb+1); rednibrojgraf++) { dataCommand.CommandText = "SELECT rednibroj, objekt, tip, oznaka, pravac, data FROM mapa Orders WHERE rednibroj=" + rednibrojgraf; // Query SqlDataReader AdataReader = dataCommand.ExecuteReader(); int brojkrive=0; while (AdataReader.Read()) { int rednibroj = AdataReader.GetInt32(0); if (AdataReader.IsDBNull(2)) {MessageBox.Show("greska");} else { arr[brojkrive] = new drawmap(brojkrive); //drwmap kreirana klasa za prikaz objakata int rednibroj1 = AdataReader.GetInt32(0); //dodeljivanje vrednosti pročitane iz baze

Page 5: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

string objekat = AdataReader.GetString(1);// -||- int tip = AdataReader.GetInt32(2); // -||- string oznaka = AdataReader.GetString(3); // -||- int pravac = AdataReader.GetInt32(4); // -||- string data = AdataReader.GetString(5); // -||- string Linija; string[] VrednostLinije; Linija = data; VrednostLinije = Linija.Split(','); int brkoordinata = VrednostLinije.Length; arr[brojkrive].brojulice = rednibroj1; arr[brojkrive].objekat = objekat; arr[brojkrive].tip = tip; arr[brojkrive].oznaka = oznaka; arr[brojkrive].pravac = pravac; arr[brojkrive].koordinateobjekta = VrednostLinije; arr[brojkrive].latmax = Latmax; arr[brojkrive].latmin = Latmin; arr[brojkrive].longmax = Longmax; arr[brojkrive].longmin = Longmin; drawmap.razmrabirano = RAZMERA;

this.panel7.Paint += new System.Windows.Forms.PaintEventHandler(arr[brojkrive].drawmap1);

this.panel7.MouseClick += new MouseEventHandler(arr[brojkrive].mis); brojkrive++; } } AdataReader.Close(); } } catch (SqlException e){MessageBox.Show("Greška u pristupu bazi:" + e.Message, "Greska u konekciji!");} //hvatanje eventualnih izuzetaka – najcesce greska u pristupu bazi finally{dataConnection.Close();}

Predstavljanje mape sa GPS koordinatama se vrši razvijanjem dužine luka. Kako je zemlja približan elipsoid predstavljanje se vrši razvijanjem svere a preračun distanci se vrši po Vincentovoj formuli kojom se dobijaju veoma precizni podaci.

K1 = (((6371009.0 * Math.PI) / 180.0) * (150.0 / _razmera)); double konverzija = (_longmax - _longmin) * K1; int dx = Convert.ToInt32((latitude0 - _latmin) * K1); int dy = Convert.ToInt32(-((longitude0 - _longmin) * K1) + konverzija);

Pomena vidljivosti, boja i širina grafičkih objakata se vrši preko sledeće forme:

Slika 6 Izgled forme za predstavljanje grafičkih objekata

Svi objakti mape su grupisani u tri grupe i to: putna mreža, vode i ogranice oblasti. Putna mreža je podeljena na pet nivo po važnosti. Važnost – veličina puteva osim za prikazivanje imaće uticaja i pri odredjivanju optimalne rute kao i mogućnosti kretanja pojedinih vozila tim putevima. Praćenje vozila: Modul za praćenje vozila ima za zadatak da preuzme podatke sa servera, predstavi ih u grafičkom okruženju, statistički obradi podatke. Softver najpre pokušava da uspostavi konekciju sa serverom koji se nalazi na proizvoljnoj lokaciji. Ukoliko je konkcija uspostavljena učitavaju se podaci iz table „vozila“ i predstavljaju u checklist boksu.

Page 6: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

Slika 7 Lista vozila koja se prate

Za selektovano vozilo izborom opcije prikaži u gragičkom okruženju se prikazuje trenutna lokacija vozila.

Slika 8 Praćenje vozila (mapa grada Niša)

Na osnovnu podataka u dva uzasotopna javljanja može se izračunati i prosečna brzina u tom periodu. Pri tome za izračunavanje distance se koristi iterativna Vincentova formula za WGS 84 (World Geodetic System) elipsoid a za koji su parametri dobijena longituda i latituda sa GPS uredjaja. class distance { /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Vincent-ovo inverzno resenje /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ public static double distanca(double lat1, double lon1, double lat2, double lon2) { const double a = 6378137; const double b = 6356752.3142; const double f = 1/298.257223563; // WGS-84 elipsiod double L=(lon2-lon1)*Math.PI/180; double U1=Math.Atan((1-f)*Math.Tan(lat1*Math.PI/180)); double U2=Math.Atan((1-f)*Math.Tan(lat2*Math.PI/180)); double sinU1=Math.Sin(U1); double sinU2=Math.Sin(U2); double cosU1=Math.Cos(U1); double cosU2=Math.Cos(U2); double lambda=L; double lambdaP; double iterLimit=20; double cosSqAlpha; double sinAlpha; double sigma; double sinLambda; double cosSigma; double sinSigma; double cosLambda; double cos2SigmaM; double C; do { sinLambda=Math.Sin(lambda); cosLambda=Math.Cos(lambda); sinSigma=Math.Sqrt((cosU2*sinLambda) * (cosU2*sinLambda) + (cosU1*sinU2-sinU1*cosU2*cosLambda) * (cosU1*sinU2-sinU1*cosU2*cosLambda));

Page 7: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

if(sinSigma==0)return 0; cosSigma=sinU1*sinU2 + cosU1*cosU2*cosLambda; sigma=Math.Atan2(sinSigma,cosSigma); sinAlpha=cosU1*cosU2*sinLambda / sinSigma; cosSqAlpha = 1 - sinAlpha*sinAlpha; cos2SigmaM = cosSigma - 2*sinU1*sinU2/cosSqAlpha; if (double.IsNaN(cos2SigmaM)) cos2SigmaM = 0; C = f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha)); lambdaP = lambda; lambda = L + (1-C) * f * sinAlpha * (sigma + C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2* cos2SigmaM *cos2SigmaM))); } while (Math.Abs(lambda-lambdaP)>1e-12 && --iterLimit>0); if (iterLimit==0) return double.NaN; // formula failed to converge double uSq = cosSqAlpha * (a*a - b*b) / (b*b); double A = 1 + uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq))); double B = uSq/1024 * (256+uSq*(-128+uSq*(74-47*uSq))); double deltaSigma = B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)- B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM))); double s = b*A*(sigma-deltaSigma); // round to 1mm precision return s; } }

Formiranje grafa: Da bi uneta putna mereža bila pogodna za odredjivanje ruta, neophodno je kao takvu prilagoditi ovim zadacima. Prvi korak je odredjivanje raskrsnica u bazi puteva. Raskrsnica predstavlja čvor grafa. Skup čvorova je sastavljen od raskrsnica, lokacija za sklupljanje otpada, početne lokacije i krajnje lokacije – deponije. Softver automatski odredjuje raskrsnice i predstavlja ih na panelu.

Slika 9 Formiranje grafa.

Na osnovu formiranih čvorova i odredjivanja segmenata ulica kao grana u grafu sa uzimanjem u obzir smera puteva. Formira se graf. Na slici 9 priakazan je proces formiranja grafa. Na levoj strani je meni za selekciju sadržaja koji se prikazuje. [1] M. Petković, S. Djordjević-Kajan, D Mitrović, L. Stoimenov, "Application of Informatics in Fleet

Management", Proc. of the IASTED Applied Informatics International Conference 1998, Garmisch-Partenkirchen, Germany, pp. 195-198,

[2] I. Antolović, M. Bogdanović, B. Predić, V. Mihajlović, D. Rančić, B. Blagojević, V. Antić, "Web portal za analizu kvaliteta realizacije gradskog i prigradskog autobuskog saobraćaja", 16. Telekomunikacioni forum TELFOR 2008, Beograd, 2008,

[3] "NAVSTAR GPS USER EQUIPMENT INTRODUCTION", public release version, US Government, 1996, http://www.navcen.uscg.gov/pubs/gps/gpsuser/gpsuser.pdf

[4] N. Janković, S. Malenčić, "Tehničko uputstvo uređaja Galeb Oris 08D", Galeb Group, decembar 2008,

Page 8: Logisiticki model optimalnog rutiranja sistema za ...ttl.masfak.ni.ac.rs/RADOVI MA14068/Logisiticki model optimalnog rutiranja.pdf · Koncept je izložen kroz opis primenjenog hardvera

Predrag Milić, e-mail: [email protected] Miomir Jovanović: [email protected]