ROBOWORKS-LOGO

ROBOWORKS Robofleet MULTI-AGENT ALGORITHMEN

ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-PRODUCT

Spesifikaasjes

  • Produkt Namme: ROBOWORKS
  • Ferzje: 20240501
  • Tariede troch: Wayne Liu & Janette Lin
  • Datum: 1 mei 2024

Produkt ynformaasje

ROBOWORKS is in multi-agentsysteem dat de ymplemintaasje fan ferskate algoritmen foar robotkoördinaasje en kommunikaasje mooglik makket.

FAQs

F: Wat moat ik dwaan as de robot net automatysk kin ferbine mei Wifi?

A: As de robot net automatysk ferbine kin, besykje dan de netwurkkaart los te meitsjen en opnij te ferbinen en besykje opnij te ferbinen.

GEARFETTING

Dit dokumint ferklearret benammen it gebrûk fan it multi-robot formaasje funksje pakket neamd wheeltec_multi.

Dit dokumint is ferdield yn fjouwer dielen:

  • It earste diel giet benammen oer de yntroduksje fan de multy-robot formaasjemetoade;
  • it twadde diel beskriuwt benammen de ROS multi-machine kommunikaasje ynstellings, ynklusyf ROS konstruksje multi-machine kommunikaasje en de problemen dy't meie wurde tsjinkomme yn it proses fan ROS kommunikaasje;
  • it tredde diel beskriuwt benammen de operaasjestappen fan tiidsyngronisaasje mei meardere masines;
  • it fjirde diel leit it spesifyk gebrûk fan it multi-masine formaasjefunksjepakket út.

It doel fan dit dokumint is in yntroduksje ta multi-agent robotyske systemen en lit brûkers it multi-robot formaasjeprojekt fluch begjinne.

YNLEIDING TO MULTI-AGENT ALGORITHMS

Multi-agent formaasje algoritmen

Dit ROS-pakket presintearret in typysk probleem fan multi-aginten yn gearwurkjende kontrôle tidens in formaasjestasjon. Dizze tutorial leit in basis foar takomstige ûntwikkeling oer dit ûnderwerp. It formaasjekontrôlealgoritme ferwiist nei in algoritme dat meardere aginten kontrolearret om in spesifike formaasje te foarmjen om in taak út te fieren. Gearwurking ferwiist nei de gearwurking tusken meardere aginten dy't in bepaalde beheiningrelaasje brûke om in taak te foltôgjen. Nim de multi-robot formaasje drive as in eksample, gearwurking betsjut dat meardere robots foarmje in winske formaasje tegearre. De essinsje dêrfan is in bepaalde wiskundige relaasje dy't tefreden is tusken de posysjes fan elke robot. Formaasjemetoaden binne benammen ferdield yn sintralisearre formaasjekontrôle en ferdielde formaasjekontrôle. Sintrale metoaden foar formaasjekontrôle omfetsje benammen de metoade foar firtuele struktuer, metoade foar grafyske teory, en foarsizzende metoade foar model. Ferdielde formaasjekontrôlemetoaden omfetsje benammen in lieder-folgermetoade, in gedrachsbasearre metoade, en in firtuele struktuermetoade.
Dit ROS-pakket tapast de lieder-folger-metoade yn 'e ferdielde formaasjekontrôlemetoade om it multi-robotformaasjestasjon út te fieren. Ien robot yn 'e formaasje wurdt oanwiisd as de lieder, en oare robots wurde oanwiisd as slaven om de lieder te folgjen. It algoritme brûkt it bewegingstrajekt fan 'e liedende robot om de koördinaten yn te stellen om te folgjen troch de folgjende robots mei in bepaalde rjochting en snelheid. Troch de posysje-ôfwikingen fan 'e tracking-koordinaten te korrigearjen, sille de followers úteinlik de ôfwiking tusken de follower en de ferwachte tracking-koördinaten ferminderje nei nul om de doelstellingen fan' e formaasje-drive te berikken. Op dizze manier is it algoritme relatyf minder yngewikkeld.

Algoritmen foar foarkommen fan obstakels

In mienskiplik algoritme foar it foarkommen fan obstakels is de metoade foar keunstmjittich potinsjeel fjild. De beweging fan 'e robot yn in fysike omjouwing wurdt beskôge as in beweging yn in firtueel keunstmjittich krêftfjild. It tichtste obstakel wurdt identifisearre troch LiDAR. It obstakel leveret in ôfstotend krêftfjild om ôfwizing oan 'e robot te generearjen en it doelpunt leveret in gravitaasjefjild om gravitaasjekrêft oan 'e robot te generearjen. Op dizze manier kontrolearret it de beweging fan 'e robot ûnder de kombineare aksje fan ôfwizing en attraksje.
Dit ROS-pakket is in ferbettering basearre op de metoade foar keunstmjittich potinsjeel fjild. As earste berekkent it formaasjealgoritme de lineêre en hoeksnelheid fan 'e Slave-folger. Dan fergruttet of fermindert it de lineêre en hoeke snelheid neffens de easken foar it foarkommen fan obstakels. As de ôfstân tusken de Slave-folger en it obstakel tichterby is, is de ôfstjitkrêft fan it obstakel foar de Slave-folger grutter. Underwilens binne de feroaring fan 'e lineêre snelheid en de fariaasjes fan' e hoeksnelheid grutter. As it obstakel tichter by de foarkant fan 'e Slave-folger is, wurdt de ôfwiking fan' e obstakel foar de Slave-folger grutter (de foarkant ôfwiking is de grutste en de kantôfwiking is de lytste). As gefolch binne de fariaasjes fan 'e lineêre snelheid en de hoeksnelheid grutter. Troch de metoade foar keunstmjittich potinsjeel fjild ferbetteret it in oplossing as in robot ophâlde te reagearjen foar in obstakel. Dit tsjinnet it doel fan better foarkommen fan obstakels.

MULTI-AGENT KOMMUNIKASJE SETUP

Multi-agent-kommunikaasje is ien fan 'e wichtichste stappen om in multi-robotformaasje te foltôgjen. As de relative posysjes fan meardere robots ûnbekend binne, moatte de robots inoars ynformaasje diele fia kommunikaasje om it oprjochtsjen fan ferbiningen te fasilitearjen. ROS-ferspraat arsjitektuer en netwurkkommunikaasje binne heul krêftich. It is net allinich handich foar kommunikaasje tusken prosessen, mar ek foar kommunikaasje tusken ferskate apparaten. Troch netwurkkommunikaasje kinne alle knooppunten op elke kompjûter rinne. De wichtichste taken lykas gegevensferwurking wurde foltôge oan 'e hostkant. De slavemasines binne ferantwurdlik foar it ûntfangen fan miljeugegevens sammele troch ferskate sensoren. De host hjir is de behearder dy't de Master-knooppunt yn ROS rint. It hjoeddeistige multi-agent kommunikaasjekader is fia in knooppuntbehearder en in parameterbehearder om kommunikaasje tusken meardere robots te behanneljen.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (1)

De stappen foar it ynstellen fan multi-agentkommunikaasje

  • ROS-kontrôles ynstelle yn itselde netwurk
    • D'r binne 2 manieren om Master / Slave ROS-kontrôles yn te stellen ûnder itselde netwurk.

Opsje 1:

De Master Host makket in lokale wifi troch it útfieren fan de Master node manager. Oer it algemien makket ien fan 'e robots dy't wurdt oanwiisd as de master dit wifi-netwurk. Oare robots of firtuele masines dogge mei oan dit wifi-netwurk as slaven.

Opsjes 2:

It lokale wifi-netwurk wurdt levere troch in router fan tredden as in ynformaasje-relay-sintrum. Alle robots binne ferbûn mei deselde router. De router kin ek brûkt wurde sûnder in ynternetferbining. Selektearje ien fan 'e robots as de master en rinne de Master node manager. De oare robots wurde oanwiisd as slaven en rinne de master node manager fan de master.
It beslút oer hokker opsje te kiezen hinget ôf fan jo projekteasken. As it oantal robots dat moat kommunisearje is net op in grut bedrach, opsje 1 wurdt oanrikkemandearre sûnt it besparret kosten en is maklik yn te stellen. As it oantal robots op grutte kwantiteit is, wurdt opsje 2 oanrikkemandearre. De beheining op 'e kompjûterkrêft fan' e ROS-masterkontrôle en beheinde onboard wifi-bânbreedte kinne maklik fertragingen en netwurkfersteuringen feroarsaakje. In router kin dizze problemen maklik reparearje. Tink derom dat by it útfieren fan multi-agent-kommunikaasje, as de firtuele masine wurdt brûkt as in ROS-slave, moat de netwurkmodus ynsteld wurde op brêgemodus.

Konfigurearje Master / Slave-omjouwingsfariabelen

Nei't alle ROS-masters allegear yn itselde netwurk binne, moatte de omjouwingsfariabelen foar kommunikaasje mei meardere agents ynsteld wurde. Dizze omjouwingsfariabele is konfigurearre yn it .bashrc-bestân yn de haadmap. Run it kommando gedit ~/.bashrc om it te starten. Tink derom dat sawol de .bashrc-bestannen fan 'e master as de slaaf yn kommunikaasje mei meardere agents moatte wurde konfigureare. Wat feroare wurde moat binne de IP-adressen oan 'e ein fan it bestân. De twa rigels fan binne ROS_MASTER_URI en ROS_HOSTNAME, lykas werjûn yn figuer 2-1-4. De ROS_MASTER_URI en ROS_HOSTNAME fan de ROS-host binne beide lokale IP's. De ROS_MASTER_URI yn it ROS-slave .bashrc-bestân moat wizige wurde yn it IP-adres fan de host, wylst ROS_HOSTNAME as lokaal IP-adres bliuwt.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (2)

ROS multi-masine kommunikaasje wurdt net beheind troch de ROS release ferzje. Yn it proses fan kommunikaasje mei meardere masines moat men bewust wêze fan it folgjende:

  1. De wurking fan it ROS-slaveprogramma hinget ôf fan it ROS-masterprogramma fan it ROS-masterapparaat. It ROS-masterprogramma moat earst op it masterapparaat starte foardat it slaveprogramma op it slaveapparaat útfiert.
  2. De IP-adressen fan 'e master- en slavemasines yn kommunikaasje mei meardere masines moatte yn itselde netwurk wêze. Dit betsjut dat it IP-adres en it subnetmasker ûnder itselde netwurk binne.
  3. ROS_HOSTNAME yn it omjouwingskonfiguraasjetriem .bashrc wurdt net oanrikkemandearre om localhost te brûken. It is oan te rieden om in spesifyk IP-adres te brûken.
  4. Yn it gefal dat it slave IP-adres net goed ynsteld is, kin it slave-apparaat noch tagong krije ta de ROS-master, mar kin gjin kontrôleynformaasje ynfiere.
  5. As de firtuele masine meidocht oan 'e multi-agent-kommunikaasje, moat de netwurkmodus ynsteld wurde op brêgemodus. Statyske IP kin net selektearre wurde foar de netwurkferbining.
  6. Multi-masine kommunikaasje kin net view of abonnearje op ûnderwerpen fan berjochtgegevenstype dy't net lokaal bestean.
  7. Jo kinne de Lytse Turtle-simulaasjedemo brûke om te kontrolearjen oft de kommunikaasje tusken de robots suksesfol is:
    • a. Rin fan 'e master
      • rescore #launch ROS tsjinsten
      • rostrum turtles turtlesim_node #launch turtles ynterface
    • b. Rin fan 'e slaaf
      • rerun turtles turtle_teleop_key #launch toetseboerdkontrôleknooppunt foar skyldpodden

As jo ​​kinne manipulearje de turtle bewegings út it toetseboerd op 'e slaaf, it betsjut dat de master / slaaf kommunikaasje is fêststeld mei súkses.

Automatyske Wifi-ferbining yn ROS

De ûndersteande prosedueres ferklearje hoe't jo de robot konfigurearje om automatysk te ferbinen mei it hostnetwurk of routernetwurk.

Automatyske Wifi-ferbining opset foar Jetson Nano

  1. Ferbine Jetson Nano fia it VNC remote tool of direkt nei it kompjûterskerm. Klikje op it wifi-ikoan yn 'e rjochter boppeste hoeke en klikje dan op "Ferbinings bewurkje.."ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (3)
  2. Klikje op de + knop yn Netwurkferbiningen:ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (4)
  3. Klikje ûnder it finster "Kies in ferbiningstype" op it útklapmenu en klikje op "Meitsje ..." knop:ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (5)
  4. Klikje yn it Control Panel op Wifi-opsje. Fier de Wifi-namme yn om te ferbinen yn "Connection Name" en SSID-fjilden. Selektearje "Client" yn it útklapmenu "Modus" en selektearje "wlan0" yn it útklapmenu "Apparaat".ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (6)
  5. Klikje yn it Control Panel op de opsje "Algemien" en kontrolearje "Automatysk ferbine mei dit netwurk ...". Stel de ferbiningsprioriteit yn op 1 yn 'e opsje "Ferbiningsprioriteit foar auto-aktivearring". Kontrolearje de opsje "Alle brûkers meie ferbine mei dit netwurk". As de opsje is ynsteld op 0 yn "Ferbiningsprioriteit foar auto-aktivearring" foar oare wifi, betsjut dit dat dit it foarkommende wifi-netwurk yn it ferline is.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (7)
  6. Klikje op "Wi-Fi Security" opsje yn Control Panel. Selektearje "WPA & WPA2 Persoanlik" yn "Feiligens" fjild. Fier dan it Wifi-wachtwurd yn yn it fjild "Wachtwurd".ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (8)

Noat: As de robot nei it opstarten net automatysk kin ferbine mei it wifi-netwurk as de wifi-prioriteit is ynsteld op 0, kin it wurde feroarsake troch in probleem fan in swak wifi-sinjaal. Om dit probleem foar te kommen, kinne jo kieze om alle wifi-opsjes te wiskjen dy't yn it ferline ferbûn binne. Hâld allinich it wifi-netwurk makke troch de host of de router. Klikje op de opsje "IPv4-ynstellings" yn it netwurkynstellingskontrôlepaniel. Selektearje de opsje "Hânlieding" yn it fjild "Metoade". Klikje dan op "Tafoegje", folje it IP-adres fan 'e slavemasine yn yn it fjild "Adres". Folje "24" yn yn it fjild "Netmask". Folje it IP netwurk segment yn "Gateway". Feroarje de lêste trije sifers fan it IP-netwurksegment nei "1". It haaddoel fan dizze stap is om it IP-adres te reparearjen. Nei't dit foar de earste kear foltôge is, bliuwt it IP-adres net feroare by it ferbinen mei deselde WIFI dêrnei.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (9)

Nei't alle ynstellings binne konfigureare, klikje jo op "bewarje" om de ynstellings op te slaan. Nei't it opslaan suksesfol is, sil de robot automatysk ferbine mei it netwurk fan 'e host of router as it wurdt ynskeakele.

Noat:

  1. It IP-adres dat hjir is ynsteld moat itselde wêze as it IP-adres ynsteld yn it .bashrc-bestân yn paragraaf 2.1.
  2. It IP-adres fan 'e master en elke slaaf moat unyk wêze.
  3. De master- en slave-IP-adressen moatte yn itselde netwurksegment wêze.
  4. Jo moatte wachtsje op de host of router om WiFi-sinjaal út te stjoeren foardat de slave-robot kin wurde ynskeakele en automatysk ferbine mei it WiFi-netwurk.
  5. Neidat de ynstelling is konfigureare, as de robot net automatysk kin ferbine mei de WiFi as it ynskeakele is, plug dan asjebleaft de netwurkkaart en probearje opnij te ferbinen.

Automatyske Wifi-ferbining opset foar Raspberry Pi

De proseduere foar Raspberry Pi is itselde as Jetson Nano.

Automatyske Wifi-ferbining opset foar Jetson TX1

De opset yn Jetson TX1 is hast itselde as yn Jetson Nano mei ien útsûndering Jetson TX1 moat it apparaat fan "wlan1" selektearje yn "Apparaat" yn it netwurkynstellingskontrôlepaniel.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (10)

MULTI-AGENT SYNKRONISERING SETUP

Yn it multi-agent formaasjeprojekt is de multi-agent tiidsyngronisaasjeynstelling in krúsjale stap. Yn it proses fan 'e formaasje sille in protte problemen wurde feroarsake troch de asynchrone systeemtiid fan elke robot. Multi-agent tiidsyngronisaasje is ferdield yn twa situaasjes, nammentlik de situaasje wêryn sawol de master as slave robots binne ferbûn mei it netwurk en de situaasje wêryn beide binne loskeppele fan it netwurk.

Súksesfolle master/slave netwurkferbining

Neidat de multi-agent kommunikaasje is konfigurearre, as de master en slave masines kinne mei súkses ferbine mei it netwurk, se sille automatysk syngronisearje netwurk tiid. Yn dit gefal binne gjin fierdere aksjes nedich om tiidsyngronisaasje te berikken.

Troubleshooting netwurk dis-ferbinings

Neidat de kommunikaasje mei meardere agents is konfigureare, as de master- en slave-apparaten net mei súkses kinne ferbine mei it netwurk, is it nedich om de tiid manuell te syngronisearjen. Wy sille it kommando datum brûke om de tiidynstelling te foltôgjen.

Ynstallearje earst it terminator-ark. Ut it terminator-ark, brûk it ark foar finstersplitsing om de kontrôleterminals fan 'e master en slaaf yn itselde terminalfinster te pleatsen (rjochtsklikje om in splitfinster yn te stellen, en oanmelde by de master- en slavemasines troch ssh yn ferskate finsters) .

  • sudo apt-get install terminator # Download terminator om it terminalfinster te splitsen

Klikje op de knop linksboppe, selektearje de opsje [Utstjoere nei allegear]/[Alles útstjoere], en fier it folgjende kommando yn. Brûk dan it terminator-ark om deselde tiid yn te stellen foar de master en slave.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (11)

  • sudo date -s "2022-01-30 15:15:00" # Hânlieding tiid opset

MULTI-AGENT ROS-PAKKET

ROS Package Yntroduksje

Stel slaaf namme op

Yn it wheeltec_multi-funksjepakket is it nedich om in unike namme foar elke slaverobot yn te stellen om flaters te foarkommen. Bygelyksample, nûmer 1 foar slave1 en nûmer 2 foar slave2, ensfh It doel fan it ynstellen fan ferskate nammen is in groep rinnende knopen en ûnderskiede se troch ferskillende nammeromten. Bygelyksample, it radar-ûnderwerp fan slave 1 is/slave1/scan, en de LiDAR-knooppunt fan slave 1 is/slave1/laser.

Stel slave koördinaten op

It pakket wheeltec_multi kin oanpaste formaasjes ymplementearje. As ferskate formaasjes nedich binne, wizigje gewoan de winske koördinaten fan 'e slaverobots. Slave_x en slave_y binne de x- en y-koordinaten fan 'e slaaf mei de master as it orizjinele referinsjepunt. De foarkant fan 'e master is de positive rjochting fan' e x-koördinaat, en de linkerkant is de positive rjochting fan 'e y-koordinaat. Nei't de ynstelling foltôge is, sil in TF-coordinate slave1 wurde útjûn as de ferwachte koördinaat fan 'e slave. As d'r ien master en twa slaven is, kin de folgjende formaasje ynsteld wurde:

  1. Horizontale formaasje: Jo kinne de koördinaten fan 'e slaaf oan 'e lofterkant ynstelle op slave_x: 0, slave_y: 0.8, en de koördinaten fan 'e slaaf oan 'e rjochterkant nei slave_x: 0, slave_y: -0.8.
  2. Kolomfoarming: De koördinaten fan de iene slaaf kinne wurde ynsteld op: slave_x: -0.8, slave_y: 0, en de koördinaten fan 'e oare slaaf kinne wurde ynsteld op: slave_x: -1.8, slave_y: 0.
  3. Trijehoekige formaasje: De koördinaten fan de iene slaaf kinne ynsteld wurde op: slave_x: -0.8, slave_y: 0.8, en de koördinaten fan 'e oare slaaf kinne ynsteld wurde op: slave_x: -0.8, slave_y: -0.8.

Oare formaasjes kinne wurde oanpast as nedich.

Noat:

  • De rekommandearre ôfstân tusken de twa robots is ynsteld op 0.8, en it is oan te rieden om net leger as 0.6. De ôfstân tusken de slaven en de master wurdt oanrikkemandearre om te setten ûnder 2.0. Hoe fierder it fan 'e master is, hoe grutter de lineêre snelheid fan 'e slaaf is as de master draait. Troch de beheining fan 'e maksimale snelheid sil de snelheid fan' e slaaf ôfwike as it net oan 'e easken foldocht. De robotfoarming sil chaotysk wurde.

Inisjalisaasje fan 'e slaveposysje

  1. De earste posysje fan 'e slaaf is standert op' e ferwachte koördinaten. Foardat jo it programma útfiere, pleats de slaverobot gewoan tichtby de ferwachte koördinaten om de inisjalisaasje te foltôgjen. Dizze funksje wurdt ymplementearre troch de pose_setter-knooppunt yn it bestân mei de namme turn_on_wheeltec_robot.launch yn it wheeltec_multi-pakket, lykas werjûn yn figuer 4-1-3.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (12)

As de brûker wol oanpasse de earste posysje fan de slaaf, hy of sy allinne hoecht te setten de slave_x en slave_y wearden lykas werjûn yn figuer 4-1-4 yn wheeltec_slave.launch. De slave_x en slave_y wearden wurde trochjûn oan turn_on_wheeltec_robot.launch en tawiisd oan de pose_setter node. Plak de robot gewoan yn in oanpaste posysje foardat jo it programma útfiere.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (13)

Posysje konfiguraasje

Yn in multi-agent formaasje is it earste probleem dat moat wurde oplost de posysje fan 'e master en de slaaf. De master sil earst in 2D-kaart bouwe. Nei it meitsjen en bewarjen fan de kaart, útfiere it 2D-navigaasjepakket en brûk it adaptive Monte Carlo-posisjonearringsalgoritme (amcl-posisjonearring) yn it 2D-navigaasjepakket om de posisjonearring fan 'e master te konfigurearjen. Sûnt de master en de slaven yn itselde netwurk binne en deselde knooppuntbehearder diele, hat de master de kaart lansearre fanút it 2D-navigaasjepakket, alle slaven kinne deselde kaart brûke ûnder deselde knooppuntbehearder. Dêrom hoecht de slaaf gjin kaart te meitsjen. Yn wheeltec_slave.launch, rinne Monte Carlo-posysje (amcl-posysje), de slaven kinne har posysjes konfigurearje troch de kaart te brûken makke troch de master.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (14)

Hoe te meitsjen formaasje en ûnderhâlden formaasje

Yn it proses fan formaasjebeweging kin de masterbeweging wurde regele troch Rviz, toetseboerd, remote control, en oare metoaden. De slaaf berekkent syn snelheid troch de slave_tf_listener knooppunt om syn beweging te kontrolearjen en it doel fan 'e formaasje te berikken. De slave_tf_listener-knooppunt beheint de slave-snelheid om oermjittige snelheid te foarkommen troch de knooppuntberekkening, wat in searje effekten sil feroarsaakje. De spesifike wearde kin wizige wurde yn wheeltec_slave.launch.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (15)

De relevante parameters fan it formaasjealgoritme binne as folget: ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (16)

Hindernis mije ynformaasje

Yn in multi-agent formaasje kin de master de move_base knooppunt brûke om it foarkommen fan obstakels te foltôgjen. De inisjalisaasje fan 'e slaaf brûkt lykwols de move_base-knooppunt net. Op dit punt moat de multi_avoidance-knooppunt wurde neamd yn it slaveprogramma. It knooppunt foar foarkommen fan obstakels is standert ynskeakele yn it pakket. As it nedich is, kin foarkommen wurde ynsteld op "falsk" om it knooppunt foar foarkommen fan obstakels út te skeakeljen. ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (17)

Guon relevante parameters fan it knooppunt foar it foarkommen fan obstakels wurde werjûn yn 'e figuer hjirûnder, wêrby't safe_distance de limyt is foar obstakel feilige ôfstân, en danger_distance de limyt foar gefaarlike ôfstân foar obstakels. As it obstakel binnen feilige ôfstân en gefaarôfstân is, past de slaaf syn posysje oan om it obstakel te foarkommen. As it obstakel binnen gefaar is, sil de slaaf fan it obstakel ride.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (18)

Operaasje Proseduere

Fier útfieringskommando yn

Tariedings foar it begjinnen fan multi-agent formaasje:

  • De master en slaaf ferbine mei itselde netwurk en set multi-agent kommunikaasje korrekt yn
  • De master bout foarôf in 2D-kaart en bewarret it
  • De master wurdt pleatst op it begjinpunt fan de kaart, en de slaaf wurdt pleatst tichtby de inisjalisaasje posysje (de standert slave formaasje posysje)
  • Nei it oanmelden by Jetson Nano / Raspberry Pi op ôfstân, útfiere tiidsyngronisaasje.

sudo datum -s "2022-04-01 15:15:00"

  • Stap 1: Iepenje in 2D-kaart fan 'e master.

roslaunch turn_on_wheeltec_robot navigation.launch

  • Stap 2: Run de formaasje programma út alle slaven.

roslaunch wheeltec_multi wheeltec_slave.launch

  • Stap 3: Iepenje it toetseboerdkontrôleknooppunt fan 'e master of brûk de joystick om de masterbeweging op ôfstân te kontrolearjen.

relaunch wheeltec_robot_rc keyboard_teleop.launch

  • Stap 4: (Opsjoneel) Observearje de robotbewegingen fan Rviz.

rviz

Noat: 

  1. Soargje derfoar dat jo de tiidsyngronisaasje-operaasje foltôgje foardat jo it programma útfiere.
  2. By it kontrolearjen fan de master fan in multi-agent formaasje moat de hoeksnelheid net te fluch wêze. De rekommandearre lineêre snelheid is 0.2m / s, hoeksnelheid graad ûnder 0.3rad / s. As de master in bocht makket, hoe fierder de slaaf fan de master is, hoe grutter de lineêre snelheid is nedich. Fanwege de limyt op 'e lineêre snelheid en hoeksnelheid yn it pakket, as de slave-auto de fereaske snelheid net kin berikke, sil de formaasje chaotysk wêze. Oer it algemien kin de te hege lineêre snelheid de robot maklik beskeadigje.
  3. As it oantal slaven mear is dan ien, fanwegen de beheinde onboard-wifi-bânbreedte fan 'e ROS-host, is it maklik om signifikante fertragingen en ôfbrekken fan' e multi-agentkommunikaasje te feroarsaakjen. It brûken fan in router kin dit probleem goed oplosse.
  4. De TF-beam fan 'e multi-robotformaasje (2 slaven) is: rqt_tf_tree
  5. De node relaasje diagram fan de multi-robot formaasje (2 slaven) is: rqt_graph

Dokuminten / Resources

ROBOWORKS Robofleet MULTI-AGENT ALGORITHMEN [pdf] Brûkershânlieding
Robofleet Multi Agent Algoritmen, Robofleet, Multi Agent Algoritmen, Agent Algoritmen, Algoritmen

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *