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.

<protocol>
slika 1.

  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.
  2. Prijava
    Promatrač na samom početku rada šalje svoj položaj u k.s. svijeta i početni položaj kamere.
  3. 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.
  4. 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.
  5. Traženje
    Nakon primitka poruke traži, promatrač mijenja smjer gledanja sve dok ne nađe neki objekt.
  6. 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.

    up project home page department home page