ROBOWORKS-LOGO

ROBOWORKS Robofleet Multi-AGENT ALGORITHMS

ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-PRODUCT

ຂໍ້ມູນຈໍາເພາະ

  • ຊື່ຜະລິດຕະພັນ: ROBOWORKS
  • ລຸ້ນ: 20240501
  • ແຕ່ງໂດຍ: Wayne Liu & Janette Lin
  • ວັນທີ: 1 ພຶດສະພາ 2024

ຂໍ້ມູນຜະລິດຕະພັນ

ROBOWORKS ເປັນລະບົບຫຼາຍຕົວແທນທີ່ອະນຸຍາດໃຫ້ປະຕິບັດຂັ້ນຕອນວິທີຕ່າງໆສໍາລັບການປະສານງານແລະການສື່ສານຫຸ່ນຍົນ.

FAQs

ຖາມ: ຂ້ອຍຄວນເຮັດແນວໃດຖ້າຫຸ່ນຍົນບໍ່ສາມາດເຊື່ອມຕໍ່ກັບ Wifi ໂດຍອັດຕະໂນມັດ?

A: ຖ້າຫຸ່ນຍົນບໍ່ສາມາດເຊື່ອມຕໍ່ອັດຕະໂນມັດໄດ້, ລອງຖອດປລັກ ແລະສຽບບັດເຄືອຂ່າຍຄືນໃໝ່ ແລະພະຍາຍາມເຊື່ອມຕໍ່ອີກຄັ້ງ.

ສະຫຼຸບ

ເອກະສານນີ້ສ່ວນໃຫຍ່ອະທິບາຍການໃຊ້ຊຸດຟັງຊັນການສ້າງຫຸ່ນຍົນຫຼາຍອັນທີ່ມີຊື່ວ່າ wheeltec_multi.

ເອກະສານສະບັບນີ້ແບ່ງອອກເປັນສີ່ພາກສ່ວນ:

  • ພາກສ່ວນທໍາອິດສ່ວນໃຫຍ່ແມ່ນກ່ຽວກັບການນໍາສະເຫນີວິທີການສ້າງຫຸ່ນຍົນຫຼາຍ;
  • ສ່ວນທີສອງແມ່ນອະທິບາຍເຖິງການຕັ້ງຄ່າການສື່ສານຫຼາຍເຄື່ອງຂອງ ROS, ລວມທັງການສ້າງ ROS ການສື່ສານຫຼາຍເຄື່ອງ ແລະບັນຫາທີ່ອາດຈະພົບໃນຂະບວນການສື່ສານ ROS;
  • ສ່ວນທີສາມສ່ວນໃຫຍ່ແມ່ນອະທິບາຍຂັ້ນຕອນການດໍາເນີນງານຂອງ synchronization ເວລາຫຼາຍເຄື່ອງ;
  • ພາກ​ທີ​ສີ່​ອະ​ທິ​ບາຍ​ການ​ນໍາ​ໃຊ້​ສະ​ເພາະ​ຂອງ​ຊຸດ​ຫນ້າ​ທີ່​ການ​ສ້າງ​ຕັ້ງ​ຫຼາຍ​ເຄື່ອງ​ຈັກ​.

ຈຸດປະສົງຂອງເອກະສານນີ້ແມ່ນການແນະນໍາລະບົບຫຸ່ນຍົນຫຼາຍຕົວແທນ ແລະໃຫ້ຜູ້ໃຊ້ສາມາດເລີ່ມໂຄງການສ້າງຫຸ່ນຍົນຫຼາຍຕົວຢ່າງວ່ອງໄວ.

ແນະນໍາ ALGORITHMS ຫຼາຍຕົວແທນ

ສູດການຄິດໄລ່ການສ້າງຫຼາຍຕົວແທນ

ຊຸດ ROS ນີ້ສະເຫນີບັນຫາປົກກະຕິຂອງຕົວແທນຫຼາຍຕົວໃນການຄວບຄຸມການຮ່ວມມືລະຫວ່າງໄດການສ້າງຕັ້ງ. ການສອນນີ້ວາງພື້ນຖານສໍາລັບການພັດທະນາໃນອະນາຄົດກ່ຽວກັບຫົວຂໍ້ນີ້. ສູດການຄິດໄລ່ຂອງການຄວບຄຸມການສ້າງໝາຍເຖິງ algorithm ທີ່ຄວບຄຸມຫຼາຍຕົວແທນເພື່ອສ້າງເປັນການສ້າງສະເພາະເພື່ອປະຕິບັດວຽກງານໃດໜຶ່ງ. ການຮ່ວມມືໝາຍເຖິງການຮ່ວມມືລະຫວ່າງຫຼາຍຕົວແທນ ໂດຍໃຊ້ຄວາມສຳພັນທີ່ມີຂໍ້ຈຳກັດສະເພາະເພື່ອເຮັດສຳເລັດວຽກງານໃດໜຶ່ງ. ເອົາການສ້າງຕັ້ງຫຼາຍຫຸ່ນຍົນເປັນ example, ການຮ່ວມມືຫມາຍຄວາມວ່າຫຸ່ນຍົນຫຼາຍປະກອບເປັນຮູບແບບທີ່ຕ້ອງການຮ່ວມກັນ. ໂດຍເນື້ອແທ້ແລ້ວຂອງມັນແມ່ນຄວາມສໍາພັນທາງຄະນິດສາດທີ່ແນ່ນອນທີ່ມີຄວາມພໍໃຈລະຫວ່າງຕໍາແຫນ່ງຂອງຫຸ່ນຍົນແຕ່ລະຄົນ. ວິທີການສ້າງຕັ້ງສ່ວນຫຼາຍແມ່ນແບ່ງອອກເປັນການຄວບຄຸມການສ້າງແບບສູນກາງແລະການຄວບຄຸມການສ້າງແບບແຈກຢາຍ. ວິທີການຄວບຄຸມການສ້າງແບບສູນກາງສ່ວນໃຫຍ່ປະກອບມີວິທີການໂຄງສ້າງ virtual, ວິທີການທິດສະດີຮູບພາບ, ແລະວິທີການຄາດຄະເນແບບຈໍາລອງ. ວິທີການຄວບຄຸມການສ້າງແບບແຈກຢາຍສ່ວນໃຫຍ່ປະກອບມີວິທີການຜູ້ນໍາ-ຜູ້ຕິດຕາມ, ວິທີການໂດຍອີງໃສ່ພຶດຕິກໍາ, ແລະວິທີການໂຄງສ້າງ virtual.
ຊຸດ ROS ນີ້ໃຊ້ວິທີການຜູ້ນໍາ-ຜູ້ຕິດຕາມໃນວິທີການຄວບຄຸມການສ້າງແບບແຈກຢາຍເພື່ອປະຕິບັດການຂັບເຄື່ອນການສ້າງຫຼາຍຫຸ່ນຍົນ. ຫຸ່ນຍົນຫນຶ່ງໃນການສ້າງຕັ້ງແມ່ນຖືກກໍານົດເປັນຜູ້ນໍາ, ແລະຫຸ່ນຍົນອື່ນໆແມ່ນຖືກກໍານົດເປັນສໍາລອງເພື່ອປະຕິບັດຕາມຜູ້ນໍາ. ສູດການຄິດໄລ່ໃຊ້ trajectory ການເຄື່ອນໄຫວຂອງຫຸ່ນຍົນຊັ້ນນໍາເພື່ອກໍານົດຈຸດປະສານງານທີ່ຈະຕິດຕາມໂດຍຫຸ່ນຍົນດັ່ງຕໍ່ໄປນີ້ດ້ວຍທິດທາງແລະຄວາມໄວທີ່ແນ່ນອນ. ໂດຍການແກ້ໄຂ deviations ຕໍາແຫນ່ງຈາກຈຸດປະສານງານການຕິດຕາມ, ໃນທີ່ສຸດຜູ້ຕິດຕາມຈະຫຼຸດຜ່ອນຄວາມບ່ຽງເບນລະຫວ່າງຜູ້ຕິດຕາມແລະຈຸດປະສານງານການຕິດຕາມທີ່ຄາດວ່າຈະເປັນສູນເພື່ອບັນລຸຈຸດປະສົງຂອງໄດການສ້າງຕັ້ງ. ດ້ວຍວິທີນີ້, ສູດການຄິດໄລ່ແມ່ນຂ້ອນຂ້າງສັບສົນ.

ຂັ້ນຕອນການຫຼີກລ່ຽງອຸປະສັກ

ສູດການຫຼີກລ່ຽງອຸປະສັກທົ່ວໄປແມ່ນວິທີການພາກສະຫນາມທີ່ມີທ່າແຮງທຽມ. ການ​ເຄື່ອນ​ໄຫວ​ຂອງ​ຫຸ່ນ​ຍົນ​ໃນ​ສະ​ພາບ​ແວດ​ລ້ອມ​ທາງ​ດ້ານ​ຮ່າງ​ກາຍ​ແມ່ນ​ຖື​ວ່າ​ເປັນ​ການ​ເຄື່ອນ​ໄຫວ​ໃນ​ພາກ​ສະ​ຫນາມ​ຜົນ​ບັງ​ຄັບ​ໃຊ້ virtual ໄດ້​. ອຸປະສັກທີ່ໃກ້ທີ່ສຸດແມ່ນຖືກກໍານົດໂດຍ LiDAR. ອຸປະສັກດັ່ງກ່າວໄດ້ສະໜອງສະໜາມແຮງທີ່ໜ້າລັງກຽດ ເພື່ອສ້າງແຮງດັນໃຫ້ກັບຫຸ່ນຍົນ ແລະຈຸດເປົ້າໝາຍແມ່ນສະໜອງສະໜາມແຮງໂນ້ມຖ່ວງເພື່ອສ້າງແຮງໂນ້ມຖ່ວງໃຫ້ກັບຫຸ່ນຍົນ. ດ້ວຍວິທີນີ້, ມັນຄວບຄຸມການເຄື່ອນໄຫວຂອງຫຸ່ນຍົນພາຍໃຕ້ການລວມກັນຂອງ repulsion ແລະການດຶງດູດ.
ຊຸດ ROS ນີ້ແມ່ນການປັບປຸງໂດຍອີງໃສ່ວິທີການພາກສະຫນາມທີ່ມີທ່າແຮງທຽມ. ກ່ອນອື່ນ ໝົດ, ສູດການຄິດໄລ່ການສ້າງແມ່ນຄິດໄລ່ຄວາມໄວເສັ້ນແລະມຸມຂອງຜູ້ຕິດຕາມ Slave. ຫຼັງຈາກນັ້ນ, ມັນຈະເພີ່ມຫຼືຫຼຸດລົງຄວາມໄວເສັ້ນແລະມຸມຕາມຄວາມຕ້ອງການຫຼີກເວັ້ນອຸປະສັກ. ເມື່ອໄລຍະຫ່າງລະຫວ່າງຜູ້ຕິດຕາມ Slave ແລະອຸປະສັກແມ່ນໃກ້ຊິດ, ແຮງ repulsion ຂອງອຸປະສັກຕໍ່ກັບຜູ້ຕິດຕາມ Slave ແມ່ນຫຼາຍກວ່າ. ໃນ​ຂະ​ນະ​ດຽວ​ກັນ​, ການ​ປ່ຽນ​ແປງ​ຂອງ​ຄວາມ​ໄວ​ເສັ້ນ​ແລະ​ການ​ປ່ຽນ​ແປງ​ຄວາມ​ໄວ​ມຸມ​ແມ່ນ​ຫຼາຍ​ກວ່າ​. ເມື່ອອຸປະສັກເຂົ້າໃກ້ຕົວຜູ້ຕິດຕາມ Slave ຫຼາຍຂື້ນ, ການຢັບຢັ້ງຂອງອຸປະສັກຕໍ່ກັບຜູ້ຕິດຕາມ Slave ຈະໃຫຍ່ຂຶ້ນ (ການ repulsion ດ້ານໜ້າແມ່ນໃຫຍ່ທີ່ສຸດ ແລະ ການ repulsion ຂ້າງແມ່ນນ້ອຍທີ່ສຸດ). ດັ່ງນັ້ນ, ການປ່ຽນແປງຂອງຄວາມໄວເສັ້ນແລະຄວາມໄວເປັນລ່ຽມແມ່ນຫຼາຍກວ່າ. ໂດຍຜ່ານວິທີການພາກສະຫນາມທີ່ມີທ່າແຮງທຽມ, ມັນປັບປຸງການແກ້ໄຂໃນເວລາທີ່ຫຸ່ນຍົນສາມາດຢຸດເຊົາການຕອບສະຫນອງຕໍ່ຫນ້າອຸປະສັກ. ນີ້ຮັບໃຊ້ຈຸດປະສົງຂອງການຫຼີກເວັ້ນອຸປະສັກທີ່ດີກວ່າ.

ການຕັ້ງຄ່າການສື່ສານຫຼາຍຕົວແທນ

ການສື່ສານຫຼາຍຕົວແທນແມ່ນຫນຶ່ງໃນຂັ້ນຕອນທີ່ສໍາຄັນເພື່ອເຮັດສໍາເລັດການສ້າງຫຸ່ນຍົນຫຼາຍ. ໃນເວລາທີ່ຕໍາແຫນ່ງທີ່ກ່ຽວຂ້ອງຂອງຫຸ່ນຍົນຫຼາຍແມ່ນບໍ່ຮູ້, ຫຸ່ນຍົນຈໍາເປັນຕ້ອງແບ່ງປັນຂໍ້ມູນຂອງກັນແລະກັນໂດຍຜ່ານການສື່ສານເພື່ອອໍານວຍຄວາມສະດວກໃນການສ້າງການເຊື່ອມຕໍ່. ສະຖາປັດຕະຍະກໍາທີ່ແຈກຢາຍ ROS ແລະການສື່ສານເຄືອຂ່າຍມີອໍານາດຫຼາຍ. ມັນບໍ່ພຽງແຕ່ສະດວກສໍາລັບການສື່ສານລະຫວ່າງຂະບວນການ, ແຕ່ຍັງສໍາລັບການສື່ສານລະຫວ່າງອຸປະກອນທີ່ແຕກຕ່າງກັນ. ຜ່ານ​ການ​ສື່​ສານ​ເຄືອ​ຂ່າຍ​, nodes ທັງ​ຫມົດ​ສາ​ມາດ​ດໍາ​ເນີນ​ການ​ໃນ​ຄອມ​ພິວ​ເຕີ​ໃດ​ຫນຶ່ງ​. ວຽກງານຕົ້ນຕໍເຊັ່ນການປຸງແຕ່ງຂໍ້ມູນແມ່ນສໍາເລັດໃນດ້ານເຈົ້າພາບ. ເຄື່ອງສໍາລອງແມ່ນຮັບຜິດຊອບສໍາລັບການໄດ້ຮັບຂໍ້ມູນສິ່ງແວດລ້ອມເກັບກໍາໂດຍເຊັນເຊີຕ່າງໆ. ເຈົ້າພາບຢູ່ທີ່ນີ້ແມ່ນຜູ້ຈັດການທີ່ດໍາເນີນການ Master node ໃນ ROS. ກອບການຕິດຕໍ່ສື່ສານຫຼາຍຕົວແທນໃນປະຈຸບັນແມ່ນຜ່ານຕົວຈັດການ node ແລະຕົວຈັດການພາລາມິເຕີເພື່ອຈັດການການສື່ສານລະຫວ່າງຫຼາຍຫຸ່ນຍົນ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (1)

ຂັ້ນຕອນການຕັ້ງຄ່າການສື່ສານຫຼາຍຕົວແທນ

  • ຕັ້ງຄ່າການຄວບຄຸມ ROS ໃນເຄືອຂ່າຍດຽວກັນ
    • ມີ 2 ວິທີການຕັ້ງຄ່າ Master/Slave ROS Controls ພາຍໃຕ້ເຄືອຂ່າຍດຽວກັນ.

ທາງເລືອກ 1:

Master Host ສ້າງ wifi ທ້ອງຖິ່ນໂດຍການແລ່ນ Master node manager. ໂດຍທົ່ວໄປແລ້ວ, ຫນຶ່ງໃນຫຸ່ນຍົນທີ່ຖືກກໍານົດເປັນແມ່ບົດສ້າງເຄືອຂ່າຍ wifi ນີ້. ຫຸ່ນຍົນ ຫຼືເຄື່ອງ virtual ອື່ນໆເຂົ້າຮ່ວມເຄືອຂ່າຍ wifi ນີ້ເປັນສໍາລອງ.

ຕົວເລືອກ 2:

ເຄືອຂ່າຍ wifi ທ້ອງຖິ່ນແມ່ນສະຫນອງໃຫ້ໂດຍ router ພາກສ່ວນທີສາມເປັນສູນ relay ຂໍ້ມູນຂ່າວສານ. ຫຸ່ນຍົນທັງຫມົດແມ່ນເຊື່ອມຕໍ່ກັບ router ດຽວກັນ. ເຣົາເຕີຍັງສາມາດໃຊ້ໄດ້ໂດຍບໍ່ຕ້ອງເຊື່ອມຕໍ່ອິນເຕີເນັດ. ເລືອກຫນຶ່ງຂອງຫຸ່ນຍົນເປັນແມ່ບົດແລະດໍາເນີນການ Master node manager. ຫຸ່ນຍົນອື່ນໆແມ່ນຖືກກໍານົດເປັນສໍາລອງແລະດໍາເນີນການຈັດການ master node ຈາກແມ່ບົດ.
ການຕັດສິນໃຈທີ່ຈະເລືອກທາງເລືອກແມ່ນຂຶ້ນກັບຄວາມຕ້ອງການຂອງໂຄງການຂອງທ່ານ. ຖ້າຈໍານວນຫຸ່ນຍົນທີ່ຕ້ອງການສື່ສານບໍ່ແມ່ນຈໍານວນຫຼວງຫຼາຍ, ທາງເລືອກ 1 ແມ່ນແນະນໍາເພາະວ່າມັນປະຫຍັດຄ່າໃຊ້ຈ່າຍແລະງ່າຍຕໍ່ການຕັ້ງຄ່າ. ເມື່ອຈໍານວນຫຸ່ນຍົນຢູ່ໃນປະລິມານຫຼາຍ, ທາງເລືອກ 2 ແມ່ນແນະນໍາ. ຂໍ້ຈໍາກັດກ່ຽວກັບພະລັງງານຄອມພິວເຕີ້ຂອງການຄວບຄຸມຕົ້ນສະບັບ ROS ແລະແບນວິດ wifi ເທິງເຮືອທີ່ຈໍາກັດສາມາດເຮັດໃຫ້ຄວາມລ່າຊ້າແລະເຄືອຂ່າຍລົບກວນໄດ້ຢ່າງງ່າຍດາຍ. Router ສາມາດແກ້ໄຂບັນຫາເຫຼົ່ານີ້ໄດ້ຢ່າງງ່າຍດາຍ. ກະລຸນາຮັບຊາບວ່າໃນເວລາທີ່ປະຕິບັດການສື່ສານຫຼາຍຕົວແທນ, ຖ້າເຄື່ອງ virtual ຖືກນໍາໃຊ້ເປັນ slave ROS, ຮູບແບບເຄືອຂ່າຍຂອງມັນຈໍາເປັນຕ້ອງຖືກຕັ້ງເປັນໂຫມດຂົວ.

ຕັ້ງຄ່າຕົວແປສະພາບແວດລ້ອມ Master/Slave

ຫຼັງຈາກທີ່ແມ່ບົດ ROS ທັງຫມົດແມ່ນຢູ່ໃນເຄືອຂ່າຍດຽວກັນ, ຕົວແປສະພາບແວດລ້ອມສໍາລັບການສື່ສານຫຼາຍຕົວແທນຈໍາເປັນຕ້ອງໄດ້ຖືກກໍານົດ. ຕົວແປສະພາບແວດລ້ອມນີ້ແມ່ນຖືກຕັ້ງຄ່າຢູ່ໃນໄຟລ໌ .bashrc ໃນໄດເລກະທໍລີຫຼັກ. ດໍາເນີນການຄໍາສັ່ງ gedit ~/.bashrc ເພື່ອເປີດໃຊ້ມັນ. ກະ​ລຸ​ນາ​ສັງ​ເກດ​ວ່າ​ທັງ​ໄຟລ​໌ .bashrc ຂອງ​ນາຍ​ແລະ​ສໍາ​ລອງ​ໃນ​ການ​ສື່​ສານ​ຫຼາຍ​ຕົວ​ແທນ​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ປັບ​ຕັ້ງ​. ສິ່ງທີ່ຕ້ອງປ່ຽນແປງແມ່ນທີ່ຢູ່ IP ໃນຕອນທ້າຍຂອງໄຟລ໌. ສອງແຖວແມ່ນ ROS_MASTER_URI ແລະ ROS_HOSTNAME, ດັ່ງທີ່ສະແດງໃນຮູບ 2-1-4. ROS_MASTER_URI ແລະ ROS_HOSTNAME ຂອງໂຮສ ROS ແມ່ນທັງສອງ IP ທ້ອງຖິ່ນ. ROS_MASTER_URI ໃນໄຟລ໌ ROS .bashrc ຈໍາເປັນຕ້ອງຖືກປ່ຽນເປັນທີ່ຢູ່ IP ຂອງເຈົ້າພາບໃນຂະນະທີ່ ROS_HOSTNAME ຍັງຄົງເປັນທີ່ຢູ່ IP ທ້ອງຖິ່ນ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (2)

ການສື່ສານຫຼາຍເຄື່ອງຈັກ ROS ບໍ່ໄດ້ຖືກຈຳກັດໂດຍລຸ້ນ ROS. ໃນຂະບວນການຂອງການສື່ສານຫຼາຍເຄື່ອງຈັກ, ຫນຶ່ງຄວນຈະຮູ້ດັ່ງຕໍ່ໄປນີ້:

  1. ການເຮັດວຽກຂອງໂຄງການ ROS slave ແມ່ນຂຶ້ນກັບໂປຣແກຣມຕົ້ນສະບັບ ROS ຂອງອຸປະກອນຕົ້ນສະບັບ ROS. ໂປລແກລມຕົ້ນສະບັບ ROS ຕ້ອງເປີດຕົວຄັ້ງທໍາອິດໃນອຸປະກອນຕົ້ນສະບັບກ່ອນທີ່ຈະດໍາເນີນການໂຄງການ slave ໃນອຸປະກອນ slave.
  2. ທີ່ຢູ່ IP ຂອງເຄື່ອງແມ່ບົດແລະເຄື່ອງສໍາລອງໃນການສື່ສານຫຼາຍເຄື່ອງຈັກຈໍາເປັນຕ້ອງຢູ່ໃນເຄືອຂ່າຍດຽວກັນ. ນີ້ຫມາຍຄວາມວ່າທີ່ຢູ່ IP ແລະ subnet mask ແມ່ນຢູ່ພາຍໃຕ້ເຄືອຂ່າຍດຽວກັນ.
  3. ROS_HOSTNAME ໃນໄຟລ໌ການຕັ້ງຄ່າສະພາບແວດລ້ອມ .bashrc ບໍ່ໄດ້ຖືກແນະນໍາໃຫ້ໃຊ້ localhost. ແນະນໍາໃຫ້ໃຊ້ທີ່ຢູ່ IP ສະເພາະ.
  4. ໃນ​ກໍ​ລະ​ນີ​ທີ່​ຢູ່ IP ຂອງ slave ບໍ່​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​ຢ່າງ​ຖືກ​ຕ້ອງ​, ອຸ​ປະ​ກອນ​ສໍາ​ລັບ​ການ​ຍັງ​ສາ​ມາດ​ເຂົ້າ​ເຖິງ ROS master ແຕ່​ບໍ່​ສາ​ມາດ​ປ້ອນ​ຂໍ້​ມູນ​ການ​ຄວບ​ຄຸມ​.
  5. ຖ້າເຄື່ອງ virtual ເຂົ້າຮ່ວມໃນການສື່ສານຫຼາຍຕົວແທນ, ຮູບແບບເຄືອຂ່າຍຂອງມັນຈໍາເປັນຕ້ອງຖືກຕັ້ງເປັນໂຫມດຂົວ. ບໍ່ສາມາດເລືອກ IP ແບບຄົງທີ່ສຳລັບການເຊື່ອມຕໍ່ເຄືອຂ່າຍໄດ້.
  6. ການສື່ສານຫຼາຍເຄື່ອງບໍ່ສາມາດ view ຫຼືຈອງຫົວຂໍ້ຂອງປະເພດຂໍ້ມູນຂໍ້ຄວາມທີ່ບໍ່ມີຢູ່ໃນທ້ອງຖິ່ນ.
  7. ທ່ານສາມາດນໍາໃຊ້ການສາທິດການຈໍາລອງເຕົ່ານ້ອຍເພື່ອກວດສອບວ່າການສື່ສານລະຫວ່າງຫຸ່ນຍົນປະສົບຜົນສໍາເລັດຫຼືບໍ່:
    • a. ແລ່ນຈາກແມ່ບົດ
      • ຄະແນນ #ເປີດບໍລິການ ROS
      • rostrum turtles turtlesim_node #launch turtles interface
    • b. ແລ່ນອອກຈາກສໍາລອງ
      • rerun turtles turtle_teleop_key #launch keyboard control node ສໍາລັບເຕົ່າ

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ສາ​ມາດ​ຈັດ​ການ​ເຄື່ອນ​ໄຫວ​ເຕົ່າ​ຈາກ​ແປ້ນ​ພິມ​ກ່ຽວ​ກັບ​ສໍາ​ລອງ​ໄດ້​, ມັນ​ຫມາຍ​ຄວາມ​ວ່າ​ການ​ສື່​ສານ​ແມ່​ບົດ / ສໍາ​ລອງ​ໄດ້​ຮັບ​ການ​ສ້າງ​ຕັ້ງ​ຂຶ້ນ​ຢ່າງ​ສໍາ​ເລັດ​ຜົນ​.

ການເຊື່ອມຕໍ່ Wifi ອັດຕະໂນມັດໃນ ROS

ຂັ້ນຕອນຂ້າງລຸ່ມນີ້ອະທິບາຍວິທີການກໍານົດຫຸ່ນຍົນເພື່ອເຊື່ອມຕໍ່ອັດຕະໂນມັດກັບເຄືອຂ່າຍໂຮດຫຼືເຄືອຂ່າຍ router.

ການ​ຕິດ​ຕັ້ງ​ການ​ເຊື່ອມ​ຕໍ່ wifi ອັດ​ຕະ​ໂນ​ມັດ​ສໍາ​ລັບ Jetson Nano​

  1. ເຊື່ອມຕໍ່ Jetson Nano ຜ່ານເຄື່ອງມືໄລຍະໄກ VNC ຫຼືໂດຍກົງກັບຫນ້າຈໍຄອມພິວເຕີ. ຄລິກທີ່ໄອຄອນ wifi ຢູ່ມຸມຂວາເທິງ ຈາກນັ້ນຄລິກ “ແກ້ໄຂການເຊື່ອມຕໍ່..”ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (3)
  2. ຄລິກປຸ່ມ + ໃນການເຊື່ອມຕໍ່ເຄືອຂ່າຍ:ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (4)
  3. ພາຍໃຕ້ປ່ອງຢ້ຽມ "ເລືອກປະເພດການເຊື່ອມຕໍ່", ໃຫ້ຄລິກໃສ່ເມນູເລື່ອນລົງແລະກົດປຸ່ມ "ສ້າງ ... ":ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (5)
  4. ໃນກະດານຄວບຄຸມ, ໃຫ້ຄລິກໃສ່ຕົວເລືອກ Wifi. ໃສ່ຊື່ Wifil ເພື່ອເຊື່ອມຕໍ່ໃນ “ຊື່ການເຊື່ອມຕໍ່” ແລະຊ່ອງຂໍ້ມູນ SSID. ເລືອກ "ລູກຄ້າ" ໃນເມນູແບບເລື່ອນລົງ "ຮູບແບບ" ແລະເລືອກ "wlan0" ໃນເມນູເລື່ອນລົງ "ອຸປະກອນ".ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (6)
  5. ໃນກະດານຄວບຄຸມ, ໃຫ້ຄລິກໃສ່ຕົວເລືອກ "ທົ່ວໄປ" ແລະກວດເບິ່ງ "ເຊື່ອມຕໍ່ເຄືອຂ່າຍນີ້ໂດຍອັດຕະໂນມັດ ... ". ກໍານົດບູລິມະສິດການເຊື່ອມຕໍ່ເປັນ 1 ໃນທາງເລືອກ "ບູລິມະສິດການເຊື່ອມຕໍ່ສໍາລັບການເປີດໃຊ້ອັດຕະໂນມັດ". ກວດເບິ່ງຕົວເລືອກ “ຜູ້ໃຊ້ທັງໝົດອາດຈະເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍນີ້”. ເມື່ອຕົວເລືອກຖືກຕັ້ງເປັນ 0 ໃນ "ບູລິມະສິດການເຊື່ອມຕໍ່ສໍາລັບການເປີດໃຊ້ອັດຕະໂນມັດ" ສໍາລັບ wifi ອື່ນໆ, ນີ້ຫມາຍຄວາມວ່ານີ້ແມ່ນເຄືອຂ່າຍ wifi ທີ່ຕ້ອງການໃນອະດີດ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (7)
  6. ໃຫ້ຄລິກໃສ່ "ຄວາມປອດໄພ Wi-Fi" ທາງເລືອກໃນກະດານຄວບຄຸມ. ເລືອກ "WPA & WPA2 ສ່ວນບຸກຄົນ" ໃນຊ່ອງ "ຄວາມປອດໄພ". ຫຼັງຈາກນັ້ນ, ໃສ່ລະຫັດຜ່ານ Wifi ໃນຊ່ອງ "ລະຫັດຜ່ານ".ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (8)

ໝາຍເຫດ: ຖ້າຫຸ່ນຍົນບໍ່ສາມາດເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍ wifi ໂດຍອັດຕະໂນມັດຫຼັງຈາກເປີດເຄື່ອງເມື່ອບູລິມະສິດ wifi ຖືກຕັ້ງເປັນ 0, ມັນອາດຈະເກີດຈາກບັນຫາຂອງສັນຍານ wifi ທີ່ອ່ອນແອ. ເພື່ອຫຼີກເວັ້ນບັນຫານີ້, ທ່ານສາມາດເລືອກທີ່ຈະລຶບຕົວເລືອກ wifi ທັງຫມົດທີ່ເຊື່ອມຕໍ່ໃນອະດີດ. ພຽງແຕ່ຮັກສາເຄືອຂ່າຍ wifi ທີ່ສ້າງໂດຍເຈົ້າພາບຫຼື router. ຄລິກຕົວເລືອກ “ການຕັ້ງຄ່າ IPv4” ໃນແຜງຄວບຄຸມການຕັ້ງຄ່າເຄືອຂ່າຍ. ເລືອກຕົວເລືອກ "ຄູ່ມື" ໃນຊ່ອງ "ວິທີການ". ຫຼັງຈາກນັ້ນ, ໃຫ້ຄລິກໃສ່ "ຕື່ມ", ຕື່ມໃສ່ທີ່ຢູ່ IP ຂອງເຄື່ອງສໍາລອງໃນຊ່ອງ "ທີ່ຢູ່". ຕື່ມໃສ່ "24" ໃນຊ່ອງ "Netmask". ຕື່ມຂໍ້ມູນໃສ່ພາກສ່ວນເຄືອຂ່າຍ IP ໃນ “Gateway”. ປ່ຽນສາມຕົວເລກສຸດທ້າຍຂອງພາກສ່ວນເຄືອຂ່າຍ IP ເປັນ “1”. ຈຸດປະສົງຕົ້ນຕໍຂອງຂັ້ນຕອນນີ້ແມ່ນການແກ້ໄຂທີ່ຢູ່ IP. ຫຼັງ​ຈາກ​ນີ້​ສໍາ​ເລັດ​ເປັນ​ຄັ້ງ​ທໍາ​ອິດ​, ທີ່​ຢູ່ IP ຈະ​ບໍ່​ມີ​ການ​ປ່ຽນ​ແປງ​ໃນ​ເວ​ລາ​ທີ່​ການ​ເຊື່ອມ​ຕໍ່​ກັບ WIFI ດຽວ​ກັນ​ຕໍ່​ມາ​.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (9)

ຫຼັງຈາກການຕັ້ງຄ່າທັງຫມົດ, ໃຫ້ຄລິກໃສ່ "ບັນທຶກ" ເພື່ອບັນທຶກການຕັ້ງຄ່າ. ຫຼັງຈາກການບັນທຶກສົບຜົນສໍາເລັດ, ຫຸ່ນຍົນຈະເຊື່ອມຕໍ່ອັດຕະໂນມັດກັບເຄືອຂ່າຍຂອງເຈົ້າພາບຫຼື router ເມື່ອມັນເປີດ.

ໝາຍເຫດ:

  1. ທີ່​ຢູ່ IP ທີ່​ຕັ້ງ​ຢູ່​ນີ້​ຕ້ອງ​ຄື​ກັນ​ກັບ​ທີ່​ຢູ່ IP ທີ່​ຕັ້ງ​ໄວ້​ໃນ​ໄຟລ​໌ .bashrc ໃນ​ພາກ​ທີ 2.1.
  2. ທີ່ຢູ່ IP ຂອງແມ່ບົດແລະສໍາລອງແຕ່ລະຄົນຕ້ອງເປັນເອກະລັກ.
  3. ທີ່ຢູ່ IP ຂອງແມ່ບົດ ແລະ slave ຈໍາເປັນຕ້ອງຢູ່ໃນພາກສ່ວນເຄືອຂ່າຍດຽວກັນ.
  4. ທ່ານ​ຕ້ອງ​ລໍ​ຖ້າ​ໃຫ້​ເຈົ້າ​ພາບ​ຫຼື router ສົ່ງ​ສັນ​ຍານ WiFi ອອກ​ກ່ອນ​ທີ່​ຫຸ່ນ​ຍົນ​ສໍາ​ລັບ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ເປີດ​ແລະ​ເຊື່ອມ​ຕໍ່​ອັດ​ຕະ​ໂນ​ມັດ​ກັບ​ເຄືອ​ຂ່າຍ WiFi​.
  5. ຫຼັງ​ຈາກ​ການ​ຕັ້ງ​ຄ່າ​ໄດ້​ຖືກ​ກໍາ​ນົດ​ໄວ້​, ຖ້າ​ຫາກ​ວ່າ​ຫຸ່ນ​ຍົນ​ບໍ່​ສາ​ມາດ​ເຊື່ອມ​ຕໍ່​ກັບ WiFi ອັດ​ຕະ​ໂນ​ມັດ​ໃນ​ເວ​ລາ​ທີ່​ມັນ​ເປີດ​, ກະ​ລຸ​ນາ​ສຽບ​ແລະ​ຖອດ​ບັດ​ເຄືອ​ຂ່າຍ​ແລະ​ພະ​ຍາ​ຍາມ​ເຊື່ອມ​ຕໍ່​ອີກ​ເທື່ອ​ຫນຶ່ງ​.

ການຕັ້ງຄ່າການເຊື່ອມຕໍ່ Wifin ອັດຕະໂນມັດສໍາລັບ Raspberry Pi

ຂັ້ນຕອນສໍາລັບ Raspberry Pi ແມ່ນຄືກັນກັບ Jetson Nano.

ການ​ຕິດ​ຕັ້ງ​ການ​ເຊື່ອມ​ຕໍ່ wifi ອັດ​ຕະ​ໂນ​ມັດ​ສໍາ​ລັບ Jetson TX1​

ການຕິດຕັ້ງໃນ Jetson TX1 ແມ່ນເກືອບຄືກັນກັບໃນ Jetson Nano ໂດຍມີຂໍ້ຍົກເວັ້ນຫນຶ່ງ Jetson TX1 ຄວນເລືອກອຸປະກອນຂອງ "wlan1" ໃນ "ອຸປະກອນ" ໃນແຜງຄວບຄຸມການຕັ້ງຄ່າເຄືອຂ່າຍ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (10)

ການຕັ້ງຄ່າການຊິ້ງຂໍ້ມູນຫຼາຍຕົວແທນ

ໃນໂຄງການການສ້າງຕົວແທນຫຼາຍ, ການຕັ້ງຄ່າການ synchronization ເວລາຫຼາຍຕົວແທນແມ່ນເປັນຂັ້ນຕອນທີ່ສໍາຄັນ. ໃນຂະບວນການສ້າງຕັ້ງ, ບັນຫາຈໍານວນຫຼາຍຈະເກີດຂຶ້ນເນື່ອງຈາກເວລາຂອງລະບົບ asynchronous ຂອງຫຸ່ນຍົນແຕ່ລະຄົນ. ການ synchronization ທີ່ໃຊ້ເວລາຫຼາຍຕົວແທນແບ່ງອອກເປັນສອງສະຖານະການ, ຄື, ສະຖານະການທີ່ທັງສອງຕົ້ນສະບັບແລະສໍາລອງຫຸ່ນຍົນແມ່ນເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍແລະສະຖານະການທີ່ທັງສອງໄດ້ຖືກຕັດການເຊື່ອມຕໍ່ຈາກເຄືອຂ່າຍ.

ສຳເລັດການເຊື່ອມຕໍ່ເຄືອຂ່າຍແມ່ບົດ/ທາດ

ຫຼັງ​ຈາກ​ການ​ຕິດ​ຕັ້ງ​ການ​ສື່​ສານ​ຫຼາຍ​ຕົວ​ແທນ​, ຖ້າ​ຫາກ​ວ່າ​ເຄື່ອງ​ແມ່​ບົດ​ແລະ​ສໍາ​ລອງ​ສາ​ມາດ​ເຊື່ອມ​ຕໍ່​ກັບ​ເຄືອ​ຂ່າຍ​ສົບ​ຜົນ​ສໍາ​ເລັດ​, ພວກ​ເຂົາ​ເຈົ້າ​ຈະ synchronize ເວ​ລາ​ເຄືອ​ຂ່າຍ​ອັດ​ຕະ​ໂນ​ມັດ​. ໃນກໍລະນີນີ້, ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການເພີ່ມເຕີມເພື່ອບັນລຸການ synchronization ທີ່ໃຊ້ເວລາ.

ການ​ແກ້​ໄຂ​ບັນ​ຫາ​ການ​ຕັດ​ການ​ເຊື່ອມ​ຕໍ່​ເຄືອ​ຂ່າຍ​

ຫຼັງ​ຈາກ​ການ​ຕິດ​ຕັ້ງ​ການ​ສື່​ສານ​ຫຼາຍ​ຕົວ​ແທນ​, ຖ້າ​ຫາກ​ວ່າ​ອຸ​ປະ​ກອນ​ແມ່​ບົດ​ແລະ​ສໍາ​ລອງ​ບໍ່​ສາ​ມາດ​ສໍາ​ເລັດ​ການ​ເຊື່ອມ​ຕໍ່​ກັບ​ເຄືອ​ຂ່າຍ​, ມັນ​ຈໍາ​ເປັນ​ຕ້ອງ synchronize ເວ​ລາ​ດ້ວຍ​ຕົນ​ເອງ​. ພວກເຮົາຈະໃຊ້ຄໍາສັ່ງວັນທີເພື່ອເຮັດສໍາເລັດການຕັ້ງຄ່າເວລາ.

ທໍາອິດ, ຕິດຕັ້ງເຄື່ອງມື terminator. ຈາກເຄື່ອງມື terminator, ໃຊ້ເຄື່ອງມືແຍກປ່ອງຢ້ຽມເພື່ອວາງ terminals ການຄວບຄຸມຂອງແມ່ບົດແລະ slave ເຂົ້າໄປໃນປ່ອງຢ້ຽມ terminal ດຽວກັນ (ຄລິກຂວາເພື່ອກໍານົດປ່ອງຢ້ຽມແບ່ງອອກ, ແລະເຂົ້າສູ່ລະບົບ master ແລະ slave machines ໂດຍ ssh ໃນປ່ອງຢ້ຽມທີ່ແຕກຕ່າງກັນ) .

  • sudo apt-get install terminator # ດາວໂຫລດ terminator ເພື່ອແຍກປ່ອງຢ້ຽມ terminal

ຄລິກທີ່ປຸ່ມເທິງຊ້າຍ, ເລືອກຕົວເລືອກ [ອອກອາກາດທັງໝົດ]/[ອອກອາກາດທັງໝົດ], ແລະໃສ່ຄຳສັ່ງຕໍ່ໄປນີ້. ຫຼັງຈາກນັ້ນ, ໃຊ້ເຄື່ອງມື terminator ເພື່ອກໍານົດເວລາດຽວກັນສໍາລັບແມ່ບົດແລະສໍາລອງ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (11)

  • sudo date -s “2022-01-30 15:15:00” # ການຕັ້ງຄ່າເວລາດ້ວຍຕົນເອງ

ການຫຸ້ມຫໍ່ ROS ຫຼາຍຕົວແທນ

ການແນະນຳຊຸດ ROS

ຕັ້ງຊື່ສໍາລອງ

ໃນຊຸດຟັງຊັນ wheeltec_multi, ມັນຈໍາເປັນຕ້ອງຕັ້ງຊື່ສະເພາະສໍາລັບຫຸ່ນຍົນສໍາລອງແຕ່ລະຄົນເພື່ອຫຼີກເວັ້ນຄວາມຜິດພາດ. ຕົວຢ່າງample, ໝາຍເລກ 1 ສຳລັບ slave1 ແລະ ໝາຍເລກ 2 ສຳລັບ slave2, ແລະ ອື່ນໆ. ຈຸດປະສົງຂອງການຕັ້ງຊື່ທີ່ແຕກຕ່າງກັນແມ່ນເພື່ອຈັດກຸ່ມ nodes ແລ່ນ ແລະຈຳແນກພວກມັນດ້ວຍ namespaces ທີ່ແຕກຕ່າງກັນ. ຕົວຢ່າງample, ຫົວຂໍ້ radar ຂອງ slave 1 ແມ່ນ/slave1/scan, ແລະ LiDAR node ຂອງ slave 1 ແມ່ນ/slave1/laser.

ຕັ້ງຄ່າພິກັດສໍາລອງ

ແພັກເກດ wheeltec_multi ສາມາດປະຕິບັດຮູບແບບທີ່ກໍາຫນົດເອງໄດ້. ໃນເວລາທີ່ຮູບແບບທີ່ແຕກຕ່າງກັນແມ່ນຕ້ອງການ, ພຽງແຕ່ແກ້ໄຂຈຸດປະສານງານທີ່ຕ້ອງການຂອງຫຸ່ນຍົນສໍາລອງ. Slave_x ແລະ slave_y ແມ່ນຈຸດປະສານງານ x ແລະ y ຂອງ slave ໂດຍມີແມ່ບົດເປັນຈຸດອ້າງອີງຕົ້ນສະບັບ. ດ້ານຫນ້າຂອງແມ່ບົດແມ່ນທິດທາງບວກຂອງຈຸດປະສານງານ x, ແລະດ້ານຊ້າຍແມ່ນທິດທາງບວກຂອງຈຸດປະສານງານ y. ຫຼັງ​ຈາກ​ການ​ຕັ້ງ​ຄ່າ​ສໍາ​ເລັດ​ສົມ​ບູນ​, TF coordinate slave1 ຈະ​ຖືກ​ອອກ​ເປັນ​ພິ​ກັດ​ຄາດ​ວ່າ​ຈະ​ສໍາ​ລັບ​ສໍາ​ລັບ​ການ​. ຖ້າ​ຫາກ​ວ່າ​ມີ​ນາຍ​ຫນຶ່ງ​ແລະ​ສໍາ​ລອງ​ສອງ​, ການ​ສ້າງ​ຕັ້ງ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ສາ​ມາດ​ກໍາ​ນົດ​ໄດ້​:

  1. ການສ້າງຕາມແນວນອນ: ທ່ານສາມາດກໍານົດຈຸດປະສານງານຂອງ slave ເບື້ອງຊ້າຍເປັນ slave_x:0, slave_y: 0.8, ແລະຈຸດປະສານງານຂອງ slave ທາງດ້ານຂວາເປັນ slave_x:0, slave_y:-0.8.
  2. ການສ້າງຖັນ: ຈຸດປະສານງານຂອງ slave ໜຶ່ງສາມາດຕັ້ງເປັນ: slave_x:-0.8, slave_y:0, ແລະຈຸດປະສານງານຂອງ slave ອື່ນໆສາມາດຕັ້ງເປັນ: slave_x:-1.8, slave_y:0.
  3. ການສ້າງຮູບສາມລ່ຽມ: ຈຸດປະສານງານຂອງ slave ໜຶ່ງສາມາດຕັ້ງເປັນ: slave_x:-0.8, slave_y: 0.8, ແລະຈຸດປະສານງານຂອງ slave ອື່ນໆສາມາດຕັ້ງເປັນ: slave_x:-0.8, slave_y:-0.8.

ຮູບແບບອື່ນໆສາມາດໄດ້ຮັບການປັບແຕ່ງຕາມຄວາມຕ້ອງການ.

ໝາຍເຫດ:

  • ໄລຍະຫ່າງທີ່ແນະນໍາລະຫວ່າງສອງຫຸ່ນຍົນແມ່ນຖືກກໍານົດເປັນ 0.8, ແລະແນະນໍາໃຫ້ບໍ່ຕໍ່າກວ່າ 0.6. ໄລ​ຍະ​ຫ່າງ​ລະ​ຫວ່າງ​ສໍາ​ລອງ​ແລະ​ນາຍ​ແມ່ນ​ແນະ​ນໍາ​ໃຫ້​ໄດ້​ຮັບ​ການ​ກໍາ​ນົດ​ຂ້າງ​ລຸ່ມ​ນີ້ 2.0​. ມັນໄກຈາກນາຍໃຫຍ່ເທົ່າໃດ, ຄວາມໄວເສັ້ນຊື່ຂອງທາດແມ່ນຍິ່ງຂຶ້ນເມື່ອນາຍກຳລັງຫັນ. ເນື່ອງຈາກການຈໍາກັດຄວາມໄວສູງສຸດ, ຄວາມໄວຂອງທາດຈະ deviate ຖ້າມັນບໍ່ຕອບສະຫນອງຄວາມຕ້ອງການ. ການສ້າງຫຸ່ນຍົນຈະກາຍເປັນ chaotic.

ການເລີ່ມຕົ້ນຂອງຕໍາແຫນ່ງສໍາລອງ

  1. ຕໍາແຫນ່ງເບື້ອງຕົ້ນຂອງສໍາລອງແມ່ນຢູ່ໃນຈຸດປະສານງານທີ່ຄາດໄວ້ໂດຍຄ່າເລີ່ມຕົ້ນ. ກ່ອນທີ່ຈະດໍາເນີນການໂຄງການ, ພຽງແຕ່ວາງຫຸ່ນຍົນສໍາລອງຢູ່ໃກ້ກັບຈຸດປະສານງານທີ່ຄາດວ່າຈະສໍາເລັດການເລີ່ມຕົ້ນ. ຟັງຊັນນີ້ຖືກປະຕິບັດໂດຍ pose_setter node ໃນໄຟລ໌ທີ່ມີຊື່ turn_on_wheeltec_robot.launch ໃນຊຸດ wheeltec_multi, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 4-1-3.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (12)

ຖ້າຜູ້ໃຊ້ຕ້ອງການປັບແຕ່ງຕໍາແຫນ່ງເບື້ອງຕົ້ນຂອງ slave, ລາວພຽງແຕ່ຕ້ອງການກໍານົດຄ່າ slave_x ແລະ slave_y ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 4-1-4 ໃນ wheeltec_slave.launch. ຄ່າ slave_x ແລະ slave_y ຈະຖືກສົ່ງກັບ turn_on_wheeltec_robot.launch ແລະມອບໝາຍໃຫ້ pose_setter node. ພຽງແຕ່ວາງຫຸ່ນຍົນຢູ່ໃນຕໍາແຫນ່ງທີ່ກໍາຫນົດເອງກ່ອນທີ່ຈະດໍາເນີນການໂຄງການ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (13)

ການ​ຕັ້ງ​ຄ່າ​ຕໍາ​ແຫນ່ງ​

ໃນ​ການ​ສ້າງ​ຕົວ​ແທນ​ຫຼາຍ​ຕົວ, ບັນ​ຫາ​ທໍາ​ອິດ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​ແມ່ນ​ການ​ຕໍາ​ແຫນ່ງ​ຂອງ​ນາຍ​ແລະ​ສໍາ​ລອງ. ແມ່ບົດຈະສ້າງແຜນທີ່ 2D ກ່ອນ. ຫຼັງຈາກສ້າງ ແລະບັນທຶກແຜນທີ່ແລ້ວ, ເປີດໃຊ້ແພັກເກັດການນໍາທາງ 2D ແລະໃຊ້ສູດການຕັ້ງຕໍາແຫນ່ງຂອງ Monte Carlo ທີ່ສາມາດປັບຕົວໄດ້ (ການຈັດຕໍາແໜ່ງ amcl) ໃນຊຸດການນໍາທາງ 2D ເພື່ອກໍານົດຕໍາແຫນ່ງຂອງແມ່ບົດ. ເນື່ອງຈາກແມ່ບົດແລະສໍາລອງຢູ່ໃນເຄືອຂ່າຍດຽວກັນແລະແບ່ງປັນຜູ້ຈັດການ node ດຽວກັນ, ແມ່ບົດໄດ້ເປີດຕົວແຜນທີ່ຈາກຊຸດການນໍາທາງ 2D, ສໍາລອງທັງຫມົດສາມາດນໍາໃຊ້ແຜນທີ່ດຽວກັນພາຍໃຕ້ຜູ້ຈັດການ node ດຽວກັນ. ດັ່ງນັ້ນ, ຂ້າໃຊ້ບໍ່ຈໍາເປັນຕ້ອງສ້າງແຜນທີ່. ໃນ wheeltec_slave.launch, ແລ່ນ Monte Carlo positioning (amcl positioning), slaves ສາມາດ configure ຕຳແໜ່ງຂອງເຂົາເຈົ້າໄດ້ໂດຍໃຊ້ແຜນທີ່ທີ່ສ້າງໂດຍ master.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (14)

ວິທີການສ້າງການສ້າງແລະຮັກສາການສ້າງຕັ້ງ

ໃນຂະບວນການຂອງການເຄື່ອນໄຫວການສ້າງຕັ້ງ, ການເຄື່ອນໄຫວຕົ້ນສະບັບສາມາດໄດ້ຮັບການຄວບຄຸມໂດຍ Rviz, keyboard, ການຄວບຄຸມໄລຍະໄກ, ແລະວິທີການອື່ນໆ. ສໍາລອງຄິດໄລ່ຄວາມໄວຂອງມັນຜ່ານ node slave_tf_listener ເພື່ອຄວບຄຸມການເຄື່ອນໄຫວຂອງມັນແລະບັນລຸເປົ້າຫມາຍຂອງການສ້າງ. node slave_tf_listener ຈໍາກັດຄວາມໄວຂອງ slave ເພື່ອຫຼີກເວັ້ນຄວາມໄວຫຼາຍເກີນໄປໂດຍການຄິດໄລ່ node, ເຊິ່ງຈະເຮັດໃຫ້ເກີດຜົນກະທົບຫຼາຍຄັ້ງ. ຄ່າສະເພາະສາມາດຖືກແກ້ໄຂໄດ້ໃນ wheeltec_slave.launch.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (15)

ຕົວກໍານົດການທີ່ກ່ຽວຂ້ອງຂອງ algorithm ການສ້າງແມ່ນດັ່ງຕໍ່ໄປນີ້: ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (16)

ຂໍ້​ມູນ​ການ​ຫຼີກ​ເວັ້ນ​ອຸ​ປະ​ສັກ​

ໃນການສ້າງຕັ້ງຫຼາຍຕົວແທນ, ແມ່ບົດສາມາດນໍາໃຊ້ node move_base ເພື່ອເຮັດສໍາເລັດການຫຼີກເວັ້ນອຸປະສັກ. ຢ່າງໃດກໍ່ຕາມ, ການເລີ່ມຕົ້ນຂອງ slave ບໍ່ໄດ້ໃຊ້ node move_base. ໃນຈຸດນີ້, multi_avoidance node ຈໍາເປັນຕ້ອງຖືກເອີ້ນຢູ່ໃນໂຄງການ slave. ໂຫນດການຫຼີກລ່ຽງອຸປະສັກຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນໃນແພັກເກັດ. ຖ້າຈໍາເປັນ, ການຫຼີກລ່ຽງສາມາດຖືກຕັ້ງເປັນ "ຜິດ" ເພື່ອປິດການປິດການຫລີກລ່ຽງອຸປະສັກ. ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (17)

ບາງຕົວກໍານົດການທີ່ກ່ຽວຂ້ອງຂອງ node ການຫຼີກລ້ຽງອຸປະສັກແມ່ນສະແດງຢູ່ໃນຮູບຂ້າງລຸ່ມນີ້, ບ່ອນທີ່ safe_distance ແມ່ນຂອບເຂດຈໍາກັດໄລຍະທາງທີ່ປອດໄພຂອງອຸປະສັກ, ແລະອັນຕະລາຍ_distance ແມ່ນຂອບເຂດຈໍາກັດໄລຍະທາງອັນຕະລາຍ. ເມື່ອອຸປະສັກຢູ່ໃນໄລຍະທີ່ປອດໄພ ແລະໄລຍະທາງອັນຕະລາຍ, ຂ້າໃຊ້ຈະປັບຕຳແໜ່ງຂອງຕົນເພື່ອຫຼີກລ່ຽງອຸປະສັກ. ເມື່ອອຸປະສັກຢູ່ໃນອັນຕະລາຍ, ຂ້າໃຊ້ຈະຂັບໄລ່ອອກຈາກອຸປະສັກ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-FIG- (18)

ຂັ້ນຕອນການດໍາເນີນງານ

ໃສ່ຄໍາສັ່ງປະຕິບັດ

ການກະກຽມກ່ອນທີ່ຈະເລີ່ມຕົ້ນການສ້າງຕົວແທນຫຼາຍ:

  • ແມ່ບົດແລະທາດເຊື່ອມຕໍ່ເຄືອຂ່າຍດຽວກັນແລະຕັ້ງການສື່ສານຫຼາຍຕົວແທນຢ່າງຖືກຕ້ອງ
  • ແມ່ບົດສ້າງແຜນທີ່ 2D ລ່ວງຫນ້າແລະບັນທຶກມັນ
  • ແມ່ບົດຖືກຈັດໃສ່ຢູ່ຈຸດເລີ່ມຕົ້ນຂອງແຜນທີ່, ແລະທາດຖືກວາງຢູ່ໃກ້ກັບຕໍາແຫນ່ງເບື້ອງຕົ້ນ (ຕໍາແຫນ່ງການສ້າງສໍາລອງເລີ່ມຕົ້ນ)
  • ຫຼັງຈາກເຂົ້າສູ່ລະບົບ Jetson Nano/Raspberry Pi ໄລຍະໄກ, ດໍາເນີນການ synchronization ເວລາ.

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: ເປີດໂຫນດຄວບຄຸມແປ້ນພິມຈາກແມ່ແບບ ຫຼືໃຊ້ joystick ເພື່ອຄວບຄຸມການເຄື່ອນໄຫວແມ່ແບບຈາກໄລຍະໄກ.

ເປີດໃຊ້ wheeltec_robot_rc keyboard_teleop.launch ຄືນໃໝ່

  • ຂັ້ນຕອນທີ 4: (ທາງເລືອກ) ສັງເກດການເຄື່ອນໄຫວຂອງຫຸ່ນຍົນຈາກ Rviz.

rviz

ໝາຍເຫດ: 

  1. ໃຫ້ແນ່ໃຈວ່າເຮັດສໍາເລັດການປະຕິບັດການ synchronization ທີ່ໃຊ້ເວລາກ່ອນທີ່ຈະດໍາເນີນການໂຄງການ.
  2. ໃນ​ເວ​ລາ​ທີ່​ການ​ຄວບ​ຄຸມ​ແມ່​ບົດ​ຂອງ​ການ​ສ້າງ​ຕັ້ງ​ຕົວ​ແທນ​ຫຼາຍ​, ຄວາມ​ໄວ​ຂອງ​ມຸມ​ບໍ່​ຄວນ​ຈະ​ໄວ​ເກີນ​ໄປ​. ຄວາມໄວເສັ້ນທີ່ແນະນຳແມ່ນ 0.2m/s, ລະດັບຄວາມໄວເປັນລ່ຽມຕ່ຳກວ່າ 0.3rad/s. ເມື່ອ​ນາຍ​ກຳລັງ​ລ້ຽວ, ທາດ​ຢູ່​ໄກ​ຈາກ​ນາຍ​ຫຼາຍ​ເທົ່າ​ໃດ, ຄວາມ​ໄວ​ເສັ້ນ​ຊື່​ຈະ​ຫຼາຍ​ຂຶ້ນ. ເນື່ອງຈາກການຈໍາກັດຄວາມໄວເສັ້ນແລະຄວາມໄວເປັນລ່ຽມໃນຊຸດ, ເມື່ອລົດສໍາລອງບໍ່ສາມາດບັນລຸຄວາມໄວທີ່ກໍານົດໄວ້, ການສ້າງຕັ້ງຈະ chaotic. ໂດຍລວມແລ້ວ, ຄວາມໄວເສັ້ນຫຼາຍເກີນໄປສາມາດທໍາລາຍຫຸ່ນຍົນໄດ້ຢ່າງງ່າຍດາຍ.
  3. ເມື່ອຈໍານວນສໍາລອງມີຫຼາຍກວ່າຫນຶ່ງ, ເນື່ອງຈາກແບນວິດ wifi ເທິງເຮືອທີ່ຈໍາກັດຂອງເຈົ້າພາບ ROS, ມັນງ່າຍທີ່ຈະເຮັດໃຫ້ເກີດຄວາມລ່າຊ້າແລະຕັດການເຊື່ອມຕໍ່ຂອງການສື່ສານຫຼາຍຕົວແທນ. ການນໍາໃຊ້ router ສາມາດແກ້ໄຂບັນຫານີ້ໄດ້ດີ.
  4. ຕົ້ນໄມ້ TF ຂອງການສ້າງຕັ້ງຫຼາຍຫຸ່ນຍົນ (2 ສໍາລອງ) ແມ່ນ: rqt_tf_tree
  5. ແຜນວາດຄວາມສຳພັນຂອງ node ຂອງການສ້າງຫຸ່ນຍົນຫຼາຍ (2 slaves) ຄື: rqt_graph

ເອກະສານ / ຊັບພະຍາກອນ

ROBOWORKS Robofleet Multi-AGENT ALGORITHMS [pdf] ຄູ່ມືຜູ້ໃຊ້
Robofleet Multi Agent Algorithms, Robofleet, Multi Agent Algorithms, Agent Algorithms, Algorithms

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *