آموزش رباتیک (ربات فوتبالیست) جلسه اول : مقدمه
با یاد ایزد یکتا، دنباله آموزش های شبیه سازی فوتبال دو بعدی ویژه مسابقات روبوکاپ را آغاز می نماییم.
هدف از ایجاد این درس نامه، آشنایی دانش پژوهان با لیگ شبیه سازی فوتبال دو بعدی در مسابقات روبوکاپ و همچنین ارتقای سطح کیفی این دانش در بین علاقه مندان می باشد.
با توجه به اینکه درصد غالب بازدیدکنندگان این پایگاه را دانش آموزان تشکیل می دهند و این دسته از مخاطبین معمولا با برنامه نویسی شی گرا، پروتکل های شبکه، طراحی و تحلیل الگوریتم ها، هوش مصنوعی، سیستم های چند عامله و سایر نیازمندی ها آشنا نمی باشند، سعی خواهیم نمود این دنباله دروس، تمامی مفاهیم لازم را از پایه، به صورت کامل و مشهود پوشش دهد. در همین راستا از تمامی دوستان به ویژه صاحب نظران دعوت می شود تا پیشنهاد ها، نظرات و انتقاد های خود را در بخش نظرات همین پست ارسال نمایند. همچنین می توانید سوالات مربوط به هر جلسه را در بخش نظرات همان جلسه مطرح کنید تا در اسرع وقت پاسخ مناسب آن ارائه گردد.
همانگونه که می دانید هر ساله مسابقات جهانی روباتیک توسط فدراسیون روبوکاپ، به منظور توسعه علم روباتیک و هوش مصنوعی برگزار می شود. هدف نمادین این فدراسیون پیشرفت علوم مرتبط با "روباتیک" به حدی است که در سال 2050 میلادی، تیم اول مسابقات فوتبالیست روبوکاپ بتواند در مقابل تیم قهرمان جام جهانی فوتبال همان سال یک مسابقه منطبق بر تمامی قوانین FIFA را به نمایش بگذارد.
مسابقات فوتبالیست روبوکاپ در دو بخش "روبات های حقیقی" و "شبیه سازی" برگزار می شود. روبات حقیقی یک ماشین الکترومکانیکی هوشمند است که برای آشنایی با نحوه طراحی و ساخت آنها می توانید به اینجا مراجعه کنید.
و اما شبیه سازی...
مطالعه برخی از آزمایش ها نیازمند ایجاد رویداد هایی پیچیده، پرهزینه و یا حتی غیر ممکن است که در این صورت از فرآیندی موسوم به شبیه سازی کامپیوتری (Computer Simulation) بهره می بریم و با در نظر گرفتن تمامی جنبه های رویداد حقیقی، مدلی مجازی از آن پدیده را درون یک محیط نرم افزاری طراحی نموده و با انجام آزمایش های لازم بر روی آن مدل و مشاهده رفتار سیستم شبیه سازی شده، استراتژی های بکار رفته را مورد ارزیابی قرار می دهیم.
برای مثال فرض کنید به دنبال یک استراتژی مناسب برای هدایت و راهبری نیرو هایی مثل آتش نشانی، گروه امداد و ... پس از وقوع یک فاجعه شهری مثل زلزله می باشیم بطوریکه خسارت های احتمالی را کمینه نماییم...
واضح است که ایجاد پدیده "زلزله" کاملا غیر ممکن است و تنها روشی که برای آزمایش استراتژی های گوناگون راهبری پس از حادثه وجود دارد، شبیه سازی کامپیوتری زلزله می باشد. از قضا در مسابقات روبوکاپ نیز لیگی تحت نام شبیه سازی امداد و نجات (Rescue Simulation) به همین منظور وجود دارد.
به عنوان مثال دوم، طراحی یک مریخپیما (Mars Rover) را در نظر بگیرید. هزینه طراحی چنین روبات هایی آنقدر بالا است که به طراحان اجازه کوچکترین اشتباهی را نمی دهد. بنابراین کاملا منطقی است که قبل از ساخت نمونه حقیقی، بار ها نمونه مجازی در محیطی شبیه سازی شده مورد بررسی قرار گیرد.
و در آخر شبیه سازی مسابقات فوتبال روبات ها...
واضح است که شما می توانید بدون پرداخت هیچ هزینه ای برای خرید یا ساخت روبات حقیقی و بدون درگیری با مسائل الکترونیکی و مکانیکی و با تمرکز بر روی مسائل هوش مصنوعی به پیاده سازی استراتژی های خود برای بازی فوتبال پرداخته و آنها را به سادگی مورد مطالعه و بررسی قرار دهید.
لیگ شبیه سازی فوتبال (Soccer Simulation) در مسابقات RoboCup، در دو بخش دو بعدی و سه بعدی برگزار می گردد.
در شبیه سازی سه بعدی (3D) به روبات ها از سطح انتزاع پایین تر (با جزئیات بیشتر) نگاه می شود و دقیقا همانند لیگ حقیقی، جزییاتی مثل سرعت و گشتاور چرخش موتور ها نیز منظور می شود. در این لیگ روبات NAO ساخت شرکت Aldebaran Robotics به عنوان پلتفرم استاندارد شبیه سازی می گردد.
اما در شبیه سازی دو بعدی (2D) به روبات ها با سطح انتزاع بالاتری می نگریم و از جزئیات ساختاری روبات صرف نظر نموده و تمرکز خود را روی استراتژی های بازی تیمی که یکی از شاخه های علم هوش مصنوعی به نام سیستم های چند عامله (Multi Agent Systems) است قرار می دهیم.
در این دنباله آموزش ما به شبیه سازی فوتبال دو بعدی خواهیم پرداخت. شاید پس از اتمام این دوره در مقوله شبیه سازی سه بعدی نیز گام نهادیم...
فدراسیون RoboCup برای استاندارد سازی مسابقات شبیه سازی فوتبال از معماری Server/Client استفاده نموده و نرم افزاری تحت عنوان RoboCup Soccer Simulation Server را منتشر کرده است. این نرم افزار محیط حقیقی بازی فوتبال را با تمام جزئیات مثل وزن توپ، وزن بازیکنان، سرعت بازیکنان، مختصات اشیا در زمین مسابقه، تعداد گل ها، جهت وزش باد و ... شبیه سازی می کند. برنامه های هوشمند نوشته شده برای بازیکن ها و مربی ها به عنوان Client (سرویس گیرنده) به نرم افزار Server (سرویس دهنده) متصل شده و با مبادله پیام بین Server و Client یک بازی فوتبال شبیه سازی می شود. نرم افزار Server فاقد هر گونه محیط گرافیکی است و برای آنکه نتیجه بازی همانند یک Game به صورت گرافیکی بر روی صفحه نمایشگر نمایش داده شود، فدراسیون روبوکاپ نرم افزاری به نام RoboCup Soccer Simulation Monitor را منتشر کرده که به Server متصل شده و لحظه به لحظه رویداد های درون Server را همانند یک بازی ویدئویی به تصویر می کشد.
هر دو نرم افزار Server و Monitor و همچنین اکثر ملزومات دیگر برای شبیه سازی فوتبال تحت سیستم عامل لینوکس (Linux) توسعه یافته اند و بنابراین محیط کار ما از اینجا به بعد، سیستم عامل Linux خواهد بود.
در جلسه آینده به معرفی سیستم عامل لینوکس و توزیع های مختلف آن خواهیم پرداخت...