Komunikacijski protokol
Uvod
Protokol komunikacije među promatračima i koordinatorom
je oblikovan u skladu sa zahtjevima koje agenti moraju
zadovoljavati.
Trajanje vremenskog intervala između slanja i primanja
poruke je vrlo teško predvidjeti jer sudionici komunikacije
imaju velike apetite za procesorom računala:
promatrači obrađuju sliku, a koordinator udružuje trajektorije.
Agenti stoga mogu samo povremeno ostaviti svoj glavni
posao i pogledati je li u međuvremenu došla kakva poruka.
Takvo primanje poruka je nažalost povezano sa vremenski skupim
promjenama konteksta ili sa provjerom u fiksnim vremenskim intervalima,
što sve vodi ka kašnjenju primitka poruke.
Svaka poruka se sastoji od svog informacijskog sadržaja
i vremena kreiranja koje se onda može koristiti za
interpretaciju poruke u stvarnom vremenu.
Značaj poruka je obično vezan za neki određeni trenutak
u stvarnom vremenu, kao npr. pribavljanje slike u kojoj
su detektirani objekti čiji položaj poruka prijavljuje.
Zato svaka poruka ima svoj rok trajanja,
unutar kojeg mora biti obrađena ili inače zastarijeva.
Rok trajanja ovisi o konkretnom sustavu, pa tako,
primjerice, poruku koja izvještava položaj objekta
i koja je poslana prije 500 ms ima smisla
obrađivati samo kod relativno sporih objekata,
koji se ne gibaju brzinom većom od 0.5 m/s.
Jedan od najograničavajućih zahtjeva koje agenti
moraju zadovoljavati je rad u stvarnom vremenu,
pa je temeljna značajka protokola njegova asinkronost,
tj. da se primitak poruka u pravilu ne potvrđuje.
Poruke protokola su prvenstveno informativnog karaktera,
tako da ispravan rad pošiljaoca može ne ovisiti
ni o kakvim efektima poruke na primaoca.
Štoviše, obzirom na to da poruka može do
primaoca doći i nakon što joj istekne rok trajanja,
pošiljaoc mora biti spreman i na najgori slučaj,
u kojem primaoc neće nikad obraditi poruku.
Poruke promatrača
-
predprijava()
-
Cilj ove poruke je sinkronizacija satova promatrača
i koordinatora.
Od koordinatora se nakon primanja ove poruke zahtijeva
neposredan odgovor porukom potvrda.
Jednostavnim mjerenjem vremena proteklog između slanja
predprijave i primitka potvrde, promatrač može,
uz pomoć vremena stvaranja poruke potvrde,
ocijeniti razliku ΔT između svog i koordinatorovog sata.
-
prijava(ime, x,y, φ0, ΔT)
-
Promatrač se prijavljuje za rad koordinatoru i šalje
svoje ime, položaj u
referentnom k.s. svijeta
(x,y, φ0) te razliku ΔT između svog i
koordinatorovog sata koja je određena tokom predprijave.
-
smjer_gledanja(φ, θ)
-
Ovom porukom, promatrač izvještava koordinatora
o svakoj promjeni smjera gledanja kamere.
-
mjerenje(lista_objekata)
-
Nakon obrade slikovnih okvira u kojima je detektiran jedan ili
više objekata, promatrač ovom porukom šalje koordinatoru
kutni položaj i veličinu detektiranih objekata.
-
odjava()
-
Ovom porukom promatrač javlja koordinatoru da prekida rad,
te da koordinator više ne može računati na njega.
Poruke koordinatora
-
potvrda
-
Neposredni odgovor na predprijavu promatrača.
Ovo je jedina sinkrona poruka u cijelom protokolu.
-
usmjeri(x,y)
-
Uputa promatraču da pokuša usmjeriti kameru prema
točki (x,y) u referentnom k.s. svijeta.
-
prati(x,y)
-
Uputa promatraču da pokuša pratiti objekt koji se
nedavno nalazio u točki (x,y) u referentnom k.s. svijeta.
-
traži
-
Uputa promatraču da sustavno mijenja smjer gledanja kamere
dok ne pronađe objekt.
Nakon toga promtrač treba pratiti taj objekt.
-
miruj
-
Uputa promatraču da ne mijenja smer gledanja.
Pri tome promatrač i dalje izvještava o stanju u sceni.
Primjer komunikacije
Na sl.1 je prikazan primjer komunikacije
između promatrača i koordinatora;
Slijedi opis događanja u trenutcima koji su
na sl.1 označeni brojevima od 1 do 6.
|
slika 1.
|
- Predprijavni sljed
Promatrač šalje poruku predprijava, i mjeri vrijeme
do primitka potvrde.
Neka je vrijeme slanja poruke T0,
vrijeme primanja potvrde T1,
a vrijeme kreiranja poruke potvrde Tp.
Tada se ΔT ocjenjuje kao
Tp-(T0+T1 )/2.
Radi postizanja veće točnosti, cijeli postupak se ponavlja
veći broj puta, a kao konačna vrijednost uzima
se srednja vrijednost pojedinačnih vremena ΔT.
- Prijava
Promatrač na samom početku rada šalje svoj položaj u k.s.
svijeta i početni položaj kamere.
- Usmjeravanje promatrača
Koordinator na neki način zaključuje da bi bilo dobro da
promatrač pokrije dio scene oko točke (x,y),
pa šalje poruku usmjeri().
Promatrač je utvrdio da može okrenuti kameru prema toj
točki te nakon izvršenja šalje koordinatoru novi smjer
gledanja i počinje slati izvještaje o objektima u sceni.
- Praćenje objekta
Koordinator od promatrača traži praćenje objekta koji se nalazi
u blizini točke (x,y).
Promatrač uspijeva fiksirati objekt, prati njegovo gibanje,
te izvještava nakon svakog pomaka kamere i nakon svakog
obrađenog slikovnog okvira.
- Traženje
Nakon primitka poruke traži, promatrač mijenja
smjer gledanja sve dok ne nađe neki objekt.
- Odjava
Kad promatrač prekida s radom, o tome se obavještava koordinator,
da u daljnjoj strategiji praćenja ne računa na pomoć tog promatrača.