ROBOWORKS Robofleet Orin Nano x3 ROS Robot 

ROBOWORKS Robofleet Orin Nano x3 ROS Robot

RINGKASAN

Dokumen iki utamane nerangake panggunaan paket fungsi formasi multi-robot sing jenenge wheeltec_multi.

Dokumen iki dipérang dadi patang bagéan:

  • Bagean pisanan utamane babagan introduksi metode pembentukan multi-robot;
  • bagean kapindho utamané njlèntrèhaké setelan komunikasi multi-mesin ROS, kalebu construction ROS saka komunikasi multi-mesin lan masalah sing bisa ditemoni ing proses komunikasi ROS;
  • bagean katelu utamané njlèntrèhaké langkah-langkah operasi sinkronisasi wektu multi-mesin;
  • bagean papat expounds nggunakake tartamtu saka paket fungsi tatanan multi-mesin.

Tujuan saka dokumen iki minangka introduksi sistem robot multi-agen lan ngidini pangguna miwiti proyek formasi multi-robot kanthi cepet.

PENGENALAN ALGORITMA MULTI-AGENT

Algoritma tatanan multi-agen

Paket ROS iki nyedhiyakake masalah khas multi-agen ing kontrol kolaboratif sajrone drive formasi. Tutorial iki nggawe dhasar kanggo pangembangan mangsa ngarep babagan topik iki. Algoritma kontrol formasi nuduhake algoritma sing ngontrol macem-macem agen kanggo mbentuk formasi tartamtu kanggo nindakake tugas. Kolaborasi nuduhake kerjasama antarane pirang-pirang agen nggunakake hubungan kendala tartamtu kanggo ngrampungake tugas. Njupuk drive tatanan multi-robot minangka Example, collaboration tegese sawetara robot mbentuk tatanan dikarepake bebarengan. Intine yaiku hubungan matematika tartamtu sing puas antarane posisi saben robot. Cara formasi utamane dipérang dadi kontrol formasi terpusat lan kontrol formasi terdistribusi. Metode kontrol formasi terpusat utamane kalebu metode struktur virtual, metode teori grafis lan metode prediktif model. Metode kontrol formasi disebarake utamane kalebu metode pimpinan-pengikut, metode basis prilaku lan metode struktur virtual.

Paket ROS iki nggunakake metode pimpinan-pengikut ing cara kontrol formasi disebarake kanggo nglakokake drive formasi multi-robot. Siji robot ing formasi kasebut ditunjuk minangka pimpinan, lan robot liyane ditunjuk minangka budak kanggo ngetutake pimpinan. Algoritma kasebut nggunakake lintasan gerakan robot utama kanggo nyetel koordinat sing bakal dilacak dening robot ing ngisor iki kanthi arah lan kacepetan tartamtu. Kanthi mbenerake panyimpangan posisi saka koordinat pelacakan, para pengikut pungkasane bakal nyuda penyimpangan antarane pengikut lan koordinat pelacakan sing dikarepake dadi nol supaya bisa nggayuh tujuan pembentukan drive. Kanthi cara iki, algoritma kasebut relatif kurang rumit.

Algoritma panyegahan alangan

Algoritma panyegahan alangan umum yaiku metode lapangan potensial buatan. Gerakan robot ing lingkungan fisik dianggep minangka gerakan ing medan gaya buatan virtual. Rintangan paling cedhak diidentifikasi dening LiDAR. Rintangan kasebut nyedhiyakake medan gaya tolak kanggo ngasilake tolakan marang robot lan titik target nyedhiyakake medan gravitasi kanggo ngasilake gaya gravitasi menyang robot. Kanthi cara iki, ngontrol gerakan robot miturut aksi gabungan tolak lan atraksi.

Paket ROS iki minangka perbaikan adhedhasar metode lapangan potensial buatan. Kaping pisanan, algoritma formasi ngitung kecepatan linear lan sudut saka pengikut Slave. Banjur mundhak utawa nyuda kecepatan linear lan sudut miturut syarat panyingkiran alangan.Nalika jarak antarane pengikut Budak lan alangan luwih cedhak, daya tolak rintangan marang pengikut Budak luwih gedhe. Sauntara owah-owahan kacepetan linear lan variasi kecepatan sudut luwih gedhe. Yen alangan luwih cedhak karo ngarepe Pandhu, tolake pepalange marang Pamungkas dadi gedhe (tolak ngarep paling gedhe lan tolak sisih paling cilik). Akibaté, variasi saka kecepatan linear lan kecepatan sudut luwih gedhe. Liwat metode lapangan potensial gawean, mbenakake solusi

nalika robot bisa mandheg nanggapi ing ngarepe alangan. Iki serves tujuan panyegahan alangan sing luwih apik.

MULTI-AGENT KOMUNIKASI SETUP

Komunikasi multi-agen minangka salah sawijining langkah kunci kanggo ngrampungake formasi multi-robot. Nalika posisi relatif saka sawetara robot ora dingerteni, robot kudu nuduhake informasi saben liyane liwat komunikasi kanggo nggampangake panyiapan sambungan. ROS mbagekke arsitektur lan komunikasi jaringan banget kuat. Iku ora mung trep kanggo komunikasi antar-proses, nanging uga kanggo komunikasi antarane piranti beda. Liwat komunikasi jaringan, kabeh simpul bisa mlaku ing komputer apa wae. Tugas utama kayata pangolahan data rampung ing sisih host. Mesin budak tanggung jawab kanggo nampa data lingkungan sing diklumpukake dening macem-macem sensor. Tuan rumah ing kene yaiku manajer sing mbukak simpul Master ing ROS. Kerangka komunikasi multi-agen saiki yaiku liwat manajer simpul lan manajer parameter kanggo nangani komunikasi ing antarane sawetara robot.

Persiyapan Komunikasi Multi-agen

Langkah-langkah kanggo nyiyapake komunikasi multi-agen

Nggawe Kontrol ROS ing jaringan sing padha

Ana 2 cara nyetel Master/Slave ROS Controls ing jaringan sing padha.

Pilihan 1:

Master Host nggawe wifi lokal kanthi mbukak manajer simpul Master. Umume, salah sawijining robot sing ditunjuk minangka master nggawe jaringan wifi iki. Robot utawa mesin virtual liyane gabung karo jaringan wifi iki minangka budak.

Pilihan 2:

Jaringan wifi lokal diwenehake dening router pihak katelu minangka pusat relay informasi. Kabeh robot disambungake menyang router sing padha. Router uga bisa digunakake tanpa sambungan internet. Pilih salah sawijining robot minangka master lan mbukak manajer simpul Master. Robot liyane ditunjuk minangka budak lan mbukak manajer simpul master saka master.

Kaputusan babagan pilihan sing kudu dipilih gumantung saka syarat proyek sampeyan. Yen jumlah robot sing kudu komunikasi ora akeh, Opsi 1 dianjurake amarga bisa ngirit biaya lan gampang diatur. Nalika jumlah robot akeh, Opsi 2 dianjurake. Watesan daya komputasi kontrol master ROS lan bandwidth wifi onboard sing winates bisa nyebabake keterlambatan lan gangguan jaringan. A router bisa gampang ndandani masalah iki.

Elinga yen nalika nindakake komunikasi multi-agen, yen mesin virtual digunakake minangka budak ROS, mode jaringan kudu disetel menyang mode jembatan.

Konfigurasi variabel lingkungan Master/Slave 

Sawise kabeh master ROS kabeh ana ing jaringan sing padha, variabel lingkungan kanggo komunikasi multi-agen kudu disetel. Variabel lingkungan iki dikonfigurasi ing .bashrc file ing direktori utama. Jalanake gedit ~/.bashrc printah kanggo miwiti. Elinga yen loro .bashrc files saka master lan abdi ing komunikasi multi-agen kudu diatur. Apa sing kudu diganti yaiku alamat IP ing pungkasan file. Rong baris yaiku ROS_MASTER_URI lan ROS_HOSTNAME, kaya sing ditampilake ing Gambar 2-1-4. ROS_MASTER_URI lan ROS_HOSTNAME saka host ROS loro-lorone IP lokal. ROS_MASTER_URI ing abdi ROS .bashrc file kudu diganti dadi alamat IP host nalika ROS_HOSTNAME tetep dadi alamat IP lokal.

Persiyapan Komunikasi Multi-agen

Komunikasi multi-mesin ROS ora diwatesi dening versi rilis ROS. Ing proses komunikasi multimachine, siji kudu weruh ing ngisor iki:

  1. Operasi saka program abdi ROS gumantung ing program master ROS saka piranti master ROS.
    Program master ROS kudu diluncurake dhisik ing piranti master sadurunge nglakokake program slave ing piranti slave.
  2. Alamat IP mesin master lan slave ing komunikasi multi-mesin kudu ana ing jaringan sing padha. Iki tegese alamat IP lan subnet mask ana ing jaringan sing padha.
  3. ROS_HOSTNAME ing konfigurasi lingkungan file .bashrc ora dianjurake kanggo nggunakake localhost. Disaranake nggunakake alamat IP tartamtu.
  4. Yen alamat IP budak ora disetel kanthi bener, piranti budak isih bisa ngakses master ROS nanging ora bisa ngetik informasi kontrol.
  5.  Yen mesin virtual melu komunikasi multi-agen, mode jaringan kudu disetel menyang mode jembatan. IP statis ora bisa dipilih kanggo sambungan jaringan.
  6. Komunikasi multi-mesin ora bisa view utawa langganan topik jinis data pesen sing ora ana sacara lokal.
  7. Sampeyan bisa nggunakake demo simulasi Penyu Cilik kanggo verifikasi manawa komunikasi antarane robot kasebut sukses:
    a. Mlayu saka master
    roscore #launch layanan ROS
    rosrun turtlesim turtlesim_node #bukak antarmuka turtlesim
    b.
    Mlayu saka abdi
    rosrun turtlesim turtle_teleop_key #launch keyboard simpul kontrol kanggo turtlesim

Yen sampeyan bisa ngapusi gerakan kura-kura saka keyboard ing budak, tegese komunikasi master / budak wis sukses.

Sambungan Wifi otomatis ing ROS

Tata cara ing ngisor iki nerangake carane ngatur robot supaya otomatis nyambung menyang jaringan inang utawa jaringan router.

Persiyapan sambungan Wifi otomatis kanggo Jetson Nano

  1. Sambungake Jetson Nano liwat alat remot VNC utawa langsung menyang layar komputer. Klik ing lambang wifi ing pojok tengen ndhuwur banjur klik "Edit Sambungan .."
    Persiyapan Komunikasi Multi-agen
  2. Klik tombol + ing Sambungan Jaringan:
    Persiyapan Komunikasi Multi-agen
  3. Ing jendhela "Pilih Tipe Sambungan", klik menu gulung mudhun lan klik tombol "Gawe ...":
    Persiyapan Komunikasi Multi-agen
  4. Ing Control Panel, klik pilihan Wifi. Ketik jeneng Wifi sing arep disambungake ing kolom "Jeneng Sambungan" lan SSID. Pilih "Klien" ing menu gulung "Mode" lan pilih "wlan0" ing menu gulung "Piranti".
    Persiyapan Komunikasi Multi-agen
  5. Ing Panel Kontrol, klik pilihan "Umum" lan priksa "Sambungake jaringan iki kanthi otomatis ...". Setel prioritas sambungan dadi 1 ing pilihan "Prioritas sambungan kanggo aktivasi otomatis". Priksa pilihan "Kabeh pangguna bisa nyambung menyang jaringan iki". Nalika pilihan disetel kanggo 0 ing "Prioritas sambungan kanggo otomatis aktifitas" kanggo wifi liyane, iki tegese iki jaringan wifi disenengi ing sasi.
    Persiyapan Komunikasi Multi-agen
  6. Klik pilihan "Keamanan Wi-Fi" ing Panel Kontrol. Pilih "WPA & WPA2 Personal" ing kolom "Keamanan". Banjur ketik sandhi Wifi ing
    Persiyapan Komunikasi Multi-agen

Cathetan:

Yen robot ora bisa nyambung menyang jaringan wifi kanthi otomatis sawise boot nalika prioritas wifi disetel dadi 0, bisa uga disebabake masalah sinyal wifi sing ringkih. Kanggo ngindhari masalah iki, sampeyan bisa milih mbusak kabeh opsi wifi sing wis disambungake sadurunge. Mung njaga jaringan wifi sing digawe dening host utawa router.

Klik pilihan "Setelan IPv4" ing panel kontrol setelan jaringan. Pilih opsi "Manual" ing kolom "Metode". Banjur klik "Tambah", isi alamat IP mesin budak ing kolom "Alamat". Isi "24" ing kolom "Netmask". Isi segmen jaringan IP ing "Gateway". Ganti telung digit pungkasan segmen jaringan IP dadi "1". Tujuan utama langkah iki yaiku kanggo ndandani alamat IP. Sawise rampung pisanan, alamat IP bakal tetep ora owah nalika nyambung menyang WIFI sing padha.

Persiyapan Komunikasi Multi-agen

Sawise kabeh setelan wis diatur, klik "simpen" kanggo nyimpen setelan. Sawise nyimpen sukses, robot bakal nyambung kanthi otomatis menyang jaringan host utawa router nalika diuripake.

Cathetan:

  1. Alamat IP sing disetel ing kene kudu padha karo alamat IP sing disetel ing .bashrc file ing Bagean 2.1.
  2. Alamat IP master lan saben budak kudu unik.
  3. Alamat IP master lan slave kudu ana ing segmen jaringan sing padha.
  4. Sampeyan kudu ngenteni host utawa router ngirim sinyal WiFi sadurunge robot budak bisa diuripake lan nyambung menyang jaringan WiFi kanthi otomatis.
  5. Sawise setelan dikonfigurasi, yen robot ora bisa otomatis nyambung menyang WiFi nalika diuripake, mangga plug lan copot kertu jaringan lan nyoba nyambungake maneh.

Persiyapan sambungan Wifi otomatis kanggo Raspberry Pi 

Prosedur kanggo Raspberry Pi padha karo Jetson Nano.

Persiyapan sambungan Wifi otomatis kanggo Jetson TX1 

Persiyapan ing Jetson TX1 meh padha karo ing Jetson Nano, kajaba Jetson TX1 kudu milih piranti "wlan1" ing "Piranti" ing panel kontrol setelan jaringan.

Persiyapan Komunikasi Multi-agen

MULTI-AGENT SYNCRONISATION SETUP

Ing proyek tatanan multi-agen, setelan sinkronisasi wektu multi-agen minangka langkah penting. Ing proses pambentukan, akeh masalah bakal disebabake amarga wektu sistem asynchronous saben robot. Sinkronisasi wektu multi-agen dipérang dadi rong kahanan, yaiku, kahanan sing loro master lan slave robot disambungake menyang jaringan lan kahanan sing loro pedhot saka jaringan.

Sambungan jaringan master / slave sing sukses

Sawise komunikasi multi-agen dikonfigurasi, yen mesin master lan abdi bisa kasil nyambung menyang jaringan, bakal kanthi otomatis nyinkronake wektu jaringan. Ing kasus iki, ora ana tumindak maneh sing dibutuhake kanggo entuk sinkronisasi wektu.

Ngatasi masalah sambungan jaringan 

Sawise komunikasi multi-agen dikonfigurasi, yen piranti master lan budak ora bisa nyambung menyang jaringan, perlu nyinkronake wektu kanthi manual. Kita bakal nggunakake printah tanggal kanggo ngrampungake setelan wektu.

Pisanan, nginstal alat terminator. Saka alat terminator, gunakake alat pamisah jendhela kanggo nyelehake terminal kontrol master lan budak menyang jendela terminal sing padha (klik-tengen kanggo nyetel jendhela pamisah, lan mlebu menyang mesin master lan budak kanthi ssh ing windows sing beda). .

sudo apt-get install terminator # Download terminator kanggo pamisah jendhela terminal 

Klik tombol ing sisih kiwa ndhuwur, pilih opsi [Broadcast to all]/[Broadcast all], ketik printah ing ngisor iki. Banjur gunakake alat terminator kanggo nyetel wektu sing padha kanggo master lan slave.

Persiyapan Sinkronisasi Multi-agen

sudo date -s "2022-01-30 15:15:00" # Persiyapan wektu manual 

PAKET ROS MULTI-AGENT

Pengenalan Paket ROS 

Setel jeneng budak

n paket fungsi wheeltec_multi, iku perlu kanggo nyetel jeneng unik kanggo saben robot abdi supaya kesalahane. Kanggo example, No.. 1 kanggo slave1 lan No.. 2 kanggo slave2 etc.

Tujuan nyetel jeneng sing beda yaiku ngelompokake simpul sing mlaku lan mbedakake kanthi spasi jeneng sing beda. Kanggo example, topik radar budak 1 yaiku: / slave1 / scan, lan simpul LiDAR budak 1 yaiku: / slave1 / laser.

Setel koordinat budak

Paket wheeltec_multi bisa ngleksanakake tatanan adat. Nalika tatanan beda dibutuhake, mung ngowahi koordinat sing dikarepake saka robot budak. Slave_x lan slave_y minangka koordinat x lan y budak kanthi master minangka titik referensi asli. Ing ngarep master minangka arah positif saka koordinat x, lan sisih kiwa minangka arah positif saka koordinat y. Sawise setelan rampung, TF koordinat slave1 bakal ditanggepi minangka koordinat samesthine saka abdi.

Yen ana siji master lan loro budak, formasi ing ngisor iki bisa disetel:

  1. Formasi horisontal: Sampeyan bisa nyetel koordinat budak ing sisih kiwa menyang: slave_x: 0, slave_y: 0.8, lan koordinat budak ing sisih tengen: slave_x: 0, slave_y: -0.8.
  2. Formasi kolom: Koordinat saka siji budak bisa disetel menyang: slave_x: -0.8, slave_y: 0, lan koordinat budak liyane bisa disetel menyang: slave_x: -1.8, slave_y: 0.
  3. tatanan segitiga: Koordinat saka siji babu bisa disetel kanggo: slave_x: -0.8, slave_y: 0.8, lan koordinat saka abdi liyane bisa disetel kanggo: slave_x: -0.8, slave_y: -0.8.

Formasi liyane bisa disesuaikan yen perlu.

Cathetan

Jarak sing disaranake antarane rong robot disetel dadi 0.8, lan disaranake ora luwih murah tinimbang 0.6. Jarak antarane abdi lan master dianjurake kanggo disetel ing ngisor 2.0. Luwih adoh saka master, luwih cepet kacepetan linear budak nalika master muter. Amarga watesan kacepetan maksimum, kacepetan budak bakal nyimpang yen ora nyukupi syarat. Formasi robot bakal dadi semrawut.

Initialization saka posisi abdi

Posisi wiwitan budak ing koordinat samesthine minangka standar. Sadurunge mbukak program, mung nyelehake robot budak cedhak karo koordinat sing dikarepake kanggo ngrampungake initialization.

Fungsi iki dileksanakake dening simpul pose_setter ing file jenenge turn_on_wheeltec_robot.launch ing paket wheeltec_multi, minangka ditampilake ing Figure 4-1-3.

Paket Ros Multi-agen

Yen pangguna pengin ngatur posisi awal babu, dheweke mung kudu nyetel nilai slave_x lan slave_y minangka ditampilake ing Figure 4-1-4 ing wheeltec_slave.launch. Nilai slave_x lan slave_y bakal diterusake menyang turn_on_wheeltec_robot.launch lan ditugasake menyang simpul pose_setter. Cukup pasang robot ing posisi khusus sadurunge mbukak program.

Paket Ros Multi-agen

Konfigurasi Posisi 

Ing formasi multi-agen, masalah pisanan sing kudu ditanggulangi yaiku posisi master lan budak. Master bakal nggawe peta 2D dhisik. Sawise nggawe lan nyimpen peta, mbukak paket pandhu arah 2D lan nggunakake algoritma posisi adaptif Monte Carlo (posisi amcl) ing paket pandhu arah 2D kanggo ngatur posisi master.

Wiwit master lan budak ana ing jaringan sing padha lan nuduhake manajer simpul sing padha, master wis ngluncurake peta saka paket navigasi 2D, kabeh budak bisa nggunakake peta sing padha ing manajer simpul sing padha. Mulane, abdi ora perlu nggawe peta. Ing wheeltec_slave.launch, mbukak posisi Monte Carlo (posisi amcl), budak bisa ngatur posisi kanthi nggunakake peta sing digawe dening master.

Paket Ros Multi-agen

Carane nggawe formasi lan njaga formasi 

Ing proses gerakan formasi, gerakan master bisa dikontrol dening Rviz, keyboard, remot kontrol lan cara liyane. Budak ngetung kacepetan liwat simpul slave_tf_listener kanggo ngontrol gerakane lan entuk tujuan pembentukan.

Simpul slave_tf_listener mbatesi kacepetan slave kanggo ngindhari kacepetan sing berlebihan kanthi pitungan simpul, sing bakal nyebabake sawetara pengaruh. Nilai tartamtu bisa diowahi ing wheeltec_slave.launch.

Paket Ros Multi-agen

Parameter sing relevan saka algoritma formasi yaiku:

Paket Ros Multi-agen

Panyegahan alangan ing tatanan

Ing formasi multi-agen, master bisa nggunakake simpul move_base kanggo ngrampungake panyegahan alangan. Nanging, initialization saka babu ora nggunakake move_base simpul. Ing titik iki, simpul multi_avoidance kudu diarani ing program budak. Node panyegahan alangan diaktifake kanthi standar ing paket kasebut. Yen perlu, panyegahan bisa disetel dadi "palsu" kanggo mateni simpul panyegahan alangan.

Paket Ros Multi-agen

Sawetara paramèter sing cocog saka simpul panyegahan alangan ditampilake ing gambar ing ngisor iki, ngendi safe_distance minangka watesan jarak aman, lan danger_distance minangka watesan jarak sing mbebayani. Nalika alangan ing safe_distance lan danger_distance, abdi nyetel posisi kanggo ngindhari alangan. Nalika alangan ana ing bebaya_jarak, abdi bakal nyopir saka alangan.

Paket Ros Multi-agen

Prosedur Operasi 

Ketik printah eksekusi 

Preparasi sadurunge miwiti formasi multi-agen:

  • Master lan abdi nyambung menyang jaringan sing padha lan nyetel komunikasi multi-agen kanthi bener
  • Master nggawe peta 2D luwih dhisik lan disimpen
  • Master diselehake ing titik wiwitan peta, lan budak diselehake ing cedhak posisi initialization (posisi tatanan budak standar)
  • Sawise mlebu menyang Jetson Nano / Raspberry Pi mbatalake, nindakake sinkronisasi wektu.

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

Langkah 1: Bukak peta 2D saka master.
roslaunch turn_on_wheeltec_robot navigation.launch

Langkah 2: Run program formasi saka kabeh babu.
roslaunch wheeltec_multi wheeltec_slave.launch

Langkah 3: Bukak simpul kontrol keyboard saka master utawa gunakake joystick kanggo remot kontrol gerakan master.
roslaunch wheeltec_robot_rc keyboard_teleop.launch

Langkah 4: (Opsional) Mirsani obahe robot saka Rviz.
rviz

Cathetan

  1. Priksa manawa kanggo ngrampungake operasi sinkronisasi wektu sadurunge nglakokake program.
  2. Nalika ngontrol master formasi multi-agen, kecepatan sudut ngirim ora cepet banget. Kacepetan linear sing disaranake yaiku 0.2m / s, derajat kacepetan sudut ngisor 0.3rad / s. Nalika master nggawe giliran, sing luwih adoh budak saka master, luwih kacepetan linear dibutuhake. Amarga watesan ing kacepetan linear lan kacepetan sudut ing paket, nalika mobil abdi ora bisa tekan kacepetan dibutuhake, tatanan bakal semrawut. Sakabèhé, kacepetan linear sing berlebihan bisa gampang ngrusak robot.
  3. Nalika jumlah abdi luwih saka siji, amarga bandwidth wifi ing papan winates saka host ROS, iku gampang kanggo nimbulaké telat pinunjul lan disconnection saka komunikasi multi-agen. Nggunakake router bisa ngatasi masalah iki kanthi apik.
  4. Wit TF saka tatanan multi-robot (2 babu) punika: rqt_tf_tree
  5. Diagram hubungan simpul saka tatanan multi-robot (2 babu) punika: rqt_graph

Dokumen / Sumber Daya

ROBOWORKS Robofleet Orin Nano x3 ROS Robot [pdf] Manual pangguna
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

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *