ROBOWORKS-LOGO

ROBOWORKS Robofleet MULTI-AGENT ALGORITHMS

ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-PRODUCT

Mga pagtutukoy

  • Pangalan ng Produkto: ROBOWORKS
  • Bersyon: 20240501
  • Inihanda ni: Wayne Liu at Janette Lin
  • Petsa: 1 Mayo 2024

Impormasyon ng Produkto

Ang ROBOWORKS ay isang multi-agent system na nagbibigay-daan para sa pagpapatupad ng iba't ibang mga algorithm para sa koordinasyon at komunikasyon ng robot.

Mga FAQ

Q: Ano ang dapat kong gawin kung hindi awtomatikong kumonekta ang robot sa Wifi?

A: Kung hindi awtomatikong kumonekta ang robot, subukang i-unplug at muling i-plug ang network card at subukang kumonekta muli.

BUOD

Pangunahing ipinapaliwanag ng dokumentong ito ang paggamit ng multi-robot formation function package na pinangalanang wheeltec_multi.

Ang dokumentong ito ay nahahati sa apat na bahagi:

  • Ang unang bahagi ay higit sa lahat tungkol sa pagpapakilala ng paraan ng pagbuo ng multi-robot;
  • pangunahing inilalarawan ng pangalawang bahagi ang mga setting ng komunikasyon ng multi-machine ng ROS, kabilang ang komunikasyong multi-machine ng konstruksiyon ng ROS at ang mga problemang maaaring makaharap sa proseso ng komunikasyon ng ROS;
  • pangunahing inilalarawan ng ikatlong bahagi ang mga hakbang sa pagpapatakbo ng multi-machine time synchronization;
  • ang ikaapat na bahagi ay nagpapaliwanag ng partikular na paggamit ng multi-machine formation function package.

Ang layunin ng dokumentong ito ay isang panimula sa mga multi-agent na robotic system at nagbibigay-daan sa mga user na mabilis na simulan ang multi-robot formation project.

INTRODUKSYON SA MULTI-AGENT ALGORITHMS

Mga algorithm ng pagbuo ng maraming ahente

Ang ROS package na ito ay nagpapakita ng karaniwang problema ng mga multi-agents sa collaborative na kontrol sa panahon ng isang formation drive. Ang tutorial na ito ay naglalagay ng pundasyon para sa hinaharap na pag-unlad sa paksang ito. Ang formation control algorithm ay tumutukoy sa isang algorithm na kumokontrol sa maramihang mga ahente upang bumuo ng isang tiyak na pormasyon upang magsagawa ng isang gawain. Ang pakikipagtulungan ay tumutukoy sa kooperasyon sa pagitan ng maraming ahente gamit ang isang partikular na relasyon sa pagpilit upang makumpleto ang isang gawain. Kunin ang multi-robot formation drive bilang example, ang pakikipagtulungan ay nangangahulugan na maraming robot ang bumubuo ng nais na pormasyon nang magkasama. Ang kakanyahan nito ay isang tiyak na mathematical na relasyon na nasiyahan sa pagitan ng mga posisyon ng bawat robot. Ang mga paraan ng pagbuo ay pangunahing nahahati sa sentralisadong kontrol sa pagbuo at distributed formation control. Pangunahing kasama ng mga sentralisadong paraan ng pagkontrol sa pormasyon ang virtual na paraan ng istruktura, pamamaraan ng teoryang grapiko, at pamamaraang panghuhula ng modelo. Pangunahing kasama sa mga paraan ng pagkontrol sa distributed formation ang isang leader-follower method, isang behavior-based na paraan, at isang virtual na paraan ng structure.
Inilalapat ng package ng ROS na ito ang paraan ng leader-follower sa distributed formation control method upang maisagawa ang multi-robot formation drive. Ang isang robot sa pormasyon ay itinalaga bilang pinuno, at ang iba pang mga robot ay itinalaga bilang mga alipin upang sundin ang pinuno. Ginagamit ng algorithm ang trajectory ng paggalaw ng nangungunang robot upang itakda ang mga coordinate na susubaybayan ng mga sumusunod na robot na may tiyak na direksyon at bilis. Sa pamamagitan ng pagwawasto sa mga paglihis ng posisyon mula sa mga coordinate sa pagsubaybay, sa kalaunan ay babawasan ng mga tagasunod ang paglihis sa pagitan ng tagasunod at ang inaasahang mga coordinate ng pagsubaybay sa zero upang makamit ang mga layunin ng pagbuo ng drive. Sa ganitong paraan, ang algorithm ay medyo hindi gaanong kumplikado.

Mga algorithm sa pag-iwas sa balakid

Ang isang karaniwang algorithm sa pag-iwas sa balakid ay ang artipisyal na potensyal na paraan ng larangan. Ang paggalaw ng robot sa isang pisikal na kapaligiran ay itinuturing na isang paggalaw sa isang virtual artificial force field. Ang pinakamalapit na balakid ay kinikilala ng LiDAR. Ang obstacle ay nagbibigay ng repulsive force field para makabuo ng repulsion sa robot at ang target point ay nagbibigay ng gravitational patlang para makabuo ng gravitational force sa robot. Sa ganitong paraan, kinokontrol nito ang paggalaw ng robot sa ilalim ng pinagsamang pagkilos ng pagtanggi at pagkahumaling.
Ang pakete ng ROS na ito ay isang pagpapabuti batay sa pamamaraan ng artipisyal na potensyal na larangan. Una, kinakalkula ng algorithm ng pagbuo ang linear at angular velocity ng Slave follower. Pagkatapos ay pinapataas o binabawasan nito ang linear at angular velocity ayon sa mga kinakailangan sa pag-iwas sa balakid. Kapag ang distansya sa pagitan ng alipin na tagasunod at ang balakid ay mas malapit, ang puwersa ng pagtaboy ng balakid sa alipin na tagasunod ay mas malaki. Samantala, mas malaki ang pagbabago ng linear velocity at angular velocity variation. Kapag ang sagabal ay mas malapit sa harap ng alipin na tagasunod, ang pagtataboy ng sagabal sa alipin na tagasunod ay nagiging mas malaki (ang harap na pagtataboy ay ang pinakamalaki at ang gilid na pagtataboy ay ang pinakamaliit). Bilang resulta, ang mga pagkakaiba-iba ng linear velocity at ang angular velocity ay mas malaki. Sa pamamagitan ng artificial potential field method, pinapabuti nito ang solusyon kapag ang isang robot ay maaaring tumigil sa pagtugon sa harap ng isang balakid. Ito ay nagsisilbi sa layunin ng mas mahusay na pag-iwas sa balakid.

MULTI-AGENT COMMUNICATION SETUP

Ang komunikasyon sa maraming ahente ay isa sa mga pangunahing hakbang upang makumpleto ang pagbuo ng multi-robot. Kapag ang mga kamag-anak na posisyon ng maraming robot ay hindi alam, ang mga robot ay kailangang magbahagi ng impormasyon ng isa't isa sa pamamagitan ng komunikasyon upang mapadali ang pagtatatag ng mga koneksyon. Napakalakas ng arkitektura na ipinamahagi ng ROS at mga komunikasyon sa network. Ito ay hindi lamang maginhawa para sa inter-process na komunikasyon ngunit para din sa komunikasyon sa pagitan ng iba't ibang mga aparato. Sa pamamagitan ng komunikasyon sa network, ang lahat ng mga node ay maaaring tumakbo sa anumang computer. Ang mga pangunahing gawain tulad ng pagpoproseso ng data ay nakumpleto sa panig ng host. Ang mga makina ng alipin ay may pananagutan sa pagtanggap ng data sa kapaligiran na nakolekta ng iba't ibang mga sensor. Ang host dito ay ang manager na nagpapatakbo ng Master node sa ROS. Ang kasalukuyang multi-agent na balangkas ng komunikasyon ay sa pamamagitan ng isang node manager at isang parameter manager upang pangasiwaan ang mga komunikasyon sa maraming robot.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (1)

Ang mga hakbang upang mag-set up ng mga komunikasyong multi-agent

  • I-set up ang ROS Controls sa parehong network
    • Mayroong 2 paraan ng pag-set up ng Master/Slave ROS Controls sa ilalim ng parehong network.

Opsyon 1:

Lumilikha ang Master Host ng lokal na wifi sa pamamagitan ng pagpapatakbo ng Master node manager. Sa pangkalahatan, isa sa mga robot na itinalaga bilang master ang gumagawa ng wifi network na ito. Ang ibang mga robot o virtual machine ay sumasali sa wifi network na ito bilang mga alipin.

Opsyon 2:

Ang lokal na wifi network ay ibinibigay ng isang third-party na router bilang isang information relay center. Ang lahat ng mga robot ay konektado sa parehong router. Ang router ay maaari ding gamitin nang walang koneksyon sa internet. Pumili ng isa sa mga robot bilang master at patakbuhin ang Master node manager. Ang iba pang mga robot ay itinalaga bilang mga alipin at pinapatakbo ang master node manager mula sa master.
Ang desisyon kung aling opsyon ang pipiliin ay depende sa iyong mga kinakailangan sa proyekto. Kung ang bilang ng mga robot na kailangang makipag-ugnayan ay wala sa malaking halaga, ang Opsyon 1 ay inirerekomenda dahil nakakatipid ito ng gastos at madaling i-set up. Kapag ang bilang ng mga robot ay nasa malaking dami, ang Opsyon 2 ay inirerekomenda. Ang paghihigpit sa kapangyarihan sa pag-compute ng master control ng ROS at limitadong onboard na wifi bandwidth ay madaling magdulot ng mga pagkaantala at pagkagambala sa network. Ang isang router ay madaling ayusin ang mga isyung ito. Pakitandaan na kapag nagsasagawa ng multi-agent na komunikasyon, kung ang virtual machine ay ginagamit bilang ROS slave, ang network mode nito ay kailangang itakda sa bridge mode.

I-configure ang mga variable ng kapaligiran ng Master/Slave

Matapos ang lahat ng mga master ng ROS ay nasa parehong network, kailangang itakda ang mga variable ng kapaligiran para sa multi-agent na komunikasyon. Ang environment variable na ito ay naka-configure sa .bashrc file sa pangunahing direktoryo. Patakbuhin ang gedit ~/.bashrc command para ilunsad ito. Pakitandaan na ang parehong mga .bashrc file ng master at ang alipin sa multi-agent na komunikasyon ay kailangang i-configure. Ang kailangang baguhin ay ang mga IP address sa dulo ng file. Ang dalawang linya ng ay ROS_MASTER_URI at ROS_HOSTNAME, tulad ng ipinapakita sa Figure 2-1-4. Ang ROS_MASTER_URI at ROS_HOSTNAME ng ROS host ay parehong mga lokal na IP. Ang ROS_MASTER_URI sa ROS slave .bashrc file ay kailangang baguhin sa IP address ng host habang ang ROS_HOSTNAME ay nananatiling isang lokal na IP address.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (2)

Ang komunikasyong multi-machine ng ROS ay hindi pinipigilan ng bersyon ng paglabas ng ROS. Sa proseso ng multi-machine na komunikasyon, dapat malaman ng isa ang mga sumusunod:

  1. Ang operasyon ng ROS slave program ay nakasalalay sa ROS master program ng ROS master device. Ang master program ng ROS ay dapat na maglunsad muna sa master device bago i-execute ang slave program sa slave device.
  2. Ang mga IP address ng master at slave machine sa multi-machine communication ay kailangang nasa parehong network. Nangangahulugan ito na ang IP address at ang subnet mask ay nasa ilalim ng parehong network.
  3. ROS_HOSTNAME sa environment configuration file .bashrc ay hindi inirerekomenda na gumamit ng localhost. Inirerekomenda na gumamit ng isang partikular na IP address.
  4. Kung sakaling hindi naitakda nang tama ang slave IP address, maa-access pa rin ng slave device ang master ng ROS ngunit hindi makapag-input ng impormasyon ng kontrol.
  5. Kung ang virtual machine ay lumahok sa multi-agent na komunikasyon, ang network mode nito ay kailangang itakda sa bridge mode. Hindi mapipili ang static na IP para sa koneksyon sa network.
  6. Multi-machine na komunikasyon ay hindi maaaring view o mag-subscribe sa mga paksa ng uri ng data ng mensahe na hindi lokal na umiiral.
  7. Maaari mong gamitin ang Little Turtle simulation demo upang i-verify kung matagumpay ang komunikasyon sa pagitan ng mga robot:
    • a. Tumakbo mula sa master
      • rescore #launch ROS services
      • rostrum turtles turtlesim_node #launch turtles interface
    • b. Tumakbo mula sa alipin
      • rerun turtles turtle_teleop_key #launch keyboard control node para sa mga pagong

Kung maaari mong manipulahin ang mga paggalaw ng pagong mula sa keyboard sa alipin, nangangahulugan ito na matagumpay na naitatag ang komunikasyon ng master/alipin.

Awtomatikong koneksyon sa WiFi sa ROS

Ipinapaliwanag ng mga pamamaraan sa ibaba kung paano i-configure ang robot upang awtomatikong kumonekta sa host network o network ng router.

Awtomatikong pag-set up ng koneksyon sa Wifi para sa Jetson Nano

  1. Ikonekta ang Jetson Nano sa pamamagitan ng VNC remote tool o direkta sa screen ng computer. Mag-click sa icon ng wifi sa kanang sulok sa itaas pagkatapos ay i-click ang "I-edit ang Mga Koneksyon.."ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (3)
  2. I-click ang + button sa Network Connections:ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (4)
  3. Sa ilalim ng window na “Pumili ng Uri ng Koneksyon,” i-click ang drop-down na menu at i-click ang “Gumawa…” na buton:ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (5)
  4. Sa Control Panel, i-click ang WiFi na opsyon. Ilagay ang WiFi name para kumonekta sa “Connection Name” at SSID patlang. Piliin ang "Client" sa dropdown na menu ng "Mode" at piliin ang "wlan0" sa dropdown na menu ng "Device".ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (6)
  5. Sa Control Panel, i-click ang opsyong “General” at lagyan ng check ang “Awtomatikong kumonekta sa network na ito…”. Itakda ang priyoridad ng koneksyon sa 1 sa opsyong "Pyoridad ng koneksyon para sa awtomatikong pag-activate". Lagyan ng check ang opsyong "Maaaring kumonekta ang lahat ng user sa network na ito". Kapag ang opsyon ay nakatakda sa 0 sa “Connection priority para sa auto-activation” para sa ibang wifi, nangangahulugan ito na ito ang gustong wifi network sa nakaraan.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (7)
  6. I-click ang opsyong "Wi-Fi Security" sa Control Panel. Piliin ang “WPA & WPA2 Personal” sa field na “Security”. Pagkatapos ay ipasok ang WiFi password sa field na “Password”.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (8)

Tandaan: Kung hindi awtomatikong kumonekta ang robot sa wifi network pagkatapos mag-boot kapag ang priority ng wifi ay nakatakda sa 0, maaaring sanhi ito ng problema ng mahinang signal ng wifi. Upang maiwasan ang problemang ito, maaari mong piliing tanggalin ang lahat ng mga opsyon sa wifi na nakakonekta sa nakaraan. Panatilihin lamang ang wifi network na ginawa ng host o ng router. I-click ang opsyong “Mga Setting ng IPv4” sa control panel ng mga setting ng network. Piliin ang opsyong “Manual” sa field na “Paraan”. Pagkatapos ay i-click ang "Add", punan ang IP address ng slave machine sa field na "Address". Punan ang "24" sa field na "Netmask". Punan ang segment ng IP network sa "Gateway". Baguhin ang huling tatlong digit ng segment ng IP network sa "1". Ang pangunahing layunin ng hakbang na ito ay upang ayusin ang IP address. Matapos itong makumpleto sa unang pagkakataon, ang IP address ay mananatiling hindi nagbabago kapag kumokonekta sa parehong WIFI pagkatapos.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (9)

Matapos ma-configure ang lahat ng mga setting, i-click ang "i-save" upang i-save ang mga setting. Pagkatapos na matagumpay ang pag-save, awtomatikong kokonekta ang robot sa network ng host o router kapag naka-on ito.

Tandaan:

  1. Ang IP address na itinakda dito ay kailangang kapareho ng IP address na itinakda sa .bashrc file sa Seksyon 2.1.
  2. Ang IP address ng master at bawat alipin ay dapat na natatangi.
  3. Ang master at slave IP address ay kailangang nasa parehong network segment.
  4. Dapat mong hintayin ang host o router na magpadala ng WiFi signal bago ma-on ang slave robot at awtomatikong kumonekta sa WiFi network.
  5. Pagkatapos ma-configure ang setting, kung hindi awtomatikong makakonekta ang robot sa WiFi kapag naka-on ito, mangyaring isaksak at i-unplug ang network card at subukang kumonekta muli.

Awtomatikong pag-set up ng koneksyon sa WiFi para sa Raspberry Pi

Ang pamamaraan para sa Raspberry Pi ay kapareho ng Jetson Nano.

Awtomatikong pag-setup ng koneksyon sa WiFi para sa Jetson TX1

Ang setup sa Jetson TX1 ay halos kapareho ng sa Jetson Nano na may isang exception dapat piliin ng Jetson TX1 ang device ng "wlan1" sa "Device" sa control panel ng mga setting ng network.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (10)

MULTI-AGENT SYNCHRONIZATION SETUP

Sa multi-agent formation project, ang setting ng multi-agent time synchronization ay isang mahalagang hakbang. Sa proseso ng pagbuo, maraming problema ang idudulot dahil sa asynchronous system time ng bawat robot. Ang multi-agent time synchronization ay nahahati sa dalawang sitwasyon, ibig sabihin, ang sitwasyon kung saan ang master at slave robot ay konektado sa network at ang sitwasyon kung saan ang parehong ay hindi nakakonekta sa network.

Matagumpay na master/slave na koneksyon sa network

Matapos ma-configure ang multi-agent na komunikasyon, kung matagumpay na makakonekta ang master at slave machine sa network, awtomatiko nilang i-synchronize ang oras ng network. Sa kasong ito, walang karagdagang pagkilos ang kinakailangan upang makamit ang pag-synchronize ng oras.

Pag-troubleshoot ng mga pagkakadiskonekta ng network

Matapos ma-configure ang multi-agent na komunikasyon, kung hindi matagumpay na makakonekta ang master at slave device sa network, kinakailangan na manu-manong i-synchronize ang oras. Gagamitin namin ang utos ng petsa upang makumpleto ang setting ng oras.

Una, i-install ang terminator tool. Mula sa terminator tool, gamitin ang window splitting tool upang ilagay ang mga control terminal ng master at slave sa parehong terminal window (i-right click para magtakda ng split window, at mag-log in sa master at slave machine sa pamamagitan ng ssh sa magkaibang mga bintana) .

  • sudo apt-get install terminator # I-download ang terminator upang hatiin ang terminal window

I-click ang button sa kaliwang itaas, piliin ang opsyon [Broadcast sa lahat]/[Broadcast lahat], at ilagay ang sumusunod na command. Pagkatapos ay gamitin ang terminator tool upang itakda ang parehong oras para sa master at slave.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (11)

  • sudo date -s “2022-01-30 15:15:00” # Manu-manong pag-setup ng oras

MULTI-AGENT ROS PACKAGE

Panimula ng Pakete ng ROS

I-set up ang pangalan ng alipin

Sa wheeltec_multi function package, kinakailangang magtakda ng natatanging pangalan para sa bawat slave robot upang maiwasan ang mga error. Para kay example, No. 1 para sa slave1 at No. 2 para sa slave2, atbp. Ang layunin ng pagtatakda ng iba't ibang mga pangalan ay upang pangkatin ang mga running node at makilala ang mga ito sa iba't ibang namespaces. Para kay example, ang radar na paksa ng alipin 1 ay/slave1/scan, at ang LiDAR node ng alipin 1 ay/slave1/laser.

I-set up ang mga coordinate ng alipin

Ang wheeltec_multi package ay maaaring magpatupad ng mga custom na pormasyon. Kapag kailangan ang iba't ibang pormasyon, baguhin lamang ang nais na mga coordinate ng mga robot ng alipin. Ang Slave_x at slave_y ay ang mga x at y na coordinate ng alipin na may master bilang orihinal na reference point. Ang harap ng master ay ang positibong direksyon ng x coordinate, at ang kaliwang bahagi ay ang positibong direksyon ng y coordinate. Pagkatapos makumpleto ang setting, isang TF coordinate slave1 ang ibibigay bilang inaasahang coordinate ng slave. Kung mayroong isang master at dalawang alipin, maaaring itakda ang sumusunod na pormasyon:

  1. Pahalang na pormasyon: Maaari mong itakda ang mga coordinate ng alipin sa kaliwa sa slave_x:0, slave_y: 0.8, at ang mga coordinate ng alipin sa kanan sa slave_x:0, slave_y:-0.8.
  2. Pagbuo ng column: Ang mga coordinate ng isang slave ay maaaring itakda sa: slave_x:-0.8, slave_y:0, at ang mga coordinate ng isa pang slave ay maaaring itakda sa: slave_x:-1.8, slave_y:0.
  3. Triangular formation: Ang mga coordinate ng isang slave ay maaaring itakda sa: slave_x:-0.8, slave_y: 0.8, at ang mga coordinate ng isa pang slave ay maaaring itakda sa: slave_x:-0.8, slave_y:-0.8.

Ang iba pang mga pormasyon ay maaaring ipasadya kung kinakailangan.

Tandaan:

  • Ang inirerekumendang distansya sa pagitan ng dalawang robot ay nakatakda sa 0.8, at inirerekomendang hindi mas mababa sa 0.6. Ang distansya sa pagitan ng mga alipin at master ay inirerekomenda na itakda sa ibaba 2.0. Kung mas malayo ito sa master, mas malaki ang linear na bilis ng alipin kapag lumiliko ang master. Dahil sa limitasyon ng maximum na bilis, ang bilis ng alipin ay lilihis kung hindi ito nakakatugon sa mga kinakailangan. Magiging magulo ang pagbuo ng robot.

Pagsisimula ng posisyon ng alipin

  1. Ang paunang posisyon ng alipin ay nasa inaasahang mga coordinate bilang default. Bago patakbuhin ang programa, ilagay lang ang slave robot malapit sa inaasahang coordinate nito para makumpleto ang initialization. Ang function na ito ay ipinatupad ng pose_setter node sa file na pinangalanang turn_on_wheeltec_robot.launch sa wheeltec_multi package, tulad ng ipinapakita sa Figure 4-1-3.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (12)

Kung gusto ng user na i-customize ang paunang posisyon ng slave, kailangan lang niyang itakda ang mga value ng slave_x at slave_y gaya ng ipinapakita sa Figure 4-1-4 sa wheeltec_slave.launch. Ang mga halaga ng slave_x at slave_y ay ipapasa sa turn_on_wheeltec_robot.launch at itatalaga sa pose_setter node. Ilagay lamang ang robot sa isang pasadyang posisyon bago patakbuhin ang programa.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (13)

Configuration ng Posisyon

Sa isang multi-agent formation, ang unang problemang malulutas ay ang pagpoposisyon ng amo at ng alipin. Ang master ay gagawa muna ng 2D na mapa. Pagkatapos gawin at i-save ang mapa, patakbuhin ang 2D navigation package at gamitin ang adaptive na Monte Carlo positioning algorithm (amcl positioning) sa 2D navigation package para i-configure ang pagpoposisyon ng master. Dahil ang master at ang mga alipin ay nasa parehong network at nagbabahagi ng parehong node manager, inilunsad ng master ang mapa mula sa 2D navigation package, lahat ng mga alipin ay maaaring gumamit ng parehong mapa sa ilalim ng parehong node manager. Samakatuwid, ang alipin ay hindi kailangang lumikha ng isang mapa. Sa wheeltec_slave.launch, patakbuhin ang Monte Carlo positioning (amcl positioning), maaaring i-configure ng mga alipin ang kanilang mga posisyon sa pamamagitan ng paggamit ng mapa na ginawa ng master.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (14)

Paano lumikha ng pagbuo at pagpapanatili ng pagbuo

Sa proseso ng pagbuo ng paggalaw, ang master movement ay maaaring kontrolin ng Rviz, keyboard, remote control, at iba pang mga pamamaraan. Kinakalkula ng alipin ang bilis nito sa pamamagitan ng slave_tf_listener node upang makontrol ang paggalaw nito at makamit ang layunin ng pagbuo. Nililimitahan ng slave_tf_listener node ang bilis ng slave upang maiwasan ang labis na bilis sa pamamagitan ng pagkalkula ng node, na magdudulot ng serye ng mga epekto. Maaaring mabago ang partikular na halaga sa wheeltec_slave.launch.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (15)

Ang mga nauugnay na parameter ng algorithm ng pagbuo ay ang mga sumusunod: ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (16)

Impormasyon sa pag-iwas sa balakid

Sa isang multi-agent formation, maaaring gamitin ng master ang move_base node upang kumpletuhin ang pag-iwas sa balakid. Gayunpaman, ang pagsisimula ng alipin ay hindi gumagamit ng move_base node. Sa puntong ito, kailangang tawagan ang multi_avoidance node sa slave program. Ang obstacle avoidance node ay pinagana bilang default sa package. Kung kinakailangan, ang pag-iwas ay maaaring itakda sa "false" upang i-disable ang node sa pag-iwas sa balakid. ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (17)

Ang ilang nauugnay na parameter ng node sa pag-iwas sa balakid ay ipinapakita sa figure sa ibaba, kung saan ang safe_distance ay ang hadlang na safe distance limit, at ang danger_distance ay ang obstacle dangerous distance limit. Kapag ang balakid ay nasa ligtas na distansya at panganib na distansya, inaayos ng alipin ang posisyon nito upang maiwasan ang balakid. Kapag nasa panganib ang balakid, tataboy ang alipin sa balakid.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (18)

Pamamaraan ng Operasyon

Ipasok ang utos ng pagpapatupad

Mga paghahanda bago simulan ang pagbuo ng multi-agent:

  • Ang master at alipin ay kumonekta sa parehong network at nag-set up ng multi-agent na komunikasyon nang tama
  • Ang master ay bumuo ng isang 2D na mapa nang maaga at ini-save ito
  • Ang master ay inilalagay sa panimulang punto ng mapa, at ang alipin ay inilalagay malapit sa posisyon ng pagsisimula (ang default na posisyon ng pagbuo ng alipin)
  • Pagkatapos mag-log in sa Jetson Nano/Raspberry Pi nang malayuan, magsagawa ng time synchronization.

sudo date -s “2022-04-01 15:15:00”

  • Hakbang 1: Magbukas ng 2D na mapa mula sa master.

roslaunch turn_on_wheeltec_robot navigation.launch

  • Hakbang 2: Patakbuhin ang programa ng pagbuo mula sa lahat ng mga alipin.

roslaunch wheeltec_multi wheeltec_slave.launch

  • Hakbang 3: Buksan ang keyboard control node mula sa master o gamitin ang joystick para malayuang kontrolin ang master movement.

muling ilunsad ang wheeltec_robot_rc keyboard_teleop.launch

  • Hakbang 4: (Opsyonal) Pagmasdan ang mga paggalaw ng robot mula kay Rviz.

rviz

Tandaan: 

  1. Tiyaking kumpletuhin ang operasyon ng pag-synchronize ng oras bago isagawa ang programa.
  2. Kapag kinokontrol ang master ng isang multi-agent formation, ang angular velocity ay hindi dapat masyadong mabilis. Ang inirerekumendang linear na bilis ay 0.2m/s, angular speed degree sa ibaba 0.3rad/s. Kapag ang master ay lumiliko, mas malayo ang alipin mula sa master, mas malaki ang linear na bilis ay kinakailangan. Dahil sa limitasyon sa linear speed at angular speed sa package, kapag hindi maabot ng slave car ang kinakailangang bilis, magiging magulo ang formation. Sa pangkalahatan, ang sobrang linear na bilis ay madaling makapinsala sa robot.
  3. Kapag ang bilang ng mga alipin ay higit sa isa, dahil sa limitadong on-board na wifi bandwidth ng host ng ROS, madaling magdulot ng mga makabuluhang pagkaantala at pagkaputol ng komunikasyon ng maraming ahente. Ang paggamit ng isang router ay maaaring malutas ang problemang ito nang maayos.
  4. Ang TF tree ng multi-robot formation (2 alipin) ay: rqt_tf_tree
  5. Ang diagram ng relasyon ng node ng pagbuo ng multi-robot (2 alipin) ay: rqt_graph

Mga Dokumento / Mga Mapagkukunan

ROBOWORKS Robofleet MULTI-AGENT ALGORITHMS [pdf] User Manual
Robofleet Multi Agent Algorithms, Robofleet, Multi Agent Algorithms, Ahente Algorithms, Algorithm

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *