ROBOWORKS Robofleet ملٽي ايجنٽ الگورتھم
وضاحتون
- پيداوار جو نالو: ROBOWORKS
- نسخو: 20240501
- پاران تيار ڪيل: وين ليو ۽ جينٽ لن
- تاريخ: 1 مئي 2024
پيداوار جي ڄاڻ
ROBOWORKS هڪ ملٽي ايجنٽ سسٽم آهي جيڪو روبوٽ ڪوآرڊينيشن ۽ ڪميونيڪيشن لاءِ مختلف الگورتھم لاڳو ڪرڻ جي اجازت ڏئي ٿو.
FAQs
سوال: مون کي ڇا ڪرڻ گهرجي جيڪڏهن روبوٽ خودڪار طريقي سان وائي فائي سان ڳنڍي نه سگهي؟
ج: جيڪڏهن روبوٽ پاڻمرادو ڳنڍڻ ۾ ناڪام ٿئي ٿو، نيٽ ورڪ ڪارڊ کي ان پلگ ڪرڻ ۽ ٻيهر لڳائڻ جي ڪوشش ڪريو ۽ ٻيهر ڳنڍڻ جي ڪوشش ڪريو.
خلاصو
ھي دستاويز بنيادي طور تي wheeltec_multi نالي گھڻن روبوٽ ٺاھڻ جي فنڪشن پيڪيج جي استعمال جي وضاحت ڪري ٿو.
هي دستاويز چار حصن ۾ ورهايل آهي:
- پهريون حصو بنيادي طور تي ملٽي روبوٽ ٺهڻ واري طريقي جي تعارف بابت آهي؛
- ٻيو حصو خاص طور تي بيان ڪري ٿو ROS ملٽي مشين ڪميونيڪيشن سيٽنگون، بشمول ROS تعميراتي ملٽي مشين ڪميونيڪيشن ۽ اهي مسئلا جيڪي ROS ڪميونيڪيشن جي عمل ۾ پيش اچن ٿا؛
- ٽيون حصو خاص طور تي ملٽي مشين ٽائيم هم وقت سازي جي آپريشن مرحلن کي بيان ڪري ٿو.
- چوٿون حصو ملٽي مشين فارميشن فنڪشن پيڪيج جي مخصوص استعمال کي بيان ڪري ٿو.
هن دستاويز جو مقصد ملٽي ايجنٽ روبوٽ سسٽم جو تعارف آهي ۽ صارفين کي ملٽي روبوٽ ٺهڻ واري منصوبي کي جلدي شروع ڪرڻ جي اجازت ڏئي ٿو.
ملٽي ايجنٽ الگورٿمس جو تعارف
ملٽي ايجنٽ ٺهڻ جي الگورتھم
هي ROS پيڪيج هڪ فارميشن ڊرائيو دوران گڏيل ڪنٽرول ۾ ملٽي ايجنٽ جو هڪ عام مسئلو پيش ڪري ٿو. هي سبق هن موضوع تي مستقبل جي ترقي لاء هڪ بنياد رکي ٿو. فارميشن ڪنٽرول الگورٿم هڪ الگورٿم ڏانهن اشارو ڪري ٿو جيڪو ڪيترن ئي ايجنٽن کي ڪنٽرول ڪري ٿو هڪ خاص ٺهڻ لاءِ هڪ ڪم انجام ڏيڻ لاءِ. تعاون هڪ ڪم مڪمل ڪرڻ لاءِ هڪ خاص رڪاوٽ تعلق استعمال ڪندي ڪيترن ئي ايجنٽن جي وچ ۾ تعاون ڏانهن اشارو ڪري ٿو. ملٽي روبوٽ فارميشن ڊرائيو کي اڳوڻي طور وٺوample، collaboration جو مطلب آهي ته گھڻا روبوٽ گڏجي ھڪ گھربل ٺاھ ٺاھيندا آھن. ان جو جوهر هڪ خاص رياضياتي تعلق آهي جيڪو هر روبوٽ جي پوزيشن جي وچ ۾ مطمئن آهي. ٺهڻ جا طريقا خاص طور تي مرڪزي ٺهڻ واري ڪنٽرول ۽ تقسيم ٿيل فارميشن ڪنٽرول ۾ ورهايل آهن. مرڪزي ٺهڻ جي ڪنٽرول طريقن ۾ خاص طور تي شامل آهن مجازي جوڙجڪ جو طريقو، گرافڪ نظريي جو طريقو، ۽ ماڊل اڳڪٿي وارو طريقو. ورهايل ٺهڻ جي ڪنٽرول طريقن ۾ بنيادي طور تي هڪ اڳواڻ-پيروي وارو طريقو، هڪ رويي تي ٻڌل طريقو، ۽ هڪ مجازي ساخت جو طريقو شامل آهي.
هي ROS پيڪيج ملٽي روبوٽ فارميشن ڊرائيو کي هلائڻ لاءِ ورهايل فارميشن ڪنٽرول جي طريقي ۾ ليڊر-فالور جو طريقو لاڳو ڪري ٿو. ٺهڻ ۾ هڪ روبوٽ ليڊر جي طور تي نامزد ڪيو ويو آهي، ۽ ٻين روبوٽ کي غلام طور نامزد ڪيو ويو آهي اڳواڻ جي پيروي ڪرڻ لاء. الورورٿم هڪ خاص هدايت ۽ رفتار سان هيٺين روبوٽس پاران ٽريڪ ڪرڻ لاءِ ڪوآرڊينيٽس مقرر ڪرڻ لاءِ اڳواٽ روبوٽ جي حرڪت جي رفتار کي استعمال ڪري ٿو. ٽريڪنگ ڪوآرڊينيٽس مان پوزيشن جي انحراف کي درست ڪرڻ سان، پوئلڳ آخرڪار فالوورز ۽ متوقع ٽريڪنگ ڪوآرڊينيٽس جي وچ ۾ انحراف کي صفر تائين گھٽائي ڇڏيندا ته جيئن فارميشن ڊرائيو جا مقصد حاصل ڪري سگهجن. هن طريقي سان، الورورٿم نسبتا گهٽ پيچيده آهي.
رڪاوٽ کان بچڻ جا الگورتھم
ھڪڙو عام رڪاوٽ کان بچڻ وارو الگورتھم آھي مصنوعي امڪاني ميدان جو طريقو. جسماني ماحول ۾ روبوٽ جي حرڪت کي مجازي مصنوعي قوت جي ميدان ۾ حرڪت سمجهيو ويندو آهي. ويجھي رڪاوٽ جي سڃاڻپ ڪئي وئي آهي LiDAR. رڪاوٽ روبوٽ کي ڪشش ثقل پيدا ڪرڻ لاءِ هڪ حوصلي واري قوت جو ميدان مهيا ڪري ٿي ۽ ٽارگيٽ پوائنٽ روبوٽ کي ثقلي قوت پيدا ڪرڻ لاءِ ثقلي ميدان فراهم ڪري ٿو. هن طريقي سان، اهو روبوٽ جي حرڪت کي ڪنٽرول ۽ ڪشش جي گڏيل عمل تحت ڪنٽرول ڪري ٿو.
هي ROS پيڪيج هڪ سڌارو آهي جيڪو مصنوعي صلاحيت واري فيلڊ جي طريقي تي ٻڌل آهي. پهرين، ٺهڻ وارو الگورٿم غلام پيروڪار جي لڪير ۽ ڪوئلي جي رفتار کي حساب ڪري ٿو. ان کان پوء اهو وڌائي ٿو يا گھٽائي ٿو لڪير ۽ ڪوئلي جي رفتار کي رڪاوٽ کان بچڻ جي ضرورتن مطابق. جڏهن غلام جي پيروڪار ۽ رنڊڪ جي وچ ۾ فاصلو ويجهو هوندو آهي، ته غلام جي پيروڪار جي رنڊڪ کي رد ڪرڻ واري قوت وڌيڪ هوندي آهي. ان دوران، لڪير جي رفتار جي تبديلي ۽ ڪنگائي رفتار جي تبديلين کان وڌيڪ آهن. جڏهن رنڊڪ غلام جي پوئلڳ جي سامهون هوندي آهي، غلام جي پوئلڳ جي رنڊڪ کي تمام گهڻي ٿيندي آهي (اڳيون ردي سڀ کان وڏو آهي ۽ پاسي جي ڀڃڪڙي تمام ننڍي آهي). نتيجي طور، لڪير جي رفتار جي مختلف تبديلين ۽ ڪنگائي رفتار کان وڌيڪ آهن. مصنوعي صلاحيت واري فيلڊ جي طريقي سان، اهو هڪ حل کي بهتر بڻائي ٿو جڏهن هڪ روبوٽ ڪنهن رڪاوٽ جي سامهون جواب ڏيڻ بند ڪري سگهي ٿو. هي بهتر رڪاوٽ کان بچڻ جي مقصد کي پورو ڪري ٿو.
ملٽي ايجنٽ ڪميونيڪيشن سيٽ اپ
ملٽي ايجنٽ ڪميونيڪيشن هڪ اهم قدمن مان هڪ آهي ملٽي روبوٽ ٺهڻ کي مڪمل ڪرڻ لاءِ. جڏهن ڪيترن ئي روبوٽس جي لاڳاپي واري پوزيشن نامعلوم ناهي، روبوٽ کي رابطي جي قيام جي سهولت لاء رابطي جي ذريعي هڪ ٻئي جي معلومات کي حصيداري ڪرڻ جي ضرورت آهي. ROS-ورهايل فن تعمير ۽ نيٽ ورڪ ڪميونيڪيشن تمام طاقتور آهن. اهو نه رڳو آسان آهي بين الاقوامي عمل رابطي لاء، پر مختلف ڊوائيسز جي وچ ۾ رابطي لاء پڻ. نيٽ ورڪ ڪميونيڪيشن ذريعي، سڀئي نوڊس ڪنهن به ڪمپيوٽر تي هلائي سگهن ٿا. مکيه ڪم جهڙوڪ ڊيٽا پروسيسنگ ميزبان پاسي تي مڪمل ڪيا ويا آهن. غلام مشينون مختلف سينسرز پاران گڏ ڪيل ماحولياتي ڊيٽا حاصل ڪرڻ جا ذميوار آهن. ميزبان هتي مينيجر آهي جيڪو هلندو آهي ماسٽر نوڊ ROS ۾. موجوده ملٽي ايجنٽ ڪميونيڪيشن فريم ورڪ ڪيترن ئي روبوٽس جي وچ ۾ ڪميونيڪيشن کي سنڀالڻ لاءِ نوڊ مئنيجر ۽ هڪ پيراميٽر مئنيجر ذريعي آهي.
ملٽي ايجنٽ ڪميونيڪيشن قائم ڪرڻ جا قدم
- ساڳئي نيٽ ورڪ ۾ ROS ڪنٽرول سيٽ اپ ڪريو
- ساڳي نيٽ ورڪ تحت ماسٽر / غلام ROS ڪنٽرول قائم ڪرڻ جا 2 طريقا آھن.
آپشن 1:
ماسٽر ميزبان ماسٽر نوڊ مئنيجر کي هلائڻ سان مقامي وائي فائي ٺاهي ٿو. عام طور تي، هڪ روبوٽ جنهن کي ماسٽر طور نامزد ڪيو ويو آهي اهو وائي فائي نيٽ ورڪ ٺاهي ٿو. ٻيا روبوٽ يا ورچوئل مشينون هن وائي فائي نيٽ ورڪ ۾ غلامن جي حيثيت ۾ شامل ٿين ٿيون.
آپشن 2:
مقامي وائي فائي نيٽ ورڪ هڪ ٽئين پارٽي روٽر طرفان مهيا ڪيل آهي معلومات ريلي سينٽر جي طور تي. سڀ روبوٽ هڪ ئي روٽر سان ڳنڍيل آهن. روٽر پڻ انٽرنيٽ ڪنيڪشن کان سواءِ استعمال ڪري سگھجي ٿو. ھڪڙي روبوٽس کي چونڊيو ماسٽر طور ۽ ھلايو ماسٽر نوڊ مئنيجر. ٻيا روبوٽ غلامن جي طور تي نامزد ڪيا ويا آهن ۽ ماسٽر کان ماسٽر نوڊ مينيجر کي هلائيندا آهن.
فيصلو جيڪو اختيار چونڊيو وڃي اهو توهان جي منصوبي جي گهرجن تي منحصر آهي. جيڪڏهن روبوٽس جو تعداد جنهن کي ڳالهائڻ جي ضرورت آهي وڏي مقدار ۾ نه آهي، اختيار 1 جي سفارش ڪئي وئي آهي ڇو ته اهو خرچ بچائيندو آهي ۽ سيٽ اپ ڪرڻ آسان آهي. جڏهن روبوٽ جو تعداد وڏي مقدار ۾ آهي، اختيار 2 سفارش ڪئي وئي آهي. ROS ماسٽر ڪنٽرول جي ڪمپيوٽنگ پاور تي پابندي ۽ محدود آن بورڊ وائي فائي بينڊوڊٿ آساني سان دير ۽ نيٽ ورڪ ۾ رڪاوٽون پيدا ڪري سگھي ٿي. هڪ روٽر آساني سان انهن مسئلن کي حل ڪري سگهي ٿو. مهرباني ڪري نوٽ ڪريو ته جڏهن ملٽي-ايجنٽ ڪميونيڪيشن کي انجام ڏيو، جيڪڏهن مجازي مشين کي ROS غلام طور استعمال ڪيو وڃي، ان جي نيٽ ورڪ موڊ کي پل موڊ تي سيٽ ڪرڻ جي ضرورت آهي.
ماسٽر / غلام ماحول جي متغير کي ترتيب ڏيو
سڀني کان پوءِ ROS ماسٽرس سڀ هڪ ئي نيٽ ورڪ ۾ آهن، ملٽي ايجنٽ ڪميونيڪيشن لاءِ ماحوليات متغير مقرر ٿيڻ گهرجن. هي ماحول متغير مکيه ڊاريڪٽري ۾ .bashrc فائل ۾ ترتيب ڏنل آهي. ان کي لانچ ڪرڻ لاءِ gedit ~/.bashrc ڪمانڊ کي هلايو. مهرباني ڪري نوٽ ڪريو ته ماسٽر ۽ غلام جي ٻنهي .bashrc فائلن کي ملٽي ايجنٽ ڪميونيڪيشن ۾ ترتيب ڏيڻ جي ضرورت آهي. فائل جي آخر ۾ IP پتي کي ڇا تبديل ڪرڻ جي ضرورت آهي. جون ٻه لائينون ROS_MASTER_URI ۽ ROS_HOSTNAME آهن، جيئن تصوير 2-1-4 ۾ ڏيکاريل آهي. ROS ميزبان جا ROS_MASTER_URI ۽ ROS_HOSTNAME ٻئي مقامي IPs آهن. ROS غلام ۾ ROS_MASTER_URI .bashrc فائل کي ميزبان جي IP پتي تي تبديل ڪرڻ جي ضرورت آهي جڏهن ته ROS_HOSTNAME مقامي IP پتي جي طور تي رهي ٿو.
ROS ملٽي مشين ڪميونيڪيشن ROS رليز ورزن طرفان محدود نه آهي. گھڻن مشيني ڪميونيڪيشن جي عمل ۾، ھڪڙي کي ھيٺين کان واقف ٿيڻ گھرجي:
- ROS غلام پروگرام جو آپريشن ROS ماسٽر ڊيوائس جي ROS ماسٽر پروگرام تي منحصر آهي. ROS ماسٽر پروگرام کي غلام ڊوائيس تي غلام پروگرام کي عمل ڪرڻ کان پهريان پهريان ماسٽر ڊيوائس تي لانچ ڪرڻ گهرجي.
- ملٽي مشين ڪميونيڪيشن ۾ ماسٽر ۽ غلام مشينن جا IP پتا ساڳي نيٽ ورڪ ۾ هجڻ گهرجن. هن جو مطلب آهي IP پتو ۽ سب نيٽ ماسڪ هڪ ئي نيٽ ورڪ هيٺ آهن.
- ROS_HOSTNAME ماحوليات جي ترتيب واري فائل ۾ .bashrc کي مقامي هوسٽ استعمال ڪرڻ جي سفارش نه ڪئي وئي آهي. اهو هڪ مخصوص IP پتو استعمال ڪرڻ جي صلاح ڏني آهي.
- ان صورت ۾ ته غلام IP پتي صحيح طور تي مقرر نه ڪيو ويو آهي، غلام ڊوائيس اڃا تائين ROS ماسٽر تائين رسائي ڪري سگهي ٿو پر ان پٽ ڪنٽرول معلومات نٿو ڪري سگهي.
- جيڪڏهن ورچوئل مشين ملٽي ايجنٽ ڪميونيڪيشن ۾ حصو وٺي ٿي، ان جي نيٽ ورڪ موڊ کي پل موڊ تي سيٽ ڪرڻ جي ضرورت آهي. جامد IP نيٽ ورڪ ڪنيڪشن لاءِ منتخب نه ٿي ڪري سگھجي.
- ملٽي مشين ڪميونيڪيشن نه ٿي سگھي view يا ميسيج ڊيٽا ٽائيپ جي عنوانن جي رڪنيت حاصل ڪريو جيڪي مقامي طور تي موجود نه آهن.
- توھان استعمال ڪري سگھو ٿا Little Turtle Simulation Demo تصديق ڪرڻ لاءِ ته ڇا روبوٽس جي وچ ۾ ڪميونيڪيشن ڪامياب آھي.
- a. ماسٽر کان ڀڄڻ
- rescore #launch ROS خدمتون
- rostrum turtles turtlesim_node #launch turtles interface
- b. ٻانهن کان ڀڄڻ
- turtles rerun turtle_teleop_key # ڪڇين لاءِ ڪي بورڊ ڪنٽرول نوڊ لانچ ڪريو
- a. ماسٽر کان ڀڄڻ
جيڪڏھن توھان ٻانھي تي ڪيبورڊ تان ڪچھري جي تحريڪن کي ھڙتال ڪري سگھوٿا، ان جو مطلب آھي ماسٽر/غلام ڪميونيڪيشن ڪاميابيءَ سان قائم ٿي چڪي آھي.
ROS ۾ خودڪار وائي فائي ڪنيڪشن
هيٺ ڏنل طريقا وضاحت ڪن ٿا ته ڪيئن روبوٽ کي ترتيب ڏيڻ لاء خودڪار طريقي سان ميزبان نيٽ ورڪ يا روٽر نيٽ ورڪ سان ڳنڍڻ لاء.
Jetson Nano لاءِ خودڪار وائي فائي ڪنيڪشن سيٽ اپ
- Jetson Nano کي VNC ريموٽ ٽول ذريعي يا سڌو ڪمپيوٽر اسڪرين سان ڳنڍيو. مٿي ساڄي ڪنڊ ۾ وائي فائي آئڪن تي ڪلڪ ڪريو پوءِ "ڪنيڪشنز ۾ تبديلي آڻيو" تي ڪلڪ ڪريو.
- نيٽ ورڪ ڪنيڪشن ۾ + بٽڻ تي ڪلڪ ڪريو:
- هيٺ "هڪ ڪنيڪشن جو قسم چونڊيو" ونڊو، ڊراپ-ڊائون مينيو تي ڪلڪ ڪريو ۽ "ٺاهيو..." بٽڻ تي ڪلڪ ڪريو:
- ڪنٽرول پينل ۾، وائي فائي اختيار تي ڪلڪ ڪريو. "ڪنيڪشن جو نالو" ۽ SSID فيلڊز ۾ ڳنڍڻ لاءِ وائي فائي جو نالو داخل ڪريو. "موڊ" ڊراپ ڊائون مينيو ۾ "ڪلائنٽ" چونڊيو ۽ "ڊيوائس" ڊراپ ڊائون مينيو ۾ "wlan0" چونڊيو.
- ڪنٽرول پينل ۾، "جنرل" اختيار تي ڪلڪ ڪريو ۽ چيڪ ڪريو "خودڪار طور تي هن نيٽ ورڪ سان ڳنڍيو ...". ڪنيڪشن جي ترجيح کي 1 تي سيٽ ڪريو ”آٽو ايڪٽيويشن لاءِ ڪنيڪشن ترجيح“ اختيار ۾. چيڪ ڪريو "سڀ صارف شايد هن نيٽ ورڪ سان ڳنڍي سگھن ٿا" اختيار. جڏهن اختيار کي 0 تي مقرر ڪيو ويو آهي "ڪنيڪشن جي ترجيح آٽو ايڪٽيويشن لاءِ ٻين وائي فائي لاءِ"، ان جو مطلب اهو آهي ته ماضي ۾ اهو ترجيح وائي فائي نيٽ ورڪ آهي.
- ڪنٽرول پينل ۾ "وائي فائي سيڪيورٽي" اختيار تي ڪلڪ ڪريو. "سيڪيورٽي" فيلڊ ۾ "WPA ۽ WPA2 ذاتي" چونڊيو. پوءِ ”پاسورڊ“ واري فيلڊ ۾ وائي فائي پاسورڊ داخل ڪريو.
نوٽ: جيڪڏهن روبوٽ خود بخود وائي فائي نيٽ ورڪ سان ڳنڍي نٿو سگهي بوٽنگ کان پوءِ جڏهن وائي فائي جي ترجيح 0 تي مقرر ڪئي وئي آهي، اهو ٿي سگهي ٿو ڪمزور وائي فائي سگنل جي مسئلي جي ڪري. ھن مسئلي کان بچڻ لاءِ، توھان چونڊي سگھوٿا حذف ڪرڻ لاءِ سڀ وائي فائي جا اختيار جيڪي ماضي ۾ ڳنڍيل آھن. صرف ميزبان يا روٽر پاران ٺاهيل وائي فائي نيٽ ورڪ رکو. نيٽ ورڪ سيٽنگ ڪنٽرول پينل ۾ "IPv4 سيٽنگون" اختيار تي ڪلڪ ڪريو. منتخب ڪريو "دستي" اختيار کي "طريقو" فيلڊ ۾. پوءِ ”شامل ڪريو“ تي ڪلڪ ڪريو، ”ايڊريس“ فيلڊ ۾ غلام مشين جو IP پتو ڀريو. "Netmask" فيلڊ ۾ "24" ڀريو. "گيٽ وي" ۾ IP نيٽ ورڪ ڀاڱو ڀريو. IP نيٽ ورڪ جي حصي جي آخري ٽن انگن کي تبديل ڪريو "1" ۾. هن قدم جو بنيادي مقصد IP پتي کي درست ڪرڻ آهي. پهرين دفعي مڪمل ٿيڻ کان پوءِ، IP پتي ۾ تبديلي نه ٿيندي جڏهن ساڳئي WIFI سان ڳنڍجي بعد ۾.
سڀني سيٽنگن کي ترتيب ڏيڻ کان پوء، سيٽنگون محفوظ ڪرڻ لاء "محفوظ" تي ڪلڪ ڪريو. بچت جي ڪامياب ٿيڻ کان پوء، روبوٽ خودڪار طور تي ميزبان يا روٽر جي نيٽ ورڪ سان ڳنڍيندو جڏهن اهو طاقتور هوندو.
نوٽ:
- ھتي سيٽ ڪيل IP پتي کي سيڪشن 2.1 ۾ .bashrc فائل ۾ مقرر ڪيل IP پتي جي برابر ھجڻ گھرجي.
- ماسٽر ۽ هر غلام جو IP پتو منفرد هجڻ گهرجي.
- ماسٽر ۽ غلام IP پتي کي ساڳئي نيٽ ورڪ حصي ۾ هجڻ گهرجي.
- توهان کي ميزبان يا روٽر جو انتظار ڪرڻو پوندو ته هو وائي فائي سگنل موڪلڻ کان اڳ غلام روبوٽ کي هلائي سگهجي ۽ خودڪار طور تي وائي فائي نيٽ ورڪ سان ڳنڍجي.
- سيٽنگ کي ترتيب ڏيڻ کان پوء، جيڪڏهن روبوٽ خودڪار طور تي وائي فائي سان ڳنڍي نٿو سگهي جڏهن اهو آن ڪيو وڃي، مهرباني ڪري نيٽ ورڪ ڪارڊ کي پلگ ۽ ان پلگ ڪريو ۽ ٻيهر ڳنڍڻ جي ڪوشش ڪريو.
Raspberry Pi لاءِ خودڪار وائي فائي ڪنيڪشن سيٽ اپ
Raspberry Pi لاء طريقيڪار جيٽسن نانو وانگر ساڳيو آهي.
Jetson TX1 لاءِ خودڪار وائي فائي ڪنيڪشن سيٽ اپ
Jetson TX1 ۾ سيٽ اپ لڳ ڀڳ ساڳيو آهي جيئن Jetson Nano ۾ هڪ استثنا سان Jetson TX1 کي گهرجي ته نيٽ ورڪ سيٽنگ ڪنٽرول پينل ۾ "ڊيوائس" ۾ "wlan1" جي ڊوائيس کي چونڊيو وڃي.
ملٽي-ايجنٽ هم وقت سازي سيٽ اپ
گھڻن ايجنٽ ٺاھڻ واري منصوبي ۾، گھڻن ايجنٽ جي وقت جي هم وقت سازي جي جوڙجڪ ھڪ اھم قدم آھي. ٺهڻ جي عمل ۾، هر روبوٽ جي غير مطابقت واري نظام جي وقت جي ڪري ڪيترائي مسئلا پيدا ٿيندا. ملٽي ايجنٽ وقت جي هم وقت سازي کي ٻن حالتن ۾ ورهايو ويو آهي، يعني اها صورتحال جنهن ۾ ماسٽر ۽ غلام روبوٽ ٻئي نيٽ ورڪ سان ڳنڍيل آهن ۽ اها صورتحال جنهن ۾ ٻئي نيٽ ورڪ کان ڌار ٿي ويا آهن.
ڪامياب ماسٽر / غلام نيٽ ورڪ ڪنيڪشن
ملٽي ايجنٽ ڪميونيڪيشن کي ترتيب ڏيڻ کان پوءِ، جيڪڏهن ماسٽر ۽ غلام مشينون ڪاميابيءَ سان نيٽ ورڪ سان ڳنڍجي سگهن ٿيون، اهي خودڪار طريقي سان نيٽ ورڪ جي وقت کي هم وقت سازي ڪندا. انهي حالت ۾، وقت جي هم وقت سازي حاصل ڪرڻ لاء وڌيڪ عملن جي ضرورت ناهي.
نيٽ ورڪ ڊس ڪنيڪشن کي حل ڪرڻ
ملٽي ايجنٽ ڪميونيڪيشن کي ترتيب ڏيڻ کان پوءِ، جيڪڏهن ماسٽر ۽ غلام ڊوائيسز ڪاميابيءَ سان نيٽ ورڪ سان ڳنڍجي نه سگھندا، ته ضروري آهي ته دستي طور تي وقت کي هم وقت سازي ڪجي. اسان وقت جي سيٽنگ کي مڪمل ڪرڻ لاء تاريخ حڪم استعمال ڪنداسين.
پهريون، ٽرمينيٽر جو اوزار انسٽال ڪريو. ٽرمينيٽر ٽول مان، ونڊو ورهائڻ وارو اوزار استعمال ڪريو ماسٽر ۽ غلام جي ڪنٽرول ٽرمينل کي ساڳي ٽرمينل ونڊو ۾ رکڻ لاءِ (اسپلٽ ونڊو سيٽ ڪرڻ لاءِ ساڄي ڪلڪ ڪريو، ۽ مختلف ونڊوز ۾ ssh ذريعي ماسٽر ۽ غلام مشينن ۾ لاگ ان ڪريو) .
- sudo apt-get install terminator # ڊائون لوڊ ڪريو ٽرمينيٽر ٽرمينل ونڊو کي ورهائڻ لاءِ
مٿي کاٻي پاسي واري بٽڻ کي دٻايو، اختيار چونڊيو [براڊ ڪاسٽ سڀ تائين]/[براڊ ڪاسٽ سڀ]، ۽ ھيٺ ڏنل ڪمانڊ داخل ڪريو. پوءِ ٽرمينيٽر ٽول استعمال ڪريو مالڪ ۽ غلام لاءِ ساڳيو وقت مقرر ڪرڻ لاءِ.
- sudo date -s “2022-01-30 15:15:00” # دستي وقت سيٽ اپ
ملٽي ايجنٽ ROS پيڪيج
ROS پيڪيج جو تعارف
غلام جو نالو قائم ڪريو
wheeltec_multi فنڪشن پيڪيج ۾، اهو ضروري آهي ته هر غلام روبوٽ لاء هڪ منفرد نالو مقرر ڪرڻ لاء غلطي کان بچڻ لاء. مثال طورample، slave1 لاءِ نمبر 1 ۽ slave2 لاءِ نمبر 2 وغيره. مختلف نالن کي ترتيب ڏيڻ جو مقصد ھلندڙ نوڊس کي گروپ ڪرڻ ۽ انھن کي مختلف نالن جي اسپيس سان ڌار ڪرڻ آھي. مثال طورampلي، غلام 1 جو ريڊار موضوع آهي/غلام1/اسڪين، ۽ غلام 1 جو ليڊار نوڊ آهي/غلام1/ليزر.
غلام تنظيمن کي ترتيب ڏيو
wheeltec_multi پيڪيج ڪسٽم فارميشن کي لاڳو ڪري سگھي ٿو. جڏهن مختلف جوڙجڪ گهربل آهن، صرف غلام روبوٽس جي گهربل همراهن کي تبديل ڪريو. Slave_x ۽ slave_y آهن x ۽ y همعصر غلام جي مالڪ سان اصل حوالن واري نقطي طور. ماسٽر جي سامهون x همعصر جي مثبت طرف آهي، ۽ کاٻي پاسي y همعصر جي مثبت هدايت آهي. سيٽنگ مڪمل ٿيڻ کان پوء، هڪ TF ڪوآرڊينيٽ غلام 1 جاري ڪيو ويندو غلام جي متوقع ڪوآرڊينيٽ طور. جيڪڏهن هڪ مالڪ ۽ ٻه غلام آهن، هيٺ ڏنل ٺهڻ مقرر ڪري سگهجي ٿو:
- افقي ٺاھڻ: توھان سيٽ ڪري سگھو ٿا ٻانھي جي ڪوآرڊينيٽس کي کاٻي پاسي تي slave_x:0، slave_y: 0.8، ۽ ٻانھي جا ڪوآرڊينيٽس ساڄي پاسي slave_x:0، slave_y:-0.8.
- ڪالمن جي ٺهڻ: هڪ غلام جي همراهن کي سيٽ ڪري سگهجي ٿو: slave_x:-0.8، slave_y:0، ۽ ٻئي غلام جي همراهن کي سيٽ ڪري سگهجي ٿو: slave_x:-1.8، slave_y:0.
- ٽڪنڊي جي ٺهڻ: هڪ غلام جي همراهن کي مقرر ڪري سگهجي ٿو: slave_x:-0.8، slave_y: 0.8، ۽ ٻئي غلام جي همراهن کي سيٽ ڪري سگهجي ٿو: slave_x:-0.8، slave_y:-0.8.
ٻين فارميشن کي ضرورت مطابق ترتيب ڏئي سگهجي ٿو.
نوٽ:
- ٻن روبوٽ جي وچ ۾ تجويز ڪيل فاصلو 0.8 تي مقرر ڪيو ويو آهي، ۽ ان کي 0.6 کان گهٽ نه هجڻ جي صلاح ڏني وئي آهي. غلام ۽ ماسٽر جي وچ ۾ فاصلو 2.0 کان هيٺ مقرر ڪرڻ جي سفارش ڪئي وئي آهي. اهو مالڪ کان جيترو پري آهي، غلام جي لڪير جي رفتار ايتري وڌيڪ آهي جڏهن مالڪ ڦرندو آهي. وڌ ۾ وڌ رفتار جي حد جي ڪري، غلام جي رفتار انحراف ٿي ويندي جيڪڏهن اها ضرورتن کي پورو نه ڪري. روبوٽ ٺهڻ افراتفري بڻجي ويندو.
غلام جي پوزيشن جي شروعات
- غلام جي شروعاتي پوزيشن ڊفالٽ جي متوقع همراهن تي آهي. پروگرام کي هلائڻ کان اڳ، صرف غلام روبوٽ کي ان جي متوقع همراهن جي ويجهو رکو شروعاتي مڪمل ڪرڻ لاءِ. هي فنڪشن pose_setter نوڊ ذريعي لاڳو ڪيو ويو آهي فائل ۾ turn_on_wheeltec_robot.launch نالي wheeltec_multi پيڪيج ۾، جيئن تصوير 4-1-3 ۾ ڏيکاريل آهي.
جيڪڏهن صارف غلام جي شروعاتي پوزيشن کي ترتيب ڏيڻ چاهي ٿو، هن کي صرف slave_x ۽ slave_y قدرن کي ترتيب ڏيڻ جي ضرورت آهي جيئن تصوير 4-1-4 ۾ wheeltec_slave.launch ۾ ڏيکاريل آهي. slave_x ۽ slave_y قدرن کي turn_on_wheeltec_robot.launch ڏانهن منتقل ڪيو ويندو ۽ pose_setter نوڊ تي لڳايو ويندو. بس پروگرام کي هلائڻ کان پهريان روبوٽ کي ڪسٽم پوزيشن ۾ رکو.
پوزيشن جي ترتيب
ملٽي ايجنٽ ٺهڻ ۾، حل ٿيڻ جو پهريون مسئلو آقا ۽ غلام جي پوزيشن آهي. ماسٽر پهريون ڀيرو 2D نقشو ٺاهيندو. نقشي کي ٺاھڻ ۽ محفوظ ڪرڻ کان پوءِ، 2D نيويگيشن پيڪيج کي ھلايو ۽ ماسٽر جي پوزيشن کي ترتيب ڏيڻ لاءِ 2D نيويگيشن پيڪيج ۾ adaptive Monte Carlo پوزيشننگ الگورٿم (amcl پوزيشننگ) استعمال ڪريو. جيئن ته ماسٽر ۽ غلام هڪ ئي نيٽ ورڪ ۾ آهن ۽ هڪ ئي نوڊ مينيجر کي حصيداري ڪندا آهن، ماسٽر 2D نيويگيشن پيڪيج مان نقشو شروع ڪيو آهي، سڀئي غلام ساڳيا نقشو استعمال ڪري سگهن ٿا ساڳئي نوڊ مئنيجر جي تحت. تنهن ڪري، غلام کي نقشو ٺاهڻ جي ضرورت ناهي. wheeltec_slave.launch ۾، مونٽي ڪارلو پوزيشننگ (amcl پوزيشننگ) هلايو، غلام ماسٽر جي ٺاهيل نقشي کي استعمال ڪندي پنهنجي پوزيشن کي ترتيب ڏئي سگھن ٿا.
ٺاھڻ ڪيئن ٺاھڻ ۽ ٺاھڻ کي برقرار رکڻ
ٺهڻ واري تحريڪ جي عمل ۾، ماسٽر تحريڪ کي ڪنٽرول ڪري سگهجي ٿو Rviz، ڪيبورڊ، ريموٽ ڪنٽرول، ۽ ٻين طريقن سان. غلام پنهنجي رفتار کي slave_tf_listener node ذريعي حساب ڪري ٿو ته جيئن ان جي حرڪت کي ڪنٽرول ڪري ۽ ٺهڻ جو مقصد حاصل ڪري. slave_tf_listener نوڊ غلام جي رفتار کي محدود ڪري ٿو نوڊ جي حساب سان گھڻي رفتار کان بچڻ لاءِ، جيڪو اثرن جو سلسلو پيدا ڪندو. مخصوص قدر کي wheeltec_slave.launch ۾ تبديل ڪري سگھجي ٿو.
ٺاھڻ جي الگورتھم جا لاڳاپيل پيٽرول ھيٺ ڏنل آھن:
رڪاوٽ کان بچڻ جي ڄاڻ
گھڻن ايجنٽ جي ٺاھڻ ۾، ماسٽر استعمال ڪري سگھي ٿو move_base نوڊ مڪمل طور تي رڪاوٽ کان بچڻ لاء. بهرحال، غلام جي شروعات کي استعمال نه ڪندو آهي move_base نوڊ. هن نقطي تي، multi_avoidance نوڊ کي غلام پروگرام ۾ سڏڻ جي ضرورت آهي. رڪاوٽ کان بچڻ واري نوڊ کي ڊفالٽ طور تي پيڪيج ۾ فعال ڪيو ويو آهي. جيڪڏهن ضروري هجي ته، رڪاوٽ کان بچڻ واري نوڊ کي غير فعال ڪرڻ لاء "غلط" تي سيٽ ڪري سگهجي ٿو.
رڪاوٽ کان بچڻ واري نوڊ جا ڪجهه لاڳاپيل پيرا ميٽر هيٺ ڏنل شڪل ۾ ڏيکاريا ويا آهن، جتي safe_distance رڪاوٽ محفوظ فاصلي جي حد آهي، ۽ خطرو_distance رڪاوٽ خطرناڪ فاصلي جي حد آهي. جڏهن رڪاوٽ محفوظ فاصلي ۽ خطري جي مفاصلي جي اندر آهي، غلام ان رڪاوٽ کان بچڻ لاء پنهنجي پوزيشن کي ترتيب ڏئي ٿو. جڏهن رنڊڪ خطري ۾ هوندي آهي، غلام ان رڪاوٽ کان ڀڄي ويندو آهي.
آپريشن جو طريقو
داخل ڪريو execution حڪم
ملٽي ايجنٽ ٺهڻ شروع ڪرڻ کان اڳ تياريون:
- ماسٽر ۽ غلام هڪ ئي نيٽ ورڪ سان ڳنڍيندا آهن ۽ ملٽي ايجنٽ ڪميونيڪيشن کي صحيح طور تي سيٽ اپ ڪندا آهن
- ماسٽر اڳ ۾ 2D نقشو ٺاهي ٿو ۽ ان کي محفوظ ڪري ٿو
- ماسٽر نقشي جي شروعاتي نقطي تي رکيل آهي، ۽ غلام کي شروعاتي پوزيشن جي ويجهو رکيل آهي (ڊفالٽ غلام ٺهڻ واري پوزيشن)
- لاگ ان ٿيڻ کان پوءِ Jetson Nano/ Raspberry Pi ريموٽ، وقت جي هم وقت سازي کي انجام ڏيو.
sudo جي تاريخ "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 کان روبوٽ تحريڪن جو مشاهدو ڪريو.
آر ويز
نوٽ:
- پروگرام تي عمل ڪرڻ کان اڳ وقت جي هم وقت سازي جي عمل کي مڪمل ڪرڻ جي پڪ ڪريو.
- جڏهن هڪ گھڻ-ايجنٽ ٺهڻ جي ماسٽر کي ڪنٽرول ڪرڻ، ڪوئلي جي رفتار تمام تيز نه هجڻ گهرجي. تجويز ڪيل لڪير جي رفتار 0.2m/s آهي، 0.3rad/s کان هيٺ ڪوئلي جي رفتار جو درجو. جڏهن آقا موڙ ٺاهي رهيو آهي، غلام مالڪ کان جيترو پري آهي، اوتري ئي لڪير جي رفتار جي ضرورت آهي. ڇاڪاڻ ته پيڪيج ۾ لڪير جي رفتار ۽ ڪوئلي جي رفتار تي حد جي ڪري، جڏهن غلام ڪار گهربل رفتار تائين پهچي نه سگهندي، ٺهڻ افراتفري ٿي ويندي. مجموعي طور تي، گھڻي لڪير جي رفتار آساني سان روبوٽ کي نقصان پهچائي سگھي ٿي.
- جڏهن غلامن جو تعداد هڪ کان وڌيڪ آهي، ROS ميزبان جي محدود آن-بورڊ وائي فائي بينڊوڊٿ جي ڪري، ملٽي ايجنٽ ڪميونيڪيشن جي اهم دير ۽ ڪنيڪشن کي ختم ڪرڻ آسان آهي. هڪ روٽر استعمال ڪندي هن مسئلي کي چڱي طرح حل ڪري سگهي ٿو.
- ملٽي روبوٽ ٺهڻ جو TF وڻ (2 ٻانهن) آهي: rqt_tf_tree
- گھڻ-روبوٽ ٺاھڻ جو نوڊ رشتي ڊراگرام (2 ٻانھن) آھي: rqt_graph
دستاويز / وسيلا
![]() |
ROBOWORKS Robofleet ملٽي ايجنٽ الگورتھم [pdf] استعمال ڪندڙ دستياب روبوفليٽ ملٽي ايجنٽ الگورتھم، روبوفليٽ، ملٽي ايجنٽ الگورتھم، ايجنٽ الگورتھم، الگورٿمز |