چکیده ـ ربوکاپ، تلاشی است در زمینه پروراندن تحقیقات هوش مصنوعی و هوش روباتها، که از طریق تعریف یک مسئله استاندارد و حل آن توسط محققین متعدد در کشورهای مختلف دنبال میشود. به همین منظور، برای چنین مسالهای بازی فوتبال درنظر گرفته شده است. بازی فوتبال صرفاً بعنوان یک محیط دینامیک و پویا برای آزمایش کردن نتایج حاصل از این تحقیقات انتخاب شده و هدف از این تحقیقات به هیچ وجه صرفاً انجام بازی فوتبال بین روباتها نمیباشد بلکه استفاده از ویژگیهای خاص بازی فوتبال برای پیاده سازی روشها و آزمایشات در یک کار تیمی و گروهی بین چند روبات هوشمند و متحرک است.
روباتهای فوتبالیست، آدمکهای هوشمند کامپیوتری هستند که میتوانند از طریق برنامه هوشمندی که به آنها داده میشود بطور خودکار در زمین فوتبال بازی کنند. بعبارت دیگر، روباتها از راه دور کنترل نمیشوند. هدف تحقیقات در روباتهای فوتبالیست، پژوهشِ و فنآوری نوین در زمینههای هوش مصنوعی و روباتهای هوشمند متحرک است.
کلید واژه ـ روبوکاپ ، شبیه ساز ، کارگزار ، عامل
1- مقدمه
سال 1997، در تاریخ هوش مصنوعی، به عنوان یک نقطه عطف تاریخی همواره به خاطر خواهد ماند. در ماه May این سال کامپیوتر Deep Blue شرکت IBM موفق شد که قهرمان شطرنج جهان را شکست دهد و این نتیجه 40 سال تلاش در جامعه پژوهشگران هوش مصنوعی بود. در چهارم July سال 1997 سفینه Pathfinder توانست برای اولین بار در تاریخ بشر، بر سطح مریخ بنشیند و اولین روبات کاملا هوشمند ساخت بشر (Sojourner) را با موفقیت بر سطح مریخ پیاده نماید. همزمان با این موفقیت ها، RoboCup نخستین گامهایش را به سوی ساخت یک تیم فوتبال، متشکل از روباتهای کاملا هوشمند فوتبالیست که بتواند بر قهرمان جهان پیروز شود، آغاز نمود.
ایده روباتهای فوتبالیست، اولین بار توسط پروفسور آلن مک ورث (Alan Acworth)، استاد دانشگاه British Columbia کشور کانادا در مقاله ای با عنوان "On Seeing Robots" مطرح گردید. یک گروه از محققین ژاپنی نیز بطور مستقل کارگاهی آموزشی در کنار همایش Grand Challenges in Artificial Intelligence که در اکتبر 1992 در توکیو برگزار میشد راه اندازی کردند. این کارگاه در پایان به بحثهای جدی ای پیرامون استفاده از محیط بازی فوتبال برای ارتقا دانش و تکنولوژی منجر شد. یک مجموعه از تحقیقات انجام شد که از جمله آنها میتوان به امکانسنجی تکنولوژیک، امکانسنجی مالی و. .. اشاره نمود. به همراه این تحقیقات یک نسخه اولیه از قوانین بازیها و نسخه اولیه شبیه ساز بازی فوتبال آماده گردید.
نتایج این تحقیقات و پروژهها این بود، که گروه مجریان آنها به این نتیجه رسید که انجام چنین پروژه ای ممکن است. در سال 1993 یک گروه از محققین به نامهای Minoru Asada، Yasu Kuniyoshi و Hiroaki Kitano تصمیم به راه اندازی یک دوره مسابقات رباتیک گرفتند که موقتا آن را Robot J-league نام نهادند. (J-League نام مسابقات لیگ حرفه ای فوتبال ژاپن است، که در آن سالها به تازگی آغاز شده بود.). در فاصله کمتر از یک ماه، درخواستهای متعددی از گروههای تحقیقاتی خارج از ژاپن به گروه برگزارکنندگان رسید که تقاضای حضور در این مسابقات را داشتند و پیشنهاد میکردند که این پروژه به یک پروژه بین المللی تبدیل شود. و چنین بود که این مسابقات به نام "Robot World Cup Initiative" و بطور خلاصه "RoboCup" نام گرفت. همزمان با این بحث ها، محققین زیادی ازقبل مشغول فعالیت بر سیستمهای هوش مصنوعی و روباتیکی بودند که در محیط فوتبال به تعامل با محیط میپرداختند. به عنوان نمونه میتوان به Itsuki Noda اشاره نمود که در ETL Electro Technical Lab، که یک موسسه تحقیقاتی دولتی در ژاپن است در زمینه سیستمهای چند هوشمنده (Multi-agent) در محیط فوتبال به تحقیقات میپرداخت، و شروع به تهیه و توسعه یک شبیه ساز فوتبال ویژه این کار نموده بود. همزمان و بطور مستقل، پروفسور Minoru Asada در دانشگاه ازاکا (Osaka) و خانم پروفسور Veloso Manuela و دانشجوی او Peter Stone در دانشگاه کارنگی ملون (Carnegie Melon) روی رباتهایی کار میکردند که فوتبال بازی میکنند. این افراد را میتوان پیشروان راه RoboCup نامید و بدون حضور آنها میتوان به طور قطع ویقین اعلام نمود که راه RoboCup آغاز نمی شد.
در ماه سپتامبر 1993 اولین اعلان عمومی انجام گردید و مقررات ویژه ای نیز به صورت پیش نویس آماده شد. عطف به آنها، بحثها و مناظرههای بسیاری درباره تشکیلات و مباحث فنی برگزاری چنین تورنمنت ویژه ای در کنفرانسها و کارگاههای متعددی که در این زمینه برگزار شده بود، انجام شد. از جمله آنها میتوان به AAAI-94 و سمپوزیوم JSAI و جلسات مختلف جامعه رباتیک اشاره نمود. در همین اوضاع و احوال بود که تیم Noda در ETL اولین نسخه شبیه ساز فوتبال را از طریق Web منتشر ساخت. Soccer Server Ver.0 که با زبان LISP تهیه شده بود به همراه Soccer Server Ver.1.0 که با C++ آماده گردیده بود، در این مجموعه قرار داشت. اولین نمایش عمومی این شبیه ساز در سال 1995 در همایش IJCAI انجام گرفت. در همایش Artificial Intelligence ،JCAI-95 International Joint Conference on که در مونترآل کشور کانادا در ماه آگوست 1995 برگزار شده بود، اعلان عمومی جهت برگزاری اولین دوره کنفرانس و مسابقات جهانی فوتبال روباتها همزمان با IJCAI-97 در شهر ناگویا (Nagoya) انجام شد. همزمان تصمیم گرفته شد که مسابقاتی تحت عنوان Pre-RoboCup-96 برای شناخت مسایل و مشکلات احتمالی برگزاری RoboCup در ابعاد بزرگ، برگزار شود. با این تصمیم عملا 2 سال تا برگزاری مسابقات اصلی، زمان بود تا محققین برای ساخت روباتهای خود اقدام نمایند و همچنین زمان کافی برای جمع آوری کمکهای مالی برای انجام پروژه بزرگ خود داشته باشند. Pre-RoboCup-96 همزمان با کنفرانس بین المللی روباتیک و سیستمهای هوشمند (IROS-96)، در تاریخ 4 تا 8 نوامبر سال 1996 در شهر ازاکا (Osaka) با شرکت 8 تیم شرکت کننده در لیگ شبیه سازی و نمایش رباتهای واقعی لیگ رباتهای متوسط (Middle Size) برگزار گردید. با در نظر گرفتن ابعاد محدود آن، این مسابقات را میتوان اولین اقدام جدی برای ارتقاء تحقیقات و آموزش با استفاده از محیط فوتبال در نظر گرفت. اولین دوره مسابقات و کنفرانس رسمی RoboCup در سال 1997 با موفقیت تمام شد. بیش از 40 تیم شرکت کننده (در هر دو رشته رباتهای واقعی و شبیه سازی)، و بیش از 5000 بازدیدکننده حضور داشتند. پیش بینی میشد که در RoboCup-98 نزدیک به 100 تیم شرکت کنند و بزرگترین رباتهای متحرک در طول تاریخ را بتوان آنجا دید.
2- اهداف ربوکاپ
فدراسیون جهانی روبوکاپ اهداف و جداول زمانی خاصی را برای انجام تحقیقات در این زمینه مشخص کرده است. همانطور که فضانوردان هدف اولیه خود را رساندن انسان به سطح کره ماه و سپس سالم بازگرداندن او به زمین عنوان کرده بودند، در حالی که هدف اصلی آنان این نبود، بلکه هدف، پیشرفت کلی در زمینه فضانوردی جهان بود. بزرگترین هدف روبوکاپ نیز پیشبرد سطح فنی جامعه جهانی میباشد، و به عنوان هدفی اولیه:
در میانه قرن بیست و یکم (در سال 2050 میلادی) یک تیم متشکل از روباتهای فوتبالیست شبیه انسان، در مسابقهای واقعی و با رعایت قوانین فیفا، تیم قهرمان جام جهانی را شکست خواهد داد.
گرچه در حین مسابقات جهانی سال گذشته با توجه به پیشرفتهای فوق العاده صورت گرفته، زمان تحقق این وعده بطور رسمی از سال 2050 به 2030 کاهش یافت، ولی حتی اگر تا آن زمان نیز به هدف فوق نرسیم، همانگونه که در سالیان اخیر شاهد بوده ایم و یقینا با سرعتی بمراتب افزونتر، شاهد پیشرفتهای شگرفی خواهیم بود. با توجه به این اهداف، لیگهای مختلفی در روبوکاپ تشکیل شدهاند که هریک روی زمینههای مشخصی از هوش مصنوعی تاکید دارند. مسابقات جام جهانی روبوکاپ در هفت لیگ زیر انجام میشود :
1. لیگ روباتهای اندازه متوسط (Middle Size)
2. لیگ شبیه سازی (Simulation)
3. لیگ روباتهای اندازه کوچک (Small Size)
4. لیگ روباتهای امدادگر (Rescue)
5. لیگ شبیه سازی امداد (Rescue Simulation)
6. لیگ روباتهای آدمواره (Humanoid)
7. لیگ سگهای سونی (Sony Dogs)
لیگ شبیهسازی ربوکاپ بر مبنای یک شبیه ساز به نام Soccer Server بنا شده است که وظیفة شبیهسازی بازی فوتبال را بین برنامههای کامپیوتری تهیه شده از طرف دو تیم برعهده دارد. بازی بانشان دادن خطوط، میدان، بازیکنان، توپ و غیره توسط یک برنامة دیگربه نامMonitor به صورت بصـری درمیآید. در واقع وظیفة برنامة Monitor نمایش دادن آن چیزی است که واقعاً بین برنامهها و در حافظــة برنامــه Soccer Server در جریان است. برنامة Soccer Server طوری نوشته شده است که شبیهسازی یک مسابقه فوتبال را برای بازیکنان دو تیم به صورت توزیع شده روی شبکه انجام دهد. در واقع هر تیم متشکل از 11 برنامه کامپیوتری است که به صورت مستقل اجرا شده و به سرور وصل میشوند و هر برنامه با استفاده از اطلاعاتی که از سرور دریافت میکند (مانند اطلاعات بینایی، شنوایی، احساسی) بایدموقعیت خود و سایر بازیکنان (چه هم تیمی چه غیر هم تیمی) را در زمین تشخیص بدهد و برای کسب نتیجة بهتر تلاش کند و از خود واکنش نشان دهد نکتة مهم در شبیهسازی روباتهای فوتبالیست آن است که اولاً برنامههای بازیکنان به صورت مجزا اجرا میشوند و دارای کنترل نمیباشند و بنابراین این مسأله جزء یکی از مسایل شبیهسازی سیستمهای Multi Agent قرار میگیرد. همچنین برای واقعیتر کردن و دشوارتر کردن مسأله همواره اطلاعاتی که بازیکنان از سرور دریافت میکنند همراه با مقداری خطا (Noise) خواهد بودکه باعث میشود شبیهسازی بازی به رقابتهای واقعی نزدیکتر شود. همچنین توانایی تصمیم گیری بلادرنگ یکی دیگر از ویژگیهای بارزی است که برنامههای شبیه ساز باید دارا باشند. برای حل این مسأله محققان از سرتاسر دنیا باید برنامههایی را به صورت یک تیم برای انجام بازی تهیه کنندکه برای این منظور تکنیکهای مختلف را در زمینه هوش مصنوعی، شبیهسازی و. .. میتواند به کار بسته میشود. زمینههای تحقیقاتی درگیر در این مسأله مدیریت کردن مسایل مربوط به روباتها از قبیل شناخت موجودات (Object Recognition)، برقراری ارتباط بین روباتها (Communication) و شبیهسازی وسایل سخت افزاری مانند حرکت روباتها میباشد. همچنین مسایل سطح بالاتری چون آموزش (Learning)، هم کاری (Co-operation)، بهینه سازی و تصمیم گیری بلادرنگ نیز دراین مسأله (شبیهسازی فوتبال بین روباتها) درگیر میشود. اولین دورة مسابقات شبیهسازی روباتهای فوتبالیست در سال 96 در ژاپن برگزار شد که تیم دانشگاه توکیو اول شد در مسابقات سال 97 تیم دانشگاه هامبولت مقام اول را به دست آورد. در سال 98 و 99 تیم دانشگاه کارنی ملون از آمریکا و در سال 2000 یک تیم از پرتغال مقام اول را کسب کرد.
3- مسابقات روبوکاپ چیست؟
مسابقات روبوکاپ یک رویداد بین المللی برای توسعه علوم رباتیک، هوش مصنوعی و سایر زمینههای مرتبط است. این مسابقات در دو بخش رباتهای واقعی و شبیه سازی ( Simulation) رباتها برگزار میگردد. درابتدا لیگ شبیه سازی آنچنان به مسابقات واقعی نزدیک نبود و دارای سطح هوشمندی کمتری بوداما در حال حاضر سعی شده است که با استفاده از نزدیکتر کردن محیط شبیه سازی شده به محیط واقعی و نیز در نظر گرفتن رفتار( Dynamics ) واقعی و محدودیتهای سخت افزاری سنسورها وعملگرها در حین مدل سازی، شباهت رباتهای شبیه سازی شده به رباتهای واقعی خیلی بیشتر گشته و امکان بکارگیری مستقیم الگوریتمهای شبیه سازی شده بر روی ربات واقعی فراهم شده است.
3-1- لیگهای شبیه سازی :
1. لیگ شبیه سازی امداد
2. لیگ شبیه سازی فوتبال
4- ربات چیست؟
ربات یک سیستم فیزیکی است که در کلی ترین حالت برای انجام یک سری از وظایف طراحی می شود امروزه سعی برآن است که کنترل ربات، خودکار باشد (Automatic) اما هدف والاترآن است که بتوان خود مختاری (Autonomy) درربات ایجاد کرد.برای این کار باالهام ازموجودات زنده درمی یابیم که می بایست هوش را در ماشین به وجود آورد که این اساس هوش مصنوعی است. در این راستا از نیمه های قرن گذشته فعالیت های تحقیقاتی زیادی در این زمینه انجام شده است که ازچندین سال قبل مسابقات متعددی درسراسر دنیا این مهم را پیگیری می کنند معروف ترین آن مسابقات ربوکاپ است.
4-1- انواع روبات
1. از دید کنترل :
الف- Tele operation (کنترل از راه دور توسط انسان):
ب- Self-Controlled (خود کنترل): که از لحاظ درجه ی هوشمندی (Degree Of Autonomy) به دو دسته ی زیر تقسیم می شوند:
Mind-less : این روبات ها کارهای تکراری (repetitive) را انجام می دهند.
Intelligent: این روبات ها هوشمند هستند و با عدم قطعیت (uncertainty) مقابله می کنند.
2. از دید فیزیکی و مکانیکی (تحرک پذیری)
الف- روباتهای ثابت (manipulator or industrial robots)
ب- روباتهای متحرک (mobile robots)
4- شبیهسازی فوتبال در رایانه یا Soccer Simulation.
Soccer simulation همانند بازیهای رایانهای فوتبال میباشد بااین تفاوت که عامل انسانی وظیفه کنترل را بر عهده نداشته وتمام کنترل به صورت خودکار وحتی خود مختار میباشد. لذا طراح برنامه میبایست درحین طراحی، هوشمندی لازم را در سیستم ایجاد کند وحتی قابلیت یادگیری را به سیستم بیفزاید. در هر حال سیستم میبایست قابلیت مقابله با عدم قطعیتهای موجود درمحیط را داشته باشد. Soccer simulation یکی اززمینه هایی است که پیش بینی شده تا سال 2050 یک تیم کاملا هوشمند از رباتها در مقابل یک تیم واقعی ازانسانها دریک مسابقه ی فوتبال به رقابت بپردازند.
5- روباتهای فوتبالیست
می دانیم که برای انجام هر کار ی باید هدف و مقصودی وجود داشته باشد . اگر هدفمان را از انجام کاری در نظر بگیریم مسلماً همه تلاش و کوشش ما در راه تحقق آن هدف خواهد بود. شاید این سوال پیش آمده باشد که هدف از ساخت روباتهای فوتبالیست چیست ؟ در جواب بایدگفت که در سال 2050 قراراست که یک مسابقه جهانی فوتبال برگزار بشود تنها دو تیم در این مسابقه شرکت دارند.
1- تیم قهرمان مسابقات جام جهانی فوتبال سال 2050
2- یک تیم از روباتهای فوتبالیست
ماجرا از این قراراست که در سال 1997 مهندسین کامپیوتر بخصوص مهندسین چینی گفتند که چرا هدفی برای رشته کامپیوتر در نظر گرفته نشده است ؟ پس از بحث و. .. آنها برگزاری یک مسابقه فوتبال بین انسان و روبات در سال 2050 را بعنوان هدف بزرگ خود قرار دادند. از آن سال به بعد (1997)هر سال مسابقات جهانی robocup برگزار میشود. در سال اول تیم کشور ژاپن اول شد (مسابقه آن سال به مسابقات اسکا معروف بود. )
در سال بعد یعنی سال 1998 همزمان با مسابقات جام جهانی فرانسه مسابقات جام جهانی robocup در پاریس هم برگزار شد.
نتایج بدست آمده توسط مسابقات فوتبال روباتها خیلی بهتر از نتایج سال پیش بود و این نشان از پیشرفت در راه تحقق هدف و روزنه امیدی بود. برای رسیدن به این هدف محققان در دو دسته فعالیت میکنند:
1- محققانی که روی نرم افزار یا هوش روباتها کار میکنند.
2 - محققانی که روی سخت افزار یا قسمت فیزیکی روباتها کار میکنند.
یک انسان یکسری ورودیها و اطلاعات دارد که آنها را ازمحیط اطراف(environment) دریافت میکند و بر اساس آنها فعالیت میکند. یک روبات هم باید بتواند مثل یک انسان ورودیهای محیط اطرافش را بگیرد.روبات با استفاده از یکسری سنسور میتواند محیط اطرافش را ببیند که توسط برنامهای که ما برای آن مینویسیم محدوده دیدش را مشخص میکنیم. (روبات جزآن محدوده ازاویه دید مشخص شده جایی دیگر را نمی بیند ) سنسور روبات مثل سنسور هوش ماست چون بعداً میخواهیم هوش این روبات را روی سخت افزار پیاده کنیم. بنابرین هوش این روبات باید مثل هوش ما آدمها باشد. دو نوع برنامه نویسی برای یک روبات فوتبالیست داریم :
اکثر روباتهای soccer simulation در کشور ما هوشمند نیستند یعنی در طی بازی، این برنامه ماست که به روبات میگوید مثلاً برو سمت چپ زمین و توپ رو بگیر و گل بزن نه خود agent. یا اینکه در طی بازی روبات فقط این را میداند که باید برود طرف دروازه حریف و بعد شوت کند بطرف دروازه. و دروازه بان هم فقط میداندکه اگه دید یک بازیکن حریف در حال نزدیک شدن به دروازه است او باید بطرفش برود و سعی کند توپ را از بازیکن بگیرد. به این نوع برنامه نویسی برای روبات هوش مصنوعی یاActivantor (AI ) میگویند.
6- روبات هوشمند Intelligent Robot))
6-1- هوشمندی Intelligent))
توانایی سیستم است برای اینکه در یک محیط نامشخص (غیر قابل پیش بینی) متناسب عمل کند، یعنی بتواند به آن هدفی که ما برای آن مشخص کرده ایم برسد. یک تعریف کلی از روبات هوشمند عبارت است از:
" یک ماشین قابل برنامه ریزی که بتواند عمل یک موجود هوشمند نظیر انسان را تقلید کند."
در هوشمندی دو دیدگاه وجود دارد :
1. انتقال دانش (Knowledge ) : یعنی ما دانش خودمان را به ربات میدهیم.
2. یادگیری ماشین (Machine Learning ) :در اینجا انسان هیچ دانشی به روبات نمی دهد و روبات خود با جریمه شدن کار درست را یاد میگیرد و پییشرفت میکند.
6-2- معیارهای هوشمندی
یک تعریف کلی از روبات هوشمند از زبان Albus عبارت است از:
هوشمندی توانایی یک سیستم برای درست عمل کردن در یک محیط غیر قطعی است به طوریکه درست عمل کردن، عملی است که احتمال موفقیت را افزایش دهد و موفقیت یعنی رسیدن به زیر هدف های رفتاری که هدف نهایی سیستم را تضمین می نماید.
6-3- استفاده از هوش مصنوعی
- هوش مصنوعی
در شبکه ارتباطی مغز انسانها سیگنالهای ارتباطی به صورت پالسهای الکتریکی هستند.جزء اصلی مغز نرون است که از یک ساختمان سلولی و مجموعه ای از شیارها و خطوط تشکیل شده و شیارها محل ورود اطلاعات به نرون هستند وخطوط محل خروج اطلاعات از نرون اند . نقطه اتصال یک نرون به نرون دیگر را سیناپس می نامند که مانند دروازه یا کلید عمل می کنند. گر واکنشهایی که میلیونها نرون مختلف به پالسهای متفاوت نشان میدهند با یکدیگر هماهنگ باشند ممکن است پدیده های مهمی در مغز رخ دهد.
آندسته از پژوهشگران هوش مصنوعی که رویکرد مدل مغزی را دنبال می کنند گونه ای از مدارهای الکتریکی را طراحی کرده اند که تا حدی شبکه مغز را شبیه سازی میکند در این روش هر گره(نرون) به تنهایی یک پردازنده است ولی رایانه های معمولی حداکثرچند cpuدارند هدف عمده کامپیوتر شبکه عصبی این است که مکانیسمی طراحی کند که همانند مغز انسان بازخورد مثبت یاد بگیرد پاسخهای درست و نادرست کدامند. سیستم شبکه عصبی این کار را از طریق ارزشگذاری کمی برای ارتباطات سیگنالها بین نرونها انجام میدهد مکانیسم ارزشگذاری توسط مقاومتها با تقویت یا تضعیف پالسها انجام میشود.چون شبکه های عصبی میلیونها نرون دارند خرابی تعدادی از آنها تاثیر چندانی برعملکرد سیستم نمی گذارد تا کنون چند سیستم آزمایشی با استفاده از این اصول طراحی و ساخته شده اند مثلاًدر بررسی های زیست محیطی، شبکه های عصبی برای جمع آوری و تحلیل اطلاعاتی که از راه دور حس شده اند مورد استفاده قرار می گیرند اطلاعاتی که اغلب سفینه ها مخابره می کنند بسیار حجیم است.شبکه های عصبی این اطلاعات را به راحتی دسته بندی کرده وپس از جمع آوری اطلاعات ذهنی و تجسمی نتایج جالبی به دست می آورند (مثلاًتشخیص انواع خاصی از ابرها) البته این فرایند با آنچه سیستم های خبره انجام می دهند متفاوت است زیرا این سیستم ها ابزارهای تصمیم سازی هستند و می توانند حجم زیادی از اطلاعات را به سرعت تحلیل کنند شبکه های عصبی برای مدل سازی فرایندهای فکری-مغزی که زمینه ی دیگری برای مطالعات حساس به اطلاعات و پیچیدگی است مورد استفاده قرار گرفته است .
هوش مصنوعی هنوز راه درازی در پیش دارد؛شبکه سازی عصبی (که با اغماض ارتباط گرایی هم نامیده می شود)در سالهای اخیر تغییرات عمده ای را شاهد بوده است .به عنوان نمونه برخی پژوهشگران پیش بینی میکنند به کمک تکنولوژی نرم افزاری جدید شبکه های عصبی با کامپیوترهای شخصی ترتیب داده خواهند شد و پیش بینی بازار سهام را ممکن خواهند کرد افرادی که درباره ی هوش مصنوعی وتوانایی های آن مرددند اظهار می دارند اگر هوش مصنوعی محقق شود ناچار است از دنیای منطقی،قانونمند ونمادین کامپیوترهای دیجیتال خارج شوند و به دنیای مبهم (حاصل از منطق فازی)شبکه های عصبی که مبتنی بر سیستم گسترده ی یاد گیری بازخوردی هستند پا بگذارد .
امروزه نگرش تازه ای نسبت به هوش مصنوعی ایجاد شده است که در بسیاری از آزمایشگاهها تحت بررسی است :دانشمندان سعی می کنند دریابند آیا با مجموعه ای از روباتهای نیمه هوشمندمی توان یک هوش جمعی ایجاد کنند به گونه ای که از اعضای تشکیل دهنده اش باهوش تر باشد.
روباتیک یکی از مهمترین زمینه های استفاده عملی از تکنیک های هوش مصنوعی است.
در واقع یک روبات هوشمند برای انجام اعمال هوشمندانه خود ناگزیر است بسیاری از این روش ها را به خدمت بگیرد:
Learning، ( یادگیری)
Planning، (برنامه ریزی)
Logic and Reasoning (منطق و استدلال (
Problem Solving، (حل مسائل (Learning
Knowledge Representation، (بازنمایی دانش)
Computer Vision (بینایی ماشین)
Search ( جستجو)
Natural Language Processing (سطح پردازش بالا)
در این طرح ما سعی کرده ایم حتی الامکان از اکثر تکنیک های فوق در جهت افزایش هوشمندی ربات استفاده شود که هدف اساسی تیم طراحی وساخت ربات های هوشمند مطابق با روش های روز دنیاست.
6-4- ارتباط هوشمندانه (Communicatio) وهمکاری هوشمندانه (Cooperation )
از آنجا که با یک محیط چند عاملی در Soccer Simulation مواجه هستیم استفاده موثر از تکنیک های موجود در زمینه Multiagent Systems می تواند بسیار راه گشا بوده و عملکرد سیستم را به شدت ارتقاء بخشد از مهمترین مسائل در زمینه سیستمهای چند عاملی ارتباط و همکاری بین عامل هاست که می بایست کاملا هوشمندانه باشد. ما سعی کردیم با استفاده از این دو تکنیک ، محیطی را فراهم آوریم که نیازی به هوشمندی بالای فردی برای تک تک عامل ها وجود ندارد در حالیکه با بوجود آوردن ارتباطی سالم وهوشمند بین این عامل ها می توا نیم یک جامعه هوشمند تشکیل دهیم . همانند کلونی مورچه ها.
6-5- ایجاد عامل های منطقی
این عامل ها از قدرت منطق واستدلال برخوردارند که برای ایجاد آنها از منطق های مختلفی می توان استفاده کرد .البته تاکنون ا کثر تیم ها از منطق کلاسیک و شیوه های Hard Computing استفاده کرده اند،
ولی ما سعی کرده ایم که از شیوه های Soft Computing و در نتیجه از منطق فازی Fuzzy Logic) ) جهت ایجاد عاملهای منطقی استفاده کنیم.
هدف ما انتقال هوشمندی و ذکاوت موجود در یک تیم فوتبال واقعی به ماشین می باشد. لذا رفتار یک فوتبالیست واقعی را با استفاده از منطق فازی برای عامل هایمان مدل سازی کرده ایم که این یکی از مهمترین نقاط قوت تیم ماست. از مزایای به کار بردن منطق فازی ، انعطاف پذیری زیاد در تصمیم گیری تحت عدم قطعیت بالا وعکس العمل مناسب تحت شرایط از پیش تعیین نشده می باشد.
6-6- یادگیری در روبات
گرچه روباتهائی مثل ASIMO کارهای شگفت انگیزی میکنند اما قادربه داشتن قابلیت یادگیری نیستند .
یک روبات باید بتواند در تعامل با محیط و در اثر تجربه یادگیری نماید
6-6-1- تعریف یادگیری
تعریفهای گوناگونی که درباره یادگیری انجام گرفته نشان میدهند که هنوز تعریف جامع و یکدستی که برای همه روانشناسان با نظریههای مختلف پذیرفتنی باشد به دست نیامده است. اما بسیاری از روانشناسان و پرورشکاران معتقدند که « یادگیری تغییری است که بر اثر تجربه یا آموزش در رفتار موجود زنده پدید میآید ». در این تعریف مهمترین واژهای که نظر را به خود جلب میکند واژه تغییر است. زیرا رفتار فرد درزمانی که چیزی نیاموخته با زمانی که آن چیز را،آموخته است تفاوت دارد.
واژه مهم دیگر رفتار است. زیرا تغییر رفتار با ابعاد بدنی مانند طول و عرض و قد و وزن بدنی ارتباط ندارد، بلکه بیشتر معلوم یادگیری است، نه دگرگونیهای بدنی.
6-6-2- روش های یادگیری(Learning):
1. یادگیری با ناظر(Supervised )
2. یادگیری تقویتی (Reinforcement)
3. یادگیری بدون ناظر (Unsupervised)
1. Supervised Learning ( یادگیری با ناظر):
اگر در یادگیری دقیقا به عامل آن چیز را که قرار است یاد بگیرد گفته شود و عامل بتواند خطای یادگیری خود را بدست آورد این یادگیری را با ناظر می گوییم .
2. Learning Reinforcement (یادگیری تقویتی): در یک مسئله یادگیری تقویتی، با عاملی روبرو هستیم که از طریق سعی و خطا با محیط تعامل کرده و یاد می گیرد تا عملی بهینه را برای رسیدن به هدف انتخاب نماید.
عامل، خطای یادگیری را به طور دقیق ندارد اما اطلاعات اندکی در مورد کیفیت آن به صورت پاداش(Reward) و تنبیه (Planty ) دریافت می کند
یادگیری تقویتی از اینرو مورد توجه است که راهی برای آموزش عاملها برای انجام یک عمل از طریق دادن پاداش و تنبیه است بدون اینکه لازم باشد نحوه انجام عمل را برای عامل مشخص نمائیم.
دو استراتژی اصلی برای اینکار وجود دارد:
1. استفاده از الگوریتم های ژنتیکی
2. دیگری استفاده از روشهای آماری( Dynamic Programming )
در RL روش دوم مد نظر است.
3. Unsupervised Learning (یادگیری بدون ناظر):
دراین نوع یادگیری نه پاداش و تنبیه وجود دارد و نه این که دقیقا به عامل آن چیز را که قرار است یاد بگیرد گفته می شود خود روبات با محیط درگیر می شود و نتیجه می گیرد.
همانطور که دیدیم یادگیری یک عامل مهم در تقویت عملکرد ربات ها می باشد ولی تا کنون در اکثر مسابقات این مهم نادیده گرفته شده است .
ما سعی کرده ایم در مواقعی که استفاده از منطق کافی نبوده مثلا در بعضی از حرکات فردی ربات ها مانند عکس العمل در مقابل شوت زدن و . . . که عملکرد مطلوب بدست نیامده از یادگیری استفاده کنیم که برای این منظور از شبکه های عصبی مصنوعی استفاده کرده ایم .
ما برای گام های بعدی در نظر داریم از یادگیری RL ، یادگیری به صورت Online و نیز از روش های بهینه سازی ، برنامه ریزی ( Planning ) ، حل مسئله ( ( Problem Solving مانند الگوریتم های ژنتیک وحتی کلونی مورچه ها استفاده کنیم .
همچنین از منطق فازی در ایجاد ارتباط و همکاری هوشمندانه استفاده شده است .
قابل ذکر است در مواردی که برای پردازش داده های مربوط به سنسورها Sensor Processing ) )از منطق فازی و یادگیری استفاده شده است .
در بعضی از موارد هم که نیازی به هوشمندی بالایی نبود از برنامه نویسی معمولی و منطق کلاسیک (Hard Computing )استفاده شده است .
6-7- شبکه های عصبی (Neural Network)
1. Biological Neural Network
2. Artificial Neural Network
شبکه های عصبی با تقریب عمومی کار می کنند.
در کنار هر شبکه عصبی یک قانون یادگیری (Learning rule) وجود دارد.
7- الگوریتم هوشمند
الگوریتمی است که بر اساس 64 بیت ساخته شده و بر اساس این 64 بیت است که اگر روبات اطلاعاتی را که میگیرد بهتر از اطلاعات قبلیش باشد اطلاعات جدید را جایگزین اطلاعات قبلی میکند.
7-1- تیم هوشمند(روباتها):
روباتهای این تیم با الگوریتم هوشمند کار میکنند این بدین معنی است که : مثلاً وقتی یک روبات چند بار از یک روش برای گل زدن استفاده کرد اما به نتیجه نرسید خودش روش را عوض میکند و اگر از روش جدید توانست گل بزند میفهمد که این روش بهتر از روش قبلی بود بنابراین خود روبات روش جدیدرا جایگزین روش قبلی میکند و از دفعات بعد از روش جدید استفاده میکند.(وقتی که روبات برای چند بار تا مقابل دروازه حریف برود و شوت کند اما شوتش گل نشود دفعه بعد تا مقابل دروازه حریف میرود اما این دفعه به یکی از روباتهای خودی نزدیک دروازه حریف پاس میدهد اگر این پاس به گل تبدیل شود، روبات پاس دادن راجایگزین روش شوت مستقیم توسط خود میکند و دفعات بعد از روش جدید استفاده میکند.) در برنامهای که قرار است ما بنویسیم این نکته خیلی مهم است که برنامه ما توزیع شده باشد. یعنی 12 تا روبات ما بتوانند با هم کار کنند و این هماهنگی را درحافظه خود داشته باشند. و اماهدف ما: نوشتن یک تیم بر اساس Server/client که بتواند ما را به هدفمان نزدیک کند.
7-2-Agent چیست ؟
اکنون یک محیط شبیه سازی شده در نظر میگیریم که بجای روباتها یکسری موجودیتهای گرد مانند، فعالیت میکنند که یک زاویه دید ویک توان مشخص دارند. یک agent دقیقاً مثل انسان است. اگر بیش از حد در زمین بدود توانش را از دست میدهد و خسته میشود. Agent ها مانند انسانها فکر میکنند،تصمیم میگیرند و عمل میکنند.بطور کلی کره هایی هستند که ما در صفحه میبینیم که هر کره به عنوان یک بازیکن است.
8- نقش Server client در Soccer Server
زمانی که Soccer Server راrun میکنیم هر کدام ازagent ها روی یک client، run میشوند. این بدین معنی است که : Server همه اطلاعات مربوط به توپ و بازیکن و موقعیت تمامی بازیکنان و... را در خود نگه میدارد. (اطلاعات داخل محیط، موقعیت توپ، وضعیت بازی و. ..)
هر کدام از بازیکنان که بخواهد کاری را انجام دهد دستوری مبنی بر درخواست خود(مثلاً: بازیکن میگوید که میخواهم شوت کنم ) را به سرور میفرستد اگر سرور شرایط را برای انجام آن دستور مهیا بداند درخواست را انجام میدهد. حداکثر تعداد client ها میتواند 12 باشد که : 11 نفرازآنها میتوانند بازیکنان باشند و یک نفر مربی تیم. ارتباط بین Clientها با یکدیگر و با Server بوسیله پروتکلUDP/IP برقرار میشود. یعنی با سوکتهای UDP/IP، Client ها با Server ارتباط برقرار میکنند.
8-1- Server
Server یک سیستم است که رفتارهای یک تیم یا چند تیم را دریک مسابقه بررسی میکند.Serverها وClientها براساسUDP/IP فعالیت میکنند یعنی رابط (connection) میان هرClient وServer سوکتهای UDP/IP هستند. وقتی یک بازیکن به Server وصل میشود تمامی پیغامها توسط این پرت رد وبدل میشود. بازیکنان درخواستهای خود را به سرور میفرستند و Server دستورهایی را که آنها میخواهند اجرا میکند. اطلاعات همه بازیکنان در Server توسط سنسورهای اطلاعاتی وجود دارد که شامل:
1- موقعیت زمین
2 - اطلاعات در مورد بازیکن(مانند سرعت، توان ) میباشد.
این نکته مهم است کهServer یک سیستم Real Time است. پس در برنامه نویسی باید این نکته لحاظ شود. فرمانها طی سیکلهای زمانی خاص به Server فرستاده میشود و هر دستور برای اجرا باید یک سیکل زمانی را در اختیار بگیرد.
8-2- Monitor
یک محیط مجازی است برای اینکه انسانها بتوانند اتفاقاتی کهServer روی بازی انجام میدهد را ببینند.برای هربازی میتوان چندین monitor در اختیار داشت در عین حال میتوان یک مسابقه را بدون مانیتور اجرا کرد. یعنی وجودmonitor برای اجرای بازی الزامی نیست.
8-3- Log player
زمانی که برنامه در حال اجرا است برنامه log player مانند یک دوربین فیلمبرداری عمل میکند و تمامی تغییرات بازی را در خود ذخیره مینماید. و پس از اتمام بازی شما میتوانید بازی را دوباره ببینید. Log player مثل media player عمل میکند یعنی بعد از اتمام بازی امکان عقب و جلو بردن، نمایش سریع یا آهسته فیلم گرفته شده را به ما میدهد.
9- قوانین مسابقات
1- قوانینی که توسط کامپیوتر اجرا میشود.
2- قوانین داور فیزیکی.
9-1- قوانینی که توسط کامپیوتر اجرا میشوند
3. Kick- Off
4. (Goal)
5. Out of Field
6. Player Clearance
7. Offside
8. Backpasses
9. Free kick Faults
10. Half-Time and Time-up
9-1-1- Kick-Off:
بازی فعال نیست ( وقتی که یک گل زده میشود، خطایی رخ میدهد، یا قبل از شروع دونیمه).
9-1-2- Kick-Off
- قبل از هر kick off همه بازیکنان باید در نیمه خود باشند.
- بعد از هرگل حداکثر 5 ثانیه زمان برای بازیکنان در نظر گرفته میشود.
- اگر بازیکنان ظرف مدت 5 ثانیه موقعیت خود را تغییر نداده و در نیمه خود قرار نگیرند داور بصورت بصورت خودکار و Random بازیکن را درجایی از زمین خود رها میکند(مثلاً آن را کنار دروازه بان میگذارد و از پست اصلی خود که خط حمله بوده معلق میکند.)
9-1-3- Goal
وقتی توپ از خط دروازهها عبور کند یک گل محسوب میشود. بعداز هر گل kick off رخ میدهد. بعبارت دیگر: وقتی یک تیم بتواند امتیاز بدست آورد به آن گل گفته میشود. پس از هر گل یک massage سراسری برای بازیکنان فرستاده میشود با مفهوم :
(1) Kick _off_x
که X نشان دهنده Right یاLeft میباشد وتوپ به نقطه مرکزی زمین منتقل میشود.
9-1-4- Out of Field
زمانی که توپ خارج از زمین باشد. یعنی زمانی که توپ:
1. corner شود.
2. ازکنار دروازه خارج شود.
3. از خط کنار زمین رد شود.
وقتی که توپ از زمین خارج شود داورمسابقه توپ را در جای مناسب قرار میدهد و وضعیت بازی را به یکی از وضعیتهای زیر تبدیل میکند:
1. Kick in
2. Corner _ kick
3. Goal _ kick
وضعیت بازی:
وضعیتی که در هر لحظه بازی میتواند داشته باشد را وضعیت بازی میگویند.
9-1-5- Offside
شرایط offside بصورت زیر میباشد :
1- در زمین حریف باشد.
2- فاصله ما تا دروازه بان بیش از دو بازیکن خودی باشد.
3- نزدیک شدن به توپی که در حال وارد شدن به دروازه است.
4- نزدیک شدن به توپی که فاصله آن تا دروازه بان کمتر از 2.5 متر باشد.
9-1-6- Backpasses
اگر یکی از بازیکنان خودی به دروازه بان پاس دهد ودروازه بان آن را بگیرد خطای back pass رخ میدهد و یک ضربه آزاد به سود تیم حریف گرفته میشود. در زمان خطای back-pass دروازه بان باید در محوطه جریمه باشد. (اگر خارج از محوطه جریمه باشد خطا نیست. ) اگر خطای back-pass رخ دهد توپ به یکی از گوشههای محوطه جریمه که نزدیکتر است انتقال مییابد.
9-1-7-Free kick Faults
زمانی که یک free kick یا corner kick یا goal kick و یا kick in رخ میدهد بازیکن نمی تواند به خود پاس دهد (یعنی نمی تواند توپ را جلوتر بیندازد و خودش آن را بگیرد.) اگر این اتفاق افتاد خطای free kick fault گرفته میشود.
9-1-8- Half-Time and Time-up
هر نیمه در Soccer Server شامل 3000 سیکل زمانی میباشد.(تقریباً 5 دقیقه) اگر بازی پس از نیمه دوم مساوی شود بازی در دو نیمه اضافه دنبال میشود. تا زمانی که یکی از تیمها گل به ثمر برساند.
نکته:
مفهوم penalty را درSoccer Server نداریم. Agentها گرد هستند بنابرین در 99% امکان خطا در محوطه جریمه نیست بنابراینpenalty نداریم. به این روش بازی sudden death یا golden goal (گل طلایی) میگویند.
9-2- قوانین داور فیزیکی
بعضی از خطاها برای سیستم اتومات داوری خیلی سخت است.برای گرفتن این خطاها Server یک Interface (رابط کاربر) در اختیار انسان قرار میدهد تا بتواند بازی را معلق کرده و یک free kick بگیرد. داور فیزیکی از سال 2000 به بعد در مسابقات بکار گرفته شد. قبل از سال 2000 در مسابقات داور فیزیکی نبود. زمانی که در مسابقات 1999 اسکا بعضی از تیمها یکسری خطا در برنامه رباتهایشان نوشته بودند و از آنها برای رسیدن به پیروزی استفاده میکردند، این خطاها برای داور سیستم شناخته شده نبود و از دید آن اشکالی نداشت ولی در واقع خطا و تقلب بود(10 نفر از بازیکنان دور توپ جمع میشدند و بسوی دروازه حریف حمله میکردند.)
9-2-1- اعمال داور فیزیکی
1. به جریان انداختن توپ.
2. زمانی که گل توسط تعداد زیادی از بازیکنان پوشیده شده باشد.
3. توپ بعد از یک زمان مشخص به جریان نیفتد.
4. تعدادی از بازیکنان مانع حرکت یک بازیکن شوند.
5. زمانی که دروازه بان توپ را در اختیار دارد (safe time ) یعنی زمانی که دروازه بان توپ را دراختیار دارد هیچ کدام از بازیکنان حریف نمی توانند توپ را از دروازه بان بگیرند(فقط در محوطه جریمه مطلب بالا درست است.)
6. Down یا hang کردن Server توسط تعداد زیادی massage
یک بازیکن نباید بیشتر از 3 یا 4 دستور در هر سیکل زمانی برای Server بفرستد.اگر Server بیش از حد دستور دریافت کند در اصطلاح میگویند jammed شده است.
10- انواع سنسورها
Soccer Server سه نوع سنسور متفاوت دارد:
1. Aural Sensor Model(برای فرستادن و گرفتن message ها کاربرد دارد.)
2. Vision Sensor Model (دیدن بازیکن و وضعیت محیط)
3. body sensor (وضعیت بدنی بازیکن را چک میکند)
10-1- Aural Sensor Model
فرمت کلی message های aural sensor که از طرف server هستند بدین شکل میباشد:
(hear Time Sender “Message”)
در قسمت Time زمان جاری ثبت میشود. درقسمت sender، فرستنده message مشخص میشود. یکی از 4 مورد زیر میتوانند فرستنده باشند و بجای قسمت sender قرار گیرند :
1-self (خود بازیکن )
2-referee (دیگران مثل بازیکنان دیگر)
3- online_coach_left (مربی سمت چپ زمین )
4 - online_coach_right (مربی تیم سمت راست زمین )
در قسمت message هم متن text پیغام قرار میگیرد.حداکثر اندازه text میتواند توسط say_msg_size تعیین شود.
بعد از اینکه client اطلاعات سنسور Aural را فرستاد توسط server این پارامترها تنظیم میشوند.(این پارامترها درserver.conf قرار دارند.)
Audio_cut_dist : حداکثر فاصله ای که یک پیغام بتواند شنیده شود.
Hear_max : حداکثر تعداد افرادی که بتواندد message را بشنوند.
Hear_inc : حداکثر چند نفر این پیغام را بدون کیفیت دریافت کنند.
Hear_decay : حداکثر چند نفر بتوانند این message را با کیفیت دریافت کنند.
Say_msg_size: حداکثر تعداد حروفی که در یک message میتواند وجوداشته باشد.
مثال: نشان دهید حداقل چند بازیکن میتوانند message را دریافت کنند در 10 سیکل6 تا message فرستاده میشود.
(2) 6*2=12*10=120
(6 = چون 2 تا مربی داریم و 4 تا بازیکن)
(2= چون هرmsg را دو نفرمیتوانند دریافت کنند.)
چون هرmessage هم میتواند یک جواب داشته باشد در نتیجه 240=2*120 message در 10 سیکل.
10-2- Vision sensor model
به معنی نمایش است. برای دیدن محیط اطراف بکار میرود. باعث میشود اطلاعاتی (درمورد شی هایی که بازیکن در حال حاضر آنها را میبیند) که از server به client یا از client به server میرود در هر 150 میلی ثانیه یکبار در قالب چنین message ی آشکار شود.
(see ObjName Distance Direction DistChng DirChng BodyDir HeadDir)
به عبارت دیگر هر 150 میلی ثانیه یکبار server یک چنین پروتکلی بهclient میفرستد و client هم جوابش را میدهد.
در پروتکل بالا اطلاعات obj دیده شده قرار میگیرد که بعضی از این اطلاعات در طی فرمول هایی بدست میآید.
همچنین هر یک از نقاط و خطوط در زمین فوتبال Soccer Server نام خاصی دارد
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 25 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
دانلود مقاله ربوکاپ