ROBOWORKS Robofleet MULTI-AGENT ALGORITMI
Specifikacije
- Naziv proizvoda: ROBOWORKS
- Verzija: 20240501
- Pripremili: Wayne Liu & Janette Lin
- Datum: 1. maj 2024
Informacije o proizvodu
ROBOWORKS je sistem sa više agenata koji omogućava implementaciju različitih algoritama za koordinaciju i komunikaciju robota.
FAQs
P: Šta da radim ako se robot ne može automatski povezati na Wifi?
O: Ako se robot ne uspije automatski povezati, pokušajte isključiti i ponovo priključiti mrežnu karticu i pokušajte se ponovo povezati.
SAŽETAK
Ovaj dokument uglavnom objašnjava upotrebu funkcionalnog paketa za formiranje više robota pod nazivom wheeltec_multi.
Ovaj dokument je podijeljen u četiri dijela:
- Prvi dio se uglavnom odnosi na uvođenje metode formiranja više robota;
- drugi dio uglavnom opisuje ROS multi-machine komunikacijske postavke, uključujući ROS konstrukciju više-mašinske komunikacije i probleme koji se mogu susresti u procesu ROS komunikacije;
- treći dio uglavnom opisuje operativne korake višemašinske vremenske sinhronizacije;
- četvrti dio objašnjava specifičnu upotrebu funkcionalnog paketa za formiranje više mašina.
Svrha ovog dokumenta je uvod u robotske sisteme sa više agenata i omogućava korisnicima da brzo započnu projekat formiranja više robota.
UVOD U MULTIAGENSKE ALGORITME
Algoritmi formiranja više agenata
Ovaj ROS paket predstavlja tipičan problem više agenata u kolaborativnoj kontroli tokom formacije. Ovaj vodič postavlja temelj za budući razvoj ove teme. Algoritam kontrole formacije odnosi se na algoritam koji kontrolira više agenata kako bi formirali specifičnu formaciju za obavljanje zadatka. Saradnja se odnosi na saradnju između više agenata koji koriste određeni odnos ograničenja za završetak zadatka. Uzmite za primjer pogon za formiranje više robotaampDakle, saradnja znači da više robota zajedno formiraju željenu formaciju. Njegova suština je određeni matematički odnos koji je zadovoljen između pozicija svakog robota. Metode formacije se uglavnom dijele na centraliziranu kontrolu formacije i kontrolu distribuirane formacije. Centralizovane metode kontrole formacije uglavnom uključuju metod virtuelne strukture, metod grafičke teorije i metod predviđanja modela. Metode kontrole distribuirane formacije uglavnom uključuju metodu lider-sljedbenik, metodu zasnovanu na ponašanju i metodu virtuelne strukture.
Ovaj ROS paket primjenjuje metodu lider-sljedbenik u metodi kontrole distribuirane formacije za izvršavanje pogona za formiranje više robota. Jedan robot u formaciji je određen kao vođa, a drugi roboti su određeni kao robovi koji slijede vođu. Algoritam koristi putanju kretanja vodećeg robota da bi postavio koordinate koje će slijedeći roboti pratiti određenim smjerom i brzinom. Ispravljanjem odstupanja položaja od koordinata praćenja, sljedbenici će na kraju smanjiti odstupanje između sljedbenika i očekivanih koordinata praćenja na nulu kako bi postigli ciljeve formacijskog pogona. Na ovaj način, algoritam je relativno manje komplikovan.
Algoritmi za izbjegavanje prepreka
Uobičajeni algoritam za izbjegavanje prepreka je metoda umjetnog potencijalnog polja. Kretanje robota u fizičkom okruženju smatra se kretanjem u virtuelnom polju vještačke sile. LiDAR identificira najbližu prepreku. Prepreka pruža polje odbojne sile koje stvara odbojnost robotu, a ciljna tačka pruža gravitaciono polje za stvaranje gravitacione sile za robota. Na taj način kontrolira kretanje robota pod kombiniranim djelovanjem odbijanja i privlačenja.
Ovaj ROS paket je poboljšanje zasnovano na metodi veštačkog potencijalnog polja. Prvo, algoritam formiranja izračunava linearnu i ugaonu brzinu Slave sljedbenika. Zatim povećava ili smanjuje linearnu i kutnu brzinu u skladu sa zahtjevima izbjegavanja prepreka. Kada je udaljenost između Slave sljedbenika i prepreke bliža, sila odbijanja prepreke prema Slave sljedbeniku je veća. U međuvremenu, promjena linearne brzine i varijacije ugaone brzine su veće. Kada je prepreka bliža prednjem dijelu Slave sljedbenika, odbijanje prepreke prema Slave sljedbeniku postaje veće (prednje odbijanje je najveće, a bočno odbijanje najmanje). Kao rezultat toga, varijacije linearne brzine i ugaone brzine su veće. Putem metode umjetnog potencijalnog polja, poboljšava rješenje kada robot može prestati reagirati ispred prepreke. Ovo služi u svrhu boljeg izbjegavanja prepreka.
KOMUNIKACIJSKO POSTAVLJANJE MULTI-AGENTA
Komunikacija s više agenata jedan je od ključnih koraka za dovršetak formiranja više robota. Kada su relativni položaji više robota nepoznati, roboti moraju međusobno dijeliti informacije putem komunikacije kako bi olakšali uspostavljanje veza. ROS-distribuirana arhitektura i mrežne komunikacije su vrlo moćne. Nije pogodan samo za međuprocesnu komunikaciju već i za komunikaciju između različitih uređaja. Putem mrežne komunikacije, svi čvorovi mogu raditi na bilo kojem računalu. Glavni zadaci kao što je obrada podataka se obavljaju na strani domaćina. Podređene mašine su odgovorne za primanje podataka o okolini koje prikupljaju različiti senzori. Domaćin je ovdje menadžer koji pokreće glavni čvor u ROS-u. Trenutni multi-agentski komunikacijski okvir je preko upravitelja čvorova i upravitelja parametara za rukovanje komunikacijama između više robota.
Koraci za postavljanje komunikacije s više agenata
- Postavite ROS kontrole u istoj mreži
- Postoje 2 načina postavljanja Master/Slave ROS kontrola pod istom mrežom.
Opcija 1:
Master Host kreira lokalni wifik pokretanjem glavnog upravitelja čvora. Generalno, jedan od robota koji je određen kao glavni kreira ovu wifi mrežu. Ostali roboti ili virtuelne mašine pridružuju se ovoj wifij mreži kao robovi.
Opcije 2:
Lokalnu wifi mrežu obezbjeđuje ruter treće strane kao centar za prijenos informacija. Svi roboti su povezani na isti ruter. Ruter se može koristiti i bez internetske veze. Odaberite jednog od robota kao glavnog i pokrenite upravitelja glavnog čvora. Ostali roboti su označeni kao slave i pokreću upravitelja glavnog čvora od glavnog.
Odluka koju opciju odabrati ovisi o zahtjevima vašeg projekta. Ako broj robota koji treba da komuniciraju nije veliki, preporučuje se opcija 1 jer štedi troškove i lako se postavlja. Kada je broj robota veliki, preporučuje se opcija 2. Ograničenje računalne snage glavne kontrole ROS-a i ograničeni propusni opseg bežičnog interneta na ploči mogu lako uzrokovati kašnjenja i prekide u mreži. Ruter može lako riješiti ove probleme. Imajte na umu da kada se obavlja komunikacija sa više agenata, ako se virtuelna mašina koristi kao ROS slave, njen mrežni režim treba da bude postavljen na režim premošćavanja.
Konfigurišite varijable okruženja Master/Slave
Nakon što su svi ROS masteri u istoj mreži, potrebno je postaviti varijable okruženja za komunikaciju s više agenata. Ova varijabla okruženja je konfigurirana u .bashrc datoteci u glavnom direktoriju. Pokrenite naredbu gedit ~/.bashrc da biste je pokrenuli. Imajte na umu da i .bashrc fajlovi glavnog i slave-a u komunikaciji sa više agenata moraju biti konfigurisani. Ono što treba promijeniti su IP adrese na kraju datoteke. Dvije linije su ROS_MASTER_URI i ROS_HOSTNAME, kao što je prikazano na slici 2-1-4. ROS_MASTER_URI i ROS_HOSTNAME ROS hosta su oba lokalne IP adrese. ROS_MASTER_URI u ROS slave .bashrc datoteci treba promijeniti u IP adresu hosta dok ROS_HOSTNAME ostaje kao lokalna IP adresa.
ROS komunikacija s više strojeva nije ograničena verzijom ROS izdanja. U procesu multi-mašinske komunikacije treba biti svjestan sljedećeg:
- Rad ROS slave programa ovisi o ROS master programu glavnog uređaja ROS. Glavni program ROS mora se prvo pokrenuti na glavnom uređaju prije nego što izvrši podređeni program na podređenom uređaju.
- IP adrese master i slave mašina u komunikaciji sa više mašina moraju biti u istoj mreži. To znači da su IP adresa i podmrežna maska pod istom mrežom.
- ROS_HOSTNAME u datoteci konfiguracije okruženja .bashrc se ne preporučuje za korištenje localhost. Preporučuje se korištenje određene IP adrese.
- U slučaju da slave IP adresa nije ispravno postavljena, slave uređaj i dalje može pristupiti ROS masteru, ali ne može unijeti kontrolne informacije.
- Ako virtuelna mašina učestvuje u komunikaciji sa više agenata, njen mrežni režim treba da bude postavljen na režim premošćavanja. Za mrežnu vezu nije moguće odabrati statičnu IP adresu.
- Komunikacija sa više mašina ne može view ili se pretplatite na teme tipa podataka poruke koje ne postoje lokalno.
- Možete koristiti demo simulacije male kornjače da provjerite je li komunikacija između robota uspješna:
- a. Beži od gospodara
- rescore #launch ROS usluge
- rostrum turtles turtlesim_node #launch kornjače interfejs
- b. Beži od roba
- rerun turtles turtle_teleop_key #pokreni kontrolni čvor tastature za kornjače
- a. Beži od gospodara
Ako možete manipulirati pokretima kornjače s tastature na slave-u, to znači da je komunikacija master/slave uspješno uspostavljena.
Automatska Wifi konekcija u ROS
Procedure u nastavku objašnjavaju kako konfigurirati robota da se automatski povezuje na mrežu domaćina ili mrežu rutera.
Automatsko podešavanje Wifi veze za Jetson Nano
- Povežite Jetson Nano preko VNC daljinskog alata ili direktno na ekran računara. Kliknite na wifi ikonu u gornjem desnom uglu, a zatim kliknite na „Uredi veze..“
- Kliknite na dugme + u mrežnim vezama:
- U prozoru "Odaberite vrstu veze" kliknite na padajući meni i kliknite na dugme "Kreiraj...":
- Na kontrolnoj tabli kliknite opciju Wifi. Unesite Wifi ime za povezivanje u polja „Naziv veze” i SSID. Odaberite “Klijent” u padajućem izborniku “Mode” i odaberite “wlan0” u padajućem izborniku “Uređaj”.
- Na kontrolnoj tabli kliknite na opciju “Općenito” i označite “Automatski se povežite na ovu mrežu…”. Postavite prioritet veze na 1 u opciji “Prioritet veze za automatsku aktivaciju”. Označite opciju “Svi korisnici se mogu povezati na ovu mrežu”. Kada je opcija postavljena na 0 u “Prioritetu veze za automatsku aktivaciju” za drugi wifi, to znači da je ovo preferirana wifi mreža u prošlosti.
- Kliknite na opciju “Wi-Fi Security” na kontrolnoj tabli. Odaberite “WPA & WPA2 Personal” u polju “Security”. Zatim unesite lozinku za Wifi u polje “Password”.
Napomena: Ako se robot ne može automatski povezati na wifi mrežu nakon pokretanja kada je prioritet wifija postavljen na 0, to može biti uzrokovano problemom slabog wifi signala. Kako biste izbjegli ovaj problem, možete odabrati brisanje svih WiFi opcija koje su bile povezane u prošlosti. Zadržite samo WiFi mrežu koju je kreirao host ili ruter. Kliknite na opciju “IPv4 postavke” na kontrolnoj tabli mrežnih postavki. Odaberite opciju “Ručno” u polju “Metoda”. Zatim kliknite na “Add”, unesite IP adresu slave mašine u polje “Address”. Popunite "24" u polju "Netmask". Popunite segment IP mreže u “Gateway”. Promijenite posljednje tri cifre segmenta IP mreže u “1”. Glavna svrha ovog koraka je popravljanje IP adrese. Nakon što se ovo završi po prvi put, IP adresa će ostati nepromijenjena kada se kasnije povežete na isti WIFI.
Nakon što su sve postavke konfigurisane, kliknite na „sačuvaj“ da biste sačuvali postavke. Nakon što je spremanje uspješno, robot će se automatski povezati na mrežu hosta ili rutera kada se uključi.
Napomena:
- IP adresa postavljena ovdje mora biti ista kao IP adresa postavljena u .bashrc datoteci u odjeljku 2.1.
- IP adresa glavnog i svakog slave-a mora biti jedinstvena.
- Glavna i slave IP adresa moraju biti u istom segmentu mreže.
- Morate pričekati da host ili ruter pošalju WiFi signal prije nego što se slave robot može uključiti i automatski se povezati na WiFi mrežu.
- Nakon što je postavka konfigurirana, ako se robot ne može automatski povezati s WiFi mrežom kada je uključen, uključite i isključite mrežnu karticu i pokušajte se ponovo povezati.
Automatsko podešavanje Wifi veze za Raspberry Pi
Procedura za Raspberry Pi je ista kao i Jetson Nano.
Automatsko podešavanje Wifi veze za Jetson TX1
Podešavanje u Jetson TX1 je skoro isto kao i u Jetson Nano sa jednim izuzetkom Jetson TX1 bi trebao izabrati uređaj „wlan1“ u „Device“ na kontrolnoj tabli mrežnih postavki.
PODEŠAVANJE SINHRONIZACIJE MULTI-AGENTA
U projektu formiranja više agenata, postavka vremenske sinhronizacije sa više agenata je ključni korak. U procesu formiranja će nastati mnogi problemi zbog asinhronog sistemskog vremena svakog robota. Vremenska sinhronizacija sa više agenata podijeljena je u dvije situacije, odnosno na situaciju u kojoj su i master i slave robot spojeni na mrežu i situaciju u kojoj su oba isključena iz mreže.
Uspješna mrežna veza master/slave
Nakon što je komunikacija s više agenata konfigurirana, ako se glavna i podređena mašina uspješno povežu na mrežu, oni će automatski sinkronizirati mrežno vrijeme. U ovom slučaju nisu potrebne daljnje radnje za postizanje vremenske sinhronizacije.
Rješavanje problema s prekidima mreže
Nakon što je komunikacija s više agenata konfigurisana, ako se glavni i slave uređaji ne mogu uspješno povezati na mrežu, potrebno je ručno sinkronizirati vrijeme. Koristićemo naredbu date da završimo podešavanje vremena.
Prvo, instalirajte terminator alat. Iz alata za terminator, koristite alatku za razdvajanje prozora da postavite kontrolne terminale glavnog i podređenog u isti terminalski prozor (desni klik da postavite podijeljeni prozor i prijavite se na glavne i slave mašine pomoću ssh-a u različitim prozorima) .
- sudo apt-get install terminator # Preuzmite terminator da biste podijelili prozor terminala
Kliknite na dugme u gornjem lijevom kutu, odaberite opciju [Emitiraj svima]/[Emitiraj sve] i unesite sljedeću naredbu. Zatim upotrijebite terminator alat da postavite isto vrijeme za master i slave.
- sudo date -s “2022-01-30 15:15:00” # Ručno podešavanje vremena
MULTI-AGENTNI ROS PAKET
Uvod u ROS paket
Postavite slave ime
U paketu funkcija wheeltec_multi potrebno je postaviti jedinstveno ime za svakog slave robota kako bi se izbjegle greške. Za nprample, br. 1 za slave1 i br. 2 za slave2, itd. Svrha postavljanja različitih imena je grupisanje pokrenutih čvorova i njihovo razlikovanje po različitim imenskim prostorima. Za nprampLe, radarska tema slave 1 je/slave1/scan, a LiDAR čvor slave 1 je/slave1/laser.
Postavite slave koordinate
Paket wheeltec_multi može implementirati prilagođene formacije. Kada su potrebne različite formacije, samo izmijenite željene koordinate podređenih robota. Slave_x i slave_y su x i y koordinate slave-a s masterom kao originalnom referentnom točkom. Prednja strana mastera je pozitivan smjer koordinate x, a lijeva strana je pozitivan smjer koordinate y. Nakon što je podešavanje završeno, TF koordinata slave1 će biti izdana kao očekivana koordinata slave-a. Ako postoji jedan master i dva slave-a, može se postaviti sljedeća formacija:
- Horizontalno formiranje: Možete postaviti koordinate slave-a s lijeve strane na slave_x:0, slave_y: 0.8, a koordinate slave-a na desnoj strani na slave_x:0, slave_y:-0.8.
- Formiranje kolone: Koordinate jednog slave-a mogu se postaviti na: slave_x:-0.8, slave_y:0, a koordinate drugog slave-a mogu se postaviti na: slave_x:-1.8, slave_y:0.
- Trouglasta formacija: Koordinate jednog slave-a mogu se postaviti na: slave_x:-0.8, slave_y: 0.8, a koordinate drugog slave-a se mogu postaviti na: slave_x:-0.8, slave_y:-0.8.
Druge formacije se mogu prilagoditi prema potrebi.
Napomena:
- Preporučena udaljenost između dva robota je postavljena na 0.8, a preporučuje se da ne bude niža od 0.6. Preporučuje se da se udaljenost između slave-a i mastera podesi ispod 2.0. Što je dalje od mastera, veća je linearna brzina slave-a kada se master okreće. Zbog ograničenja maksimalne brzine, brzina slave-a će odstupiti ako ne ispunjava zahtjeve. Formacija robota će postati haotična.
Inicijalizacija slave pozicije
- Početna pozicija slave-a je po defaultu na očekivanim koordinatama. Prije pokretanja programa, samo postavite podređenog robota blizu njegovih očekivanih koordinata kako biste dovršili inicijalizaciju. Ovu funkciju implementira čvor pose_setter u datoteci pod nazivom turn_on_wheeltec_robot.launch u paketu wheeltec_multi, kao što je prikazano na slici 4-1-3.
Ako korisnik želi prilagoditi početnu poziciju slave-a, on ili ona treba samo postaviti vrijednosti slave_x i slave_y kao što je prikazano na slici 4-1-4 u wheeltec_slave.launch. Slave_x i slave_y vrijednosti će biti proslijeđene turn_on_wheeltec_robot.launch i dodijeljene pose_setter čvoru. Samo postavite robota u prilagođeni položaj prije pokretanja programa.
Konfiguracija položaja
U formaciji sa više agenata, prvi problem koji treba riješiti je pozicioniranje glavnog i podređenog. Majstor će prvo napraviti 2D mapu. Nakon kreiranja i spremanja karte, pokrenite 2D navigacijski paket i koristite adaptivni Monte Carlo algoritam pozicioniranja (amcl pozicioniranje) u 2D navigacijskom paketu da konfirišete pozicioniranje mastera. Pošto su master i slave u istoj mreži i dijele isti upravitelj čvorova, master je pokrenuo mapu iz 2D navigacijskog paketa, svi slave mogu koristiti istu mapu pod istim upraviteljem čvorova. Stoga, slave ne treba da kreira mapu. U wheeltec_slave.launch, pokrenite Monte Carlo pozicioniranje (amcl pozicioniranje), slaveovi mogu konfigurirati svoje pozicije koristeći mapu koju je kreirao master.
Kako stvoriti formaciju i održati formaciju
U procesu kretanja formacije, glavni pokret se može kontrolirati Rvizom, tipkovnicom, daljinskim upravljačem i drugim metodama. Slave izračunava svoju brzinu kroz slave_tf_listener čvor kako bi kontrolirao svoje kretanje i postigao cilj formacije. Čvor slave_tf_listener ograničava slave brzinu kako bi se izbjegla prevelika brzina proračunom čvora, što će uzrokovati niz utjecaja. Konkretna vrijednost se može izmijeniti u wheeltec_slave.launch.
Relevantni parametri algoritma formiranja su sljedeći:
Informacije o izbjegavanju prepreka
U formaciji sa više agenata, master može koristiti čvor move_base da dovrši izbjegavanje prepreka. Međutim, inicijalizacija slave-a ne koristi čvor move_base. U ovom trenutku, multi_avoidance čvor treba pozvati u slave programu. Čvor za izbjegavanje prepreka je uključen po defaultu u paketu. Ako je potrebno, izbjegavanje se može postaviti na “false” kako bi se onemogućio čvor za izbjegavanje prepreka.
Neki relevantni parametri čvora za izbjegavanje prepreka prikazani su na donjoj slici, gdje je safe_distance granica sigurne udaljenosti prepreke, a danger_distance je granica opasne udaljenosti prepreke. Kada je prepreka unutar sigurne udaljenosti i udaljenosti opasnosti, slave podešava svoj položaj kako bi izbjegao prepreku. Kada je prepreka unutar opasnosti, rob će se udaljiti od prepreke.
Procedura operacije
Unesite naredbu za izvršavanje
Pripreme prije početka formiranja više agenata:
- Glavni i slave se povezuju na istu mrežu i pravilno postavljaju komunikaciju s više agenata
- Master gradi 2D kartu unaprijed i sprema je
- Master se postavlja na početnu tačku mape, a slave se postavlja blizu pozicije inicijalizacije (podrazumevana pozicija formiranja slave-a)
- Nakon što se daljinski prijavite na Jetson Nano/Raspberry Pi, izvršite sinhronizaciju vremena.
sudo date -s “2022-04-01 15:15:00”
- Korak 1: Otvorite 2D mapu sa mastera.
roslaunch turn_on_wheeltec_robot navigation.launch
- Korak 2: Pokrenite program formiranja od svih slave-ova.
roslaunch wheeltec_multi wheeltec_slave.launch
- Korak 3: Otvorite upravljački čvor tastature sa glavnog uređaja ili koristite džojstik za daljinsko upravljanje glavnim pokretom.
ponovo pokrenite wheeltec_robot_rc keyboard_teleop.launch
- Korak 4: (Opciono) Posmatrajte kretanje robota iz Rviza.
rviz
Napomena:
- Obavezno dovršite operaciju sinhronizacije vremena prije izvođenja programa.
- Kada se kontroliše master formacije sa više agenata, ugaona brzina ne bi trebala biti prebrza. Preporučena linearna brzina je 0.2m/s, stepen ugaone brzine ispod 0.3rad/s. Kada master skreće, što je podređeni udaljeniji od mastera, potrebna je veća linearna brzina. Zbog ograničenja linearne brzine i kutne brzine u paketu, kada podređeni automobil ne može postići potrebnu brzinu, formiranje će biti kaotično. Sve u svemu, prevelika linearna brzina može lako oštetiti robota.
- Kada je broj slave-ova više od jednog, zbog ograničenog propusnog opsega ROS hosta na ploči, lako je izazvati značajna kašnjenja i prekid komunikacije sa više agenata. Korištenje rutera može dobro riješiti ovaj problem.
- TF stablo formacije više robota (2 slave) je: rqt_tf_tree
- Dijagram odnosa čvorova formacije više robota (2 slave) je: rqt_graph
Dokumenti / Resursi
![]() |
ROBOWORKS Robofleet MULTI-AGENT ALGORITMI [pdf] Korisnički priručnik Robofleet Multi Agent Algoritmi, Robofleet, Multi Agent Algoritmi, Agent Algoritmi, Algoritmi |