ROBOWORKS Robofleet MULTI-AGENTNI ALGORITMI
Specifikacije
- Ime izdelka: ROBOWORKS
- Različica: 20240501
- Pripravila: Wayne Liu & Janette Lin
- Datum: 1. maj 2024
Informacije o izdelku
ROBOWORKS je večagentni sistem, ki omogoča implementacijo različnih algoritmov za koordinacijo in komunikacijo robotov.
pogosta vprašanja
V: Kaj naj storim, če se robot ne more samodejno povezati z Wifi?
O: Če se robot ne poveže samodejno, poskusite odklopiti in znova priključiti omrežno kartico ter se poskusite znova povezati.
POVZETEK
Ta dokument v glavnem pojasnjuje uporabo paketa funkcij za oblikovanje več robotov z imenom wheeltec_multi.
Ta dokument je razdeljen na štiri dele:
- Prvi del govori predvsem o uvedbi metode oblikovanja z več roboti;
- drugi del opisuje predvsem nastavitve večstrojne komunikacije ROS, vključno z večstrojno komunikacijo konstrukcije ROS in težave, na katere lahko naletimo v procesu komunikacije ROS;
- tretji del v glavnem opisuje korake delovanja večstrojne časovne sinhronizacije;
- četrti del razlaga posebno uporabo paketa funkcij za oblikovanje več strojev.
Namen tega dokumenta je uvod v robotske sisteme z več agenti in uporabnikom omogoča hiter začetek projekta oblikovanja z več roboti.
UVOD V MULTI-AGENTNE ALGORITME
Algoritmi oblikovanja več agentov
Ta paket ROS predstavlja tipičen problem multi-agentov pri sodelovalnem nadzoru med formacijskim pogonom. Ta vadnica postavlja temelje za prihodnji razvoj te teme. Algoritem za nadzor formacije se nanaša na algoritem, ki nadzoruje več agentov, da tvorijo specifično formacijo za izvedbo naloge. Sodelovanje se nanaša na sodelovanje med več agenti, ki uporabljajo določeno razmerje omejitev za dokončanje naloge. Vzemite pogon za oblikovanje več robotov kot primerample, sodelovanje pomeni, da več robotov skupaj tvori želeno formacijo. Njegovo bistvo je določeno matematično razmerje, ki je zadoščeno med položaji vsakega robota. Metode oblikovanja so v glavnem razdeljene na centraliziran nadzor formacije in porazdeljen nadzor formacije. Centralizirane metode nadzora formacije vključujejo predvsem metodo virtualne strukture, metodo grafične teorije in metodo napovedovanja modela. Metode porazdeljenega nadzora formacije vključujejo predvsem metodo vodja-sledilec, metodo, ki temelji na vedenju, in metodo virtualne strukture.
Ta paket ROS uporablja metodo voditelj-sledilec v metodi porazdeljenega nadzora formacije za izvajanje pogona formacije z več roboti. En robot v formaciji je označen kot vodja, drugi roboti pa so določeni kot sužnji, ki sledijo vodji. Algoritem uporablja trajektorijo gibanja vodilnega robota za nastavitev koordinat, ki jim sledijo naslednji roboti z določeno smerjo in hitrostjo. S popravljanjem odstopanj položaja od koordinat sledenja bodo sledilci sčasoma zmanjšali odstopanje med sledilcem in pričakovanimi koordinatami sledenja na nič, da bi dosegli cilje formacijskega pogona. Na ta način je algoritem relativno manj zapleten.
Algoritmi za izogibanje oviram
Pogost algoritem za izogibanje oviram je metoda umetnega potencialnega polja. Gibanje robota v fizičnem okolju obravnavamo kot gibanje v virtualnem umetnem polju sile. Najbližjo oviro prepozna LiDAR. Ovira zagotavlja odbojno polje za ustvarjanje odboja robota, ciljna točka pa zagotavlja gravitacijsko polje za ustvarjanje gravitacijske sile za robota. Na ta način nadzoruje gibanje robota pod kombiniranim delovanjem odbijanja in privlačnosti.
Ta paket ROS je izboljšava, ki temelji na metodi umetnega potencialnega polja. Prvič, algoritem za oblikovanje izračuna linearno in kotno hitrost podrejenega sledilnika. Nato poveča ali zmanjša linearno in kotno hitrost glede na zahteve za izogibanje oviram. Ko je razdalja med podrejenim zasledovalcem in oviro bližja, je odbojna sila ovire do podrejenega zasledovalca večja. Medtem so spremembe linearne hitrosti in variacije kotne hitrosti večje. Ko je ovira bližje sprednjemu delu podrejenega zasledovalca, postane odboj ovire od podrejenega zasledovalca večji (sprednji odboj je največji, stranski odboj pa najmanjši). Posledično so spremembe linearne hitrosti in kotne hitrosti večje. Z metodo umetnega potencialnega polja izboljša rešitev, ko bi se robot lahko prenehal odzivati pred oviro. To služi namenu boljšega izogibanja oviram.
NASTAVITEV KOMUNIKACIJE Z VEČ AGENTI
Komunikacija z več agenti je eden od ključnih korakov za dokončanje formacije z več roboti. Ko so relativni položaji več robotov neznani, morajo roboti drug drugemu deliti informacije prek komunikacije, da olajšajo vzpostavljanje povezav. ROS porazdeljena arhitektura in omrežne komunikacije so zelo zmogljive. Ni primeren le za medprocesno komunikacijo, ampak tudi za komunikacijo med različnimi napravami. Z omrežno komunikacijo lahko vsa vozlišča delujejo na katerem koli računalniku. Glavne naloge, kot je obdelava podatkov, se opravijo na gostiteljski strani. Podrejeni stroji so odgovorni za sprejemanje podatkov o okolju, ki jih zbirajo različni senzorji. Gostitelj tukaj je upravitelj, ki vodi glavno vozlišče v ROS. Trenutni komunikacijski okvir z več agenti je prek upravljalnika vozlišč in upravitelja parametrov za upravljanje komunikacij med več roboti.
Koraki za nastavitev komunikacij z več agenti
- Nastavite ROS Controls v istem omrežju
- V istem omrežju lahko nastavite glavne/podrejene krmilnike ROS na dva načina.
Možnost 1:
Glavni gostitelj ustvari lokalni wifi tako, da zažene upravitelja glavnega vozlišča. Na splošno eden od robotov, ki je določen kot glavni, ustvari to omrežje wifi. Drugi roboti ali virtualni stroji se pridružijo temu omrežju wifi kot sužnji.
Možnosti 2:
Lokalno omrežje wifi zagotavlja usmerjevalnik drugega proizvajalca kot informacijski relejni center. Vsi roboti so povezani na isti usmerjevalnik. Usmerjevalnik lahko uporabljate tudi brez internetne povezave. Izberite enega od robotov kot glavnega in zaženite upravitelja glavnega vozlišča. Drugi roboti so označeni kot podrejeni in izvajajo upravitelja glavnega vozlišča iz glavnega.
Odločitev, katero možnost izbrati, je odvisna od vaših projektnih zahtev. Če število robotov, ki morajo komunicirati, ni veliko, je priporočljiva možnost 1, saj prihrani stroške in jo je enostavno nastaviti. Ko je število robotov veliko, je priporočljiva možnost 2. Omejitev računalniške moči glavnega krmilnika ROS in omejena vgrajena pasovna širina wifi lahko zlahka povzročita zamude in motnje omrežja. Usmerjevalnik lahko zlahka odpravi te težave. Upoštevajte, da mora biti pri izvajanju komunikacije z več agenti, če se virtualni stroj uporablja kot podrejeni ROS, njegov omrežni način nastavljen na mostni način.
Konfigurirajte spremenljivke okolja Master/Slave
Ko so vsi glavni ROS v istem omrežju, je treba nastaviti spremenljivke okolja za komunikacijo z več agenti. Ta spremenljivka okolja je konfigurirana v datoteki .bashrc v glavnem imeniku. Zaženite ukaz gedit ~/.bashrc, da ga zaženete. Upoštevajte, da je treba konfigurirati tako datoteki .bashrc nadrejene kot podrejene v komunikaciji z več agenti. Kar je treba spremeniti, so naslovi IP na koncu datoteke. Dve vrstici sta ROS_MASTER_URI in ROS_HOSTNAME, kot je prikazano na sliki 2-1-4. ROS_MASTER_URI in ROS_HOSTNAME gostitelja ROS sta oba lokalna IP-ja. ROS_MASTER_URI v podrejeni datoteki .bashrc ROS je treba spremeniti v naslov IP gostitelja, medtem ko ROS_HOSTNAME ostane kot lokalni naslov IP.
Večstrojna komunikacija ROS ni omejena z različico izdaje ROS. V procesu večstrojne komunikacije se moramo zavedati naslednjega:
- Delovanje podrejenega programa ROS je odvisno od glavnega programa ROS glavne naprave ROS. Glavni program ROS se mora najprej zagnati na glavni napravi, preden izvede pomožni program na pomožni napravi.
- Naslovi IP glavnega in podrejenega računalnika v komunikaciji z več stroji morajo biti v istem omrežju. To pomeni, da sta naslov IP in maska podomrežja v istem omrežju.
- ROS_HOSTNAME v konfiguracijski datoteki okolja .bashrc ni priporočljivo uporabljati lokalnega gostitelja. Priporočljivo je, da uporabite določen naslov IP.
- V primeru, da podrejeni naslov IP ni pravilno nastavljen, lahko podrejena naprava še vedno dostopa do glavnega ROS, vendar ne more vnašati nadzornih informacij.
- Če navidezni stroj sodeluje v komunikaciji z več agenti, mora biti njegov omrežni način nastavljen na mostni način. Za omrežno povezavo ni mogoče izbrati statičnega IP-ja.
- Komunikacija z več stroji ne more view ali se naročite na teme podatkovnega tipa sporočila, ki ne obstajajo lokalno.
- S predstavitvijo simulacije Little Turtle lahko preverite, ali je komunikacija med roboti uspešna:
- a. Beži pred mojstrom
- rescore #launch storitve ROS
- rostrum turtles turtlesim_node #launch turtles vmesnik
- b. Beži pred sužnjem
- ponovno zaženi želve turtle_teleop_key #zaženi krmilno vozlišče tipkovnice za želve
- a. Beži pred mojstrom
Če lahko gibe želve upravljate s tipkovnico na podrejeni napravi, to pomeni, da je bila komunikacija glavni/podrejeni uspešno vzpostavljena.
Samodejna Wifi povezava v ROS
Spodnji postopki pojasnjujejo, kako konfigurirati robota za samodejno povezavo z gostiteljskim omrežjem ali omrežjem usmerjevalnika.
Samodejna nastavitev povezave Wifi za Jetson Nano
- Povežite Jetson Nano prek oddaljenega orodja VNC ali neposredno na računalniški zaslon. Kliknite ikono wifi v zgornjem desnem kotu in kliknite »Uredi povezave.«
- Kliknite gumb + v omrežnih povezavah:
- V oknu »Izberite vrsto povezave« kliknite spustni meni in kliknite gumb »Ustvari…«:
- Na nadzorni plošči kliknite možnost Wifi. V polji »Ime povezave« in SSID vnesite ime Wifija za povezavo. V spustnem meniju »Način« izberite »Odjemalec« in v spustnem meniju »Naprava« izberite »wlan0«.
- Na nadzorni plošči kliknite možnost »Splošno« in označite »Samodejno se poveži s tem omrežjem ...«. V možnosti »Prioriteta povezave za samodejno aktiviranje« nastavite prednost povezave na 1. Označite možnost »Vsi uporabniki se lahko povežejo s tem omrežjem«. Če je možnost nastavljena na 0 v »Prednost povezave za samodejno aktiviranje« za drugo wifi, to pomeni, da je bilo to prednostno omrežje wifi v preteklosti.
- Na nadzorni plošči kliknite možnost »Varnost Wi-Fi«. V polju »Varnost« izberite »WPA & WPA2 Personal«. Nato vnesite geslo za Wifi v polje »Geslo«.
Opomba: Če se robot po zagonu ne more samodejno povezati z omrežjem wifi, ko je prioriteta wifi nastavljena na 0, je to lahko posledica šibkega signala wifi. Da bi se izognili tej težavi, lahko izberete, da izbrišete vse možnosti wifi, ki so bile v preteklosti povezane. Ohranite samo omrežje wifi, ki ga ustvari gostitelj ali usmerjevalnik. Na nadzorni plošči omrežnih nastavitev kliknite možnost »Nastavitve IPv4«. V polju »Metoda« izberite možnost »Ročno«. Nato kliknite »Dodaj«, vnesite naslov IP podrejene naprave v polje »Naslov«. Izpolnite “24” v polju “Netmask”. Izpolnite segment omrežja IP v »Gateway«. Zadnje tri števke segmenta omrežja IP spremenite v »1«. Glavni namen tega koraka je popraviti naslov IP. Ko je to prvič opravljeno, bo naslov IP ostal nespremenjen, ko se pozneje povežete z istim WIFI.
Ko so vse nastavitve konfigurirane, kliknite »shrani«, da shranite nastavitve. Po uspešnem shranjevanju se bo robot samodejno povezal z omrežjem gostitelja ali usmerjevalnika, ko bo vklopljen.
Opomba:
- Tukaj nastavljen naslov IP mora biti enak naslovu IP, nastavljenem v datoteki .bashrc v razdelku 2.1.
- Naslov IP nadrejenega in vsakega podrejenega mora biti edinstven.
- Glavni in podrejeni naslov IP morata biti v istem segmentu omrežja.
- Počakati morate, da gostitelj ali usmerjevalnik pošlje signal WiFi, preden se lahko podrejeni robot vklopi in samodejno poveže z omrežjem WiFi.
- Če se po konfiguraciji nastavitve robot ne more samodejno povezati z WiFi, ko je vklopljen, priključite in izključite omrežno kartico ter poskusite znova vzpostaviti povezavo.
Samodejna nastavitev povezave Wifi za Raspberry Pi
Postopek za Raspberry Pi je enak kot za Jetson Nano.
Samodejna nastavitev povezave Wifi za Jetson TX1
Nastavitev v Jetson TX1 je skoraj enaka kot v Jetson Nano z eno izjemo, da mora Jetson TX1 izbrati napravo »wlan1« v »Naprava« na nadzorni plošči omrežnih nastavitev.
NASTAVITEV SINHRONIZACIJE VEČ AGENTOV
V projektu oblikovanja več agentov je nastavitev časovne sinhronizacije več agentov ključni korak. V procesu nastajanja bodo nastale številne težave zaradi asinhronega sistemskega časa vsakega robota. Sinhronizacija časa z več agenti je razdeljena na dve situaciji, in sicer na situacijo, v kateri sta glavni in podrejeni robot povezana z omrežjem, in situacijo, v kateri sta oba izključena iz omrežja.
Uspešna glavna/podrejena omrežna povezava
Ko je komunikacija z več agenti konfigurirana, če se glavni in podrejeni stroj lahko uspešno povežeta z omrežjem, bosta samodejno sinhronizirala omrežni čas. V tem primeru niso potrebna nobena nadaljnja dejanja za doseganje časovne sinhronizacije.
Odpravljanje težav pri prekinitvi omrežne povezave
Če se glavna in podrejena naprava po konfiguraciji komunikacije z več agenti ne moreta uspešno povezati z omrežjem, je potrebno ročno sinhronizirati čas. Za dokončanje nastavitve časa bomo uporabili ukaz datum.
Najprej namestite orodje terminator. V orodju za terminator uporabite orodje za razdelitev oken, da postavite krmilna terminala nadrejenega in podrejenega v isto terminalsko okno (z desnim klikom nastavite razdeljeno okno in se prijavite v nadrejeni in podrejeni stroj prek ssh v različnih oknih) .
- sudo apt-get install terminator # Prenesite terminator za razdelitev terminalskega okna
Kliknite gumb zgoraj levo, izberite možnost [Oddaj vsem]/[Oddaj vsem] in vnesite naslednji ukaz. Nato z orodjem terminator nastavite enak čas za glavni in podrejeni.
- sudo date -s “2022-01-30 15:15:00” # Ročna nastavitev časa
MULTI-AGENT ROS PAKET
Predstavitev paketa ROS
Nastavite podrejeno ime
V funkcijskem paketu wheeltec_multi je potrebno nastaviti unikatno ime za vsakega podrejenega robota, da se izognemo napakam. Na primerample, št. 1 za slave1 in št. 2 za slave2 itd. Namen nastavitve različnih imen je združiti delujoča vozlišča v skupine in jih razlikovati po različnih imenskih prostorih. Na primerample, radarska tema podrejenega 1 je/slave1/scan, vozlišče LiDAR podrejenega 1 pa je/slave1/laser.
Nastavite podrejene koordinate
Paket wheeltec_multi lahko izvaja formacije po meri. Ko so potrebne različne formacije, samo spremenite želene koordinate podrejenih robotov. Podrejeni_x in podrejeni_y sta koordinati x in y podrejenega z nadrejenim kot prvotno referenčno točko. Sprednja stran matrice je pozitivna smer koordinate x, leva stran pa pozitivna smer koordinate y. Po končani nastavitvi bo kot pričakovana koordinata pomožne enote izdana koordinata TF slave1. Če obstaja en glavni in dva podrejena, je mogoče nastaviti naslednjo formacijo:
- Horizontalna tvorba: koordinate podrejenega na levi lahko nastavite na slave_x:0, slave_y: 0.8, koordinate podrejenega na desni pa na slave_x:0, slave_y:-0.8.
- Oblikovanje stolpca: koordinate enega podrejenega lahko nastavite na: slave_x:-0.8, slave_y:0, koordinate drugega podrejenega pa na: slave_x:-1.8, slave_y:0.
- Trikotna tvorba: koordinate enega podrejenega lahko nastavite na: slave_x:-0.8, slave_y: 0.8, koordinate drugega podrejenega pa na: slave_x:-0.8, slave_y:-0.8.
Druge formacije je mogoče prilagoditi po potrebi.
Opomba:
- Priporočena razdalja med robotoma je nastavljena na 0.8, priporočljivo pa ni nižja od 0.6. Priporočljivo je, da je razdalja med podrejenimi in glavnimi enotami nastavljena pod 2.0. Dlje kot je od glavnega, večja je linearna hitrost pomožnega, ko se glavni vrti. Zaradi omejitve največje hitrosti bo hitrost pomožne naprave odstopala, če ne izpolnjuje zahtev. Formacija robotov bo postala kaotična.
Inicializacija podrejenega položaja
- Začetni položaj pomožne naprave je privzeto na pričakovanih koordinatah. Preden zaženete program, postavite podrejenega robota blizu njegovih pričakovanih koordinat, da dokončate inicializacijo. To funkcijo izvaja vozlišče pose_setter v datoteki z imenom turn_on_wheeltec_robot.launch v paketu wheeltec_multi, kot je prikazano na sliki 4-1-3.
Če želi uporabnik prilagoditi začetni položaj podrejene naprave, mora samo nastaviti vrednosti slave_x in slave_y, kot je prikazano na sliki 4-1-4 v wheeltec_slave.launch. Vrednosti slave_x in slave_y bosta posredovani turn_on_wheeltec_robot.launch in dodeljeni vozlišču pose_setter. Samo postavite robota v položaj po meri, preden zaženete program.
Konfiguracija položaja
V formaciji z več agenti je prva težava, ki jo je treba rešiti, pozicioniranje nadrejenega in podrejenega. Mojster bo najprej izdelal 2D zemljevid. Ko ustvarite in shranite zemljevid, zaženite 2D navigacijski paket in uporabite prilagodljivi algoritem za določanje položaja Monte Carlo (amcl pozicioniranje) v 2D navigacijskem paketu, da konfigurirate pozicioniranje masterja. Ker sta glavni in podrejeni v istem omrežju in si delita istega upravitelja vozlišča, je glavni zagnal zemljevid iz 2D navigacijskega paketa, lahko vsi podrejeni uporabljajo isti zemljevid pod istim upraviteljem vozlišča. Zato sužnju ni treba ustvariti zemljevida. V wheeltec_slave.launch zaženite pozicioniranje Monte Carlo (pozicioniranje amcl), podrejeni lahko konfigurirajo svoje položaje z uporabo zemljevida, ki ga je ustvaril glavni.
Kako ustvariti formacijo in ohraniti formacijo
V procesu formacijskega gibanja lahko glavno gibanje krmilimo z Rvizom, tipkovnico, daljinskim upravljalnikom in drugimi metodami. Podrejeni izračuna svojo hitrost prek vozlišča slave_tf_listener, da nadzoruje svoje gibanje in doseže cilj formacije. Vozlišče slave_tf_listener omejuje podrejeno hitrost, da se izogne čezmerni hitrosti z izračunom vozlišča, kar bo povzročilo vrsto vplivov. Specifično vrednost je mogoče spremeniti v wheeltec_slave.launch.
Ustrezni parametri algoritma za oblikovanje so naslednji:
Informacije o izogibanju oviram
V formaciji z več agenti lahko glavni uporabi vozlišče move_base za dokončanje izogibanja oviram. Vendar pa inicializacija podrejenega ne uporablja vozlišča move_base. Na tej točki je treba v podrejenem programu poklicati vozlišče multi_avoidance. Vozlišče za izogibanje oviram je v paketu privzeto omogočeno. Po potrebi lahko izogibanje nastavite na »false«, da onemogočite vozlišče za izogibanje oviram.
Nekateri ustrezni parametri vozlišča za izogibanje oviram so prikazani na spodnji sliki, kjer je safe_distance meja varne razdalje do ovire, danger_distance pa meja nevarne razdalje do ovire. Ko je ovira znotraj varne in nevarne razdalje, pomožna naprava prilagodi svoj položaj, da se izogne oviri. Ko je ovira v nevarnosti, se bo suženj odpeljal stran od ovire.
Postopek delovanja
Vnesite ukaz za izvedbo
Priprave pred začetkom oblikovanja več agentov:
- Glavni in podrejeni se povežeta v isto omrežje in pravilno vzpostavita komunikacijo z več agenti
- Mojster vnaprej sestavi 2D zemljevid in ga shrani
- Glavni je postavljen na začetno točko zemljevida, podrejeni pa blizu inicializacijskega položaja (privzeti položaj formacije podrejenega)
- Po oddaljeni prijavi v Jetson Nano/Raspberry Pi izvedite časovno sinhronizacijo.
sudo datum -s “2022-04-01 15:15:00”
- 1. korak: odprite 2D zemljevid z glavnega.
roslaunch turn_on_wheeltec_robot navigation.launch
- 2. korak: Zaženi program oblikovanja iz vseh sužnjev.
roslaunch wheeltec_multi wheeltec_slave.launch
- 3. korak: Odprite krmilno vozlišče tipkovnice iz glavnega ali uporabite krmilno palčko za daljinsko upravljanje glavnega gibanja.
znova zaženi wheeltec_robot_rc keyboard_teleop.launch
- 4. korak: (Izbirno) Opazujte gibanje robota iz Rviz.
rviz
Opomba:
- Ne pozabite dokončati operacije časovne sinhronizacije, preden zaženete program.
- Pri krmiljenju poveljnika formacije z več agenti kotna hitrost ne sme biti prehitra. Priporočena linearna hitrost je 0.2 m/s, stopnja kotne hitrosti pod 0.3 rad/s. Ko nadrejeni vrti, dlje kot je podrejeni od nadrejenega, večja je zahtevana linearna hitrost. Zaradi omejitve linearne hitrosti in kotne hitrosti v paketu, ko podrejeni avtomobil ne more doseči zahtevane hitrosti, bo formacija kaotična. Na splošno lahko prevelika linearna hitrost zlahka poškoduje robota.
- Ko je število podrejenih enot več kot ena, je zaradi omejene vgrajene pasovne širine wifi gostitelja ROS enostavno povzročiti znatne zamude in prekinitev komunikacije več agentov. Uporaba usmerjevalnika lahko dobro reši to težavo.
- Drevo TF formacije več robotov (2 podrejena) je: rqt_tf_tree
- Diagram razmerja med vozlišči formacije več robotov (2 podrejena) je: rqt_graph
Dokumenti / Viri
![]() |
ROBOWORKS Robofleet MULTI-AGENTNI ALGORITMI [pdfUporabniški priročnik Algoritmi za več agentov Robofleet, Robofleet, algoritmi za več agentov, algoritmi agentov, algoritmi |