ROBOWORKS-LOGO

ROBOWORKS Robofleet Multi-agent ALGORITHMS

ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-PRODUCT

သတ်မှတ်ချက်များ

  • ကုန်ပစ္စည်းအမည်- ROBOWORKS
  • ဗားရှင်း- 20240501
  • Wayne Liu & Janette Lin မှ ပြင်ဆင်သည်။
  • ရက်စွဲ- 1 မေလ 2024

ထုတ်ကုန်အချက်အလက်

ROBOWORKS သည် စက်ရုပ်ညှိနှိုင်းမှုနှင့် ဆက်သွယ်ရေးအတွက် အမျိုးမျိုးသော အယ်လဂိုရီသမ်များကို အကောင်အထည်ဖော်ရန် ခွင့်ပြုသည့် ဘက်စုံအေးဂျင့်စနစ်တစ်ခုဖြစ်သည်။

အမေးအဖြေများ

မေး- စက်ရုပ်က Wifi နဲ့ အလိုအလျောက်ချိတ်ဆက်လို့မရရင် ဘာလုပ်ရမလဲ။

A- စက်ရုပ်သည် အလိုအလျောက်ချိတ်ဆက်ရန် ပျက်ကွက်ပါက၊ ပလပ်ဖြုတ်ပြီး ကွန်ရက်ကတ်ကို အားပြန်သွင်းပြီး ထပ်မံချိတ်ဆက်ရန် ကြိုးစားပါ။

အနှစ်ချုပ်

ဤစာတမ်းသည် wheeltec_multi ဟု အမည်ပေးထားသော စက်ရုပ်ပေါင်းစုံဖွဲ့စည်းခြင်း လုပ်ဆောင်ချက်ပက်ကေ့ချ်၏ အသုံးပြုပုံကို အဓိကအားဖြင့် ရှင်းပြထားသည်။

ဤစာတမ်းကို အပိုင်းလေးပိုင်းခွဲထားသည်။

  • ပထမအပိုင်းသည် ဘက်စုံစက်ရုပ်ဖွဲ့စည်းခြင်းနည်းလမ်းကို နိဒါန်းပျိုးခြင်းအကြောင်းဖြစ်သည်။
  • ဒုတိယအပိုင်းတွင် ROS တည်ဆောက်မှု စက်ပေါင်းစုံ ဆက်သွယ်မှုနှင့် ROS ဆက်သွယ်မှု လုပ်ငန်းစဉ်တွင် ကြုံတွေ့နိုင်သည့် ပြဿနာများ အပါအဝင် ROS စက်ပေါင်းစုံ ဆက်သွယ်ရေး ဆက်တင်များကို အဓိက ဖော်ပြထားပါသည်။
  • တတိယအပိုင်းသည် စက်ပေါင်းများစွာ အချိန်ထပ်တူပြုခြင်း၏ လုပ်ဆောင်ချက်အဆင့်များကို အဓိကအားဖြင့် ဖော်ပြပါသည်။
  • စတုတ္ထအပိုင်းသည် စက်ပေါင်းစုံဖွဲ့စည်းခြင်းဆိုင်ရာ လုပ်ဆောင်ချက်ပက်ကေ့ချ်၏ သီးခြားအသုံးပြုမှုကို ဖော်ပြသည်။

ဤစာတမ်း၏ ရည်ရွယ်ချက်မှာ Multi-agent စက်ရုပ်စနစ်များကို မိတ်ဆက်ခြင်းဖြစ်ပြီး သုံးစွဲသူများအား စက်ရုပ်ပေါင်းစုံဖွဲ့စည်းရေး ပရောဂျက်ကို လျှင်မြန်စွာ စတင်နိုင်စေပါသည်။

Multi-agent ALGORITHMS ကို မိတ်ဆက်ခြင်း။

Multi-agent ဖွဲ့စည်းခြင်းဆိုင်ရာ algorithms

ဤ ROS ပက်ကေ့ဂျ်သည် ဖွဲ့စည်းဒရိုက်တစ်ခုအတွင်း ပူးပေါင်းထိန်းချုပ်မှုတွင် များစွာသောအေးဂျင့်များ၏ ပုံမှန်ပြဿနာကို တင်ပြသည်။ ဤသင်ခန်းစာသည် ဤအကြောင်းအရာနှင့်ပတ်သက်၍ အနာဂတ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက် အခြေခံအုတ်မြစ်ချပေးသည်။ ဖွဲ့စည်းခြင်း ထိန်းချုပ်မှု အယ်လဂိုရီသမ် ဆိုသည်မှာ အလုပ်တစ်ခုကို လုပ်ဆောင်ရန်အတွက် သီးခြားဖွဲ့စည်းမှုတစ်ခု ဖွဲ့စည်းရန် အေးဂျင့်များစွာကို ထိန်းချုပ်သည့် အယ်လဂိုရီသမ်ကို ရည်ညွှန်းသည်။ Collaboration ဆိုသည်မှာ အလုပ်တစ်ခုပြီးမြောက်ရန် သတ်မှတ်ထားသော ကန့်သတ်ဆက်နွယ်မှုကို အသုံးပြု၍ အေးဂျင့်များစွာကြား ပူးပေါင်းဆောင်ရွက်မှုကို ရည်ညွှန်းသည်။ စက်ရုပ်အစုံပါသော ဒရိုက်ကို ဟောင်းအဖြစ် ယူပါ။ampပူးပေါင်းဆောင်ရွက်ခြင်း ဆိုသည်မှာ စက်ရုပ်များစွာကို လိုချင်သောဖွဲ့စည်းမှုတစ်ခုကို အတူတကွ ဖွဲ့ဆိုသည်။ ၎င်း၏ အနှစ်သာရမှာ စက်ရုပ်တစ်ခုစီ၏ ရာထူးများကြားတွင် ကျေနပ်အားရနိုင်သော သင်္ချာဆိုင်ရာ ဆက်ဆံရေးတစ်ခုဖြစ်သည်။ ဖွဲ့စည်းခြင်းနည်းလမ်းများကို အဓိကအားဖြင့် ဗဟိုချုပ်ကိုင်မှုဖွဲ့စည်းခြင်းထိန်းချုပ်ခြင်းနှင့် ဖြန့်ဝေဖွဲ့စည်းခြင်းထိန်းချုပ်မှုဟူ၍ ပိုင်းခြားထားသည်။ ဗဟိုချုပ်ကိုင်မှုဖွဲ့စည်းခြင်း ထိန်းချုပ်ရေးနည်းလမ်းများတွင် အဓိကအားဖြင့် အတုအယောင်ဖွဲ့စည်းပုံနည်းလမ်း၊ ဂရပ်ဖစ်သီအိုရီနည်းလမ်းနှင့် မော်ဒယ်ခန့်မှန်းချက်နည်းလမ်းတို့ ပါဝင်သည်။ ဖြန့်ဝေထားသော ဖွဲ့စည်းမှုထိန်းချုပ်ရေးနည်းလမ်းများတွင် အဓိကအားဖြင့် ခေါင်းဆောင်-နောက်လိုက်နည်းလမ်း၊ အပြုအမူအခြေခံနည်းလမ်းနှင့် virtual structure method တို့ပါဝင်သည်။
ဤ ROS ပက်ကေ့ဂျ်သည် များစွာသော စက်ရုပ်ဖွဲ့စည်းခြင်း drive ကို လုပ်ဆောင်ရန် ဖြန့်ဝေဖွဲ့စည်းခြင်း ထိန်းချုပ်မှုနည်းလမ်းတွင် ခေါင်းဆောင်-နောက်လိုက်နည်းလမ်းကို အသုံးပြုပါသည်။ ဖွဲ့စည်းမှုတွင် စက်ရုပ်တစ်ရုပ်ကို ခေါင်းဆောင်အဖြစ် သတ်မှတ်ပြီး အခြားစက်ရုပ်များကို ခေါင်းဆောင်နောက်လိုက်ရန် ကျွန်များအဖြစ် သတ်မှတ်ကြသည်။ အယ်လဂိုရီသမ်သည် အောက်ဖော်ပြပါ စက်ရုပ်များမှ ခြေရာခံမည့် သြဒီနိတ်များကို သတ်မှတ်ရန် ဦးဆောင်စက်ရုပ်၏ ရွေ့လျားမှုလမ်းကြောင်းကို အသုံးပြုသည်။ ခြေရာခံ သြဒီနိတ်များမှ သွေဖည်နေသည့် အနေအထားများကို ပြုပြင်ခြင်းဖြင့်၊ နောက်လိုက်များသည် ဖွဲ့စည်းခြင်း drive ၏ ရည်ရွယ်ချက်များကို အောင်မြင်စေရန်အတွက် နောက်ဆုံးတွင် နောက်လိုက်များနှင့် မျှော်လင့်ထားသော ခြေရာခံသြဒီနိတ်များကြားမှ သွေဖည်မှုကို သုညသို့ လျှော့ချပါမည်။ ဤနည်းအားဖြင့် algorithm သည် အတော်လေးရှုပ်ထွေးသည်။

အတားအဆီး ရှောင်ရှားခြင်း algorithms

ယေဘူယျအတားအဆီးကို ရှောင်ရှားနိုင်သော အယ်လဂိုရီသမ်သည် အတုမဲ့ ဖြစ်နိုင်ချေရှိသော နည်းလမ်းဖြစ်သည်။ ရုပ်ပိုင်းဆိုင်ရာပတ်ဝန်းကျင်တွင် စက်ရုပ်၏ရွေ့လျားမှုကို virtual artificial force နယ်ပယ်တွင် လှုပ်ရှားမှုတစ်ခုအဖြစ် မှတ်ယူသည်။ အနီးဆုံးအတားအဆီးကို LiDAR မှသတ်မှတ်သည်။ အတားအဆီးသည် စက်ရုပ်အား တွန်းလှန်ခြင်းအား ထုတ်လုပ်ရန် စက်ရုပ်အား ရွံရှာဖွယ်ကောင်းသော နယ်ပယ်တစ်ခု ထောက်ပံ့ပေးပြီး ပစ်မှတ်သည် စက်ရုပ်အား ဆွဲငင်အားကို ထုတ်ပေးရန်အတွက် မြေဆွဲအားကို ထုတ်ပေးသည်။ ဤနည်းအားဖြင့် တွန်းလှန်ခြင်းနှင့် ဆွဲဆောင်မှုတို့ ပေါင်းစပ်ထားသော စက်ရုပ်၏ ရွေ့လျားမှုကို ထိန်းချုပ်သည်။
ဤ ROS ပက်ကေ့ဂျ်သည် ဖန်တီးထားသော အလားအလာရှိသော နယ်ပယ်နည်းလမ်းကို အခြေခံ၍ တိုးတက်မှုတစ်ခုဖြစ်သည်။ ပထမဦးစွာ Slave follower ၏ linear နှင့် angular velocity ကို ဖွဲ့စည်းခြင်း algorithm က တွက်ချက်သည်။ ထို့နောက် ၎င်းသည် အတားအဆီးကို ရှောင်ရှားရန် လိုအပ်ချက်များနှင့်အညီ linear နှင့် angular velocity ကို တိုး သို့မဟုတ် လျှော့ချသည်။ Slave နောက်လိုက်နှင့် အတားအဆီးကြား အကွာအဝေးသည် ပိုမိုနီးကပ်လာသောအခါ၊ Slave နောက်လိုက်အတွက် အတားအဆီး၏ အတားအဆီး၏ တွန်းလှန်မှု အင်အားက ပိုကြီးလာသည်။ ဤအတောအတွင်း၊ linear velocity နှင့် angular velocity အပြောင်းအလဲများသည် ပိုများသည်။ အတားအဆီးသည် Slave နောက်လိုက်၏ ရှေ့သို့ နီးကပ်လာသောအခါ၊ Slave နောက်လိုက်၏ အတားအဆီးကို တွန်းလှန်ခြင်းသည် ပိုကြီးလာလေသည် (ရှေ့တွင် တွန်းလှန်ခြင်းသည် အကြီးမားဆုံးဖြစ်ပြီး ဘေးမှ တွန်းလှန်မှုသည် အသေးဆုံးဖြစ်သည်)။ ရလဒ်အနေဖြင့် linear velocity နှင့် angular velocity ကွဲပြားမှုများသည် ပိုများသည်။ စက်ရုပ်တစ်ရုပ်သည် အတားအဆီးတစ်ခုရှေ့တွင် တုံ့ပြန်မှုရပ်တန့်နိုင်သောအခါတွင် ဖန်တီးထားသော အလားအလာရှိသော နယ်ပယ်နည်းလမ်းဖြင့် ၎င်းသည် ပိုမိုကောင်းမွန်လာစေသည်။ ၎င်းသည် ပိုမိုကောင်းမွန်သော အတားအဆီးများကို ရှောင်ရှားရန် ရည်ရွယ်ချက်ကို ဆောင်ရွက်ပေးပါသည်။

အများအပြား-အေးဂျင့် ဆက်သွယ်ရေး စနစ်ထည့်သွင်းခြင်း။

Multi-agent Communication သည် Multi-Robot ဖွဲ့စည်းခြင်းကို အပြီးသတ်ရန် အဓိကခြေလှမ်းများထဲမှ တစ်ခုဖြစ်သည်။ စက်ရုပ်များစွာ၏ ဆက်စပ်အနေအထားကို မသိသောအခါ၊ စက်ရုပ်များသည် ချိတ်ဆက်မှုထူထောင်ရာတွင် လွယ်ကူချောမွေ့စေရန် ဆက်သွယ်ရေးမှတစ်ဆင့် အချင်းချင်း၏အချက်အလက်များကို မျှဝေရန် လိုအပ်သည်။ ROS-distributed ဗိသုကာနှင့် ကွန်ရက်ဆက်သွယ်ရေးသည် အလွန်အားကောင်းသည်။ ၎င်းသည် inter-process communication အတွက်သာမက မတူညီသော device များကြား ဆက်သွယ်မှုအတွက်လည်း အဆင်ပြေပါသည်။ ကွန်ရက်ဆက်သွယ်မှုမှတစ်ဆင့်၊ node များအားလုံးသည် မည်သည့်ကွန်ပျူတာပေါ်တွင်မဆို လုပ်ဆောင်နိုင်သည်။ ဒေတာလုပ်ဆောင်ခြင်းကဲ့သို့သော အဓိကတာဝန်များကို လက်ခံဆောင်ရွက်ပေးသည့်ဘက်တွင် ပြီးမြောက်သည်။ ကျွန်စက်များသည် အာရုံခံကိရိယာအမျိုးမျိုးမှ စုဆောင်းရရှိသည့် ပတ်ဝန်းကျင်ဆိုင်ရာ အချက်အလက်များကို လက်ခံရရှိရန် တာဝန်ရှိသည်။ ဤနေရာ၌ host သည် ROS တွင် Master node ကိုလည်ပတ်သည့်မန်နေဂျာဖြစ်သည်။ လက်ရှိ multi-agent ဆက်သွယ်ရေးမူဘောင်သည် စက်ရုပ်များစွာကြားတွင် ဆက်သွယ်မှုများကို ကိုင်တွယ်ရန် node မန်နေဂျာနှင့် parameter manager မှတဆင့်ဖြစ်သည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

Multi-agent ဆက်သွယ်ရေးကို သတ်မှတ်ရန် အဆင့်များ

  • တူညီသောကွန်ရက်တွင် ROS ထိန်းချုပ်မှုများကို စနစ်ထည့်သွင်းပါ။
    • တူညီသောကွန်ရက်အောက်တွင် Master/Slave ROS ထိန်းချုပ်မှုများကို စနစ်ထည့်သွင်းရန် နည်းလမ်း 2 ခုရှိသည်။

ရွေးချယ်မှု 1-

Master Host သည် Master node manager ကို run ခြင်းဖြင့် local wifi ကိုဖန်တီးသည်။ ယေဘူယျအားဖြင့်၊ မာစတာအဖြစ်သတ်မှတ်ထားသောစက်ရုပ်များထဲမှတစ်ခုသည်ဤ wifi ကွန်ရက်ကိုဖန်တီးသည်။ အခြားသော စက်ရုပ်များ သို့မဟုတ် စက်ရုပ်များသည် ဤ wifi ကွန်ရက်ကို ကျွန်များအဖြစ် ချိတ်ဆက်ပါ။

ရွေးစရာ ၁:

ဒေသဆိုင်ရာ wifi ကွန်ရက်ကို သတင်းအချက်အလက် ထပ်ဆင့်ပို့သည့် စင်တာအဖြစ် ပြင်ပအဖွဲ့အစည်း router မှ ပံ့ပိုးပေးပါသည်။ စက်ရုပ်အားလုံးသည် တူညီသော router သို့ ချိတ်ဆက်ထားသည်။ Router ကိုလည်း အင်တာနက်ချိတ်ဆက်မှုမရှိဘဲ အသုံးပြုနိုင်သည်။ မာစတာအဖြစ် စက်ရုပ်များထဲမှ တစ်ခုကို ရွေးပြီး Master node manager ကို ဖွင့်ပါ။ အခြားစက်ရုပ်များကို ကျေးကျွန်များအဖြစ် သတ်မှတ်ပြီး မာစတာမှ မာစတာ နုတ်မန်နေဂျာကို လုပ်ဆောင်သည်။
မည်သည့်ရွေးချယ်မှုကို ရွေးချယ်ရန် ဆုံးဖြတ်ချက်သည် သင့်ပရောဂျက်လိုအပ်ချက်များပေါ်တွင် မူတည်သည်။ ဆက်သွယ်ရန် လိုအပ်သော စက်ရုပ်အရေအတွက်သည် များပြားခြင်းမရှိပါက၊ ၎င်းသည် ကုန်ကျစရိတ်သက်သာစေပြီး စနစ်ထည့်သွင်းရန်လွယ်ကူသောကြောင့် Option 1 ကို အကြံပြုထားသည်။ စက်ရုပ်အရေအတွက် များလာသောအခါ၊ Option 2 ကို အကြံပြုထားသည်။ ROS master control ၏ ကွန်ပြူတာ ပါဝါအပေါ် ကန့်သတ်ချက် နှင့် onboard wifi bandwidth ကန့်သတ်ချက်များသည် နှောင့်နှေးမှုနှင့် ကွန်ရက် အနှောင့်အယှက်များကို အလွယ်တကူ ဖြစ်စေနိုင်သည်။ Router သည် ဤပြဿနာများကို အလွယ်တကူ ဖြေရှင်းနိုင်သည်။ Multi-agent ဆက်သွယ်ရေးကို လုပ်ဆောင်သည့်အခါ၊ virtual machine ကို ROS slave အဖြစ်အသုံးပြုပါက၊ ၎င်း၏ကွန်ရက်မုဒ်ကို တံတားမုဒ်အဖြစ် သတ်မှတ်ရန်လိုအပ်ကြောင်း ကျေးဇူးပြု၍ သတိပြုပါ။

Master/Slave environment variable များကို စီစဉ်သတ်မှတ်ပါ။

ROS မာစတာများအားလုံးသည် ကွန်ရက်တစ်ခုတည်းတွင်ရှိပြီးနောက်၊ အများအပြားအေးဂျင့်ဆက်သွယ်ရေးအတွက် ပတ်၀န်းကျင်ပြောင်းလွဲချက်များကို သတ်မှတ်ရန် လိုအပ်သည်။ ဤပတ်ဝန်းကျင်ပြောင်းလဲမှုအား ပင်မလမ်းညွှန်ရှိ .bashrc ဖိုင်တွင် ပြင်ဆင်သတ်မှတ်ထားသည်။ ၎င်းကိုစတင်ရန် gedit ~/.bashrc အမိန့်ကို လုပ်ဆောင်ပါ။ ကျေးဇူးပြု၍ မာစတာ၏ .bashrc ဖိုင်များနှင့် အများအပြားအေးဂျင့်ဆက်သွယ်မှုတွင် ကျွန်၏ .bashrc ဖိုင်နှစ်ခုလုံးအား ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်ကြောင်း ကျေးဇူးပြု၍ သတိပြုပါ။ ပြောင်းလဲရန်လိုအပ်သည်မှာ ဖိုင်၏အဆုံးတွင် IP လိပ်စာများဖြစ်သည်။ ပုံ 2-1-4 တွင်ပြထားသည့်အတိုင်း ROS_MASTER_URI နှင့် ROS_HOSTNAME လိုင်းနှစ်ခုဖြစ်သည်။ ROS host ၏ ROS_MASTER_URI နှင့် ROS_HOSTNAME နှစ်ခုလုံးသည် ဒေသတွင်း IP များဖြစ်သည်။ ROS slave ရှိ ROS_MASTER_URI .bashrc ဖိုင်ကို ROS_HOSTNAME သည် ဒေသတွင်း IP လိပ်စာအဖြစ် ကျန်ရှိနေသော်လည်း လက်ခံသူ၏ IP လိပ်စာသို့ ပြောင်းလဲရန် လိုအပ်ပါသည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

ROS စက်ပေါင်းများစွာ ဆက်သွယ်မှုကို ROS ဗားရှင်းဖြင့် ကန့်သတ်ထားခြင်းမရှိပါ။ Multi-machine Communication လုပ်ငန်းစဉ်တွင် အောက်ပါတို့ကို သတိထားသင့်သည်။

  1. ROS slave ပရိုဂရမ်၏လုပ်ဆောင်ချက်သည် ROS မာစတာကိရိယာ၏ ROS မာစတာပရိုဂရမ်ပေါ်တွင်မူတည်သည်။ ROS မာစတာပရိုဂရမ်သည် slave စက်ပစ္စည်းပေါ်ရှိ slave ပရိုဂရမ်ကို မလုပ်ဆောင်မီ မာစတာစက်ပစ္စည်းပေါ်တွင် ဦးစွာဖွင့်ရပါမည်။
  2. စက်ပေါင်းများစွာ ဆက်သွယ်မှုတွင် မာစတာနှင့် ကျွန်စက်များ၏ IP လိပ်စာများသည် တူညီသောကွန်ရက်တွင် ရှိနေရန် လိုအပ်သည်။ ဆိုလိုသည်မှာ IP လိပ်စာနှင့် subnet mask သည် တူညီသောကွန်ရက်အောက်တွင် ရှိနေပါသည်။
  3. ROS_HOSTNAME သည် ပတ်ဝန်းကျင် configuration ဖိုင်တွင် .bashrc ကို localhost ကို အသုံးပြုရန် အကြံပြုထားခြင်း မရှိပါ။ သတ်မှတ်ထားသော IP လိပ်စာကို အသုံးပြုရန် အကြံပြုထားသည်။
  4. slave IP လိပ်စာကို မှန်ကန်စွာသတ်မှတ်မထားပါက၊ slave စက်ပစ္စည်းသည် ROS မာစတာသို့ ဝင်ရောက်နိုင်ဆဲဖြစ်သော်လည်း ထိန်းချုပ်မှုအချက်အလက်များကို ထည့်သွင်း၍မရပါ။
  5. virtual machine သည် multi-agent ဆက်သွယ်မှုတွင်ပါဝင်ပါက၊ ၎င်း၏ကွန်ရက်မုဒ်ကို တံတားမုဒ်အဖြစ် သတ်မှတ်ရန် လိုအပ်သည်။ ကွန်ရက်ချိတ်ဆက်မှုအတွက် Static IP ကို ​​ရွေး၍မရပါ။
  6. စက်မျိုးစုံ ဆက်သွယ်မှု မလုပ်နိုင်ဘူး။ view သို့မဟုတ် ပြည်တွင်းတွင်မရှိသော မက်ဆေ့ချ်ဒေတာအမျိုးအစား၏ အကြောင်းအရာများကို စာရင်းသွင်းပါ။
  7. စက်ရုပ်များကြား ဆက်သွယ်မှု အောင်မြင်ခြင်း ရှိ၊ မရှိ စစ်ဆေးရန် Little Turtle သရုပ်ပြသရုပ်ပြကို သင်အသုံးပြုနိုင်သည်-
    • a. သခင်ထံမှ ပြေးပါ။
      • ROS ဝန်ဆောင်မှုများကို #စတင်ဖွင့်လှစ်ပါ။
      • rostrum turtles turtlesim_node #launch turtles မျက်နှာပြင်
    • b. ကျွန်ထံမှ ပြေးပါ။
      • လိပ်များကို ပြန်ဖွင့်ရန် turtle_teleop_key #လိပ်များအတွက် ကီးဘုတ်ထိန်းချုပ်မှု နံပါတ်ကို ဖွင့်ပါ။

ကျွန်ပေါ်ရှိ ကီးဘုတ်မှ လိပ်လှုပ်ရှားမှုများကို ကိုင်တွယ်နိုင်လျှင် သခင်/ကျွန် ဆက်သွယ်ရေးကို အောင်မြင်စွာ တည်ဆောက်ပြီးပြီဟု ဆိုလိုပါသည်။

ROS တွင် အလိုအလျောက် Wifi ချိတ်ဆက်မှု

အောက်ပါလုပ်ထုံးလုပ်နည်းများသည် အိမ်ရှင်ကွန်ရက် သို့မဟုတ် router ကွန်ရက်သို့ အလိုအလျောက်ချိတ်ဆက်ရန် စက်ရုပ်အား မည်သို့ configure လုပ်ရမည်ကို ရှင်းပြထားသည်။

Jetson Nano အတွက် အလိုအလျောက် Wifi ချိတ်ဆက်မှု စနစ်ထည့်သွင်းခြင်း။

  1. Jetson Nano ကို VNC အဝေးထိန်းကိရိယာမှတဆင့် သို့မဟုတ် ကွန်ပျူတာမျက်နှာပြင်သို့ တိုက်ရိုက်ချိတ်ဆက်ပါ။ ညာဘက်အပေါ်ထောင့်ရှိ wifi icon ကိုနှိပ်ပြီး “Edit Connections..” ကိုနှိပ်ပါ။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)
  2. ကွန်ရက်ချိတ်ဆက်မှုများရှိ + ခလုတ်ကို နှိပ်ပါ။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)
  3. “Connection Type ကိုရွေးချယ်ပါ” ဝင်းဒိုးအောက်တွင်၊ drop-down menu ကိုနှိပ်ပြီး “Create…” ခလုတ်ကိုနှိပ်ပါ။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)
  4. Control Panel တွင် wifi option ကိုနှိပ်ပါ။ “Connection Name” နှင့် SSID အကွက်များတွင် ချိတ်ဆက်ရန် ဝိုင်ဖိုင်အမည်ကို ထည့်သွင်းပါ။ "မုဒ်" dropdown menu တွင် "Client" ကိုရွေးချယ်ပြီး "Device" dropdown menu ရှိ "wlan0" ကိုရွေးချယ်ပါ။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)
  5. Control Panel တွင်၊ "အထွေထွေ" option ကိုနှိပ်ပြီး "ဤကွန်ရက်သို့ အလိုအလျောက်ချိတ်ဆက်ရန်..." ကိုစစ်ဆေးပါ။ “အလိုအလျောက်အသက်သွင်းခြင်းအတွက် ချိတ်ဆက်မှုဦးစားပေး” ရွေးချယ်မှုတွင် ချိတ်ဆက်မှုဦးစားပေးကို 1 တွင် သတ်မှတ်ပါ။ “အသုံးပြုသူအားလုံး ဤကွန်ရက်သို့ ချိတ်ဆက်နိုင်သည်” ရွေးချယ်မှုအား စစ်ဆေးပါ။ အခြား wifi များအတွက် “Connection priority for auto-activation” တွင် option ကို 0 ဟုသတ်မှတ်ထားသောအခါ၊ ၎င်းသည် ယခင်က နှစ်သက်သော wifi network ကို ဆိုလိုသည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)
  6. Control Panel ရှိ “Wi-Fi Security” option ကိုနှိပ်ပါ။ “လုံခြုံရေး” အကွက်တွင် “WPA & WPA2 Personal” ကို ရွေးပါ။ ထို့နောက် “Password” ကွက်လပ်တွင် WiFi စကားဝှက်ကို ရိုက်ထည့်ပါ။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

မှတ်ချက် - အကယ်၍ စက်ရုပ်သည် wifi ဦးစားပေးအား 0 ဟုသတ်မှတ်ထားသောအခါ boot တက်ပြီးနောက် wifi ကွန်ရက်သို့ အလိုအလျောက်ချိတ်ဆက်၍မရပါက၊ ၎င်းသည် အားနည်းသော wifi signal ပြဿနာကြောင့်ဖြစ်နိုင်သည်။ ဤပြဿနာကိုရှောင်ရှားရန်အတွက်၊ သင်သည် ယခင်ကချိတ်ဆက်ထားသည့် wifi ရွေးချယ်မှုအားလုံးကို ဖျက်ပစ်ရန် ရွေးချယ်နိုင်သည်။ host သို့မဟုတ် router မှဖန်တီးထားသော wifi network ကိုသာထားပါ။ ကွန်ရက်ဆက်တင်ထိန်းချုပ်မှုအကန့်ရှိ “IPv4 ဆက်တင်များ” ရွေးချယ်မှုကို နှိပ်ပါ။ "နည်းလမ်း" အကွက်ရှိ "Manual" option ကိုရွေးချယ်ပါ။ ထို့နောက် "Add" ကိုနှိပ်ပါ၊ "Address" အကွက်ရှိ ကျွန်စက်၏ IP လိပ်စာကိုဖြည့်ပါ။ "Netmask" အကွက်တွင် "24" ကိုဖြည့်ပါ။ “Gateway” တွင် IP ကွန်ရက် အပိုင်းကို ဖြည့်ပါ။ IP ကွန်ရက်အပိုင်း၏ နောက်ဆုံးဂဏန်းသုံးလုံးကို “1” သို့ ပြောင်းပါ။ ဤအဆင့်၏အဓိကရည်ရွယ်ချက်မှာ IP လိပ်စာကိုပြုပြင်ရန်ဖြစ်သည်။ ၎င်းကို ပထမအကြိမ်အပြီးသတ်ပြီးနောက်၊ နောက်ပိုင်းတွင် တူညီသော WIFI သို့ ချိတ်ဆက်သည့်အခါ IP လိပ်စာသည် မပြောင်းလဲဘဲ ရှိနေမည်ဖြစ်သည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

ဆက်တင်များအားလုံးကို ပြင်ဆင်ပြီးပါက ဆက်တင်များကို သိမ်းဆည်းရန် "save" ကိုနှိပ်ပါ။ သိမ်းဆည်းမှု အောင်မြင်ပြီးနောက်၊ စက်ရုပ်သည် ပါဝါဖွင့်ထားသည့်အခါ လက်ခံသူ သို့မဟုတ် router ၏ ကွန်ရက်သို့ အလိုအလျောက် ချိတ်ဆက်မည်ဖြစ်သည်။

မှတ်ချက် -

  1. ဤနေရာတွင် သတ်မှတ်ထားသော IP လိပ်စာသည် အပိုင်း 2.1 ရှိ .bashrc ဖိုင်တွင် သတ်မှတ်ထားသော IP လိပ်စာနှင့် တူညီရန် လိုအပ်သည်။
  2. မာစတာ၏ IP လိပ်စာနှင့် ကျွန်တစ်ဦးစီသည် သီးသန့်ဖြစ်ရမည်။
  3. Master နှင့် slave IP လိပ်စာများသည် တူညီသောကွန်ရက်အပိုင်းတွင်ရှိရန် လိုအပ်သည်။
  4. slave စက်ရုပ်ကို ပါဝါဖွင့်ပြီး WiFi ကွန်ရက်သို့ အလိုအလျောက်ချိတ်ဆက်ခြင်းမပြုမီတွင် လက်ခံသူ သို့မဟုတ် router သည် WiFi အချက်ပြမှုကို ပေးပို့ရန် စောင့်ရပါမည်။
  5. ဆက်တင်ကို ပြင်ဆင်သတ်မှတ်ပြီးနောက်၊ စက်ရုပ်သည် WiFi ကိုဖွင့်ထားချိန်တွင် အလိုအလျောက်ချိတ်ဆက်၍မရပါက၊ ကျေးဇူးပြု၍ ကွန်ရက်ကတ်ကို ပလပ်ထိုးပြီး ပလပ်ဖြုတ်ပြီး ထပ်မံချိတ်ဆက်ကြည့်ပါ။

Raspberry Pi အတွက် အလိုအလျောက် Wifi ချိတ်ဆက်မှု စနစ်ထည့်သွင်းခြင်း။

Raspberry Pi အတွက်လုပ်ထုံးလုပ်နည်းသည် Jetson Nano နှင့်အတူတူဖြစ်သည်။

Jetson TX1 အတွက် အလိုအလျောက် Wifi ချိတ်ဆက်မှု စနစ်ထည့်သွင်းခြင်း။

Jetson TX1 တွင်တပ်ဆင်မှုသည် Jetson Nano တွင် ခြွင်းချက်တစ်ခုအနေဖြင့် Jetson TX1 သည် ကွန်ရက်ဆက်တင်ထိန်းချုပ်မှုအကန့်ရှိ “Device” တွင် “Device” ၏စက်ပစ္စည်းကိုရွေးချယ်သင့်သည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

Multi-agent Synchronization စနစ်ထည့်သွင်းခြင်း။

များစွာသောအေးဂျင့်ဖွဲ့စည်းခြင်းပရောဂျက်တွင်၊ များစွာသောအေးဂျင့်အချိန်ကို ထပ်တူပြုခြင်းဆက်တင်သည် အရေးကြီးသောအဆင့်တစ်ခုဖြစ်သည်။ ဖွဲ့စည်းခြင်းလုပ်ငန်းစဉ်တွင် စက်ရုပ်တစ်ခုစီ၏ ချိန်ညှိစနစ်အချိန်ကြောင့် ပြဿနာများစွာ ဖြစ်ပေါ်လာမည်ဖြစ်သည်။ Multi-agent time synchronization ကို အခြေအနေ နှစ်ခု ခွဲခြားထားပြီး၊ ပြောရရင်၊ master နဲ့ slave robots နှစ်ခုလုံးကို network နဲ့ ချိတ်ဆက်ထားတဲ့ အခြေအနေနဲ့ network နှစ်ခုလုံးကို ချိတ်ဆက်မှု ဖြတ်သွားတဲ့ အခြေအနေပါ။

အောင်မြင်သော မာစတာ/ကျွန် ကွန်ရက်ချိတ်ဆက်မှု

Multi-agent ဆက်သွယ်ရေးကို ပြင်ဆင်သတ်မှတ်ပြီးနောက်၊ master နှင့် slave စက်များသည် ကွန်ရက်သို့ အောင်မြင်စွာ ချိတ်ဆက်နိုင်ပါက၊ ၎င်းတို့သည် ကွန်ရက်အချိန်ကို အလိုအလျောက် synchronize လုပ်မည်ဖြစ်သည်။ ဤကိစ္စတွင်၊ အချိန်ထပ်တူပြုခြင်းအောင်မြင်ရန် နောက်ထပ်လုပ်ဆောင်စရာမလိုအပ်ပါ။

ကွန်ရက်ချိတ်ဆက်မှုပြတ်တောက်မှုများကို ပြဿနာဖြေရှင်းခြင်း။

Multi-agent ဆက်သွယ်ရေးကို စီစဉ်သတ်မှတ်ပြီးနောက်၊ master နှင့် slave စက်ပစ္စည်းများသည် ကွန်ရက်သို့ အောင်မြင်စွာ မချိတ်ဆက်နိုင်ပါက အချိန်ကို ကိုယ်တိုင် synchronize ပြုလုပ်ရန် လိုအပ်ပါသည်။ အချိန်ဆက်တင်ကို အပြီးသတ်ရန် ရက်စွဲအမိန့်ကို ကျွန်ုပ်တို့ အသုံးပြုပါမည်။

ပထမဦးစွာ Terminator tool ကို install လုပ်ပါ။ Terminator tool မှ master ၏ control terminals များနှင့် slave တို့ကို တူညီသော terminal window တွင်ထားရှိရန် window splitting tool ကိုအသုံးပြုပါ (ကွဲပြားသောဝင်းဒိုးကိုသတ်မှတ်ရန် right-click နှိပ်ပြီး မတူညီသော windows တွင် ssh ဖြင့် master နှင့် slave စက်များသို့ဝင်ရောက်ပါ) .

  • terminal window ကိုခွဲရန် sudo apt-get install terminator # terminator ကိုဒေါင်းလုဒ်လုပ်ပါ။

ဘယ်ဘက်ထိပ်ရှိ ခလုတ်ကို နှိပ်ပါ၊ ရွေးစရာ [Broadcast to all]/[Broadcast all] ကိုရွေးပြီး အောက်ပါအမိန့်ကို ရိုက်ထည့်ပါ။ ထို့နောက်သခင်နှင့်ကျွန်အတွက်တူညီသောအချိန်ကိုသတ်မှတ်ရန် terminator tool ကိုအသုံးပြုပါ။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

  • sudo date -s “2022-01-30 15:15:00” # လူကိုယ်တိုင် အချိန်သတ်မှတ်မှု

Multi-agent ROS ပက်ကေ့ဂျ်

ROS Package မိတ်ဆက်

ကျွန်အမည်ကို သတ်မှတ်ပါ။

wheeltec_multi လုပ်ဆောင်ချက် ပက်ကေ့ဂျ်တွင်၊ အမှားအယွင်းများကို ရှောင်ရှားရန်အတွက် slave စက်ရုပ်တစ်ခုစီအတွက် သီးခြားအမည်တစ်ခု သတ်မှတ်ရန် လိုအပ်ပါသည်။ ဟောင်းအတွက်ample၊ slave1 အတွက် နံပါတ် 1 နှင့် slave2 အတွက် နံပါတ် 2 စသည်တို့ဖြစ်သည်။ မတူညီသောအမည်များကို သတ်မှတ်ရခြင်း၏ ရည်ရွယ်ချက်မှာ လုပ်ဆောင်နေသော node များကို အုပ်စုဖွဲ့ပြီး မတူညီသော namespaces များဖြင့် ခွဲခြားရန်ဖြစ်သည်။ ဟောင်းအတွက်ample၊ slave 1 ၏ ရေဒါအကြောင်းအရာမှာ /slave1/scan ဖြစ်ပြီး၊ slave 1 ၏ LiDAR node သည်/slave1/laser ဖြစ်သည်။

ကျေးကျွန်သြဒိနိတ်များကို သတ်မှတ်ပါ။

wheeltec_multi ပက်ကေ့ဂျ်သည် စိတ်ကြိုက်ပုံစံများကို အကောင်အထည်ဖော်နိုင်သည်။ မတူညီသောဖွဲ့စည်းမှုများလိုအပ်သောအခါ၊ ကျွန်စက်ရုပ်များ၏အလိုရှိသောသြဒီနိတ်များကိုမွမ်းမံပါ။ Slave_x နှင့် slave_y တို့သည် မူရင်းကိုးကားချက်အဖြစ် မာစတာနှင့်အတူ ကျွန်၏ x နှင့် y သြဒိနိတ်များဖြစ်သည်။ မာစတာ၏အရှေ့ဘက်သည် x သြဒီနိတ်၏ အပြုသဘောဆောင်သော ဦးတည်ချက်ဖြစ်ပြီး ဘယ်ဘက်ခြမ်းသည် 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 တစ်ခု၏ သြဒီနိတ်များကို- slave_x:-0.8၊ slave_y: 0.8 ဟု သတ်မှတ်နိုင်ပြီး အခြားကျွန်၏ သြဒီနိတ်များကို- slave_x:-0.8၊ slave_y:-0.8 ဟု သတ်မှတ်နိုင်သည်။

အခြားပုံစံများကို လိုအပ်သလို စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။

မှတ်ချက်:

  • စက်ရုပ်နှစ်ခုကြားတွင် အကြံပြုထားသော အကွာအဝေးကို 0.8 ဟု သတ်မှတ်ထားပြီး 0.6 ထက် မနိမ့်စေရန် အကြံပြုထားသည်။ ကျွန်နှင့်သခင်ကြားအကွာအဝေးကို 2.0 အောက်သတ်မှတ်ရန် အကြံပြုထားသည်။ သခင်နှင့်ဝေးလေလေ၊ သခင်လှည့်လာသောအခါ ကျွန်၏တစ်ပြေးညီအမြန်နှုန်းသည် ကြီးလေဖြစ်သည်။ အမြင့်ဆုံးအမြန်နှုန်း၏ ကန့်သတ်ချက်ကြောင့်၊ လိုအပ်ချက်များနှင့် မကိုက်ညီပါက ကျွန်၏အမြန်နှုန်းသည် သွေဖည်သွားမည်ဖြစ်သည်။ စက်ရုပ်ဖွဲ့စည်းမှုမှာ ဖရိုဖရဲဖြစ်လိမ့်မည်။

ကျွန်ရာထူးကို အစပြုခြင်း။

  1. slave ၏ ကနဦး အနေအထားသည် ပုံမှန်အားဖြင့် မျှော်လင့်ထားသော သြဒီနိတ်များ တွင်ဖြစ်သည်။ ပရိုဂရမ်ကို မလုပ်ဆောင်မီ၊ ကနဦးအစပြုခြင်းကို အပြီးသတ်ရန် ကျေးကျွန်စက်ရုပ်ကို ၎င်း၏မျှော်လင့်ထားသည့် သြဒီနိတ်များနှင့် နီးကပ်စွာထားလိုက်ပါ။ ပုံ 4-1-3 တွင်ပြထားသည့်အတိုင်း turn_on_wheeltec_robot.launch အမည်ရှိ ဖိုင်ရှိ pose_setter node မှ ဤလုပ်ဆောင်ချက်ကို wheeltec_multi ပက်ကေ့ခ်ျတွင် အကောင်အထည်ဖော်သည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

အကယ်၍ အသုံးပြုသူသည် slave ၏ ကနဦးအနေအထားကို စိတ်ကြိုက်ပြင်ဆင်လိုပါက၊ wheeltec_slave.launch တွင် ပုံ 4-1-4 တွင် ပြထားသည့်အတိုင်း slave_x နှင့် slave_y တန်ဖိုးများကိုသာ သတ်မှတ်ရန် လိုအပ်သည်။ slave_x နှင့် slave_y တန်ဖိုးများကို turn_on_wheeltec_robot.launch သို့ ပေးပို့ပြီး pose_setter node သို့ သတ်မှတ်ပေးပါမည်။ ပရိုဂရမ်ကိုမလုပ်ဆောင်မီ စက်ရုပ်ကို စိတ်ကြိုက်အနေအထားတွင်ထားလိုက်ပါ။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

ရာထူးဖွဲ့စည်းမှု

Multi-agent ဖွဲ့စည်းမှုတွင်၊ ဖြေရှင်းရမည့် ပထမဆုံးပြဿနာမှာ သခင်နှင့်ကျွန်ကို နေရာချထားခြင်းပင်ဖြစ်သည်။ မာစတာသည် 2D မြေပုံကို ဦးစွာတည်ဆောက်လိမ့်မည်။ မြေပုံကို ဖန်တီးပြီး သိမ်းဆည်းပြီးနောက်၊ 2D လမ်းကြောင်းပြ ပက်ကေ့ဂျ်ကို ဖွင့်ပြီး မာစတာ၏ နေရာချထားမှုကို ပုံဖော်ရန်အတွက် 2D လမ်းညွှန်မှု ပက်ကေ့ဂျ်တွင် လိုက်လျောညီထွေရှိသော Monte Carlo နေရာချထားခြင်းဆိုင်ရာ အယ်လဂိုရီသမ် (amcl နေရာချထားခြင်း) ကို အသုံးပြုပါ။ မာစတာနှင့် ကျွန်များသည် တူညီသောကွန်ရက်တွင်ရှိပြီး တူညီသော node မန်နေဂျာကို မျှဝေထားသောကြောင့် မာစတာသည် 2D လမ်းကြောင်းပြပက်ကေ့ချ်မှ မြေပုံကို စတင်လိုက်သည်၊ ကျွန်များအားလုံးသည် တူညီသော node မန်နေဂျာအောက်တွင် တူညီသောမြေပုံကို အသုံးပြုနိုင်သည်။ ထို့ကြောင့်ကျွန်သည်မြေပုံဖန်တီးရန်မလိုအပ်ပါ။ wheeltec_slave.launch တွင်၊ Monte Carlo positioning (amcl positioning) ကို run ပြီး ကျွန်များသည် master မှဖန်တီးထားသောမြေပုံကိုအသုံးပြု၍ ၎င်းတို့၏ရာထူးများကို configure လုပ်နိုင်ပါသည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

ဖွဲ့စည်းတည်ဆောက်ပုံ၊ ဖွဲ့စည်းထိန်းသိမ်းနည်း

ဖွဲ့စည်းလှုပ်ရှားမှုဖြစ်စဉ်တွင်၊ မာစတာလှုပ်ရှားမှုကို Rviz၊ ကီးဘုတ်၊ အဝေးထိန်းခလုတ်နှင့် အခြားနည်းလမ်းများဖြင့် ထိန်းချုပ်နိုင်သည်။ ကျွန်သည် ၎င်း၏လှုပ်ရှားမှုကို ထိန်းချုပ်ရန်နှင့် ဖွဲ့စည်းမှု၏ပန်းတိုင်ကို အောင်မြင်ရန်အတွက် slave_tf_listener node မှတဆင့် ၎င်း၏အမြန်နှုန်းကို တွက်ချက်သည်။ အကျိုးသက်ရောက်မှုများ ဆက်တိုက်ဖြစ်ပေါ်စေမည့် node တွက်ချက်မှုဖြင့် အလွန်အမင်းမြန်နှုန်းကိုရှောင်ရှားရန် slave_tf_listener node သည် slave speed ကို ကန့်သတ်ထားသည်။ တိကျသောတန်ဖိုးကို wheeltec_slave.launch တွင် ပြင်ဆင်နိုင်သည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

ဖွဲ့စည်းခြင်းဆိုင်ရာ အယ်လဂိုရီသမ်၏ သက်ဆိုင်ရာ ဘောင်များသည် အောက်ပါအတိုင်းဖြစ်သည်။ ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

အတားအဆီး ရှောင်ရှားခြင်းဆိုင်ရာ အချက်အလက်

များစွာသော အေးဂျင့်ဖွဲ့စည်းမှုတွင်၊ မာစတာသည် အတားအဆီးကို ရှောင်ရှားရန် move_base node ကို အသုံးပြုနိုင်သည်။ သို့သော်လည်း၊ slave ၏ ကနဦးအစတွင် move_base node ကို အသုံးမပြုပါ။ ဤအချိန်တွင်၊ multi_avoidance node ကို slave ပရိုဂရမ်တွင် ခေါ်ရန် လိုအပ်သည်။ အတားအဆီးကို ရှောင်ရှားခြင်း node ကို အထုပ်ထဲတွင် ပုံသေဖြင့် ဖွင့်ထားသည်။ လိုအပ်ပါက၊ အတားအဆီးရှောင်ရှားခြင်း node ကိုပိတ်ရန် "false" ဟုသတ်မှတ်နိုင်သည်။ ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

ဘေးကင်းသောအကွာအဝေးသည် အတားအဆီးဘေးကင်းသောအကွာအဝေးကန့်သတ်ချက်၊ အန္တရာယ်_အကွာအဝေးသည် အတားအဆီးအန္တရာယ်ရှိသောအကွာအဝေးကန့်သတ်ချက်ရှိရာ အောက်ပုံတွင် အတားအဆီးရှောင်ရှားခြင်း၏သက်ဆိုင်ရာပါရာမီတာအချို့ကိုပြသထားသည်။ အတားအဆီးသည် လုံခြုံသောအကွာအဝေးနှင့် အန္တရာယ်အကွာအဝေးအတွင်းတွင်ရှိသောအခါ၊ ကျွန်သည် အတားအဆီးကိုရှောင်ရှားရန် ၎င်း၏အနေအထားကို ချိန်ညှိသည်။ အတားအဆီး အန္တရာယ်ကျရောက်သောအခါ ကျွန်သည် အတားအဆီးမှ မောင်းထုတ်လိမ့်မည်။ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-ပုံ- (၁)

စစ်ဆင်ရေးလုပ်ထုံးလုပ်နည်း

execution command ကိုရိုက်ထည့်ပါ။

အများအပြားအေးဂျင့်ဖွဲ့စည်းခြင်းမစတင်မီ ကြိုတင်ပြင်ဆင်မှုများ-

  • မာစတာနှင့်ကျွန်သည် တူညီသောကွန်ရက်သို့ချိတ်ဆက်ပြီး အများအပြားအေးဂျင့်ဆက်သွယ်ရေးကို မှန်ကန်စွာသတ်မှတ်ပါ။
  • မာစတာသည် 2D မြေပုံတစ်ခုကို ကြိုတင်တည်ဆောက်ပြီး သိမ်းဆည်းထားသည်။
  • မာစတာကို မြေပုံ၏အစမှတ်တွင် ထားရှိပြီး ကျွန်ကို ကနဦးသတ်မှတ်မှုအနေအထား (ပုံသေကျွန်ဖွဲ့စည်းမှုအနေအထား) အနီးတွင် ထားရှိထားသည်။
  • Jetson Nano/Raspberry Pi အဝေးမှ လော့ဂ်အင်ဝင်ပြီးနောက်၊ အချိန်ထပ်တူပြုခြင်းကို လုပ်ဆောင်ပါ။

sudo ရက်စွဲ -s “2022-04-01 15:15:00”

  • အဆင့် ၁: မာစတာထံမှ 2D မြေပုံကိုဖွင့်ပါ။

roslaunch turn_on_wheeltec_robot navigation.launch

  • အဆင့် ၁: ကျွန်များအားလုံးမှ ဖွဲ့စည်းရေးပရိုဂရမ်ကို လုပ်ဆောင်ပါ။

roslaunch wheeltec_multi wheeltec_slave.launch

  • အဆင့် ၁− မာစတာမှ ကီးဘုတ်ထိန်းချုပ်မှု နိုဒိတ်ကိုဖွင့်ပါ သို့မဟုတ် မာစတာလှုပ်ရှားမှုကို အဝေးထိန်းခလုတ်ကို အသုံးပြု၍ ဂျိုက်စတစ်ကို အသုံးပြုပါ။

wheeltec_robot_rc keyboard_teleop.launch ပြန်လည်စတင်ပါ။

  • အဆင့် 4- (ချန်လှပ်ထားနိုင်သည်) Rviz မှ စက်ရုပ်လှုပ်ရှားမှုများကို စောင့်ကြည့်ပါ။

rviz

မှတ်ချက် - 

  1. ပရိုဂရမ်ကို မလုပ်ဆောင်မီ အချိန်ထပ်တူပြုခြင်း လုပ်ဆောင်ချက်ကို အပြီးသတ်ရန် သေချာပါစေ။
  2. Multi-agent ဖွဲ့စည်းမှု၏ မာစတာကို ထိန်းချုပ်သည့်အခါ၊ ထောင့်အလျင်သည် အလွန်မြန်သင့်သည်။ အကြံပြုထားသော linear speed သည် 0.2m/s၊ angular speed degree သည် 0.3rad/s အောက်ဖြစ်သည်။ သခင်လှည့်သောအခါ၊ ကျွန်သည် သခင်ထံမှ ဝေးလေလေ၊ linear speed ပိုကြီးရန် လိုအပ်သည်။ အထုပ်အတွင်းရှိ linear speed နှင့် angular speed ကို ကန့်သတ်ထားသောကြောင့်၊ slave car သည် လိုအပ်သော speed ကို မရောက်နိုင်ပါက၊ formation သည် ဖရိုဖရဲဖြစ်လိမ့်မည်။ ယေဘုယျအားဖြင့်၊ အလွန်အကျွံ linear speed သည် စက်ရုပ်ကို အလွယ်တကူ ပျက်စီးစေနိုင်သည်။
  3. Slave အရေအတွက်သည် တစ်ခုထက်ပိုနေသောအခါ၊ ROS host ၏ အကန့်အသတ်ရှိသော on-board wifi bandwidth ကြောင့်၊ multi-agent ဆက်သွယ်မှု၏ သိသိသာသာနှောင့်နှေးမှုနှင့် ပြတ်တောက်မှုဖြစ်စေရန် လွယ်ကူသည်။ Router သုံးပြီး ဒီပြဿနာကို ကောင်းကောင်းဖြေရှင်းနိုင်ပါတယ်။
  4. စက်ရုပ်ပေါင်းစုံဖွဲ့စည်းခြင်း၏ TF သစ်ပင် (ကျွန် 2 ဦး) သည်- rqt_tf_tree
  5. စက်ရုပ်ပေါင်းစုံဖွဲ့စည်းခြင်း (ကျွန် 2) ၏ node ဆက်ဆံရေးပုံသည် rqt_graph

စာရွက်စာတမ်းများ / အရင်းအမြစ်များ

ROBOWORKS Robofleet Multi-agent ALGORITHMS [pdf] အသုံးပြုသူလက်စွဲ
Robofleet Multi Agent Algorithms၊ Robofleet၊ Multi Agent Algorithms၊ Agent Algorithms၊ Algorithms

ကိုးကား

မှတ်ချက်တစ်ခုချန်ထားပါ။

သင့်အီးမေးလ်လိပ်စာကို ထုတ်ပြန်မည်မဟုတ်ပါ။ လိုအပ်သောအကွက်များကို အမှတ်အသားပြုထားသည်။ *