ROBOWORKS-LOGO

ROBOWORKS Robofleet ОЛОН АГЕНТЫН АЛГОРИТМ

ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-БҮТЭЭГДЭХҮҮН

Үзүүлэлтүүд

  • Бүтээгдэхүүний нэр: ROBOWORKS
  • Хувилбар: 20240501
  • Бэлтгэсэн: Wayne Liu & Janette Lin
  • Огноо: 1 оны тавдугаар сарын 2024

Бүтээгдэхүүний мэдээлэл

ROBOWORKS нь роботын зохицуулалт, харилцааны янз бүрийн алгоритмуудыг хэрэгжүүлэх боломжийг олгодог олон агентын систем юм.

Түгээмэл асуултууд

Асуулт: Хэрэв робот Wifi-д автоматаар холбогдож чадахгүй бол би яах ёстой вэ?

Хариулт: Хэрэв робот автоматаар холбогдож чадахгүй бол сүлжээний картыг салгаад дахин холбож үзнэ үү.

ХУРААНГУЙ

Энэхүү баримт бичиг нь wheeltec_multi нэртэй олон робот үүсгэх функцийн багцын ашиглалтыг голчлон тайлбарладаг.

Энэхүү баримт бичиг нь дөрвөн хэсэгт хуваагдана.

  • Эхний хэсэг нь голчлон олон робот үүсгэх аргыг нэвтрүүлэх тухай;
  • Хоёрдахь хэсэг нь ROS олон машины холбооны тохиргоо, үүнд ROS барилгын олон машин харилцаа холбоо, ROS харилцааны явцад тулгарч болох асуудлуудыг голчлон тайлбарласан;
  • Гурав дахь хэсэг нь олон машины цагийн синхрончлолын үйл ажиллагааны үе шатуудыг голчлон тайлбарладаг;
  • Дөрөв дэх хэсэгт олон машин үүсгэх функцийн багцын тусгай хэрэглээг тайлбарласан болно.

Энэхүү баримт бичгийн зорилго нь олон агентын робот системийн танилцуулга бөгөөд хэрэглэгчид олон робот үүсгэх төслийг хурдан эхлүүлэх боломжийг олгодог.

ОЛОН АГЕНТИЙН АЛГОРИТМЫН ТАНИЛЦУУЛГА

Олон агент үүсгэх алгоритмууд

Энэхүү ROS багц нь формацийн жолоодлогын үед хамтын удирдлагад олон агентуудын ердийн асуудлыг харуулж байна. Энэхүү заавар нь энэ сэдвээр ирээдүйн хөгжлийн үндэс суурийг тавьдаг. Формацийн хяналтын алгоритм нь даалгаврыг гүйцэтгэхийн тулд тодорхой формац үүсгэхийн тулд олон агентуудыг удирддаг алгоритмыг хэлнэ. Хамтын ажиллагаа гэдэг нь даалгаврыг биелүүлэхийн тулд тодорхой хязгаарлалтын харилцааг ашиглан олон төлөөлөгчийн хамтын ажиллагааг хэлнэ. Олон робот бүтээх хөтчийг жишээ болгон аваарайample, хамтын ажиллагаа гэдэг нь олон робот хамтдаа хүссэн формацийг бий болгодог гэсэн үг юм. Үүний мөн чанар нь робот бүрийн байрлалын хооронд тохирсон математикийн тодорхой холбоо юм. Формацийн аргыг голчлон төвлөрсөн тогтоцын хяналт, тархсан формацийн хяналт гэж хуваадаг. Формацийн хяналтын төвлөрсөн аргад үндсэндээ виртуал бүтцийн арга, график онолын арга, загварыг урьдчилан таамаглах арга орно. Тархсан формацийн хяналтын аргууд нь голчлон удирдагч-дагагч арга, зан төлөвт суурилсан арга, виртуал бүтцийн аргыг агуулдаг.
Энэхүү ROS багц нь олон робот үүсгэх хөтчийг гүйцэтгэхийн тулд тархсан формацийн хяналтын аргад удирдагч-дагагч аргыг ашигладаг. Бүрэлдэхүүн дэх нэг робот нь удирдагчаар, бусад роботууд удирдагчийг дагах боолуудаар томилогддог. Алгоритм нь тэргүүлэх роботын хөдөлгөөний траекторийг ашиглан дараах роботууд тодорхой чиглэл, хурдтайгаар мөрдөх координатыг тохируулдаг. Мөшгөх координатаас байрлалын хазайлтыг засч, дагалдагчид эцэст нь формацийн хөтчийн зорилгод хүрэхийн тулд дагагч болон хүлээгдэж буй мөрдөх координатуудын хоорондох хазайлтыг тэг болгож бууруулна. Ийм байдлаар алгоритм нь харьцангуй бага төвөгтэй байдаг.

Саадаас зайлсхийх алгоритмууд

Саадаас зайлсхийх нийтлэг алгоритм бол хиймэл боломжит талбайн арга юм. Физик орчинд роботын хөдөлгөөнийг виртуал хиймэл хүчний талбар дахь хөдөлгөөн гэж үздэг. Хамгийн ойрын саадыг LiDAR тодорхойлно. Саад нь робот руу түлхэх хүчийг бий болгох түлхэх хүчний талбарыг, зорилтот цэг нь таталцлын хүчийг роботын таталцлын хүчийг бий болгодог. Ийнхүү түлхэлт, таталцлын хосолсон үйл ажиллагааны дор роботын хөдөлгөөнийг удирддаг.
Энэхүү ROS багц нь хиймэл боломжит талбайн аргад суурилсан сайжруулалт юм. Нэгдүгээрт, формацийн алгоритм нь Боолын дагалдагчийн шугаман болон өнцгийн хурдыг тооцоолдог. Дараа нь энэ нь саад тотгороос зайлсхийх шаардлагын дагуу шугаман болон өнцгийн хурдыг нэмэгдүүлж эсвэл бууруулдаг. Боолын дагалдагч ба саадын хоорондох зай ойртох тусам Боолын дагалдагчид саадыг түлхэх хүч илүү их байдаг. Үүний зэрэгцээ шугаман хурдны өөрчлөлт ба өнцгийн хурдны өөрчлөлтүүд илүү их байна. Саад нь Боолын дагалдагчийн урд талд ойртох үед Боолын дагалдагчийн саадын түлхэлт ихэсдэг (урд талын түлхэлт хамгийн их, хажуугийн түлхэлт хамгийн бага байдаг). Үүний үр дүнд шугаман хурд ба өнцгийн хурдны хэлбэлзэл их байна. Хиймэл боломжит талбайн аргын тусламжтайгаар робот саадын өмнө хариу үйлдэл үзүүлэхээ больсон тохиолдолд шийдлийг сайжруулдаг. Энэ нь саад бэрхшээлээс илүү сайн зайлсхийх зорилготой юм.

ОЛОН АГЕНТИЙН ХОЛБОО БАРИХ ТОХИРУУЛГА

Олон агентын харилцаа холбоо нь олон роботын хэлбэрийг дуусгах гол алхмуудын нэг юм. Олон роботуудын харьцангуй байрлал тодорхойгүй үед роботууд харилцаа холбоо тогтооход хялбар болгохын тулд харилцан мэдээлэл солилцох шаардлагатай болдог. ROS-ийн тархсан архитектур, сүлжээний харилцаа холбоо нь маш хүчтэй байдаг. Энэ нь процесс хоорондын харилцаа холбоонд төдийгүй өөр өөр төхөөрөмжүүдийн хооронд харилцахад тохиромжтой. Сүлжээний холболтоор дамжуулан бүх зангилаа нь ямар ч компьютер дээр ажиллах боломжтой. Мэдээлэл боловсруулах гэх мэт үндсэн ажлуудыг хост тал дээр гүйцэтгэдэг. Боол машинууд нь янз бүрийн мэдрэгчээр цуглуулсан хүрээлэн буй орчны мэдээллийг хүлээн авах үүрэгтэй. Энд байгаа хост нь ROS дахь Мастер зангилааг ажиллуулдаг менежер юм. Одоогийн олон агентын харилцааны хүрээ нь зангилааны менежер ба параметрийн менежерээр дамжуулан олон роботуудын хоорондын харилцаа холбоог зохицуулдаг.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (1)

Олон агентын харилцаа холбоог тохируулах алхамууд

  • Нэг сүлжээнд ROS хяналтыг тохируулна уу
    • Нэг сүлжээний дор Master/Slave ROS Controls-ийг тохируулах 2 арга байдаг.

Сонголт 1:

Мастер хост нь Мастер зангилааны менежерийг ажиллуулснаар локал wifi үүсгэдэг. Ерөнхийдөө мастераар томилогдсон роботуудын нэг нь энэхүү wifi сүлжээг үүсгэдэг. Бусад роботууд эсвэл виртуал машинууд энэ wifi сүлжээнд боол болж нэгддэг.

Сонголтууд 2:

Орон нутгийн Wi-Fi сүлжээг мэдээллийн дамжуулагч төв болгон гуравдагч талын чиглүүлэгчээр хангадаг. Бүх роботууд нэг чиглүүлэгчтэй холбогдсон. Мөн чиглүүлэгчийг интернет холболтгүйгээр ашиглах боломжтой. Роботуудаас нэгийг нь мастераар сонгоод Мастер зангилааны менежерийг ажиллуулна уу. Бусад роботууд нь боол гэж томилогдсон бөгөөд мастераас мастер зангилааны менежерийг ажиллуулдаг.
Аль сонголтыг сонгох нь таны төслийн шаардлагаас хамаарна. Хэрэв харилцах шаардлагатай роботуудын тоо тийм ч их биш бол зардал хэмнэж, тохируулахад хялбар тул 1-р хувилбарыг ашиглахыг зөвлөж байна. Роботуудын тоо их байвал 2-р сонголтыг хийхийг зөвлөж байна. ROS мастер удирдлагын тооцооллын хүчин чадал, хязгаарлагдмал Wi-Fi зурвасын өргөн нь саатал, сүлжээний тасалдал үүсгэдэг. Чиглүүлэгч эдгээр асуудлыг амархан шийдэж чадна. Олон агентын харилцаа холбоог гүйцэтгэх үед виртуал машиныг ROS боол болгон ашигладаг бол түүний сүлжээний горимыг гүүр горимд тохируулах шаардлагатайг анхаарна уу.

Master/Slave орчны хувьсагчдыг тохируулна уу

Бүх ROS мастерууд бүгд нэг сүлжээнд байгаа бол олон агенттай харилцах орчны хувьсагчдыг тохируулах шаардлагатай. Энэ орчны хувьсагчийг үндсэн директор дахь .bashrc файлд тохируулсан. Үүнийг ажиллуулахын тулд gedit ~/.bashrc командыг ажиллуулна уу. Олон агентын харилцааны мастер болон slave-ийн .bashrc файлуудыг хоёуланг нь тохируулах шаардлагатайг анхаарна уу. Өөрчлөх шаардлагатай зүйл бол файлын төгсгөлд байгаа IP хаягууд юм. Зураг 2-1-4-т үзүүлсэн шиг ROS_MASTER_URI ба ROS_HOSTNAME гэсэн хоёр мөр байна. ROS хостын ROS_MASTER_URI болон ROS_HOSTNAME нь хоёулаа локал IP юм. ROS slave .bashrc файл дахь ROS_MASTER_URI-г хостын IP хаяг болгон өөрчлөх шаардлагатай бөгөөд ROS_HOSTNAME нь локал IP хаяг хэвээр байна.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (2)

ROS олон машины холбоо нь ROS хувилбарын хувилбараар хязгаарлагдахгүй. Олон машинтай харилцах явцад дараахь зүйлийг мэдэж байх ёстой.

  1. ROS боол програмын ажиллагаа нь ROS мастер төхөөрөмжийн ROS мастер програмаас хамаарна. ROS мастер програм нь боол төхөөрөмж дээр боол програмыг ажиллуулахын өмнө эхлээд мастер төхөөрөмж дээр ажиллах ёстой.
  2. Олон машинтай харилцаа холбооны мастер болон slave машинуудын IP хаягууд нэг сүлжээнд байх шаардлагатай. Энэ нь IP хаяг болон дэд сүлжээний маск нь нэг сүлжээнд байна гэсэн үг.
  3. ROS_HOSTNAME орчны тохиргооны файл .bashrc-г localhost ашиглахыг зөвлөдөггүй. Тодорхой IP хаягийг ашиглахыг зөвлөж байна.
  4. Боолын IP хаягийг зөв тохируулаагүй тохиолдолд боол төхөөрөмж нь ROS мастер руу хандах боломжтой боловч хяналтын мэдээллийг оруулах боломжгүй.
  5. Хэрэв виртуал машин олон агентын харилцаанд оролцдог бол түүний сүлжээний горимыг гүүр горимд тохируулах шаардлагатай. Сүлжээний холболтод статик IP сонгох боломжгүй.
  6. Олон машинтай холбоо барих боломжгүй view эсвэл дотоодод байхгүй мессежийн өгөгдлийн төрлийн сэдвүүдийг захиалах.
  7. Та роботуудын хоорондын харилцаа амжилттай байгаа эсэхийг шалгахын тулд Бяцхан яст мэлхий симуляцийн демо ашиглаж болно.
    • a. Мастераас гүй
      • rescore #launch ROS үйлчилгээг
      • rostrum turtles turtlesim_node #launch turtles интерфейс
    • b. Боолоос зугт
      • яст мэлхий яст мэлхийнүүдийг дахин ажиллуулаарай

Хэрэв та боол дээрх гарнаас яст мэлхийн хөдөлгөөнийг удирдаж чадвал мастер/боолын харилцаа амжилттай болсон гэсэн үг.

ROS дахь автомат Wi-Fi холболт

Доорх процедур нь роботыг хост сүлжээ эсвэл чиглүүлэгчийн сүлжээнд автоматаар холбогдохоор хэрхэн тохируулахыг тайлбарладаг.

Jetson Nano-д зориулсан автомат Wi-Fi холболтын тохиргоо

  1. Jetson Nano-г VNC алсын хэрэгслээр эсвэл компьютерийн дэлгэц рүү шууд холбоно уу. Баруун дээд буланд байрлах Wi-Fi дүрс дээр дараад "Холболтыг засах" дээр дарна уу.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (3)
  2. Сүлжээний холболтууд дахь + товчийг дарна уу:ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (4)
  3. "Холболтын төрлийг сонгох" цонхны доор гарч ирэх цэсийг дараад "Create..." товчийг дарна уу.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (5)
  4. Хяналтын самбараас Wifi сонголтыг товшино уу. "Холболтын нэр" болон SSID талбарт холбогдохын тулд Wi-Fi нэрийг оруулна уу. "Гохимж" унадаг цэснээс "Клиент"-ийг сонгоод "Төхөөрөмж" унадаг цэснээс "wlan0"-г сонгоно уу.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (6)
  5. Хяналтын самбараас "Ерөнхий" сонголтыг товшоод "Энэ сүлжээнд автоматаар холбогдох ..." гэснийг сонгоно уу. "Автоматаар идэвхжүүлэхийн тулд холболтын тэргүүлэх чиглэл" сонголтын холболтын давуу талыг 1 болгож тохируулна уу. "Бүх хэрэглэгчид энэ сүлжээнд холбогдож болно" гэсэн сонголтыг шалгана уу. Бусад wifi-н хувьд "Автоматаар идэвхжүүлэхийн тулд холболтын тэргүүлэх чиглэл"-ийн сонголтыг 0 болгож тохируулсан бол энэ нь өмнө нь илүүд үздэг байсан wifi сүлжээ байсан гэсэн үг.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (7)
  6. Хяналтын самбар дахь "Wi-Fi аюулгүй байдал" сонголтыг дарна уу. "Аюулгүй байдал" талбараас "WPA & WPA2 Personal" -г сонгоно уу. Дараа нь "Нууц үг" талбарт Wi-Fi нууц үгээ оруулна уу.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (8)

Жич: Хэрэв wifi-ийн давуу талыг 0 гэж тохируулсан үед робот ачаалсны дараа автоматаар wifi сүлжээнд холбогдож чадахгүй бол энэ нь wifi дохионы сул байдлаас үүдэлтэй байж болно. Энэ асуудлаас зайлсхийхийн тулд та өмнө нь холбогдсон бүх Wi-Fi тохиргоог устгахаар сонгож болно. Зөвхөн хост эсвэл чиглүүлэгчийн үүсгэсэн Wi-Fi сүлжээг хадгал. Сүлжээний тохиргооны хяналтын самбар дээрх "IPv4 тохиргоо" сонголтыг дарна уу. "Арга" талбараас "Гарын авлага" сонголтыг сонгоно уу. Дараа нь "Нэмэх" дээр дарж, "Хаяг" талбарт боол машины IP хаягийг бөглөнө үү. "Сүлжээний маск" талбарт "24"-ийг бөглөнө үү. "Гарц" хэсэгт IP сүлжээний сегментийг бөглөнө үү. IP сүлжээний сегментийн сүүлийн гурван цифрийг "1" болгож өөрчил. Энэ алхамын гол зорилго нь IP хаягийг засах явдал юм. Үүнийг анх удаа хийж дууссаны дараа ижил WIFI-д холбогдох үед IP хаяг өөрчлөгдөхгүй хэвээр үлдэнэ.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (9)

Бүх тохиргоог тохируулсны дараа тохиргоог хадгалахын тулд "хадгалах" дээр дарна уу. Хадгаламж амжилттай болсны дараа робот асаалттай үед хост эсвэл чиглүүлэгчийн сүлжээнд автоматаар холбогдох болно.

Жич:

  1. Энд тохируулсан IP хаяг нь 2.1-р хэсэг дэх .bashrc файлын IP хаягтай ижил байх ёстой.
  2. Мастер болон боол бүрийн IP хаяг өвөрмөц байх ёстой.
  3. Мастер ба боол IP хаягууд нь нэг сүлжээний сегментэд байх ёстой.
  4. Боол роботыг асааж, WiFi сүлжээнд автоматаар холбогдохын өмнө та хост эсвэл чиглүүлэгч WiFi дохио илгээхийг хүлээх хэрэгтэй.
  5. Тохиргоог тохируулсны дараа робот асаалттай үед WiFi-д автоматаар холбогдож чадахгүй бол сүлжээний картыг залгаад салгаад дахин холбогдоно уу.

Raspberry Pi-д зориулсан автомат Wi-Fi холболтын тохиргоо

Raspberry Pi-ийн процедур нь Jetson Nano-той адил юм.

Jetson TX1-д зориулсан автомат Wi-Fi холболтын тохиргоо

Jetson TX1-ийн тохиргоо нь Jetson Nano-тай бараг ижил бөгөөд нэгээс бусад тохиолдолд Jetson TX1 нь сүлжээний тохиргооны хяналтын самбар дээрх "Төхөөрөмж" хэсэгт "wlan1" төхөөрөмжийг сонгох ёстой.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (10)

ОЛОН АГЕНТЫН синхрончлолын тохиргоо

Олон агент үүсгэх төслийн хувьд олон агентын цагийн синхрончлолын тохиргоо нь маш чухал алхам юм. Үүсгэх явцад робот бүрийн асинхрон системийн хугацаанаас болж олон асуудал гарах болно. Олон агентын цагийн синхрончлолыг хоёр нөхцөл байдалд хуваадаг, тухайлбал, мастер болон боол робот хоёулаа сүлжээнд холбогдсон, хоёулаа сүлжээнээс салгагдсан нөхцөл байдал.

Мастер/боол сүлжээний холболт амжилттай болсон

Олон агентын холболтыг тохируулсны дараа мастер болон туслах машинууд сүлжээнд амжилттай холбогдож чадвал сүлжээний цагийг автоматаар синхрончлох болно. Энэ тохиолдолд цагийн синхрончлолд хүрэхийн тулд нэмэлт үйлдэл хийх шаардлагагүй болно.

Сүлжээний холболт тасарсан үед алдааг олж засварлах

Олон агентын холболтыг тохируулсны дараа мастер болон туслах төхөөрөмжүүд сүлжээнд амжилттай холбогдож чадахгүй бол цагийг гараар синхрончлох шаардлагатай. Цагийн тохиргоог дуусгахын тулд бид огноо командыг ашиглана.

Эхлээд терминатор хэрэгслийг суулгана уу. Терминаторын хэрэглүүрээс цонх хуваах хэрэгслийг ашиглан мастер ба боол хоёрын хяналтын терминалуудыг ижил терминалын цонхонд байрлуулна (хуваах цонхыг тохируулахын тулд хулганы баруун товчийг дарж, өөр цонхонд ssh-ээр мастер болон slave машин руу нэвтэрнэ үү) .

  • sudo apt-get install terminator # Терминаторын цонхыг хуваахын тулд терминаторыг татаж авна уу

Зүүн дээд талд байгаа товчлуур дээр дарж, [Бүгдэд цацах]/[Бүгдийг нь цацах] сонголтыг сонгоод дараах командыг оруулна. Дараа нь төгсгөлийн хэрэгслийг ашиглан мастер болон боол хоёрын ижил цагийг тохируулна уу.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (11)

  • sudo date -s “2022-01-30 15:15:00” # Цагийг гараар тохируулах

ОЛОН АГЕНТИЙН ROS БАГЦ

ROS багцын танилцуулга

Боолын нэрийг тохируулна уу

wheeltec_multi функцийн багцад алдаа гаргахгүйн тулд боол робот бүрт өвөрмөц нэр өгөх шаардлагатай. Жишээ ньample, slave1-д No1, slave2-д No2 гэх мэт. Өөр өөр нэр тавих зорилго нь ажиллаж байгаа зангилаануудыг бүлэглэж, өөр өөр нэрийн орон зайгаар ялгах явдал юм. Жишээ ньample, боол 1-ийн радарын сэдэв нь/боол1/скан, боол 1-ийн LiDAR зангилаа нь/боол1/лазер юм.

Боолын координатыг тохируулна уу

wheeltec_multi багц нь захиалгат формацуудыг хэрэгжүүлэх боломжтой. Өөр өөр тогтоц шаардлагатай үед боол роботуудын хүссэн координатыг өөрчлөхөд л хангалттай. Slave_x болон slave_y нь боолын x ба y координатууд бөгөөд мастер нь анхны лавлах цэг юм. Мастерийн урд тал нь х координатын эерэг чиглэл, зүүн тал нь y координатын эерэг чиглэл юм. Тохиргоо дууссаны дараа боолын хүлээгдэж буй координат болгон TF координатын slave1 гарна. Хэрэв нэг мастер, хоёр боол байгаа бол дараах хэлбэрийг тохируулж болно.

  1. Хэвтээ хэлбэр: Та зүүн талын боолын координатыг slave_x:0, slave_y: 0.8, баруун талын боолын координатыг slave_x:0, slave_y:-0.8 болгож тохируулж болно.
  2. Багана үүсгэх: Нэг боолын координатыг: slave_x:-0.8, slave_y:0, нөгөө боолын координатыг: slave_x:-1.8, slave_y:0 ​​гэж тохируулж болно.
  3. Гурвалжин үүсгэх: Нэг боолын координатыг: slave_x:-0.8, slave_y: 0.8, нөгөө боолын координатыг: slave_x:-0.8, slave_y:-0.8 болгож тохируулж болно.

Бусад формацыг шаардлагатай бол тохируулж болно.

Анхаарна уу:

  • Хоёр роботын хоорондох зайг 0.8 гэж тохируулсан бөгөөд 0.6-аас багагүй байхыг зөвлөж байна. Боол болон мастерын хоорондох зайг 2.0-ээс доош байлгахыг зөвлөж байна. Энэ нь эзнээс хол байх тусам эзэн эргэх үед боолын шугаман хурд ихсэх болно. Хамгийн дээд хурдыг хязгаарласан тул шаардлага хангахгүй бол боолын хурд хазайна. Робот үүсэх нь эмх замбараагүй болно.

Боолын байрлалыг эхлүүлэх

  1. Боолын анхны байрлал нь анхдагчаар хүлээгдэж буй координатууд дээр байна. Програмыг ажиллуулахын өмнө эхлүүлж дуусгахын тулд боол роботыг хүлээгдэж буй координатынхаа ойролцоо байрлуул. Энэ функцийг Зураг 4-1-3-т үзүүлсэн шиг wheeltec_multi багц дахь turn_on_wheeltec_robot.launch нэртэй файлын pose_setter зангилаа хэрэгжүүлдэг.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (12)

Хэрэв хэрэглэгч боолын анхны байрлалыг өөрчлөхийг хүсвэл wheeltec_slave.launch дээрх Зураг 4-1-4-т үзүүлсэн шиг slave_x болон slave_y утгыг тохируулахад л хангалттай. Slave_x болон slave_y утгуудыг turn_on_wheeltec_robot.launch руу дамжуулж, poze_setter зангилаанд онооно. Програмыг ажиллуулахын өмнө роботыг тусгай байрлалд байрлуул.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (13)

Байршлын тохиргоо

Олон агенттай формацийн хувьд хамгийн түрүүнд шийдэх асуудал бол эзэн ба боолын байрлал юм. Мастер эхлээд 2 хэмжээст газрын зураг бүтээнэ. Газрын зургийг бүтээж, хадгалсны дараа 2D навигацийн багцыг ажиллуулж, мастерын байршлыг тохируулахын тулд 2D навигацийн багц дахь дасан зохицох Монте Карло байршлын алгоритмыг (amcl байрлал тогтоох) ашиглана уу. Мастер болон боолууд нэг сүлжээнд байгаа бөгөөд ижил зангилааны менежерийг хуваалцдаг тул мастер 2D навигацийн багцаас газрын зургийг эхлүүлсэн тул бүх боолууд нэг зангилааны менежерийн дор ижил газрын зургийг ашиглах боломжтой. Тиймээс боол газрын зураг үүсгэх шаардлагагүй. wheeltec_slave.launch дээр Monte Carlo positioning (amcl positioning) програмыг ажиллуулснаар боолууд мастерын үүсгэсэн газрын зургийг ашиглан байрлалаа тохируулах боломжтой.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (14)

Хэрхэн формацийг бий болгох, формацийг хадгалах

Формацийн хөдөлгөөний явцад мастер хөдөлгөөнийг Rviz, гар, алсын удирдлага болон бусад аргаар удирдаж болно. Боол хөдөлгөөнийг хянах, формацийн зорилгодоо хүрэхийн тулд slave_tf_listener зангилаагаар хурдаа тооцдог. Slave_tf_listener зангилаа нь зангилааны тооцоогоор хэт их хурдаас зайлсхийхийн тулд боолын хурдыг хязгаарладаг бөгөөд энэ нь хэд хэдэн нөлөөллийг үүсгэдэг. Тусгай утгыг wheeltec_slave.launch дээр өөрчилж болно.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (15)

Формацийн алгоритмын холбогдох параметрүүд нь дараах байдалтай байна. ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (16)

Саадаас зайлсхийх тухай мэдээлэл

Олон агенттай формацид мастер нь саад тотгороос зайлсхийхийн тулд move_base зангилааг ашиглаж болно. Гэсэн хэдий ч, боолыг эхлүүлэх нь move_base зангилаа ашигладаггүй. Энэ үед multi_avoidance зангилааг боол програмд ​​дуудах шаардлагатай. Саадаас зайлсхийх зангилаа нь багцад анхдагчаар идэвхжсэн байна. Шаардлагатай бол саад тотгороос зайлсхийх зангилааг идэвхгүй болгохын тулд зайлсхийх тохиргоог "худал" болгож болно. ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (17)

Саадаас зайлсхийх зангилааны зарим холбогдох параметрүүдийг доорх зурагт үзүүлэв, энд аюулгүй_зай нь саадын аюулгүй зайны хязгаар, аюулын_зай нь саадын аюултай зайны хязгаар юм. Саад нь аюулгүй зай, аюулын зайд байх үед боол саадаас зайлсхийхийн тулд байрлалаа тохируулдаг. Саад нь аюулд орвол боол саадаас холдох болно.ROBOWORKS-Robofleet-ОЛОН АГЕНТ-АЛГОРИТМ-ЗУРАГ- (18)

Үйл ажиллагааны журам

Гүйцэтгэх командыг оруулна уу

Олон агент үүсэхээс өмнөх бэлтгэл:

  • Мастер болон боол нь нэг сүлжээнд холбогдож, олон агентын харилцааг зөв тохируулдаг
  • Мастер 2 хэмжээст газрын зургийг урьдчилан бүтээж хадгалдаг
  • Мастер нь газрын зургийн эхлэлийн цэг дээр, харин боол нь эхлүүлэх байрлалын ойролцоо байрладаг (үндсэн боол үүсгэх байрлал)
  • Jetson Nano/Raspberry Pi руу алсаас нэвтэрсний дараа цагийн синхрончлолыг хийнэ үү.

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

  • Алхам 1: Мастераас 2D газрын зургийг нээнэ үү.

roslaunch turn_on_wheeltec_robot navigation.launch

  • Алхам 2: Бүх боолуудаас бүрдүүлэх програмыг ажиллуул.

roslaunch wheeltec_multi wheeltec_slave.launch

  • Алхам 3: Мастераас гарны удирдлагын зангилаа нээнэ үү эсвэл жолооны хөдөлгөөнийг алсаас удирдах боломжтой.

wheeltec_robot_rc keyboard_teleop.launch-г дахин ажиллуул

  • Алхам 4: (Заавал биш) Rviz-аас роботын хөдөлгөөнийг ажигла.

rviz

Жич: 

  1. Програмыг ажиллуулахын өмнө цагийг синхрончлох ажиллагааг дуусгахаа мартуузай.
  2. Олон агентын формацийн мастерыг хянахдаа өнцгийн хурд хэт хурдан байх ёсгүй. Санал болгож буй шугаман хурд нь 0.2 м/с, өнцгийн хурд нь 0.3 рад/с-ээс бага байна. Мастер эргэлт хийх үед боол нь эзэнээс хол байх тусам шугаман хурдыг нэмэгдүүлэх шаардлагатай. Багц дахь шугаман хурд болон өнцгийн хурдыг хязгаарласан тул боол машин шаардлагатай хурдыг авч чадахгүй үед үүсэх замбараагүй болно. Ерөнхийдөө хэт их шугаман хурд нь роботыг амархан гэмтээж болно.
  3. Боолуудын тоо нэгээс олон байвал ROS хостын самбар дээрх Wi-Fi зурвасын өргөн хязгаарлагдмал тул олон агентын харилцаа холбоо тасрах, ихээхэн саатал гаргахад хялбар байдаг. Чиглүүлэгч ашиглах нь энэ асуудлыг сайн шийдэж чадна.
  4. Олон роботын формацийн TF мод (2 боол) нь: rqt_tf_tree
  5. Олон робот формацийн (2 боол) зангилааны харилцааны диаграмм нь: rqt_graph

Баримт бичиг / нөөц

ROBOWORKS Robofleet ОЛОН АГЕНТЫН АЛГОРИТМ [pdf] Хэрэглэгчийн гарын авлага
Robofleet Multi Agent Algorithms, Robofleet, Multi Agent Algorithms, Agent Algorithms, Algorithms

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *