ROBOWORKS Robofleet Orin Nano x3 ROS روبوٽ
خلاصو
ھي دستاويز بنيادي طور تي wheeltec_multi نالي گھڻن روبوٽ ٺاھڻ جي فنڪشن پيڪيج جي استعمال جي وضاحت ڪري ٿو.
هي دستاويز چار حصن ۾ ورهايل آهي:
- پهريون حصو بنيادي طور تي ملٽي روبوٽ ٺهڻ واري طريقي جي تعارف بابت آهي؛
- ٻيو حصو خاص طور تي ROS ملٽي مشين ڪميونيڪيشن سيٽنگون بيان ڪري ٿو، بشمول ملٽي مشين ڪميونيڪيشن جي ROS تعمير ۽ ROS ڪميونيڪيشن جي عمل ۾ جيڪي مسئلا پيش اچن ٿا؛
- ٽيون حصو خاص طور تي ملٽي مشين ٽائيم هم وقت سازي جي آپريشن مرحلن کي بيان ڪري ٿو.
- چوٿون حصو ملٽي مشين فارميشن فنڪشن پيڪيج جي مخصوص استعمال کي بيان ڪري ٿو.
هن دستاويز جو مقصد ملٽي ايجنٽ روبوٽ سسٽم جو تعارف آهي ۽ صارف کي اجازت ڏئي ٿو ته ملٽي روبوٽ ٺهڻ واري منصوبي کي جلدي شروع ڪري.
ملٽي ايجنٽ الگورٿمس جو تعارف
ملٽي ايجنٽ ٺهڻ جي الگورتھم
هي ROS پيڪيج هڪ فارميشن ڊرائيو دوران گڏيل ڪنٽرول ۾ ملٽي ايجنٽ جو هڪ عام مسئلو پيش ڪري ٿو. هي سبق هن موضوع تي مستقبل جي ترقي لاءِ بنياد رکي ٿو. فارميشن ڪنٽرول الگورٿم هڪ الگورٿم ڏانهن اشارو ڪري ٿو جيڪو ڪيترن ئي ايجنٽن کي ڪنٽرول ڪري ٿو هڪ خاص ٺهڻ لاءِ هڪ ڪم انجام ڏيڻ لاءِ. تعاون هڪ ڪم مڪمل ڪرڻ لاءِ هڪ خاص رڪاوٽ تعلق استعمال ڪندي ڪيترن ئي ايجنٽن جي وچ ۾ تعاون ڏانهن اشارو ڪري ٿو. ملٽي روبوٽ فارميشن ڊرائيو کي اڳوڻي طور وٺوample، collaboration جو مطلب آهي ته گھڻا روبوٽ گڏجي ھڪ گھربل ٺاھ ٺاھيندا آھن. ان جو جوهر اهو آهي ته هڪ خاص رياضياتي تعلق هر روبوٽ جي پوزيشن جي وچ ۾ مطمئن آهي. ٺهڻ جا طريقا خاص طور تي مرڪزي ٺهڻ واري ڪنٽرول ۽ تقسيم ٿيل فارميشن ڪنٽرول ۾ ورهايل آهن. مرڪزي ٺهڻ جي ڪنٽرول طريقن ۾ خاص طور تي شامل آهن مجازي ساخت جو طريقو، گرافڪ نظريي جو طريقو ۽ ماڊل اڳڪٿي وارو طريقو. ورهايل ٺهڻ جي ڪنٽرول طريقن ۾ خاص طور تي شامل آهن اڳواڻ-پيروي جو طريقو، رويي تي ٻڌل طريقو ۽ مجازي ساخت جو طريقو.
هي ROS پيڪيج ملٽي روبوٽ فارميشن ڊرائيو کي هلائڻ لاءِ ورهايل فارميشن ڪنٽرول جي طريقي ۾ ليڊر-فالور جو طريقو لاڳو ڪري ٿو. ٺهڻ ۾ هڪ روبوٽ ليڊر جي طور تي نامزد ڪيو ويو آهي، ۽ ٻين روبوٽ کي غلام طور نامزد ڪيو ويو آهي اڳواڻ جي پيروي ڪرڻ لاء. الورورٿم اڳواٽ روبوٽ جي حرڪت جي رفتار کي استعمال ڪري ٿو ڪوآرڊينيٽس مقرر ڪرڻ لاءِ هيٺين روبوٽس کي خاص هدايت ۽ رفتار سان. ٽريڪنگ ڪوآرڊينيٽس مان پوزيشن جي انحراف کي درست ڪرڻ سان، پوئلڳ آخرڪار فالوورز ۽ متوقع ٽريڪنگ ڪوآرڊينيٽس جي وچ ۾ انحراف کي صفر تائين گھٽائي ڇڏيندا ته جيئن فارميشن ڊرائيو جا مقصد حاصل ڪري سگهجن. هن طريقي سان، الورورٿم نسبتا گهٽ پيچيده آهي.
رڪاوٽ کان بچڻ جا الگورتھم
ھڪڙو عام رڪاوٽ کان بچڻ وارو الگورتھم آھي مصنوعي امڪاني فيلڊ جو طريقو. جسماني ماحول ۾ روبوٽ جي حرڪت کي ورچوئل مصنوعي قوت جي ميدان ۾ حرڪت سمجهيو ويندو آهي. ويجھي رڪاوٽ جي سڃاڻپ ڪئي وئي آهي LiDAR. رڪاوٽ روبوٽ کي ڪشش ثقل پيدا ڪرڻ لاءِ هڪ حوصلي واري قوت جو ميدان مهيا ڪري ٿي ۽ ٽارگيٽ پوائنٽ روبوٽ کي ڪشش ثقل قوت پيدا ڪرڻ لاءِ ثقلي ميدان فراهم ڪري ٿو. هن طريقي سان، اهو روبوٽ جي حرڪت کي ڪنٽرول ۽ ڪشش جي گڏيل عمل تحت ڪنٽرول ڪري ٿو.
هي ROS پئڪيج مصنوعي امڪاني فيلڊ جي طريقي جي بنياد تي هڪ سڌارو آهي. پهرين، ٺهڻ وارو الگورٿم غلام پيروڪار جي لڪير ۽ ڪوئلي جي رفتار کي حساب ڪري ٿو. پوءِ اهو رڪاوٽ کان بچڻ جي ضرورتن مطابق لڪير ۽ ڪوئلي جي رفتار کي وڌائي ٿو يا گھٽائي ٿو. جڏهن غلام پيروڪار ۽ رڪاوٽ جي وچ ۾ فاصلو ويجهو هوندو آهي، غلام جي پيروي ڪندڙ رڪاوٽ جي رد ڪرڻ واري قوت وڌيڪ هوندي آهي. ان دوران لڪير جي رفتار جي تبديلي ۽ ڪنگائي رفتار جي تبديلين کان وڌيڪ آهن. جڏهن رنڊڪ غلام جي پوئلڳ جي سامهون هوندي آهي، غلام جي پوئلڳ جي رنڊڪ کي تمام گهڻي ٿيندي آهي (اڳيون ردي سڀ کان وڏو آهي ۽ پاسي جي ڀڃڪڙي تمام ننڍي آهي). نتيجي طور، لڪير جي رفتار جي مختلف تبديلين ۽ ڪنگائي رفتار کان وڌيڪ آهن. مصنوعي امڪاني فيلڊ جي طريقي سان، اهو هڪ حل کي بهتر بڻائي ٿو
جڏهن هڪ روبوٽ هڪ رڪاوٽ جي سامهون جواب ڏيڻ بند ڪري سگهي ٿو. هي بهتر رڪاوٽ کان بچڻ جو مقصد ڪم ڪري ٿو.
ملٽي ايجنٽ ڪميونيڪيشن سيٽ اپ
ملٽي ايجنٽ ڪميونيڪيشن هڪ اهم قدمن مان هڪ آهي ملٽي روبوٽ ٺهڻ کي مڪمل ڪرڻ لاءِ. جڏهن ڪيترن ئي روبوٽس جي لاڳاپي واري پوزيشن نامعلوم ناهي، روبوٽ کي رابطي جي قيام کي آسان ڪرڻ لاء رابطي ذريعي هڪ ٻئي جي معلومات کي حصيداري ڪرڻ جي ضرورت آهي. ROS ورهايل فن تعمير ۽ نيٽورڪ مواصلات تمام طاقتور آهن. اهو نه رڳو آسان آهي بين الاقوامي رابطي لاء، پر مختلف ڊوائيسز جي وچ ۾ رابطي لاء پڻ. نيٽ ورڪ ڪميونيڪيشن ذريعي، سڀئي نوڊس ڪنهن به ڪمپيوٽر تي هلائي سگهن ٿا. مکيه ڪم جهڙوڪ ڊيٽا پروسيسنگ ميزبان پاسي تي مڪمل ڪيا ويا آهن. غلام مشينون مختلف سينسر پاران گڏ ڪيل ماحولياتي ڊيٽا حاصل ڪرڻ جا ذميوار آهن. ميزبان هتي مينيجر آهي جيڪو هلندو آهي ماسٽر نوڊ ROS ۾. موجوده ملٽي ايجنٽ ڪميونيڪيشن فريم ورڪ هڪ نوڊ مئنيجر ۽ هڪ پيراميٽر مئنيجر ذريعي آهي ڪيترن ئي روبوٽس جي وچ ۾ ڪميونيڪيشن کي سنڀالڻ لاءِ.
ملٽي ايجنٽ ڪميونيڪيشن قائم ڪرڻ جا قدم
ساڳئي نيٽ ورڪ ۾ ROS ڪنٽرول سيٽ اپ ڪريو
ساڳي نيٽ ورڪ تحت ماسٽر / غلام ROS ڪنٽرول قائم ڪرڻ جا 2 طريقا آھن.
آپشن 1:
ماسٽر ميزبان ماسٽر نوڊ مئنيجر کي هلائڻ سان مقامي وائي فائي ٺاهي ٿو. عام طور تي، هڪ روبوٽ جنهن کي ماسٽر طور نامزد ڪيو ويو آهي اهو وائي فائي نيٽ ورڪ ٺاهي ٿو. ٻيا روبوٽ يا ورچوئل مشينون هن وائي فائي نيٽ ورڪ ۾ غلامن جي حيثيت ۾ شامل ٿين ٿيون.
آپشن 2:
مقامي وائي فائي نيٽ ورڪ هڪ ٽئين پارٽي روٽر طرفان مهيا ڪيل آهي معلومات ريلي سينٽر جي طور تي. سڀ روبوٽ هڪ ئي روٽر سان ڳنڍيل آهن. روٽر پڻ انٽرنيٽ ڪنيڪشن کان سواءِ استعمال ڪري سگھجي ٿو. ھڪڙي روبوٽس کي چونڊيو ماسٽر طور ۽ ھلايو ماسٽر نوڊ مئنيجر. ٻيا روبوٽ غلامن جي طور تي نامزد ڪيا ويا آهن ۽ ماسٽر کان ماسٽر نوڊ مينيجر کي هلائيندا آهن.
فيصلو جيڪو اختيار چونڊيو وڃي اهو توهان جي منصوبي جي گهرجن تي منحصر آهي. جيڪڏهن روبوٽس جو تعداد جنهن کي ڳالهائڻ جي ضرورت آهي وڏي مقدار ۾ نه آهي، اختيار 1 جي سفارش ڪئي وئي آهي ڇو ته اهو خرچ بچائيندو آهي ۽ سيٽ ڪرڻ آسان آهي. جڏهن روبوٽ جو تعداد وڏي مقدار تي آهي، اختيار 2 جي سفارش ڪئي وئي آهي. ROS ماسٽر ڪنٽرول جي ڪمپيوٽنگ پاور تي پابندي ۽ محدود آن بورڊ وائي فائي بينڊوڊٿ آساني سان دير ۽ نيٽ ورڪ ۾ رڪاوٽون پيدا ڪري سگھي ٿي. هڪ روٽر آساني سان انهن مسئلن کي حل ڪري سگهي ٿو.
مهرباني ڪري نوٽ ڪريو ته جڏهن ملٽي-ايجنٽ ڪميونيڪيشن کي انجام ڏيو، جيڪڏهن مجازي مشين کي ROS غلام طور استعمال ڪيو وڃي، ان جي نيٽ ورڪ موڊ کي پل موڊ تي سيٽ ڪرڻ جي ضرورت آهي.
ماسٽر / غلام ماحول جي متغير کي ترتيب ڏيو
سڀني کان پوءِ ROS ماسٽرس سڀ هڪ ئي نيٽ ورڪ ۾ آهن، ملٽي ايجنٽ ڪميونيڪيشن لاءِ ماحوليات متغير مقرر ٿيڻ گهرجن. هي ماحول متغير .bashrc ۾ ترتيب ڏنل آهي file مکيه ڊاريڪٽري ۾. ان کي لانچ ڪرڻ لاءِ gedit ~/.bashrc ڪمانڊ کي هلايو. مهرباني ڪري نوٽ ڪريو ته ٻنهي .bashrc fileملٽي ايجنٽ ڪميونيڪيشن ۾ ماسٽر ۽ غلام جي s کي ترتيب ڏيڻ جي ضرورت آهي. ڇا تبديل ڪرڻ جي ضرورت آهي IP پتي جي آخر ۾ file. جون ٻه لائينون ROS_MASTER_URI ۽ ROS_HOSTNAME آهن، جيئن شڪل 2-1-4 ۾ ڏيکاريل آهي. ROS ميزبان جا ROS_MASTER_URI ۽ ROS_HOSTNAME ٻئي مقامي IPs آهن. ROS غلام ۾ ROS_MASTER_URI .bashrc file ميزبان جي IP پتي کي تبديل ڪرڻ جي ضرورت آهي جڏهن ته ROS_HOSTNAME مقامي IP پتي جي طور تي رهي ٿو.
ROS ملٽي مشين ڪميونيڪيشن ROS رليز ورزن طرفان محدود نه آهي. multimachine ڪميونيڪيشن جي عمل ۾، هڪ کي هيٺين کان واقف هجڻ گهرجي:
- ROS غلام پروگرام جو آپريشن ROS ماسٽر ڊيوائس جي ROS ماسٽر پروگرام تي منحصر آهي.
ROS ماسٽر پروگرام کي غلام ڊوائيس تي غلام پروگرام کي عمل ڪرڻ کان پهريان پهريان ماسٽر ڊوائيس تي لانچ ڪرڻ گهرجي. - ملٽي مشين ڪميونيڪيشن ۾ ماسٽر ۽ غلام مشينن جا IP پتا ساڳي نيٽ ورڪ ۾ هجڻ گهرجن. هن جو مطلب آهي IP پتو ۽ سب نيٽ ماسڪ هڪ ئي نيٽ ورڪ هيٺ آهن.
- ROS_HOSTNAME ماحول جي ترتيب ۾ file .bashrc مقامي هوسٽ استعمال ڪرڻ جي سفارش نه ڪئي وئي آهي. اهو هڪ مخصوص IP پتو استعمال ڪرڻ جي صلاح ڏني آهي.
- ان صورت ۾ ته غلام IP پتي صحيح طور تي مقرر نه ڪيو ويو آهي، غلام ڊوائيس اڃا تائين ROS ماسٽر تائين رسائي ڪري سگهي ٿو پر ان پٽ ڪنٽرول معلومات نٿو ڪري سگهي.
- جيڪڏهن ورچوئل مشين ملٽي ايجنٽ ڪميونيڪيشن ۾ حصو وٺي ٿي، ان جي نيٽ ورڪ موڊ کي پل موڊ تي سيٽ ڪرڻ جي ضرورت آهي. جامد IP نيٽ ورڪ ڪنيڪشن لاءِ منتخب نه ٿي ڪري سگھجي.
- ملٽي مشين ڪميونيڪيشن نه ٿي سگھي view يا ميسيج ڊيٽا ٽائيپ جي عنوانن جي رڪنيت حاصل ڪريو جيڪي مقامي طور تي موجود نه آهن.
- توھان استعمال ڪري سگھو ٿا Little Turtle Simulation Demo تصديق ڪرڻ لاءِ ته ڇا روبوٽس جي وچ ۾ ڪميونيڪيشن ڪامياب آھي.
a. ماسٽر کان ڀڄڻ
roscore # لانچ ROS خدمتون
rosrun turtlesim turtlesim_node # لانچ turtlesim انٽرفيس
b. ٻانهن کان ڀڄڻ
rosrun turtlesim turtle_teleop_key # turtlesim لاءِ ڪي بورڊ ڪنٽرول نوڊ لانچ ڪريو
جيڪڏھن توھان ٻانھي تي ڪيبورڊ تان ڪچھري جي تحريڪن کي ھڙتال ڪري سگھوٿا، ان جو مطلب آھي ماسٽر/غلام ڪميونيڪيشن ڪاميابيءَ سان قائم ٿي چڪي آھي.
ROS ۾ خودڪار وائي فائي ڪنيڪشن
هيٺ ڏنل طريقا وضاحت ڪري ٿو ته روبوٽ کي ترتيب ڏيڻ لاء خودڪار طريقي سان ميزبان نيٽ ورڪ يا روٽر نيٽ ورڪ سان ڳنڍڻ لاء.
Jetson Nano لاءِ خودڪار وائي فائي ڪنيڪشن سيٽ اپ
- Jetson Nano کي VNC ريموٽ ٽول ذريعي يا سڌو ڪمپيوٽر اسڪرين سان ڳنڍيو. مٿي ساڄي ڪنڊ ۾ وائي فائي آئڪن تي ڪلڪ ڪريو پوءِ ڪلڪ ڪريو "ڪنيڪشنز کي تبديل ڪريو.."
- نيٽ ورڪ ڪنيڪشن ۾ + بٽڻ تي ڪلڪ ڪريو:
- هيٺ "هڪ ڪنيڪشن جو قسم چونڊيو" ونڊو، ڊراپ-ڊائون مينيو تي ڪلڪ ڪريو ۽ "ٺاهيو..." بٽڻ تي ڪلڪ ڪريو:
- ڪنٽرول پينل ۾، وائي فائي اختيار تي ڪلڪ ڪريو. "ڪنيڪشن جو نالو" ۽ SSID فيلڊ ۾ ڳنڍڻ لاء وائي فائي جو نالو داخل ڪريو. "موڊ" ڊراپ ڊائون مينيو ۾ "ڪلائنٽ" چونڊيو ۽ "ڊيوائس" ڊراپ ڊائون مينيو ۾ "wlan0" چونڊيو.
- ڪنٽرول پينل ۾، "جنرل" اختيار تي ڪلڪ ڪريو ۽ چيڪ ڪريو "خودڪار طور تي هن نيٽ ورڪ سان ڳنڍيو ...". ڪنيڪشن جي ترجيح کي 1 تي سيٽ ڪريو ”آٽو ايڪٽيويشن لاءِ ڪنيڪشن ترجيح“ اختيار ۾. چيڪ ڪريو "سڀئي صارف هن نيٽ ورڪ سان ڳنڍي سگھن ٿا" اختيار. جڏهن اختيار 0 تي مقرر ڪيو ويو آهي "ڪنيڪشن جي ترجيح آٽو ايڪٽيويشن لاءِ" ٻين وائي فائي لاءِ، ان جو مطلب اهو آهي ته ماضي ۾ اهو ترجيح وائي فائي نيٽ ورڪ آهي.
- ڪنٽرول پينل ۾ "وائي فائي سيڪيورٽي" اختيار تي ڪلڪ ڪريو. "سيڪيورٽي" فيلڊ ۾ "WPA ۽ WPA2 ذاتي" چونڊيو. ان کان پوء وائي فائي پاسورڊ داخل ڪريو
نوٽ:
جيڪڏهن روبوٽ خود بخود وائي فائي نيٽ ورڪ سان ڳنڍي نٿو سگهي ته بوٽ ڪرڻ کان پوءِ جڏهن وائي فائي جي ترجيح 0 تي مقرر ڪئي وئي آهي، اهو ٿي سگهي ٿو ڪمزور وائي فائي سگنل جي مسئلي جي ڪري. هن مسئلي کان بچڻ لاء، توهان سڀني وائي فائي اختيارن کي حذف ڪرڻ جو انتخاب ڪري سگهو ٿا جيڪي ماضي ۾ ڳنڍيل آهن. صرف ميزبان يا روٽر پاران ٺاهيل وائي فائي نيٽ ورڪ رکو.
نيٽ ورڪ سيٽنگ ڪنٽرول پينل ۾ "IPv4 سيٽنگون" اختيار تي ڪلڪ ڪريو. منتخب ڪريو "دستي" اختيار "طريقو" فيلڊ ۾. پوءِ ”شامل ڪريو“ تي ڪلڪ ڪريو، ”ايڊريس“ فيلڊ ۾ غلام مشين جو IP پتو ڀريو. "Netmask" فيلڊ ۾ "24" ڀريو. "گيٽ وي" ۾ IP نيٽ ورڪ ڀاڱو ڀريو. IP نيٽ ورڪ جي حصي جي آخري ٽن انگن کي تبديل ڪريو "1" ۾. هن قدم جو بنيادي مقصد IP پتي کي درست ڪرڻ آهي. ان کان پوءِ پهريون ڀيرو مڪمل ٿيو، IP پتي ۾ تبديلي نه ٿيندي جڏهن ساڳئي WIFI سان ڳنڍجي بعد ۾.
سڀني سيٽنگون ترتيب ڏيڻ کان پوء، سيٽنگون بچائڻ لاء "محفوظ" تي ڪلڪ ڪريو. بچت ڪامياب ٿيڻ کان پوء، روبوٽ خودڪار طور تي ميزبان يا روٽر جي نيٽ ورڪ سان ڳنڍيندو جڏهن اهو طاقتور هوندو.
نوٽ:
- هتي مقرر ڪيل IP پتي کي ساڳيو هجڻ گهرجي جيئن IP پتي .bashrc ۾ مقرر ڪيو ويو آهي file سيڪشن 2.1 ۾.
- ماسٽر ۽ هر غلام جو 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 پيڪيج جو تعارف
غلام جو نالو قائم ڪريو
n wheeltec_multi فنڪشن پيڪيج، اهو ضروري آهي ته هر غلام روبوٽ لاء هڪ منفرد نالو مقرر ڪرڻ لاء غلطي کان بچڻ لاء. مثال لاءِample، غلام 1 لاءِ نمبر 1 ۽ غلام 2 لاءِ نمبر 2 وغيره.
مختلف نالن کي ترتيب ڏيڻ جو مقصد ھلندڙ نوڊس کي گروپ ڪرڻ ۽ انھن کي مختلف نالن جي جڳھن سان فرق ڪرڻ آھي. مثال لاءِampلي، غلام 1 جو رادار موضوع آهي: /slave1/scan، ۽ غلام 1 جو LiDAR نوڊ آهي: / slave1/laser.
غلام تنظيمن کي ترتيب ڏيو
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 نوڊ ۾ file wheeltec_multi پيڪيج ۾ turn_on_wheeltec_robot.launch جو نالو ڏنو ويو، جيئن تصوير 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 نيويگيشن پيڪيج ۾ XNUMXD نيويگيشن پيڪيج کي استعمال ڪرڻ لاءِ 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: ماسٽر مان ڪيبورڊ ڪنٽرول نوڊ کوليو يا ماسٽر موومينٽ کي ريموٽ ڪنٽرول ڪرڻ لاءِ جوائس اسٽڪ استعمال ڪريو.
roslaunch 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 Orin Nano x3 ROS روبوٽ [pdf] استعمال ڪندڙ دستياب Orin Nano x3، Robofleet ROS Robot، Robofleet ROS، Robot، Robofleet Orin Nano x3 ROS Robot، Robofleet Orin Nano x3، Orin Nano x3 ROS Robot، Orin Nano x3 |