در اين آموزش تصميم داريم شما را با ليگ رباتهاي مين ياب يا "Deminer" آشنا كنيم. اما اهميت اين رباتها چيست و اصولاً چرا چنين مسابقاتي برگزار ميشود؟
پاراگراف زير عيناً از دفترچهي قوانين مسابقات كشوري رباتهاي مين ياب در تبيين اهداف رباتهاي مينياب آورده شده است:
«بر اساس گزارشات موجود، ايران سومين كشور دنيا از لحاظ مينهاي دفن شده است. در طول 8 سال جنگ تحميلي عراق بر عليه ايران بالغ بر 16 ميليون مين در سرزمينهاي مرزي غرب و جنوب كشور كاشته شده است كه بعضاً به علت دورافتاده بودن و صعبالعبور بودن مناطق خنثي نشده باقي مانده و همه ساله افراد زيادي از بين مردم عادي و نظاميان قرباني ميكنند. استانهاي آذربايجان غربي، كرمانشاه، كردستان، ايلام و خوزستان، هنوز در معرض خطر انفجار مينهاي باقيمانده از بيست سال پيش هستند. كشف و خنثي سازي مينها كاري بسيار خطرناك و پرهزينه است. اين اميد وجود دارد كه رباتهاي مينياب بتوانند اين خطر را رفع نموده و تلفات انساني و هزينه مينيابي را كاهش دهند.»
اين پاراگراف به خوبي هدف از ساخت چنين رباتهايي را تبيين ميكند. اولين دورهي مسابقات رباتهاي مينياب در ايران، 6 سال پيش و توسط دانشگاه اميركبير برگزار شد، اما آن مسابقات در سالهاي بعد تداوم نيافت. اما مجدداً بعد از چند سال ليگ رباتهاي مينياب جايگاه خود را در بين ليگهاي مسابقاتي رباتيك ايران باز كرد و توانست به يكي از پر طرفدارترين ليگهاي رباتيك در ايران تبديل شود. در حال حاضر مسابقات متعددي ساليانه در اين ليگ برگزار ميشود كه معتبرترين آن هم مسابقات ملي رباتيك خوارزمي است كه آبان ما سال گذشته دورهي نخست آن برگزار شد.
هر چند كه اين ليگ توسط فداراسيون جهاني روبوكاپ به عنوان ليگ مسابقات جهاني شناخته نشده است، اما در تمامي مسابقات معتبري كه هر سال در كشور ما برگزار ميشود، نظير خوارزمي، IranOpen، موشهاي هوشمند، دانشگاه نوشيرواني بابل و... مسابقات در اين ليگ برگزار ميشود و طرفداران زيادي هم دارد.اين ليگ در 3 زير شاخهي زير برگزار ميشود:
1- رباتهاي مينياب خودكار
2- رباتهاي مينياب غيرخودكار(دستي)
3- رقابت فني
در اين آموزش هدف اصلي ما ربات هاي مين ياب خودكار و تشريح آنها خواهد بود....
اين ليگ جزو ليگهاي دانشجويي دسته بندي ميشود، اما به دليل عدم پيچيدگيهاي فنياي كه نسبت به ساير ليگهاي دانشجويي(مثل رباتهاي فوتباليستو ...) دارد، باعث شده تا اين ليگ در اكثر مسابقات داخلي پرشركت كنندهترين ليگهاي دانشجويي باشد. حتي در مسابقات امسال تيمهاي دانشآموزي حرفهاي هم در اين مسابقات شركت داشتند كه اتفاقاً موفق به كسب جايگاههاي مناسبي هم شدند.
در ادامه تشريح ميكنيم كه اين ربات چه وظايفي بر عهده دارد و در پيست مسابقه بايد چه عملي را انجام دهد.
يك ربات مين ياب، بايد قادر باشد تمامي مينهاي كارگذاري شده در يك ناحيهي مشخص را كشف و خنثي يا نابود سازد. اما شايد ساخت رباتي كه بتواند مينها را خنثي يا نابود سازد كار بسيار پيچيدهاي باشد، زيرا اين كار براي انسانها هم كار سادهاي نيست و نياز به قابليتهاي فيزيكي و هوشي بسيار بالايي دارد، و تا به حال رباتي با چنين قابليتهايي ساخته نشده است. پس اين بخش (يعني خنثي سازي مينها) از مسابقات حذف شده است و كار ربات مين ياب در زمين مسابقه به كشف مينها و تهيهي نقشهي ميدان مين بسنده شده است. ابتدا در مورد مشخصات زمين مسابقه و نحوهي كارگذاري مينها در اين زمين و سپس در مورد نحوهي كشف مينها توضيح ميدهيم و در نهايت هم به نقشهاي كه بايد از ميدان مين تهيه ميشود ميپردازيم.
زمين مسابقه
زمين مسابقه را هيئت داوري و كميتهي برگزاري هر مسابقه با توجه به امكانات و شرايط برگزار كنندهها طراحي ميكنند، پس طبيعي است كه زمين مسابقات مختلف با هم تفاوتهايي داشته باشد، اما تشابهاتي بين همهي آنها وجود دارد كه به آنها خواهيم پرداخت.
شكل كلي زمين مسابقات مينياب به شكل بالاست. ابعاد زمين معمولاً در حدود 5×5 متر است و معمولاً در داخل زمين موانعي مكعب شكل با ابعاد گوناگون بين (20 تا 50 سانتي متر) قرار دارد. جنس زمين از گچ و خاك است و سعي شده است تا جاي امكان سطح آن مسطح و سفت باشد. مرزهاي زمين با نوارهايي سفيد رنگ (با پهناي حدوداً 30 سانتيمتر) مشخص شده و خارج از اين مرزها مين كاشته نشده است. مينها در زير اين زمين و با فاصلهي حدوداً 10سانتي متر از سطح آن كاشته شدهاند و جاي آنها را به جز تيم داوري هيچ فرد ديگري نميداند و در واقع كار اصلي اين رباتها اين است كه جاي مينها را با علايمي مشخص نشان دهند. اما رباتها چگونهدر اين زمين ميتوانند جاي مينها را پيدا كنند؟
كشف مين
همانطور كه در عكس بالا ميبينيد، يكي از پركاربردترين عناصر در مينها و كلاً تسليحات جنگي، فلزات هستند. اين مسئله اساس كار رباتهاي مينياب است، رباتهاي مين ياب به يك عدد سنسور فلزياب مجهز هستند كه ميتواند فلزات را تا فاصلهي معيني(حدوداً 20 سانتيمتر) در زير خاك نيز تشخيص دهند. در مسابقات هم به جاي مين واقعي، از يك عدد قوطي كنسرو ماهي استفاده شده است. كار اصلي ربات اين است كه اين سنسور را در تمام نقاط زمين حركت دهد و هرجا كه توسط سنسور، جاي مين (قوطي فلزي) را پيدا كرد، ربات بر روي آن نقطه 5 ثانيه توقف كند و يك LED قرمز را روشن كند، تا به اين وسيله به تيم داوري جاي مين را اعلام كند.
زمين مسابقه به مربعهاي 50×50 سانتيمتر تقسيم شده است، كه مينها در وسط بعضي از اين مربعها كارگذاري شده است. زمانيكه رباتي جاي يك مين را اعلام ميكند، داور با توجه به اين كه جاي مينها را مي داند، مشخص ميكند كه ربات جاي مين را درست تشخيص داده است يا خير، و امتياز هر مين را جداگانه محاسبه ميكند. امتياز نهايي هر تيم، بر حسب تعداد مينهاي درست كشف شده، زمان، و تعداد برخوردها با مانع و ديوارهها، طبق فرمول خاصي محاسبهميشود.در نهايت امتياز تهيهي نقشهي ميدان مين توسط ربات(كه امتياز زيادي هم هست) به اين امتيازات اضافه ميشود. اما نقشه چيست؟
رباتها بايد امكانات مكانيابياي در اختيار داشته باشند تا بتوانند به وسيلهي آنها مختصات دقيق مينها را مشخص كنند و در پايان مسابقه مختصات تمام مينهاي كشف شده را در اختيار كاربر قرار دهند. اين بخش تقريباً پيچيدهترين بخش ساخت يك ربات مينياب خودكار است، و تيمهاي محدودي اين قابليت را دارند كه از محل مينها نقشهاي تهيه كنند.
تهيهي نقشهي مينها اجباري نيست، اما هر تيمي كه بتواند اين كار را انجام دهد امتياز قابل توجهي دريافت خواهد كرد كه شانس آن را براي موفقيت بسيار افزايش خواهد داد.
روش نقشه يابي
رباتهاي مينياب خودكار بايد به سيستمهايي مجهز باشند كه وقتي ميني را كشف ميكنند، بتوانند موقعيت(مختصات مكاني) آن مين را ثبت كنند، و در پايان زمان جستجو، مختصات تمام مينها را در اختيار كاربر بگذارند تا كاربر بتواند با در اختيار داشتن اين مختصات مكان مينها را به راحتي پيدا كند. همانطور كه در قسمت هاي پيش هم گفته شد، زمين مسابقه به مربعهاي 50×50 سانتيمتري فرضي تقسيم شده است و مينها دقيقاً در وسط بعضي از اين مربعهاي فرضي كاشته شدهاند. اعلام مختصات مينها نيز بايد بر اساس همين تقسيم بنديهاي فرضي انجام شود. مثلاً اگر زمين مسابقه 5×5 متر باشد، اين تقسيمبندي زمين مسابقه را به 100 خانه تقسيم ميكند كه در وسط بعضي از آنها (كمتر از 10 خانه) مين كاشته شده است. ربات بايد قادر باشد توسط 2 عدد بين 1 تا 10 مختصات هر مين را اعلام كند. به عنوان مثال به شكل زير نگاه كنيد، اين شكل مكان مينهايي كه در زمين مسابقه دفن شدهاند را نشان ميدهد.
ربات در پايان زمان مسابقه، بايد بتواند صورت خودكار مختصات خانههايي را كه در آنها مين دفن شده است را به طريقي به كاربر (داور مسابقه) اعلام كند: مثلاً اگر زمين مسابقه مانند شكل بالا باشد، ربات بايد 3 جفت عدد روبهرو را اعلام كند. (3،2) و (6،4) و (6،9).
بعضي از رباتها اين اعداد را توسط نمايشگرهاي كوچكي كه بر روي آن تعبيه شده است نشان ميدهند. اين نمايشگرها مشابه نمايشگرهاييست كه در ساخت ساعتهاي مچي ديجيتال استفاده ميشوند. كار با اين نمايشگرها را نيز در جلسات آينده توضيح خواهيم داد.
الگوريتمهاي جستجوي زمين براي كشف مين
كار اصلي يك ربات مينياب اين است كه سنسور فلزياب را در تمام نقاط زمين حركت دهد و در هر كجا كه وجود فلز را احساس كرد، وجود مين فرضي را اعلام كند. اما 2 نكتهي بسيار مهم را در ساخت يك ربات مينياب بايد مد نظر قرار دهيم تا ربات عملكرد مطلوبي داشته باشد:
1- در جستجوي خود به دنبال مين كليهي نقاط زمين را پوشش دهد و هيچ نقطهاي از زمين نباشد كه سنسور فلز ياب از روي آن گذر نكرده باشد.
2- عمل بالا را در كمترين زمان ممكن انجام دهد. به عنوان مثال اگر ربات يكي از نواحي زمين را چندين بار بگردد، ممكن است زمان زيادي تلف شود، پس بايد الگوريتمي طراحي شود كه هر نقطه از زمين بيش از يك بار هم جستجو نشود.
اما پياده سازي اين 2 نكته كار سادهاي نيست و كمتر تيمي ميتواند اين 2 نكته را به دقت اجرا كند، الگوريتم سادهتري هم براي جستجوي زمين وجود دارد كه در اين راه نيازي نيست 2 نكتهي بالا رعايت شوند، اكثر تيمها هم براي هدايت رباتهاي خود در زمين مسابقه از الگوريتم «تصادفي» (Random) استفاده ميكنند. اما طبيعيست كه عدم رعايت دو نكتهي بالا در طراحي ربات، موجب كاهش دقت و سرعت ربات خواهد شد.
الگوريتم جستجوي تصادفي
در اين روش، ربات زمين مسابقه را طبق هيچ الگوي خاصي جستجو نميكند، و زمانيكه به ديوارهها يا موانع برسد، فقط جهت خود را عوض ميكند و راه را ادامه ميدهد، هر زماني هم كه وجود مين را احساس كند، 5 ثانيه بر روي آن متوقف ميشود و مجدداً به راه خود ادامه ميدهد. در اين الگوريتم سازندگان ربات فقط 2 مشكل اساسي در پيش رو دارند:
1- چگونه وجود مانع يا ديواره را در جلوي خود تشخيص دهند.
2- چگونه وقتي مانع را در جلوي خود تشخيص دادند، جهت خود را به گونهاي تغيير دهند كه با مانع برخورد نكنند.
براي تشخيص موانع و ديوارههاي اطراف زمين، بايد از سنسورهاي فاصلهياب استفاده نمود. توسط اين سنسورها ميتوان فاصله از مانعي كه در روبروي ربات قرار دارد را تشخيص داد. در نتيجه زماني كه اين فاصله كمتر از حد معيني شد ميتوان تشخيص داد كه ربات به مانع نزديك شده است و امكان برخورد با مانع وجود دارد. در مورد انواع سنسورهاي فاصله ياب و نحوهي كار با آنها هم در جلسات آينده توضيح خواهيم داد.
زماني كه ربات به مانع نزديك شد، براي جلوگيري از برخورد ربات با موانع و ديوارهها بايد ربات جهت حركت خود را تغيير دهد. سادهترين راه براي تغيير جهت اين است كه ربات مسير حركت خود را مثلاً 90 درجه تغيير دهد، يعني هرگاه مانعي را در جلوي خود احساس كرد، به اندازهي ربع دايره ربات به دور خود بچرخد و به مسير خود ادامه دهد.
اين الگوريتم پر كاربردترين الگوريتم براي جستجوي زمين مسابقه است، زيرا پيادهسازي آن پيچيدگي فني زيادي ندارد و به خاطر سادهتر بودن سيستم، احتمال بروز خطاهاي پيشبيني نشده در آن كمتر است.
الگوريتمهاي جستجوي منظم
در اين الگوريتم، زمين مسابقه توسط الگوي مشخصي جستجو ميشود كه به واسطهي آن، هيچ قسمتي از زمين جستجو نشده باقي نميماند و هيچ قسمتي هم چند بار جستجو نميشود.
سادهترين الگو براي جستجوي منظم زمين اين است كه ربات، زمين را به صورت رديف به رديف جستجو كند، شكل زير نماي كلي حركت ربات را توسط اين الگوريتم نشان ميدهد:
در شكل بالا، ربات حركت خود را از خانهي (1و1) شروع ميكند، و در خانهي (1و10) به پايان ميرساند. در اين روش اگر در زمين مسابقه مانعي وجود داشته باشد، كار كمي پيچيدهتر ميشود و ربات بايد قادر باشد زمانيكه مانع را احساس ميكند، به گونهاي از برخورد با مانع پيشگيري كند كه از مسير حركت خود نيز منحرف نشود. به شكل زير دقت كنيد:
در شكل بالا، مانع در خانهي شمارهي (6و4) قرار دارد. ايدهالترين مسير براي ردّ مانع در شكل بالا نشان داده شده است.