ROBOWORKS Robofleet Orin Nano x3 ROS Robot 

ROBOWORKS Robofleet Orin Nano x3 ROS Robot

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 komunikacijske postavke ROS-a sa više strojeva, uključujući ROS konstrukciju multi-mašinske komunikacije i probleme koji se mogu pojaviti 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 robotski sistem sa više agenata i omogućava korisniku da brzo započne 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 da se zadovoljava određeni matematički odnos između pozicija svakog robota. Metode formacije se uglavnom dijele na centraliziranu kontrolu formacije i kontrolu distribuirane formacije. Metode centralizirane kontrole formacije uglavnom uključuju metod virtuelne strukture, metodu grafičke teorije i metodu 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 formiranja 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 slijede sljedeći roboti s 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 se postigli ciljevi formacije. 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 virtualnom vještačkom polju sile. LiDAR identificira najbližu prepreku. Prepreka pruža polje odbojne sile za stvaranje odbijanja robota, 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 za izbjegavanje prepreke. Kada je udaljenost između Slave sljedbenika i prepreke bliža, sila odbijanja prepreke prema Slave sljedbeniku je veća. U međuvremenu su promjene linearne brzine i varijacije ugaone brzine 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. Metodom umjetnog potencijalnog polja poboljšava rješenje

kada bi robot mogao prestati da reaguje 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.

Multi-agent Communication Setup

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:

Glavni host kreira lokalni wifi pokretanjem glavnog upravitelja čvora. Općenito, jedan od robota koji je određen kao glavni kreira ovu wifi mrežu. Ostali roboti ili virtuelne mašine pridružuju se ovoj wifi 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 2. opcija. Ograničenje računalne snage glavne kontrole ROS-a i ograničena propusnost Wi-Fi 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.

Konfigurirajte 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 file u glavnom imeniku. Pokrenite naredbu gedit ~/.bashrc da biste je pokrenuli. Imajte na umu da oba .bashrc files glavnog i podređenog u komunikaciji s više agenata treba konfigurirati. Ono što treba promijeniti su IP adrese na kraju file. 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 file treba promijeniti u IP adresu domaćina dok ROS_HOSTNAME ostaje kao lokalna IP adresa.

Multi-agent Communication Setup

ROS komunikacija više mašina nije ograničena verzijom ROS izdanja. U procesu višemašinske komunikacije treba biti svjestan sljedećeg:

  1. 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 slave uređaju.
  2. 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.
  3. ROS_HOSTNAME u konfiguraciji okruženja file .bashrc se ne preporučuje za korištenje localhost. Preporučuje se korištenje određene IP adrese.
  4. 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.
  5.  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.
  6. Komunikacija sa više mašina ne može view ili se pretplatite na teme tipa podataka poruke koje ne postoje lokalno.
  7. Možete koristiti demo simulacije male kornjače da provjerite je li komunikacija između robota uspješna:
    a. Beži od gospodara
    roscore #pokreni ROS usluge
    rosrun turtlesim turtlesim_node #pokreni turtlesim interfejs
    b.
    Beži od roba
    rosrun turtlesim turtle_teleop_key #pokreni kontrolni čvor tastature za turtlesim

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 veza u ROS-u

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

  1. Povežite Jetson Nano putem VNC daljinskog alata ili direktno na ekran računara. Kliknite na wifi ikonu u gornjem desnom uglu, a zatim kliknite na "Uredi veze.."
    Multi-agent Communication Setup
  2. Kliknite na dugme + u mrežnim vezama:
    Multi-agent Communication Setup
  3. U prozoru "Odaberite vrstu veze" kliknite na padajući meni i kliknite na dugme "Kreiraj...":
    Multi-agent Communication Setup
  4. Na kontrolnoj tabli kliknite opciju Wifi. Unesite Wifi naziv za povezivanje u polja „Naziv veze” i SSID. Odaberite “Klijent” u padajućem izborniku “Mode” i odaberite “wlan0” u padajućem izborniku “Uređaj”.
    Multi-agent Communication Setup
  5. 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 drugu WiFi mrežu, to znači da je ovo preferirana WiFi mreža u prošlosti.
    Multi-agent Communication Setup
  6. Kliknite na opciju “Wi-Fi Security” na kontrolnoj tabli. Odaberite “WPA & WPA2 Personal” u polju “Security”. Zatim unesite lozinku za WiFi
    Multi-agent Communication Setup

Napomena:

Ako se robot ne može automatski povezati na wifi mrežu nakon pokretanja kada je WiFi prioritet 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 „Dodaj“, unesite IP adresu podređene mašine u polje „Adresa“. 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 popraviti IP adresu. Nakon što se ovo završi po prvi put, IP adresa će ostati nepromijenjena kada se kasnije povežete na isti WIFI.

Multi-agent Communication Setup

Nakon što su sva podešavanja konfigurisana, 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:

  1. Ovdje postavljena IP adresa mora biti ista kao IP adresa postavljena u .bashrc file u odjeljku 2.1.
  2. IP adresa glavnog i svakog slave-a mora biti jedinstvena.
  3. Glavna i slave IP adresa moraju biti u istom segmentu mreže.
  4. 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.
  5. Nakon što je postavka konfigurirana, ako se robot ne može automatski povezati na WiFi 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 u Jetson Nano sa jednim izuzetkom da Jetson TX1 treba da izabere uređaj „wlan1“ u „Device“ na kontrolnoj tabli mrežnih postavki.

Multi-agent Communication Setup

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 da su i master i slave robot spojeni na mrežu i situaciju da 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 slave mašina mogu uspješno povezati na mrežu, automatski će 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 konfigurirana, 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 u split terminal prozor 

Kliknite na dugme u gornjem levom uglu, izaberite opciju [Emitujte svima]/[Emitujte sve], unesite sledeću komandu. Zatim upotrijebite terminator alat da postavite isto vrijeme za master i slave.

Podešavanje sinhronizacije sa više agenata

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 grupiranje pokrenutih čvorova i njihovo razlikovanje po različitim imenskim prostorima. Za nprampDakle, tema radara za slave 1 je: /slave1/scan, a LiDAR čvor slave-a 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, može se postaviti sljedeća formacija:

  1. 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.
  2. 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.
  3. 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 file pod nazivom turn_on_wheeltec_robot.launch u paketu wheeltec_multi, kao što je prikazano na slici 4-1-3.

Multi-agent Ros paket

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.

Multi-agent Ros paket

Konfiguracija položaja 

U formaciji sa više agenata, prvi problem koji treba riješiti je pozicioniranje master i slave. 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 biste konfigurirali pozicioniranje glavnog.

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), slave mogu konfigurirati svoje pozicije koristeći mapu koju je kreirao master.

Multi-agent Ros paket

Kako stvoriti formaciju i održati formaciju 

U procesu kretanja formacije, glavni pokret se može kontrolisati Rvizom, tastaturom, daljinskim upravljanjem i drugim metodama. Slave izračunava svoju brzinu kroz slave_tf_listener čvor kako bi kontrolisao 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. Specifična vrijednost se može promijeniti u wheeltec_slave.launch.

Multi-agent Ros paket

Relevantni parametri algoritma formiranja su sljedeći:

Multi-agent Ros paket

Izbjegavanje prepreka u formaciji

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 move_base čvor. 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.

Multi-agent Ros paket

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 safe_distance i danger_distance, slave podešava svoj položaj kako bi izbjegao prepreku. Kada je prepreka unutar danger_distance, slave će se udaljiti od prepreke.

Multi-agent Ros paket

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 slaveova.
roslaunch wheeltec_multi wheeltec_slave.launch

Korak 3: Otvorite kontrolni čvor tastature sa glavnog ili koristite džojstik za daljinsko upravljanje glavnim pokretom.
roslaunch wheeltec_robot_rc keyboard_teleop.launch

Korak 4: (Opciono) Posmatrajte kretanje robota iz Rviza.
rviz

Napomena

  1. Obavezno dovršite operaciju sinhronizacije vremena prije izvođenja programa.
  2. 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.
  3. Kada je broj slave-a više od jednog, zbog ograničenog wifi propusnog opsega ROS hosta, lako je izazvati značajna kašnjenja i prekid komunikacije sa više agenata. Korištenje rutera može dobro riješiti ovaj problem.
  4. TF stablo formacije više robota (2 slave) je: rqt_tf_tree
  5. Dijagram odnosa čvorova formacije više robota (2 slave) je: rqt_graph

Dokumenti / Resursi

ROBOWORKS Robofleet Orin Nano x3 ROS Robot [pdf] Korisnički priručnik
Orin Nano x3, Robofleet ROS Robot, Robofleet ROS, Robot, Robofleet Orin Nano x3 ROS Robot, Robofleet Orin Nano x3, Orin Nano x3 ROS Robot, Orin Nano x3

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *