ROBOWORKS ຫຸ່ນຍົນ Robolet Orin Nano x3 ROS 

ROBOWORKS ຫຸ່ນຍົນ Robolet Orin Nano x3 ROS

ສະຫຼຸບ

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

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

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

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

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

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

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

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

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

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

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

ໃນເວລາທີ່ຫຸ່ນຍົນສາມາດຢຸດເຊົາການຕອບສະຫນອງຕໍ່ຫນ້າອຸປະສັກ. ນີ້ຮັບໃຊ້ຈຸດປະສົງຂອງການຫຼີກເວັ້ນອຸປະສັກທີ່ດີກວ່າ.

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

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

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

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

ຕັ້ງຄ່າການຄວບຄຸມ ROS ໃນເຄືອຂ່າຍດຽວກັນ

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

ທາງເລືອກ 1:

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

ຕົວເລືອກ 2:

ເຄືອຂ່າຍ wifi ທ້ອງຖິ່ນແມ່ນສະໜອງໃຫ້ໂດຍເຣົາເຕີພາກສ່ວນທີສາມເປັນສູນສົ່ງຂໍ້ມູນ. ຫຸ່ນຍົນທັງຫມົດແມ່ນເຊື່ອມຕໍ່ກັບ router ດຽວກັນ. router ຍັງສາມາດຖືກນໍາໃຊ້ໂດຍບໍ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດ. ເລືອກຫນຶ່ງຂອງຫຸ່ນຍົນເປັນແມ່ບົດແລະດໍາເນີນການ Master node manager. ຫຸ່ນຍົນອື່ນໆແມ່ນຖືກກໍານົດເປັນສໍາລອງແລະດໍາເນີນການຈັດການ master node ຈາກແມ່ບົດ.

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

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

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

ຫຼັງຈາກທີ່ແມ່ບົດ ROS ທັງຫມົດແມ່ນຢູ່ໃນເຄືອຂ່າຍດຽວກັນ, ຕົວແປສະພາບແວດລ້ອມສໍາລັບການສື່ສານຫຼາຍຕົວແທນຈໍາເປັນຕ້ອງໄດ້ຖືກກໍານົດ. ຕົວແປສະພາບແວດລ້ອມນີ້ຖືກຕັ້ງຄ່າຢູ່ໃນ .bashrc file ຢູ່ໃນໄດເລກະທໍລີຫຼັກ. ດໍາເນີນການຄໍາສັ່ງ gedit ~/.bashrc ເພື່ອເປີດໃຊ້ມັນ. ກະລຸນາສັງເກດວ່າທັງສອງ .bashrc files ຂອງແມ່ບົດແລະສໍາລອງໃນການສື່ສານຫຼາຍຕົວແທນຈໍາເປັນຕ້ອງໄດ້ configured. ສິ່ງທີ່ຕ້ອງໄດ້ຮັບການປ່ຽນແປງແມ່ນທີ່ຢູ່ IP ໃນຕອນທ້າຍຂອງ file. ສອງແຖວແມ່ນ ROS_MASTER_URI ແລະ ROS_HOSTNAME, ດັ່ງທີ່ສະແດງໃນຮູບ 2-1-4. ROS_MASTER_URI ແລະ ROS_HOSTNAME ຂອງໂຮສ ROS ແມ່ນທັງສອງ IP ທ້ອງຖິ່ນ. ROS_MASTER_URI ໃນ ROS slave .bashrc file ຈໍາເປັນຕ້ອງໄດ້ປ່ຽນເປັນທີ່ຢູ່ IP ຂອງເຈົ້າພາບໃນຂະນະທີ່ ROS_HOSTNAME ຍັງຄົງເປັນທີ່ຢູ່ IP ທ້ອງຖິ່ນ.

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

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

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

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

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

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

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

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

ໝາຍເຫດ:

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

ຄລິກຕົວເລືອກ “ການຕັ້ງຄ່າ IPv4” ໃນແຜງຄວບຄຸມການຕັ້ງຄ່າເຄືອຂ່າຍ. ເລືອກຕົວເລືອກ "ຄູ່ມື" ໃນຊ່ອງ "ວິທີການ". ຫຼັງຈາກນັ້ນ, ໃຫ້ຄລິກໃສ່ "ຕື່ມ", ຕື່ມຂໍ້ມູນໃສ່ໃນທີ່ຢູ່ IP ຂອງເຄື່ອງສໍາລອງໃນພາກສະຫນາມ "ທີ່ຢູ່". ຕື່ມໃສ່ "24" ໃນຊ່ອງ "Netmask". ຕື່ມຂໍ້ມູນໃສ່ພາກສ່ວນເຄືອຂ່າຍ IP ໃນ “Gateway”. ປ່ຽນສາມຕົວເລກສຸດທ້າຍຂອງພາກສ່ວນເຄືອຂ່າຍ IP ເປັນ “1”. ຈຸດປະສົງຕົ້ນຕໍຂອງຂັ້ນຕອນນີ້ແມ່ນການແກ້ໄຂທີ່ຢູ່ IP. ຫຼັງຈາກນີ້ສໍາເລັດຄັ້ງທໍາອິດ, ທີ່ຢູ່ IP ຈະບໍ່ປ່ຽນແປງເມື່ອເຊື່ອມຕໍ່ກັບ WIFI ດຽວກັນຕໍ່ມາ.

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

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

ໝາຍເຫດ:

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

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

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

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

ການຕິດຕັ້ງໃນ Jetson TX1 ແມ່ນເກືອບຄືກັນກັບໃນ Jetson Nano ໂດຍມີຂໍ້ຍົກເວັ້ນຫນຶ່ງທີ່ Jetson TX1 ຄວນເລືອກອຸປະກອນຂອງ "wlan1" ໃນ "ອຸປະກອນ" ໃນແຜງຄວບຄຸມການຕັ້ງຄ່າເຄືອຂ່າຍ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

n ຊຸດຟັງຊັນ 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.

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

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

ຟັງຊັນນີ້ຖືກປະຕິບັດໂດຍ node pose_setter ໃນ file ຊື່ວ່າ turn_on_wheeltec_robot.launch ໃນຊຸດ wheeltec_multi, ດັ່ງທີ່ສະແດງໃນຮູບ 4-1-3.

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

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

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

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

ໃນ​ການ​ສ້າງ​ຕັ້ງ​ຫຼາຍ​ຕົວ​ແທນ, ບັນ​ຫາ​ທໍາ​ອິດ​ທີ່​ຈະ​ແກ້​ໄຂ​ແມ່ນ​ການ​ຕັ້ງ​ຕໍາ​ແຫນ່ງ​ຂອງ​ນາຍ​ແລະ​ສໍາ​ລອງ. ແມ່ບົດຈະສ້າງແຜນທີ່ 2D ກ່ອນ. ຫຼັງຈາກການສ້າງແລະບັນທຶກແຜນທີ່, ດໍາເນີນການຊຸດການນໍາທາງ 2D ແລະນໍາໃຊ້ສູດການປັບຕໍາແຫນ່ງ Monte Carlo (ການຈັດຕໍາແຫນ່ງ amcl) ໃນຊຸດການນໍາທາງ 2D ເພື່ອກໍານົດຕໍາແຫນ່ງຂອງແມ່ບົດ.

ເນື່ອງຈາກແມ່ບົດແລະສໍາລອງຢູ່ໃນເຄືອຂ່າຍດຽວກັນແລະແບ່ງປັນຜູ້ຈັດການ node ດຽວກັນ, ແມ່ບົດໄດ້ເປີດຕົວແຜນທີ່ຈາກຊຸດການນໍາທາງ 2D, ສໍາລອງທັງຫມົດສາມາດນໍາໃຊ້ແຜນທີ່ດຽວກັນພາຍໃຕ້ຜູ້ຈັດການ node ດຽວກັນ. ດັ່ງນັ້ນ, ຂ້າໃຊ້ບໍ່ຈໍາເປັນຕ້ອງສ້າງແຜນທີ່. ໃນ wheeltec_slave.launch, ດໍາເນີນການ Monte Carlo positioning (amcl positioning), slaves ສາມາດ configure ຕໍາແຫນ່ງຂອງເຂົາເຈົ້າໂດຍໃຊ້ແຜນທີ່ທີ່ສ້າງໂດຍແມ່ບົດ.

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

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

ໃນຂະບວນການຂອງການເຄື່ອນໄຫວການສ້າງຕັ້ງ, ການເຄື່ອນໄຫວຕົ້ນສະບັບສາມາດໄດ້ຮັບການຄວບຄຸມໂດຍ Rviz, keyboard, ການຄວບຄຸມໄລຍະໄກແລະວິທີການອື່ນໆ. ສໍາລອງຄິດໄລ່ຄວາມໄວຂອງມັນຜ່ານ node slave_tf_listener ເພື່ອຄວບຄຸມການເຄື່ອນໄຫວຂອງມັນແລະບັນລຸເປົ້າຫມາຍຂອງການສ້າງ.

node slave_tf_listener ຈໍາກັດຄວາມໄວຂອງ slave ເພື່ອຫຼີກເວັ້ນຄວາມໄວຫຼາຍເກີນໄປໂດຍການຄິດໄລ່ node, ເຊິ່ງຈະເຮັດໃຫ້ເກີດຜົນກະທົບຫຼາຍຄັ້ງ. ຄ່າສະເພາະສາມາດແກ້ໄຂໄດ້ໃນ wheeltec_slave.launch.

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

ຕົວກໍານົດການທີ່ກ່ຽວຂ້ອງຂອງ algorithm ການສ້າງແມ່ນດັ່ງຕໍ່ໄປນີ້:

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

ການ​ຫຼີກ​ເວັ້ນ​ອຸ​ປະ​ສັກ​ໃນ​ການ​ສ້າງ​ຕັ້ງ​

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

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

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

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

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

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

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

  • ແມ່ບົດແລະທາດເຊື່ອມຕໍ່ເຄືອຂ່າຍດຽວກັນແລະຕັ້ງການສື່ສານຫຼາຍຕົວແທນຢ່າງຖືກຕ້ອງ
  • ແມ່ບົດສ້າງແຜນທີ່ 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 ເພື່ອຄວບຄຸມການເຄື່ອນໄຫວແມ່ແບບຈາກໄລຍະໄກ.
roslaunch wheeltec_robot_rc keyboard_teleop.launch

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

ໝາຍເຫດ

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

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

ROBOWORKS ຫຸ່ນຍົນ Robolet Orin Nano x3 ROS [pdf] ຄູ່ມືຜູ້ໃຊ້
Orin Nano x3, Robofleet ROS Robot, Robofleet ROS, ຫຸ່ນຍົນ, Robofleet Orin Nano x3 ROS Robot, Robofleet Orin Nano x3, Orin Nano x3 ROS Robot, Orin Nano x3

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

ອອກຄໍາເຫັນ

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