mobilni roboti
DESCRIPTION
hhjjjyj jhyjj jjTRANSCRIPT
UNIVERZITET U TUZLI
MAŠINSKI FAKULTET
Mehatronika
Manipulator i roboti
Projekat:
Mobilni roboti
Izradio: Muhamed Herić III-18/04 Mentor: Prof.dr.sc. Alan Topčić doc.
2
Sadrţaj:
Uvod: .......................................................................................................................................... 3
1.0 Definicaja mobilnih robota ................................................................................................... 4
1.1 Podsistemi mobilnih robot .................................................................................................... 6
1.2 Mehanizmi kretanja .............................................................................................................. 7
1.3 Višenoţni mobilni roboti ...................................................................................................... 9
1.4 Mobilni roboti na točkovima .............................................................................................. 15
1.5 Kinematika mobilnih robota ............................................................................................... 21
1.6 Senzori mobilnih robota ..................................................................................................... 25
1.7 Navigacija mobilnih robota ................................................................................................ 28
1.8 Programiranje mobilnih robota .......................................................................................... 30
1.9 Primjena mobilnih robota ................................................................................................... 35
Zaključak: ................................................................................................................................. 38
Literatura: ................................................................................................................................. 39
3
Uvod:
Robotika je primjenjena tehnička znanost koja prestavlja spoj mašina i računarske tehnike.
Ona uključuje različite oblasti kao sto su projektiranje mašina, teoriju upravljanja i regulacije,
mikroelektroniku, komrjutersko programiranje, umjetnu inteligenciju, ljuski faktor i teoriju
proizvodnje. Drugim riječima, robotika je interdisciplinirana znanost koja pokriva područja
mehanike, elektronike, informatike i automatike .Ona se bavi prvenstveno proučavanjem mašina
koje mogu zamijeniti čovjeka u izvrašavanju zadataka, kao sto su razni oblici fizičkih aktivnosti i
donošenje odluka (odlučivanje). Razvoj robotike je iniciran ţeljom čovjeka da pokuša pronaći
zamjenu za sebe koja bi imala mogućnost oponašanja njegovih svojstava u različitim primjenama,
uzimajući u obzir i meduĎelovanje sa okolinom koja ga okruţuje.
Mobilni roboti su oni roboti koji imaju sposobnost kretanja u prostoru. A to znači da imaju i
sisteme za pokretanje, prepoznavanje okoline i sisteme za odreĎivanje relativnog poloţaja u
prostoru. Radni zadaci mobilnih robota uvelike se razlikuju od radnih zadataka industrijskih
robota. U početku njihova razvoja te razlike se nisu toliko uočavale, ali razvojem industrijske
robotike, razvijali su se i mobilni roboti. Od pedesetih do sredine osamdesetih godina ovog
stoljeća, mobilna robotika se svrstavala u podskupinu industrijske robotike. Ali od sredine
osamdesetih godina se mobilna robotika počinje izdvajati u samostalnu, prije svega znanstvenu
disciplinu, koja se, za razliku od industrijske robotike, temelji na iskustvima bioloških istraţivanja
graĎe i ponašanja ţivih organizama.
4
1.0 Definicaja mobilnih robota
Mobilni roboti predstavljaju automatizirani stroj koji se moţe kretati kroz zadanu
okolinu.
Mobilni robot predstavlja mobilan i manipulativan fizički sistem koji se autonomno
kreće kroz nestrukturirani prostor, ostvarujući pritom interakciju s ljudskim bićima ili
autonomno obavljajući neki posao umjesto njih.
Mobilni robot predstavlja mehatronički sistem, koji se sastoji iz niza pod sistema:
mehanički, pogonski, energetski, upravljački, senzorski, komunikacijski...
Definicija idustriskog robota:
Idustriski robot je višefunkcionalni manipulator koji se moţe reprogramirati
koji je namijenjen da pomjera radni materijal, predmete, alate i specijalne
ureĎaje na razne zadate načine u cilju izvršenja zadataka.
Ako izvršimo poreĎenje gore navedenih definicija za mobilne robote sa definicijom
industriskog robora onda vidim da se mobilni roboti razlikuju od idustriskih samo u tome što
se mogu kretati u nekoj ravni ili prostoru.
Slika 1. Mobilni roboti
Slika 2. Industriski roboti
5
Mobilne robote moţemo podijeliti:
Prema pogonu:
Električni
Pneumatski
Hidraulički
Prema okolini u kojoj rade:
Kopneni
Vodeni
Zračni
Svemirski
Prema načinu kretanja:
Roboti na točkovima
Nogama
Krilima
Perajama
Prema namjeni:
Autonomna vozila
Edukacijski
Istraţivački
Usluţni
Vojni
Prema načinu upravljanja:
Autonomni
Teleoperaciski
Mobilni roboti sa fiksnim kodom
6
1.1 Podsistemi mobilnih robot
Mobilni robot je najbolji reprezentant mehatrničokog proizvoda četvrte klase. Posmatrajući
mobilni robot kao mehatronički sistem mogu se izdvojiti mehanički sistem, elektronski i
informatički, a te sisteme moţemo dalje podijeliti:
Mehanički sistem:
Konstrukciju
Pogon (hidraulički, pneumatski, SMA, SUS motori)
Mehanizam kretanja (višenoţni,mobilni roboti na točkovima, vodeni, zračni)
Elektronski sistem:
Energetsku elektroniku (akumulatori,tiristori, transformatori)
Upravljačku elektroniku( senzori, mikrokontroleri, PLC)
Informatički sistem:
Upravljački sistem (upravljanje mehanizmom kretanja)
Senzorski sistem (prikupljane podataka)
Navigacioni sistem (GPS, virtualne mape
U mehanički pod sistem mobilnog robota bi spadala konstrukcija koja ima zadatak da nosi
svo opterećenje, pogon zaduţen za kretanje mobilnog robota i pognonjenje manipulatora ako
ih ima, i mehanizmi kretanja odnosno način kretanja mobilnog robota kroz prostor.
U elektronski pod sistem mobilnog robota se ubraja sva energetska elektronika, zaduţena za
prenos i pretvorbu električne energije, i sva upravljačka elektronika zaduţena za prikupljanje
informacija o okolini kao i informacija o samom robotu.
U informacijski pod sistem bi spadao sistem za prikupljanje podataka sa senzora, upravljanje
radom mobilnog robota, kao i navigaciono sistem zaduţen za interakciju mobilnog robota sa
okolinom.
7
1.2 Mehanizmi kretanja
Da bi mobilni robot bio u stanju da se kreće kroz neki prostor on mora imati
mehanizam za kretanje odnosno motoriku. Danas su razvijene mnoge metoda za kretanje
robota tako da danas imamo robote koju mogu da hodaju, skaču, trče, kliţu se, plivaju, lete i
naravno da se kotrljaju. Većina ovih načina kretanja robota je inspirisana biološkim
organizmima kao što je prikazano na slici 3.
Slika 3. Načini kretanja mobilnih robota
Postoji naravno jedan izuzetak, a to je točak, u prirodi nemamo biološke organizme koji se
kreću preko točkova, mada se ljudsko kretanje na dvije noge moţe opisati pomoću kotrljanja
poligona. Kretanje pomoću točkova je naročito efikasno ako se kretanje vrši po ravnoj
podlozi. Većina mobilnih robota se kreće pomoću točkova, bili oni izvedeni kao gusjenice ili
na neki drugi način, točkovi se najviše primjenjuju iz razloga što ljudska tehnologija nije
toliko razvijena da bi bila u mogućnosti da adekvatno kopira kretanja bioloških organizama.
Na slici 5 se nalazi uporedba kretanja na osnovu brzine i nosivosti. Sa te slike vidimo brzine i
nosivosti za svaki od načina kretanja predstavljenih na slici 3. Sa slike se moţe vidjeti da je
najidealniji slučaj kretanje pomoću točkova, osobito ako se to kretanje vrši po tračnicama, jer
je trenje manje. TakoĎer moţemo vidjeti da točkovi nisu efikasni na mehkim podlogama.
8
Slika 4. Roboti inspirirani biološkim organizmima
Slika 5. Uporedba načina kretanja
9
Motorika mobilnih robota je komplement manipulacije kod industriskih robota. Kod
manipulacije, ruka robota je fiksirana za neku podlogu i ona miče objekte tako što djeluje
nekom silom na njih, kod mobilnih robota podloga je fiksna i robot se kreće na taj način što
djeluje nekom silom na podlogu. U oba slučaja osnov čine aktuatori koji generiraju inercijalne
sile i mehanizmi koji daju ţeljene kinematičke i dinamičke osobine, stoga se najviše vodi
računa o stabilnosti, konstrukciji robota i okolini. Na stabilnost utiče broj i geometrija
zglobova, centar gravitacije, statička i dinamička stabilnost i nagib terena. Na konstrukciju
robota značajno utiče duţina dijelova, trenje, ugao kontakta sa podlogom.
1.3 Višenožni mobilni roboti
Kretanje pomoću nogu je karakterizovano sa serijom kontakta izmeĎu robota i
podloge, glavna prednost ovog načina kretanja je mogućnost kretanja po neravnom terenu, što
predstavlja osnovni problem kod kretanja pomoću točkova. Pošto se kontakt sa podlogom vrši
pomoću nogu bitno je da se stabilan i čvrst kontakt ostvari samo na tačkama dodira nogu
robota i podloge. Osnovni nedostak ovog načina kretanja jeste pokretanje nogu odnosno
znatna kompleksnost mehanizna za kretanje, noge moraju imati više stepeni slobode, moraju
biti konstruisane da savladaju teţinu robota i teţinu koju on eventualno nosi i moraju biti u
mogućnosti da podignu robota i da ga spuste.
Slika 6. Načini kretanja pomoću nogu
Velike ţivotinje sisavaca i reptila imaju četiri noge dok insekti imaju po šest nogu, kod nekih
sisara je mogućnost hodanja na dvije noge dovedena do perfekcije, to se posebno odnosi na
ljude post ljudi mogu skakati na jednoj nozi. Problem kod ove vrste robota jeste odrţavanje
ravnoteţe, jer da bi se robot kretao on mora podizati svoje noge što mu značajno umanjuje
stabilnost jer se u trenutku kada mu je jedna noga podignuta broj oslonaca smanjuje za jedan.
Dosadašnja tehnologija je razvila mogućnost hodanja sa dvije noge, al do sada nije usavršena
tehnika trčanja robota jer to značajno usloţava problem jer se tada prelazi iz područija statičke
ravnoteţe u područije dinamičke ravnoteţe. Iz tih razloga najčešća izvedba mobilnih robota
koji se kreće pomoću nogu jeste izvedba sa šest nogu. Roboti sa šest nogu imaju veoma veliku
stabilnost jer i sa tri noge podignute robot je stabilan čak je i stabilni nego kada bi imao još
jedan oslonac. Na slici 7 je prikazan način kretanja robota sa šest nogu. U početno poloţaju
sve noge su spuštene na zemlju odnosno podlogu na kojoj se robot nalazi i označene su crnom
bojom. U trenutku kada ţelimo da pokrenemo robot naprijed onda podiţemo njegove tri noge
koje su označene bijelom, a robot ostaje oslonjen na tri noge koje su označene crnom bojom, i
na taj način se izvodi kretanje robot a i da on i dalje ostaje stabilan tokom cijelog kretanja.
10
Slika 7. Načini kretanja robota sa šest nogu
Kod ove vrste robota postoji jednostavna jednačina kojom se odreĎuje broj mogući poloţaja
nogu.
N=(2k-1)!
Gdje k predstavlja broj nogu a N predstavlja broj mogućih poloţaja tih nogu. Ako imamo
robota dvije noge onda slijedi
N=(2x2-1)=(3)!=3x2x1=6
11
Znači kod robota sa dvije noge moguća su 6 slučaja tih nogu, ti slučaji su slijedeći:
1. Podigni desnu nogu;
2. Podigni lijevu nogu;
3. Spusti desnu nogu;
4. Spusti lijevu nogu;
5. Podigni obje noge;
6. Spusti obje noge.
Broj mogućih poloţaja značajno raste sa povećanjem broja nogu, na primjer posmatrajmo
robota sa tri, četiri i šest nogu;
N=(2k-1)!=(2x3-1)!=(5)!=5x4x3x2x1= 120
N=(2k-1)!=(2x4-1)!=(7)!=7x6x5x4x3x2x1= 5040
N=(2k-1)!=(2x6-1)!=(11)!=11x10x9x8x7x6x5x4x3x2x1= 39916800
Slika 8. Šema noge robota
I ako stajanje za robota sa četiri noge ne predstavlja problem, kretanje je sasvim drugi slučaj,
pošto robot u toku kretanja mora ostati stabilan, odnosno mora prebaciti svoj centar
gravitacije. Kompanija Sony je investirala nekoliko miliona dolara za razvoj četvero noţnog
robota zvanog AIBO, slika 10. Da bi napravili ovog robota Sony je razvio novi operativni
sistem za robote koji je gotovo real-time, i razvio je novi servo motor sa većim obrtnim
momentom. Pored razvoja novog sistema i motora Sony je ugradio u AIBO “color vision
system” što mu daje mogućnost raspoznavanja boja, pored toga AIBO robot moţe da radi
gotovo jedan sat prije nego sto se mora puniti.
Slika 9. Zglobovi kod četvreo noţnog robota
12
Slika 10. Sony AIBO
13
Bipedi ili Bipedal roboti su roboti koji se kreću na dvije noge. Inspiracija za kreiranje ove
vrste robota je bio čovjek, i ova vrsta robota predstavlja najkompleksniju izvedbu mobilnih
robota.
Sliak 11. Princip kretanja biped robota
Kretanje bipeda moţemo podijeliti u dvije faze, prva faza kada obje noge dodiruju podlogu ne
predstavlja veliki problem zbog širini stopala ova faza je stabilan. Problem se javlja kada se
ţeli napraviti korak, odnosno kada se ţeli podignuti jedna noga, tada se centar mase mora
premjestiti iz centra na onu nogu koja je ostala na tlu, pored toga mora ju se pokrenuti
inercijale sile da bi se tijelo pokrenulo, drugim riječima kada je jedna noga u zraku tada se
robot ili čovjek pošto je princip kretanja isti ponaša kao inverzno matematičko klatno.
Slika 12. Invezno matematičko klatno
14
Osnovni princip odrţavanja robota u stabilnom stanju kada je on osjenjen na jednu nogu svodi
se na pomjerane inverznog klatana u smjeru kazaljke na satu da bi dobili pozitivno kretanje po
X osi. Da bi to bilo ostvarivo početna brzina klatna mora biti veća od minimalne brzine
izračunate izrazom koji je zasnovan na principu pretvorbe mehaničke energije.
Iml
mgl o
20
. cos1(2
Gdje β0 predstavlja početnu ugaonu brzinu, m masu, l duţinu klatna a I moment inercije. Na
slici 13 je predstavljen kretanje robota, parametar dstep ne smije biti previše dug pošto bi
izazvao nestabilni situaciju i došlo bi do pojave oscilacija tijela robota, ako bi parametar dStep
bio prekratak došlo bi do problema sa stabilnošću robota. Parametar qMin je sigurnosna
margina da ne bi došlo do preopterećenja u zglobovima koljenja robota, i ovaj parametar je u
direktnoj zavisnošću sa duţinom nogu. Početni ugao je u direktnoj vezi sa dSwitch
parametrom veća vrijednost dSwitch parametra rezultira duţim putem inverznog klatna , što
rezultira većom ugaonom brzinom a što rezultira većim opterećenjem za aktuatore. Dinamika
kretanja robota je aktivno naučeno polje gdje se odvijaju mnoga istraţivanja i gdje se
svakodnevno napreduje u stabilnosti robota.
Slika 13. Kretanja robota zasnovano na principu inverznog matematičkog klatna
15
1.4 Mobilni roboti na točkovima
Točak je najpopularni mehanizam kretanja kod mobilnih robota a i kod svih prevoznih
sredstava kojima se čovjek koristi. Primjena točkova kao mehanizama kretanja kod robota se
pokazala veoma efikasnom, najveći razlog zbog kojeg se primjenjuju jeste što kod mobilnih
robota sa točkovima ne vodi se puno računa o stabilnosti, jer su tri točka dovoljna kao garant
stabilnosti bilo kojeg mobilnog robota koji se kreće po ravnom podlozi. Više točkova se
stavlja kada je planirano da se robot kreće po ne ravnom terenu, pa tako u trenutku kada naiĎe
na neku izbočinu robot sa više od tri točka ponovo ostaje stabilan. Umjesto brige o stabilnosti
istraţivanja kod ove vrste mobilnih robota su fokusirana na upravljanje i orijentaciju u
prostoru.
Na slici 14 su predstavljeni osnovni tipovi točkova. Pod oznakom “a” se nalaze standardni
točkovi sa dva stepena slobode rotacija oko ose točka i oko tačke kontakta, pod “b” se nalaze
“castor wheel” sa takoĎer dva stepena slobode, pod oznakom “c” se nalaze Šwedski točkovi
sa tri stepena slobode rotacija oko ose točka, kontaktne tačke i oko valjaka, a pod “d” se
nalaze sferni točkovi.
Slika 14. Tipovi točkova
Šwedski točak je posebno interesantan, on je dizajniran kao normalan točak samo što kao
standardni točkovi umjesto gume ili plastike po svojoj površini ima “male” valjke. Funkcija
tih valjaka jeste da obezbjede manje trenje izmeĎu podloge i točka prilikom skretanja robota.
Ovi točkovi se obično izvode sa nagibom valjaka pod 45o čime je omogućeno dovoljno veliko
trenje prilikom kretanja točka pravo i dovoljno malo trenje prilikom njegovog zakretanja u
mjestu.
Minimalan broj točkova potreban za statičku stabilnost je dva, takav primjer je kod robota sa
diferencijalnim točkovima. Pošto se roboti konstruišu da se mogu kretati po nepoznatoj
podlozi postavlja uslov statičke stabilnost sa tri točka, jer potrebno uzeti i u obzir dinamičku
stabilnost robota. Stabilnost se dodatno povećava dodavanjem više točkova.
16
Tabela 1.
Broj točkova Raspored točkova Opis Primjena
2
Prednji točak sluţi za
upravljanje a zadnji
za pogon.
Bicikli i motori
2
Dva pogonska točka
sa diferencijalom i
centrom mase ispod
ose.
Cye peronalni robot,
Pololu 3pi robot
3
Dva pogonska točka
sa diferencijalom i
trećim radi povećanja
stabilnosti.
Nomad Scout,
smartRob EPFL
3
Dva pogonska točka
sa diferencijalom i sa
trećim slobodnim
točkom.
EPFL robots
Pygmalion i Alice
3
Dva spojena
pogonska točka i
jedan naprijed za
upravljanje.
Piaggio minitrucks
3
Dva slobodna točka
pozadi i jedan
pognoski točak koji
ujedno sluţi i za
upravljanje.
Neptune (Carnegie
Mellon University),
Hero-1
3
Tri pogonska
Švedska točka
poredana u krug koji
omogućuju kretanje u
više smjerova.
Stanford wheel
Tribolo EPFL,
Palm Pilot Robot Kit
3
Tri sinhronizovana i
pogonska točka.
“Synchro drive”
Denning MRV-2,
Georgia Institute of
Technology, I-Robot
B24, Nomad
200
4
Dva pogonska točka
pozadi i dva točka za
upravljanje,
upravljački točkovi
moraju imati
diferencijal.
Auto na zadnji
pogon.
17
4
Dva pogonska točka
naprijed koji su
ujedno i upravljački,
dva slobodna točka
pozadi.
Auto na prednji
pogon.
4
Pogon na sva četri
točka.
Automobili sa
pogonon na sva četri
točka
4
Dva pogonska točka
pozadi i dva više
smjerna točka
naprijed.
Charlie (DMTEPFL)
4
Četiri više smjerna
pogonska točka
Carnegie Mellon
Uranus
4
Dva pogonska točka
sa još dva radi
povećanja stabilnosti.
EPFL Khepera,
Hyperbot Chip
4
Četri pogonska i
upravljačka “castor”
točka
Nomad XR4000
6
Dva pogonska točka
u sredini i po jedan
više smjerni točak u
svakom uglu.
First
6
Dva paralelna
pogonska točka i po
jedan više smjerni u
svakom uglu.
Terregator (Carnegie
Mellon University)
18
Tabela 2
Ne pogonski više smerni točak
Pogonski Švedski točak
Ne pogonski standardni točak
Pogonski standardni točak
Pogonski i upravljački točak
Ne pogonski upravljački točak
Spojeni točkovi
U tabeli 1 su predstavljene do sada primijenjene izvedbe mobilnih robota sa točkovima, dok
se u tabeli 2 nalazi legenda simbola koji se koriste u tabeli 1.
Mobilni roboti sa diferencijalnim točkovima su najčešća vrsta robota, ova izvedba se
primjenjuje zbog svoje jednostavnosti i svestranosti, sastoji se od dva pogonska točka i moţe
imati i više točkova radi povećanja stabilnosti. Promjena smjera kretanja ovakve vrste robota
izvodi se pomoću diferencijala, ako mobilni robot ne posjeduje diferencijal onda se promjena
smjera odnosno skretanje vrši tako što se smanjuje brzina onog točka na čiju stranu ţelimo
skrenuti. Ovo ne predstavlja veliki problem pošto su u veći slučajeva pogoni ovakvih robota
ostvareni preko servomotora koji se veoma lako upravljaju sa digitalnim signalima.
Slika 15. Mobilni roboti sa diferencijalnim točkovima
Mobilni roboti sa izvedbom točkova kao kod automobile su najčešće nazivaju AGV (eng.
automated guided vehicle ili automatic guided vehicle). Zbog problema koji se javljaju ko
izvedbe sa tri točka, kao što pomjeranje cetra robota prilikom kretanja po podlogama sa nagim
ova vrsta robota se najčeće izvodi sa četri točka. Za upvaljanje se koristi Ackerman-ov princip
upravljanja koji se primjenjuje i kod automobila.
19
Slika 16. Promjena smjera kretanja
Slika 17. Ackerman-ov princip upravljanja
Slika 18. AGV kao sredstvo transporta u skladištu
20
Više smjerni mobilni roboti su roboti sa znatno povećanim manevarskim sposobnostima,
ovakva izvedba ne opterećuje šasiju robota i robot je u mogućnosti da “trenutno” promjeni
smjer svoga kretanja. Princip upravljanja ovakvom vrstom robota je sličan kako i kod robota
sa diferencijalnim točkovima, samo što je minimalan broj točkova tri čime se omogućava
kretanje točkova u svim smjerovima. Promjena smjera se vrši smanjenjem brzina obrtanja
jednog o točkova.
Slika 19. Promjena smjera više smjernih robota
Primjer kretanja ovakve vrte robota je prikazan na slici 19. Na slici 20 je predstavljen više
smjerni mobilnih robota sa četiri točka i takozvani Švedski točak koji se koristi kod ovakve
vrste robota.
Sliak 20. Više smjerni mobilni robot i Švedski točak
21
1.5 Kinematika mobilnih robota
Kinematika mobilnih robota je nauka koja se bavi proučavanjem gore navedenih
mehanizama kretanja. U mobilnoj robotici potrebno je poznavati mehanizam kretanja da bi se
mogli dizajnirati mobilni roboti i da bi se mogao napisati odgovarajući softver za upravljanje.
Glavna razlika izmeĎu kinematike mobilnih robota i kinematike manipulatora jeste u tome što
kod manipulatora je jedan kraj uvijek vezan za podlogu, tako da je jednostavnije odrediti
poloţaj manipulatora nego mobilnog robota. Ne postoji direktan način za odreĎivanje
poloţaja mobilnog robota, nego se vrši integracija kretanja robota u nekom periodu,na primjer
ako se robot kretao pravo 10 sekundi brzinom 2m/s onda je on prešao put od 20 m, pored toga
moraju se uračunati moguća proklijavanja tako da je odreĎivanje pozicije mobilnog robota u
prostru veoma kompleksan zadatak.
Da bi se opisalo kretanje robota mora se opisati kretanje svakog njegovog točka, jer svaki
točak na robotu omogućava da se on kreće. Mobilni roboti se mogu kretati po nekoj površini
ili u prostoru zbog kompleksnosti razmatranja kinematike u 3D prostoru u ovom radu ce biti
riječi samo od 2D kretanju.
U ovoj analizi robot se smatra krutim tijelom na točkovima koji se kreće po nekoj ravnoj
podlozi, postoje tri stepena slobode kretanja dva za odreĎivanje pozicije u ravni i jedan za
orijentaciju oko vertikalne ose, koja je oktogonalna na ravan.
. Slika 21. Koordinatni sistem mobilnog robota
Da bi bili u mogućnosti da odredimo poloţaj robota u nekoj ravni mora se uspostaviti veza
izmeĎu globalnih koordinata i lokalnih koordinata, odnosno mora se uspostaviti veza izmeĎu
koordinata ravni X1 i Y1 i koordinata mobilnog robota XR i YR. Da bi odredili poloţaj robota
mora se izabrati neka tačka P koja najčešće prestavlja centar mase mobilnog robota odnosno
krutog tijela. Ugao θ predstavlja ugaonu razliku izmeĎu koordinata robota i prostora, poloţaj
robota se moţe opisati pomoću vektora sa gore navedena tri elementa.
Y
X
22
Ako se ţeli odrediti kretanje robota preko komponenti kretanja, potrebno je posmatrati
kretanje duţ koordinata ravni i duţ koordinata robota. Jednačina kretan je dobijena pomoću
oktogonalne rotacione matrice, treba napomenut da ova matrica vaţi samo za trenutni poloţaj,
slika 22, pošto se koordinate ne smatraju promjenjivim nego konstantnim, odnosno odreĎuje
se samo poloţaj robota u trenutnoj tački.
Sliak 22. Kretanje mobilnog robota kada su ose robota paralelne osama sistema
Ovom matricom se moţe odrediti poloţaj robota u koordinatama X1, Y1 preko koordinata XR i
YR, ova operacija je omogućena preko zavisnosti R(θ) i ξ pošto obadvije vrijednosti zavise od
θ.
.
2
RR
Na primjer ako posmatramo poloţaj robota na slici 22, pošto je θ=1/2 slijedi da je
100
0sin
0sincos
)(R
100
001
010
)(R
23
Ako su nam ţelimo da odredimo putanju mobilnog robota onda moramo poznavati vrijednosti
, gdje je =YR, =XR.
Korištenjem prethodnih jednačina dobijamo:
Gore navedeni izraz nije dovoljan da opiše u potpunosti kretanje robota, pošto ne uzima u
obzir brzine njegovih točkova. Da bi odredili kako se robot u potpunosti kreće, odnosno da bi
smo u proračun uzeli u obzir i brzine i oblik točkova, koristi se napredniji kinematski model.
Slika 23.Opisivanje putanje mobilnog robota
Mobilni robot sa diferencijalnim točkovima ima dva pogonska točka prečnika r, tačka P
predstavlja središte mase koje se nalazi ispod ose kojom su spojeni točkovi, svaki točak je
udaljen od centra mase za neku duţinu l. Ako poznajemo vrijednosti r,l, θ, i ugane brzine
točkova moţe se napisati slijedeća jednačina.
),,,,( !21
rlfy
x
R
Iz gornje jednačine vidimo da moţemo izračunati kretanje robota u globalnih koordinatama
preko njegovih lokalnih koordinata, preko zavisnoti RR 1)(
. Pretpostavimo da se robot
kreće u smjeru +X ose, prvo treba uspotaviti vezu izmeĎu translatornog kretanja tačke P, i
ugaonih brzina točkova. Ako se okreće jedan točak a drugi drugi stoji u mjestu, kako je tačka
P jednako udaljena od oba točka ona će se kretati sa pola brzine prvog točka )2
1( 11
rxr i sa
x
y
y
x
RR
100
001
010
)2
(
24
pola brzine drugog točka )2
1( 22
rx r . Ove vrijednosti se mogu lako izračunati, ako
posmatramo slučaj kada je oba točka okreću ali u suprotnim smjerima to će rezultirati
stacionarnim stanjem i XR u otom slučaju će biti nula. Vrijednost YR se još lakše proračunava
pošto ni jedan točak nemoţe da kliţe u smjeru Y ose, pa tako da vrijednost YR iznosi nula.
Vrijednost se proračunava za svaki točak i onda se sabira, ako pretpostavima da je jedan od
točkova (desni) okreće naprijed a drugi stoji to će rezultirati rotaciju u smjeru suprotnom od
smjera kazaljke na satu oko tačke P. Tu uganu brzinu rotacije označimo sa i ona se računa
prema jednačini:
l
r
2
11
Ugaona brzina robota u slučaju da se okreće drugi točak bi bila:
l
r
2
22
Kombiniranjem gore dobivenih formula dobijamo:
l
r
l
r
l
r
l
r
R
22
22)(
11
11
1
Jedina nepoznata ostaje inverzna matrica R( -1:
100
0cossin
0sincos
)(
100
0cossin
0sincos
)(
1R
R
Ako pretopstavimo da je =π/2,r=1,l=1i da je =4 a
=2 dobijamo
1
3
0
1
0
3
00
001
010
y
x
R
Što goviri da će se robot kretati konstantno duţ X ose sa brzinom 3 i da će se rotirati brzinom
Ovakav pristup kinematičkoj analizi kretanja robota nam pruţa informaciju o kretanju robota
kada su nam poznate brzine njegovih točkova.
25
1.6 Senzori mobilnih robota
Postoji širok spektar senzora koji se koriste u mobilnoj roboci. Jednostavni senzori se
koriste za mjerenje temperature elektronike robota ili rotacione brzine elektromotora koji ih
pogone, sloţeni senzori se koriste za prikupljanje informacija o okolini u kojoj se nalazi robot
ili pri oreĎivanju njegobog poloţaja u prostoru. Senzore jednostavno moţemo podjeliti na:
Unutrašnje percepcione i vanjske percepcione
Pasivne i aktivne
Percepcija je nesvjesni proces kojim mozak organizira podatke dospjele iz raznih osjetila i
interpretira ih tvoreći smislenu cjelinu.
Unutrašnji percepcioni senzori mjere vrijednosti unutar sistema robota kao što su brzina
motora, teţina, uglovi zakreta zglobova, napon na bazeriji itd.
Vanjski percepcioni senzori prikupljaju informacije iz okoline u kojoj se robot nalazi, na
primjer: mjerenje udaljenosti, senzori svetla, senzori zvuka.
Pasivni senzori mjere ambijent okoline, na primjer: senzori temperature ili mikrofoni.
Aktivni senzori emitiraju energiju u okolinu i mjere reakciju okoline na tu emitovanu
energiju. Primjeri aktivnih senzora su: ultrasonični senzor i laserski mjerači udaljenosti.
U tabeli ispod se nalazi klasifikacija senzora koji se najčešće koriste kod mobilnih robota.
Tabela 3.
Primjena Senzor PC ili EC A ili P
Taktilni senzori (detektuju
konatak ili blizinu sa
nekim predmetom
Kontaktni prekidač EC P
Optičke barijere EC A
Beskontaktni senzori udaljenosti EC A
Enkoder sa četkicama PC P
Potenciometar PC P
Optički enkoder PC A
Magnetni encoder PC A
Induktini encoder PC A
Kapacitivni encoder PC A
Navodeći senzori
(odreĎuju lokaciju robota
na osnovu referntne fikse
tačke)
Kompas EC P
Ţiroskop PC P
Senzor evelacije EC A/P
GPS EC A
Aktivni optički senzori EC A
Aktivni prostorni senzori
(prikupljaju informacije iz
okoline)
Aktivni ultrasonični beaconi EC A
Senzori reflekcije EC A
Ultrasonični senzori EC A
Senzori kretanja i brzine
(odreĎuju brzinu i
detektuju kretanja
objekata)
Optički triangulatori EC A
Dopler radar EC A
CCD/CMOS kamere EC A
Senzori vizualnog raspoznavanja EC A
26
A-aktini
P-Pasivni
A/P-aktivni/pasivni
PC- Unutrašnji percepcioni
EC- Vanjski percepcioni
Taktilni senzori i percepcioni senzori su od veoma velike vaţnosti za mobilne roboto pošto su
oni informaciona veza izmeĎu okoline i robota i sasvim je jasno da je osnovna razlika izmeĎu
robota i automata u tome što robot ima interakciju sa okolinom. Ta interakcija je ostvarana
pomoću senzora, ni najjednostavni mobilni roboti se ne mogu izvesti bez senzora. Na primjer
ako bi ţelili da napravimo najjednostavni mobilni robot koji bi išao od tačke A do tačke B
pravoliniskom putanjom i nazad. Ako je poznato rastojanje izmeĎu tačke A i tačke B, i ako
nam je poznata brzina kojom se kreće mobilni robot onda bi se na najjednostavni način unutar
koda mikrokontrolera moglo napisati da motori na točkovima rade npr. deset sekundi da bi
došli do tačke B i deset sekundi da bi se vratili u A. Ali takav mobilni robot bi imao vema
veliku i čestu grešku, ako bi on bio pogonjem preko DC motora i imao ugraĎenu bateriju na
sebi onda bi se sa trošenjem baterije smanjivala ta udaljenost koju bi on prelazio, sličan slučaj
bi se desio i sa motorom na unutrašnje sagorijevanje, uslijed smanjena mase mobilnog robota
on bi prelazio veći put, u slučaju da je to neki funkcionalni robot koji bi trebao da penosi
materijale različite teţine onda bi za svaki teret duţina puta bila različita. Zbog toga svaki
mobilni robot je opremljen senzorima koji mu pruţaju informacije gdje se on nalazi u
prostoru, imali šta isped njega itd. Zbog velikog boroja senzora koji se danas primjenjuju u
ovom radu će biti spomenu samo par karakterističnih.
Mobilni roboti tokom svog kretanja prolaze pored raznih objekata i da bi se obezbjedila
funkcionalnost mobilnih robota mora mu se pruţiti informacija dali ima neka prepreka isped
njega. Za detektovanje prepreke obično se koristi ultra zvučni senzor poznat pod imenom
sonar. Brzina prostiranja zvuka kroz zrak je Vc=330 m/s na temperaturi od 20 oc. Princip rada
sonara je slijedeći, piezo krital koji emitira sinusni signal kada je spojen na napajanje odašilje
zvuk isped robota, ako se ultra zvuk odbije od neki objekat koji se nalazi isped robota one se
vraća prema roboti i registruje se pomoću još jednog piezo kristala koji sada radi na suprotno
principu od onog koji je emitovo zvuk. Piezo kristal koji biva pogoĎen zvučnim talason sada
generira napon odreĎene vrijednosti koji se procesira pomoću specijalnih filitera i po potrebi
pojačava te se vodi na ulazu u mikrokontroler gdje se obraĎuje i na taj način pruţa
informaciju da li se nalazi neke prepreka isped objekta i na kojoj je ona udaljenosti. Pošto se
brzina zvuka mjenja sa promjenom tepmperature uobičajno je da se uz sonar postavlja i
senzor temeperature koji pruţa mikrokontroleru informaciju o temperaturi, te se na taj način u
miktokontroleru vrši korekcija udaljenosti nekog objekta, što uveliko povećava preciznost
sonara. Treba napomeniti da je primejna ove tehnlogoje bila inspirisana ţivim organizmima
kao što su slijepi miševi i delfini.
27
Sliak 24. Princip rada sonara
Lidar (Light Detection and Ranging) je optički senzor koji radi na sličnom principu kako i
sonar samo što umjesto zvuka emituje svjetlost. Lidar sistemi se projektuju tako da emiter
svjetlosti je postavljen na jedan rotacioni element čime se znatno povećava opseg koji ova
vrste senzora vidi, ugao koji Lidar vidi jeste 180o, odnosno sve ono što se nalazi ispred robota.
Lidar sistemi mogu detektovati sve pasivne objekte koji se nalaze ispred robota na udaljenosti
oko 10 metara, a predmete sa većim stepenom reflekcije svjetlosti mogu se detektovati i na
udaljenosti od 100 metara. Frekvencija rada Lidara se kreće od 1 Hz pa i do 100 Hz.
Slika 25. Princip rada Lidar-a
Postoje takoĎer Lidar sistemi koji su opremljeni mikro ogledalima te imaju mogućnost
generiranja 3D slike objekta koji detektuju ali njihova cijena obično nije prihvatljiva da bi se
upotrebljavali u jednostavnijim mobilnim robotima. Lidar sistemi se izvode ako horizontalni
prikazan na slici 26 i kao oboreni prikazan na slici 27. Oba sistema imaju odreĎene
nedostatke, nedostatak horizontalnog Lidar sistema je jasno vidljiv sa slike 26, a nedostatak
oborenog sistema jeste da predmete na podu koji imaju veoma veliku reflekciju slike
prepoznaju ako rupu u podu. Pored Lidar sistema na istom principu rade i Ladar (Laser
Detection and Ranging)
Slika 26. Horizontalni lidar sistem
Slika 27. Oboreni Lidar sistem
28
1.7 Navigacija mobilnih robota
Navigacija mobilnih robota je jedan od najsloţenijih problema sa kojim se susreću svi
mobilni roboti. Da bi neki navigacioni sistem funkcionisao mobilni robot mora imati dobro
razvijenu percepciju,mora biti opremljen kvalitetnim senzorima, lokalizaciju, robot mora
odrediti svoju poziciju u prostoru slika 28, algoritam odlučivanja, robot mora odlučiti kao će
se ponašati da bi došao do nekog ciljanog mjesta i kontrolu kretanja.
Slika 28. „Gdje sam ja“
Prije nego što mobilni roboti budu prihvaćeni u svakodnevni ţivot oni moraju biti sposobni da
uče o svojoj okolini i da se programiraju bez ičije pomoći. To znači da moraju biti opremljeni
senzorima koji će ne samo identifikovati predmet nego će ga i klasirati. Veliki napredak je
postignut u video skeniranju i analizi. Na slici 29 se nalazi SR-3 robot koji radi kao čuvar u
skladištu tokom noći, opremljen je LIDAR sistemom za navigaciju kroz palete.
Slika 29. SR-3 čuvar
Jedan od načina navigacije mobilnih robota je preko GPS (eng. Global Positioning System)
što uveliko uproštava navigaciju robota, ali takav sistem nije precizan, preciznost GPS-a je
samo nekoliko metara te se on ne moţe primjenjivati na koji se kreću u zatvorenim
prostorijama. Ako bi mobilni robot bio opremljen GPS-om i senzorima onda bi one se moga
29
da adekvatno kreće kroz prostor. Naravno tu se javlja jedan problem koji se naziva „Sensor
noise“ a u našem jeziku poznat kao šum. Šum je pojava pogrešnog očitavanja vrijednosti i
zavisi od kvaliteta senzora, ali i u mnogo slučajeva od okoline u kojoj se senzor nalazi. Na
primjer ako bi se za navigaciju mobilnog robota koristila CCD kamera u boji, u trenutku kada
sunce zaĎe za oblake nijanse boja bi se smanjile te bi robot prazan prostor pred sobom zbog
nedostatka svjetlosti mogao očitovati kao neku prepreku. Pošto je pojava promjene svjetla u
prirodi veoma česta upotreba CCD kamera se svodi na zatvorene prostore koji su obasjani
konstantnom svjetlošću.
Jedno do rješenja navigacije mobilnih robota koje se pokazalo veoma efikasno jeste virtualni
put ili virtualna mapa. Virtualna put bi predstavljalo program u robotu koji bi bio definisan
slikom ili nizom naredbi, kojima bi se robotu predstavljao prostor u kome se nalazi.
Nedostatak ove metode je u tome da robot se moţe orijentisati samo u prostoru za koji ima
virtualnu mapu. Primjer jedne virtualne mape dat je na slici 30.
Slika 30. Virtualna mapa
Ovakve virtualne mape se kreiraju pomoću programa „PathCAD“, pomoći kojeg se robotu
odredi nekoliko čvornih tačaka (V1,V2,E3...) koji sluţe za orijentaciju u prostoru, te čvorne
tačke se spajaju linija i one prestavljaju putanje kojim se kreće robot.
Slika 31. Kompletna virtualna mapa jednog prostora
30
1.8 Programiranje mobilnih robota
Programiranje mobilnih robota je posljednji korak u nizu procesa dizajniranja mobilnog
robota, izvodi se kao posljednji iz razloga što je nemoguće provjeriti tačnost koda bez njegove
primjene na mobilnom robotu. Programiranja robota je veoma široka znanost i iz tog razloga
u ovom radu će biti predstavljen samo jedan primjer jednog jednostavnog mobilnog robota
čiji je zadatak da prati odreĎenu crtu ili liniju. Blok dijagram ovo mobilnog robota je dat na
slici 32, na slici 33 se nalazi elektronska šema mobilnog robota.
Slika 32. Blok šema mobilnog robota
Slika 33. Elektronska šema mobilnog robota
Ko ovog mobilnog robota je korišten mikrokontroler AT mega16 od kompanije Atmel, koja je
i prava razvila i plasira mikrokontrolere na trţište, softver koji je korišten za programiranje
mikrokontrolera je AVR Studio 4.
Zadatak ovog robota je da slijedi crnu traku koja je postavljenja na bijelu podlogu, crna traka
se detektuje pomoću foto senzora ili foto rezistora (otpornika), iznad senzora se postavljaju
LED (Lighet emitnig diod) diode koje emituju svjetlost, koja se reflektira od podlogu te biva
31
primijećena od strane senzora, razlog zbog kojeg se koristi scrna traka jeste zbog toga što crna
boja vrši apsorpciju svjetlosti.
Ovaj mobilni robot ima osam senzora koji spojeni na PORT A mikrokontrolera kako je
prikazano na slici 30. Sa L su označeni senzori sa lijeve strane robota a sa R senzori sa desne
strane robota otpornost senzora raste sa većom apsorpcijom svjetlosti a opada kada ne
detektuje svjetlost , algoritam rada bi bio slijedeći:
Ako je L<R onda idi desno
Ako je L>R onda idi lijevo
Ako je L=R onda idi pravo
Za pogon robota se koriste dva servomotora, te bi ovakve vrsta robota spadala pod mobilne
robote sa diferencijalnim točkovima, razlog zbog kojeg se koristi servomotori jeste što se oni
jedini mogu upravljati preko digitalnih signala.
Kod za ovakvu vrtu mobilnog robota preuzet je od autora Priyank Patil, koji je dobio zlatnu
medalju na takmičenju VingPeaw 2542.
/*****************************************************
Project : Line Follower
Version :
Date : 2/19/2006
Author : Priyank
Company : Home
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 7.372800 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
! pozivamo bazu podataka u kojima su definirane neke osnovne funkcije koje su potrebne za
pisanje koda u C-u.
#include <mega16.h>
#include <delay.h>
#ifdef debug
#include <stdio.h>
#endif
!definisanje varijabli i pridruţivanje istih pojedenim portovima.
#define FWD 0xAA
#define REV 0x55
#define R 0x22
#define L 0x88
32
#define CW 0x99
#define CCW 0x66
#define STOP 0x00
#define B 0xFF
#define RSPEED OCR1AL
#define LSPEED OCR1BL
#define SPEED0 255
#define SPEED1 0
#define SPEED2 0
#define SPEED3 0
#define MAX 3
#define HMAX 1
void move (unsigned char dir,unsigned char delay,unsigned char power);
unsigned char i,rdev, ldev, ip,delay,dir,power,dirl,history [MAX], hcount=0,rotpow;
#ifdef debug
unsigned char rep=0,prev=0;
#endif
void main(void)
!Glavana petlja programa
{
!Definisanje porta A kao ulaznog porta i postavljanje njegove početne vrijednosti
PORTA=0x00;
DDRA=0x00;
!Definisanje porta B kao ulaznog porta i postavljanje njegove vrijednosti
PORTB=0x00;
DDRB=0x00;
!Definisanje porta C kao izlaznog porta i postavljanje njegove vrijednosti
PORTC=0x00;
DDRC=0xFF;
!Definisanje porta D kao izlaznog porta i postavljanje njegove vrijednosti
PORTD=0x00;
DDRD=0x30;
!Postavljanje zahtjeva za isključivanja prvog unutrašnjeg osciloskopa, odnosno brojača
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
!Postavljanje zahtjeva za rad drugog osciloskopa i njegovo definisanje
TCCR1A=0xA1;
TCCR1B=0x0A;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0xFF;
OCR1BH=0x00;
OCR1BL=0xFF;
!Postavljanje zahtjeva za isključenje trećeg osciloskopa.
ASSR=0x00;
33
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
!Definisanje unutrašnjeg interapta
MCUCR=0x00;
MCUCSR=0x00;
#ifdef debug
!Pokretanje Usart-a (Universal Syncronus/Asynchronous Receiver/Transmiter)
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x07;
#endif
!Postavljanje početne vrijednosti brojača
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
!Otvaranje beskonačne petlje i naredbe za čitanje vrijednosti sa senzora.
while (1){
#ifdef debug
if(rep<255)
rep++;
if(prev!=PINA) {
prev=PINA;
printf("%u\r",rep);
for(i=0;i<8;i++)
printf("%u\t",(prev>>i)&0x01);
rep=0;
}
!Niz if petlji kojima se vrši upravljanje robotom.
#endif
if(PINA!=255){
rotpow=255;
ldev=rdev=0;
if(PINA.3==0)
rdev=1;
if(PINA.2==0)
rdev=2;
if(PINA.1==0)
rdev=3;
if(PINA.0==0)
rdev=4;
if(PINA.4==0)
ldev=1;
if(PINA.5==0)
ldev=2;
if(PINA.6==0)
ldev=3;
if(PINA.7==0)
34
ldev=4;
if(rdev>ldev)
move(R,0,195+12*rdev);
if(rdev<ldev)
move(L,0,195+12*ldev);
if(rdev==ldev)
move(FWD,0,200);
}
!Donje naredbe sluţe da u slučaju da robot izgubi liniju da se vrati u suprotnom smjeru
else {
for(i=0,dirl=0;i<MAX;i++) {
if(history[i]==L)
{dirl++;}
}
if(rotpow<160) {rotpow=160;}
if(rotpow<255) {rotpow++;}
if(dirl>HMAX)
{move(CW,0,rotpow);}
else
{move(CCW,0,rotpow);}
}
};
}
void move (unsigned char dir,unsigned char delay,unsigned char power) {
PORTC=dir;
if(dir==L || dir==R) {
hcount=(hcount+1)%MAX;
history[hcount]=dir;
}
!Postavljanje brzine pojedenih točkova
LSPEED=RSPEED=255
}
35
1.9 Primjena mobilnih robota
Vojska:
Cilj Američke vojske je da do 2020 godine 30% njenih jedinica budu mobilni roboti, evo
nekih primjera veće primijenjenih mobilnih robota u vojne svrhe.
Slika 34. Mobilni roboti kao pješadijske jedinice
Slika 35. Mobilni robot deminer
Slika 36. ACER Transporter za nepristupačne predjele
36
Slika 37. MQ-1 Predator UAV mobilni robot za špijunaţu primjenjuje se od rata u Iraku
Transport:
Za transport materijala primjenjuju se mobilni roboti poznati kao AGV.
Slika 38. Primjena AGV pri transportu materijala
37
Istraživanja:
Zbog nepristupačnosti nekih područja a koja su meta naučnih istraţivanja koriste se mobilni
roboti.
Slika 39. Mobilni roboti u svemiru
Čovjekoliki roboti (human friendly robots):
Roboti namijenjeni za pomoć ljudima u svako dnevnim poslovima.
Slika 40. Human friendly robots
38
Zaključak:
Mobilni roboti do sada nisu u tolikoj mjeri razvijeni da bi bili nešto sto se
svakodnevno susreće ali brzina njihovog razvoja je nepredvidiva, treba se prisjetiti da unazad
20 godina svaki dom nije imao personalni računar a danas je to ne zamislivo, isto tako prije
10 godina mobitel je bio luksuz koji sebi nije mogao svako priuštiti a danas je to sasvim
normalna stvar. Rješavanjem problema oko beţičnog prenosa energije, razvojem novih
senzora, razvijanjem brţih mikrokontrolera, poboljšanjem interakcije robota i okoline sasvim
je jasno da će u skoroj budućnosti svaki dom imati mobilne robote. Posebna paţnja se
poklanja razvoju personalnih mobilnim robotima, koji su prvenstveno namijenjenim za pomoć
starim osoba, koji su već doţivili svoje prve izvedbe. Pošto su već prekšeni osnovni zakoni
robotike sasvim je logično da će u budućnosti ratove voditi roboti.
39
Literatura:
[1.] Karl Williams, “Amphibionics”, 2003
[2.] Appin Knoledge Solutions „ROBOTICS“
[3.] John Holland „Designing Autonomous Mobile Robots“ 2004
[4.] Roland Siegwart and Illah R. Nourbakhsh „Introduction to Autonomous Mobile
Robots“ Massachusetts Institute of Technology, 2004
[5.] John Lovine „PIC Robotics“ 2004
[6.] www.wikipedia.org