مقاله در مورد ربوکاپ

word قابل ویرایش
25 صفحه
8700 تومان
87,000 ریال – خرید و دانلود

ربوکاپ

چکیده ـ ربوکاپ، تلاشی است در زمینه پروراندن تحقیقات هوش مصنوعی و هوش روبات‌ها، که از طریق تعریف یک مسئله استاندارد و حل آن توسط محققین متعدد در کشورهای مختلف دنبال می‌شود. به همین منظور، برای چنین مساله‌ای بازی فوتبال درنظر گرفته شده است. بازی فوتبال صرفاً بعنوان یک محیط دینامیک و پویا برای آزمایش کردن نتایج حاصل از این تحقیقات انتخاب شده و هدف از این تحقیقات به هیچ وجه صرفاً انجام بازی فوتبال بین روبات‌ها نمی‌باشد بلکه استفاده از ویژگی‌های خاص بازی فوتبال برای پیاده سازی روشها و آزمایشات در یک کار تیمی و گروهی بین چند روبات هوشمند و متحرک است.

روبات‌های فوتبالیست، آدمکهای هوشمند کامپیوتری هستند که می‌توانند از طریق برنامه هوشمندی که به آنها داده می‌شود بطور خودکار در زمین فوتبال بازی کنند. بعبارت دیگر، روبات‌ها از راه دور کنترل نمی‌شوند. هدف تحقیقات در روبات‌های فوتبالیست، پژوهشِ و فن‌آوری نوین در زمینه‌های هوش مصنوعی و روبات‌های هوشمند متحرک است.
کلید واژه ـ روبوکاپ ، شبیه ساز ، کارگزار ، عامل

۱- مقدمه
سال ۱۹۹۷، در تاریخ هوش مصنوعی، به عنوان یک نقطه عطف تاریخی همواره به خاطر خواهد ماند. در ماه May این سال کامپیوتر Deep Blue شرکت IBM موفق شد که قهرمان شطرنج جهان را شکست دهد و این نتیجه ۴۰ سال تلاش در جامعه پژوهشگران هوش مصنوعی بود. در چهارم July سال ۱۹۹۷ سفینه Pathfinder توانست برای اولین بار در تاریخ بشر، بر سطح مریخ بنشیند و اولین روبات کاملا هوشمند ساخت بشر (Sojourner) را با موفقیت بر سطح مریخ پیاده نماید.

همزمان با این موفقیت ها، RoboCup نخستین گامهایش را به سوی ساخت یک تیم فوتبال، متشکل از روباتهای کاملا هوشمند فوتبالیست که بتواند بر قهرمان جهان پیروز شود، آغاز نمود.
ایده روباتهای فوتبالیست، اولین بار توسط پروفسور آلن مک ورث (Alan Acworth)، استاد دانشگاه British Columbia کشور کانادا در مقاله ای با عنوان “On Seeing Robots” مطرح گردید. یک گروه از محققین ژاپنی نیز بطور مستقل کارگاهی آموزشی در کنار همایش Grand Challenges in Artificial Intelligence که در اکتبر ۱۹۹۲ در توکیو برگزار می‌شد راه اندازی کردند. این کارگاه در پایان به بحث‌های جدی ای پیرامون استفاده از محیط بازی فوتبال برای ارتقا دانش و تکنولوژی منجر شد. یک مجموعه از تحقیقات انجام شد که از جمله آنها می‌توان به امکانسنجی تکنولوژیک، امکانسنجی مالی و. .. اشاره نمود. به همراه این تحقیقات یک نسخه اولیه از قوانین بازیها و نسخه اولیه شبیه ساز بازی فوتبال آماده گردید.

نتایج این تحقیقات و پروژه‌ها این بود، که گروه مجریان آنها به این نتیجه رسید که انجام چنین پروژه ای ممکن است. در سال ۱۹۹۳ یک گروه از محققین به نامهای 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 آغاز نمی شد.

در ماه سپتامبر ۱۹۹۳ اولین اعلان عمومی انجام گردید و مقررات ویژه ای نیز به صورت پیش نویس آماده شد. عطف به آنها، بحث‌ها و مناظره‌های بسیاری درباره تشکیلات و مباحث فنی برگزاری چنین تورنمنت ویژه ای در کنفرانس‌ها و کارگاههای متعددی که در این زمینه برگزار شده بود، انجام شد. از جمله آنها می‌توان به AAAI-94 و سمپوزیوم JSAI و جلسات مختلف جامعه رباتیک اشاره نمود. در همین اوضاع و احوال بود که تیم Noda در ETL اولین نسخه شبیه ساز فوتبال را از طریق Web منتشر ساخت. Soccer Server Ver.0 که با زبان LISP تهیه شده بود به همراه Soccer Server Ver.1.0 که با C++ آماده گردیده بود، در این مجموعه قرار داشت. اولین نمایش عمومی این شبیه ساز در سال ۱۹۹۵ در همایش IJCAI انجام گرفت. در همایش Artificial Intelligence ،JCAI-95 International Joint Conference on که در مونترآل کشور کانادا در ماه آگوست ۱۹۹۵ برگزار شده بود، اعلان عمومی جهت برگزاری اولین دوره کنفرانس و مسابقات جهانی فوتبال روباتها همزمان با IJCAI-97 در شهر ناگویا (Nagoya) انجام شد. همزمان تصمیم گرفته شد که مسابقاتی تحت عنوان Pre-RoboCup-96 برای شناخت مسایل و مشکلات احتمالی برگزاری RoboCup در

ابعاد بزرگ، برگزار شود. با این تصمیم عملا ۲ سال تا برگزاری مسابقات اصلی، زمان بود تا محققین برای ساخت روباتهای خود اقدام نمایند و همچنین زمان کافی برای جمع آوری کمک‌های مالی برای انجام پروژه بزرگ خود داشته باشند. Pre-RoboCup-96 همزمان با کنفرانس بین المللی روباتیک و سیستم‌های هوشمند (IROS-96)، در تاریخ ۴ تا ۸ نوامبر سال ۱۹۹۶ در شهر ازاکا (Osaka) با شرکت ۸ تیم شرکت کننده در لیگ شبیه سازی و نمایش رباتهای واقعی لیگ رباتهای متوسط

 

(Middle Size) برگزار گردید. با در نظر گرفتن ابعاد محدود آن، این مسابقات را می‌توان اولین اقدام جدی برای ارتقاء تحقیقات و آموزش با استفاده از محیط فوتبال در نظر گرفت. اولین دوره مسابقات و کنفرانس رسمی RoboCup در سال ۱۹۹۷ با موفقیت تمام شد. بیش از ۴۰ تیم شرکت کننده (در هر دو رشته رباتهای واقعی و شبیه سازی)، و بیش از ۵۰۰۰ بازدیدکننده حضور داشتند. پیش بینی میشد که در RoboCup-98 نزدیک به ۱۰۰ تیم شرکت کنند و بزرگترین رباتهای متحرک در طول 
۲- اهداف ربوکاپ
فدراسیون جهانی روبوکاپ اهداف و جداول زمانی خاصی را برای انجام تحقیقات در این زمینه مشخص کرده است. همانطور که فضانوردان هدف اولیه خود را رساندن انسان به سطح کره ماه و سپس سالم بازگرداندن او به زمین عنوان کرده بودند، در حالی که هدف اصلی آنان این نبود، بلکه هدف، پیشرفت کلی در زمینه فضانوردی جهان بود. بزرگترین هدف روبوکاپ نیز پیشبرد سطح فنی جامعه جهانی می‌باشد، و به عنوان هدفی اولیه:
در میانه قرن بیست و یکم (در سال ۲۰۵۰ میلادی) یک تیم متشکل از روباتهای فوتبالیست شبیه انسان، در مسابقه‌ای واقعی و با رعایت قوانین فیفا، تیم قهرمان جام جهانی را شکست خواهد داد.
گرچه در حین مسابقات جهانی سال گذشته با توجه به پیشرفتهای فوق العاده صورت گرفته، زمان تحقق این وعده بطور رسمی از سال ۲۰۵۰ به ۲۰۳۰ کاهش یافت، ولی حتی اگر تا آن زمان نیز به هدف فوق نرسیم، همانگونه که در سالیان اخیر شاهد بوده ایم و یقینا با سرعتی بمراتب افزونتر، شاهد پیشرفتهای شگرفی خواهیم بود. با توجه به این اهداف، لیگ‌های مختلفی در روبوکاپ تشکیل شده‌اند که هریک روی زمینه‌های مشخصی از هوش مصنوعی تاکید دارند. مسابقات جام جهانی روبوکاپ در هفت لیگ زیر انجام می‌شود :
۱٫ لیگ روباتهای اندازه متوسط (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 طوری نوشته شده

است که ‏شبیه‏سازی یک مسابقه فوتبال را برای بازیکنان دو تیم به صورت توزیع شده روی

شبکه انجام دهد. ‏در واقع هر تیم متشکل از ۱۱ برنامه کامپیوتری است که به صورت مستقل اجرا شده و به سرور ‏‏وصل می‏شوند و هر برنامه با استفاده از اطلاعاتی که از سرور دریافت می‏کند (مانند اطلاعات ‏بینایی، شنوایی، احساسی) بایدموقعیت خود و سایر بازیکنان (چه هم تیمی چه غیر هم تیمی) را در ‏زمین تشخیص بدهد و برای کسب نتیجه بهتر تلاش کند و از خود واکنش نشان دهد نکته مهم در ‏شبیه‏سازی روبات‏های فوتبالیست آن است که اولاً برنامه‏های بازیکنان به صورت مجزا اجرا می‏شوند و ‏دارای کنترل نمی‏باشند و بنابراین این مسأله جزء یکی از مسایل شبیه‏سازی سیستم‏های Multi Agent قرار می‏گیرد. هم‏چنین برای واقعی‏تر کردن و دشوارتر کردن مسأله همواره اطلاعاتی که ‏بازیکنان از سرور دریافت می‏کنند همراه با مقداری خطا (Noise) ‏ خواهد بودکه باعث می‌شود‏ شبیه‏سازی بازی به رقابت‏های واقعی نزدیک‏تر شود. هم‏چنین توانایی تصمیم گیری بلادرنگ یکی دیگر ‏از ویژگی‏های بارزی است که برنامه‏های شبیه ساز باید دارا باشند. برای حل این مسأله محققان از ‏سرتاسر دنیا باید برنامه‏هایی را به صورت یک تیم برای انجام بازی تهیه کنندکه برای این منظور ‏تکنیک‏های مختلف را در زمینه هوش مصنوعی، شبیه‏سازی و. .. می‏تواند به کار بسته می‏شود. ‏زمینه‏های تحقیقاتی درگیر در این مسأله مدیریت کردن مسایل مربوط به روبات‏ها از قبیل ‏شناخت موجودات (Object Recognition)‏، برقراری ارتباط‏ بین روبات‌ها (Communication) و شبیه‏سازی ‏‏وسایل سخت افزاری مانند حرکت روبات‏ها می‏باشد. هم‏چنین مسایل سطح بالاتری چون آموزش (Learning)، ‏‏هم کاری (Co-operation)، بهینه سازی و تصمیم گیری بلادرنگ نیز دراین مسأله

(شبیه‏سازی فوتبال ‏بین روبات‏ها) درگیر می‌شود. اولین دوره مسابقات شبیه‏سازی روبات‏های فوتبالیست در سال ۹۶ در ژاپن برگزار شد که تیم ‏دانشگاه توکیو اول شد در مسابقات سال ۹۷ تیم دانشگاه هامبولت مقام اول را به دست آورد. در سال ‏‏۹۸ و ۹۹ تیم دانشگاه کارنی ملون از آمریکا و در سال ۲۰۰۰ یک تیم از پرتغال مقام اول را کسب ‏‏کرد.

۳- مسابقات روبوکاپ چیست؟
مسابقات روبوکاپ یک رویداد بین المللی برای توسعه علوم رباتیک، هوش مصنوعی و سایر زمینه‌های مرتبط است. این مسابقات در دو بخش رباتهای واقعی و شبیه سازی ( Simulation) رباتها برگزار می‌گردد. درابتدا لیگ شبیه سازی آنچنان به مسابقات واقعی نزدیک نبود و دارای سطح هوشمندی کمتری بوداما در حال حاضر سعی شده است که با استفاده از نزدیکتر کردن محیط شبیه سازی شده به محیط واقعی و نیز در نظر گرفتن رفتار( Dynamics ) واقعی و محدودیت‌های سخت افزاری سنسورها وعملگرها در حین مدل سازی، شباهت ربات‌های شبیه سازی شده به ربات‌های واقعی خیلی بیشتر گشته و امکان بکارگیری مستقیم الگوریتم‌های شبیه سازی شده بر روی ربات واقعی فراهم شده است.

 

۳-۱- لیگ‌های شبیه سازی :
۱٫ لیگ شبیه سازی امداد
۲٫ لیگ شبیه سازی فوتبال

۴- ربات چیست؟
ربات یک سیستم فیزیکی است که در کلی ترین حالت برای انجام یک سری از وظاف طراحی می شود امروزه سعی برآن است که کنترل ربات، خودکار باشد (Automatic) اما هدف والاترآن است که بتوان خود مختاری (Autonomy) درربات ایجاد کرد.برای این کار باالهام ازموجودات زنده درمی یابیم که می بایست هوش را در ماشین به وجود آورد که این اساس هوش مصنوعی است. در این راستا از نیمه های قرن گذشته فعالیت های تحقیقاتی زیادی در این زمینه انجام شده است که ازچندین سال قبل مسابقات متعددی درسراسر دنیا این مهم را پیگیری می کنند معروف ترین آن مسابقات ربوکاپ است.

۴-۱- انواع روبات
۱٫ از دید کنترل :
الف- Tele operation (کنترل از راه دور توسط انسان):
ب- Self-Controlled (خود کنترل): که از

لحاظ درجه ی هوشمندی (Degree Of Autonomy) به دو دسته ی زیر تقسیم می شوند:
 Mind-less : این روبات ها کارهای تکراری (repetitive) را انجام می دهند.
 Intelligent: این روبات ها هوشمند هستند و با عدم قطعیت (uncertainty) مقابله می کنند.

۲٫ از دید فیزیکی و مکانیکی (تحرک پذیری)

 

الف- روباتهای ثابت (manipulator or industrial robots)
ب- روباتهای متحرک (mobile robots)

۴- شبیه‌سازی فوتبال در رایانه یا Soccer Simulation.
Soccer simulation همانند بازیهای رایانه‌ای فوتبال می‌باشد بااین تفاوت که عامل انسانی وظیفه کنترل را بر عهده نداشته وتمام کنترل به صورت خودکار وحتی خود مختار می‌باشد. لذا طراح برنامه می‌بایست درحین طراحی، هوشمندی لازم را در سیستم ایجاد کند وحتی قابلیت یادگیری را به سیستم بیفزاید. در هر حال سیستم می‌بایست قابلیت مقابله با عدم قطعیت‌های موجود درمحیط را داشته باشد. Soccer simulation یکی اززمینه هایی است که پیش بینی شده تا سال ۲۰۵۰ یک تیم کاملا هوشمند از رباتها در مقابل یک تیم واقعی ازانسان‌ها دریک مسابقه ی فوتبال به رقابت بپردازند.
۵- روباتهای فوتبالیست
می دانیم که برای انجام هر کار ی باید هدف و مقصودی وجود داشته باشد . اگر هدفمان را از انجام کاری در نظر بگیریم مسلماً همه تلاش و کوشش ما در راه تحقق آن هدف خواهد بود. شاید این سوال پیش آمده باشد که هدف از ساخت روباتهای فوتبالیست چیست ؟ در جواب بایدگفت که در سال ۲۰۵۰ قراراست که یک مسابقه جهانی فوتبال برگزار بشود تنها دو تیم در این مسابقه شرکت دارند.

۱- تیم قهرمان مسابقات جام جهانی فوتبال سال ۲۰۵۰
۲- یک تیم از روباتهای فوتبالیست
ماجرا از این قراراست که در سال ۱۹۹۷ مهندسین کامپیوتر بخصوص مهندسین چینی گفتند که چرا هدفی برای رشته کامپیوتر در نظر گرفته نشده است ؟ پس از

بحث و. .. آنها برگزاری یک مسابقه فوتبال بین انسان و روبات در سال ۲۰۵۰ را بعنوان هدف بزرگ خود قرار دادند. از آن سال به بعد (۱۹۹۷)هر سال مسابقات جهانی robocup برگزار می‌شود. در سال اول تیم کشور ژاپن اول شد (مسابقه آن سال به مسابقات اسکا معروف بود. )
در سال بعد یعنی سال ۱۹۹۸ همزمان با مسابقات جام جهانی فرانسه مسابقات جام جهانی robocup در پاریس هم برگزار شد.
نتایج بدست آمده توسط مسابقات فوتبال روباتها خیلی بهتر از نتایج سال پیش بود و این نشان از پیشرفت در راه تحقق هدف و روزنه امیدی بود. برای رسیدن به این هدف محققان در دو دسته فعالیت می‌کنند:
۱- محققانی که روی نرم افزار یا هوش روبات‌ها کار می‌کنند.
۲ – محققانی که روی سخت افزار یا قسمت فیزیکی روبات‌ها کار می‌کنند.
یک انسان یکسری ورودی‌ها و اطلاعات دارد که آنها را ازمحیط اطراف(environment) دریافت می‌کند و بر اساس آنها فعالیت می‌کند. یک روبات هم باید بتواند مثل یک انسان ورودی‌های محیط اطرافش را بگیرد.روبات با استفاده از یکسری سنسور می‌تواند محیط اطرافش را ببیند که توسط برنامه‌ای که ما برای آن می‌نویسیم محدوده دیدش را مشخص می‌کنیم. (روبات جزآن محدوده ازاویه دید مشخص شده جایی دیگر را نمی بیند ) سنسور روبات مثل سنسور هوش ماست چون بعداً می‌خواهیم هوش این روبات را روی سخت افزار پیاده کنیم. بنابرین هوش این روبات باید مثل هوش ما آدمها باشد. دو نوع برنامه نویسی برای یک روبات فوتبالیست داریم :

اکثر روباتهای soccer simulation در کشور ما هوشمند نیستند یعنی در طی بازی، این برنامه ماست که به روبات می‌گوید مثلاً برو سمت چپ زمین و توپ رو بگیر و گل بزن نه خود agent. یا اینکه در طی بازی روبات فقط این را می‌داند که باید برود طرف دروازه حریف و بعد شوت کند بطرف دروازه. و دروازه بان هم فقط می‌داندکه اگه دید یک بازیکن حریف در حال نزدیک شدن به دروازه است او باید بطرفش برود و سعی کند توپ را از بازیکن بگیرد. به این نوع برنامه نویسی برای روبات هوش مصنوعی یاActivantor (AI ) می‌گویند.
۶- روبات هوشمند Intelligent Robot))
6-1- هوشمندی Intelligent))

 

توانایی سیستم است برای اینکه در یک محیط نامشخص (غیر قابل پیش بینی) متناسب عمل کند، یعنی بتواند به آن هدفی که ما برای آن مشخص کرده ایم برسد. یک تعریف کلی از روبات هوشمند عبارت است از:
” یک ماشین قابل برنامه ریزی که بتواند عمل یک موجود هوشمند نظیر انسان را تقلید کند.”
در هوشمندی دو دیدگاه وجود دارد :

۱٫ انتقال دانش (Knowledge ) : یعنی ما دانش خودمان را به ربات می‌دهیم.
۲٫ یادگیری ماشین (Machine Learning ) :در اینجا انسان هیچ دانشی به روبات نمی دهد و روبات خود با جریمه شدن کار درست را یاد می‌گیرد و پییشرفت می‌کند.

۶-۲- معیارهای هوشمندی

یک تعریف کلی از روبات هوشمند از زبان Albus عبارت است از:
هوشمندی توانایی یک سیستم برای درست عمل کردن در یک محیط غیر قطعی است به طوریکه درست عمل کردن، عملی است که احتمال موفقیت را افزایش دهد و موفقیت یعنی رسیدن به زیر هدف های رفتاری که هدف نهایی سیستم را تضمین می نماید.

۶-۳- استفاده از هوش مصنوعی
– هوش مصنوعی
در شبکه ارتباطی مغز انسانها سیگنالهای ارتباطی به صورت پالسهای الکتریکی هستند.جزء اصلی مغز نرون است که از یک ساختمان سلولی و مجموعه ای از شیارها و خطوط تشکیل شده و شیارها محل ورود اطلاعات به نرون هستند وخطوط محل خروج اطلاعات از نرون اند . نقطه اتصال یک نرون به نرون دیگر را سیناپس می نامند که مانند دروازه یا کلید عمل می کنند. گر واکنشهایی که میلیونها نرون مختلف به پالسهای متفاوت نشان میدهند با یکدیگر هماهنگ باشند ممکن است پدیده های مهمی در مغز رخ دهد.
آندسته از پژوهشگران هوش مصنوعی که رویکرد مدل مغزی را دنبال می کنند گونه ای از مدارهای الکتریکی را طراحی کرده اند که تا حدی شبکه مغز را شبیه سازی میکند در این روش هر گره(نرون) به تنهایی یک پردازنده است ولی رایانه های معمولی حداکثرچند cpuدارند هدف عمده کامپیوتر شبکه عصبی این است که مکانیسمی طراحی کند که همانند مغز انسان بازخورد مثبت یاد بگیرد پاسخهای درست و نادرست کدامند. سیستم شبکه عصبی این کار را از طریق ارزشگذاری کمی برای ارتباطات سیگنالها بین نرونها انجام میدهد مکانیسم ارزشگذاری توسط مقاومتها با تقویت یا تضعیف پالسها انجام میشود.چون شبکه های عصبی میلیونها نرون دارند خرابی تعدادی از آنها تاثیر چندانی برعملکرد سیستم نمی گذارد تا کنون چند سیستم آزمایشی ب

ا استفاده از این اصول طراحی و ساخته شده اند مثلاًدر

بررسی های زیست محیطی، شبکه های عصبی برای جمع آوری و تحلیل اطلاعاتی که از راه دور حس شده اند مورد استفاده قرار می گیرند اطلاعاتی که اغلب سفینه ها مخابره می کنند بسیار حجیم است.شبکه های عصبی این اطلاعات را به راحتی دسته بندی کرده وپس از جمع آوری اطلاعات ذهنی و تجسمی نتایج جالبی به دست می آورند (مثلاًتشخیص انواع خاصی از ابرها) البته این فرایند با آنچه سیستم های خبره انجام می دهند متفاوت است زیرا این سیستم ها ابزارهای تصمیم سازی هستند و می توانند حجم زیادی از اطلاعات

را به سرعت تحلیل کنند شبکه های عصبی برای مدل سازی فرایندهای فکری-مغزی که

زمینه ی دیگری برای مطالعات حساس به اطلاعات و پیچیدگی است مورد استفاده قرار گرفته است .
هوش مصنوعی هنوز راه درازی در پیش دارد؛شبکه سازی عصبی (که با اغماض ارتباط گرایی هم نامیده می شود)در سالهای اخیر تغییرات عمده ای را شاهد بوده است .به عنوان نمونه برخی پژوهشگران پیش بینی میکنند به کمک تکنولوژی نرم افزاری جدید شبکه های عصبی با کامپیوترهای شخصی ترتیب داده خواهند شد و پیش بینی بازار سهام را ممکن خواهند کرد افرادی که درباره ی هوش مصنوعی وتوانایی های آن مرددند اظهار می دارند اگر هوش مصنوعی محقق شود ناچار است از دنیای منطقی،قانونمند ونمادین کامپیوترهای دیجیتال خارج شوند و به دنیای مبهم (حاصل از منطق فازی)شبکه های عصبی که مبتنی بر سیستم گسترده ی یاد گیری بازخوردی هستند پا بگذارد .
امروزه نگرش تازه ای نسبت به هوش مصنوعی ایجاد شده است که در بسیاری از آزمایشگاهها تحت بررسی است :دانشمندان سعی می کنند دریابند آیا با مجموعه ای از روباتهای نیمه هوشمندمی توان یک هوش جمعی ایجاد کنند به گونه ای که از اعضای تشکیل دهنده اش باهوش تر باشد.

روباتیک یکی از مهمترین زمینه های استفاده عملی از تکنیک های هوش مصنوعی است.
در واقع یک روبات هوشمند برای انجام اعمال هوشمندانه خود ناگزیر است بسیاری از این روش ها را به خدمت بگیرد:
 Learning، ( یادگیری)
 Planning، (برنامه ریزی)
 Logic and Reasoning (منطق و استدلال (

 

 Problem Solving، (حل مسائل (Learning
 Knowledge Representation، (بازنمایی دانش)
 Computer Vision (بینایی ماشین)
 Search ( جستجو)
 Natural Language Processing (سطح پردازش بالا)
در این طرح ما سعی کرده ایم حتی الامکان از اکثر تکنیک های فوق در جهت افزایش هوشمندی ربات استفاده شود که هدف اساسی تیم طراحی وساخت ربات های هوشمند مطابق با روش های روز دنیاست.

۶-۴- ارتباط هوشمندانه (Communicatio) وهمکاری هوشمندانه (Cooperation )

از آنجا که با یک محیط چند عاملی در Soccer Simulation مواجه هستیم استفاده موثر از تکنیک های موجود در زمینه Multiagent Systems می تواند بسیار راه گشا بوده و عملکرد سیستم را به شدت ارتقاء بخشد از مهمترین مسائل در زمینه سیستمهای چند عاملی ارتباط و همکاری بین عامل هاست که می بایست کاملا هوشمندانه باشد. ما سعی کردیم با استفاده از این دو تکنیک ، محیطی را فراهم آوریم که نیازی به هوشمندی بالای فردی برای تک تک عامل ها وجود ندارد در حالیکه با بوجود آوردن ارتباطی سالم وهوشمند بین این عامل ها می توا نیم یک جامعه هوشمند تشکیل دهیم . همانند کلونی مورچه ها.

 

۶-۵- ایجاد عامل های منطقی
این عامل ها از قدرت منطق واستدلال برخوردارند که برای ایجاد آنها از منطق های مختلفی می توان استفاده کرد .البته تاکنون ا کثر تیم ها از منطق کلاسیک و شیوه های Hard Computing استفاده کرده اند،
ولی ما سعی کرده ایم که از شیوه های Soft Computing و در نتیجه از منطق فازی Fuzzy Logic) ) جهت ایجاد عاملهای منطقی استفاده کنیم.
هدف ما انتقال هوشمندی و ذکاوت موجود در یک تیم فوتبال واقعی به ماشین می باشد. لذا رفتار یک فوتبالیست واقعی را با استفاده از منطق فازی برای عامل هایمان مدل سازی کرده ایم که این یکی از مهمترین نقاط قوت تیم ماست. از مزایای به کار بردن منطق فازی ، انعطاف پذیری زیاد در تصمیم گیری تحت عدم قطعیت بالا وعکس العمل مناسب تحت شرایط از پیش تعیین نشده می باشد.

۶-۶- یادگیری در روبات
گرچه روباتهائی مثل ASIMO کارهای شگفت انگیزی میکنند اما قادربه داشتن قابلیت یادگیری نیستند .
یک روبات باید بتواند در تعامل با محیط و در اثر تجربه یادگیری نماید

۶-۶-۱- تعریف یادگیری
تعریفهای گوناگونی که درباره یادگیری انجام گرفته نشان می‌دهند که هنوز تعریف جامع و یکدستی که برای همه روان‌شناسان با نظریه‌های مختلف پذیرفتنی باشد به دست نیامده است. اما بسیاری از روان‌شناسان و پرورشکاران معتقدند که « یادگیری تغییری است که بر اثر تجربه یا آموزش در رفتار موجود زنده پدید می‌آید ». در این تعریف مهمترین واژه‌ای که نظر را به خود جلب می‌کند واژه تغییر است. زیرا رفتار فرد درزمانی که چیزی نیاموخته با زمانی که آن چیز را،آموخته است تفاوت دارد.

واژه مهم دیگر رفتار است. زیرا تغییر رفتار با ابعاد بدنی مانند طول و عرض و قد و وزن بدنی ارتباط ندارد، بلکه بیشتر معلوم یادگیری است، نه دگرگونیهای بدنی.

 

۶-۶-۲- روش های یادگیری(Learning):
1. یادگیری با ناظر(Supervised )
2. یادگیری تقویتی (Reinforcement)
3. یادگیری بدون ناظر (Unsupervised)

۱٫ Supervised Learning ( یادگیری با ناظر):
اگر در یادگیری دقیقا به عامل آن چیز را که قرار است یاد بگیرد گفته شود و عامل بتواند خطای یادگیری خود را بدست آورد این یادگیری را با ناظر می گوییم .
۲٫ Learning Reinforcement (یادگیری تقویتی): در یک مسئله یادگیری تقویتی، با عاملی روبرو هستیم که از طریق سعی و خطا با محیط تعامل کرده و یاد می گیرد تا عملی بهینه را برای رسیدن به هدف انتخاب نماید.

عامل، خطای یادگیری را به طور دقیق ندارد اما اطلاعات اندکی در مورد کیفیت آن به صورت پاداش(Reward) و تنبیه (Planty ) دریافت می کند
یادگیری تقویتی از اینرو مورد توجه است که راهی برای آموزش عاملها برای انجام یک عمل از طریق دادن پاداش و تنبیه است بدون اینکه لازم باشد نحوه انجام عمل را برای عامل مشخص نمائیم.
دو استراتژی اصلی برای اینکار وجود دارد:
۱٫ استفاده از الگوریتم های ژنتیکی

۲٫ دیگری استفاده از روشهای آماری( Dynamic Programming )
در RL روش دوم مد نظر است.
۳٫ Unsupervised Learning (یادگیری بدون ناظر):
دراین نوع یادگیری نه پاداش و تنبیه وجود دارد و نه این که دقیقا به عامل آن چیز را که قرار است یاد بگیرد گفته می شود خود روبات با محیط درگیر می شود و نتیجه می گیرد.
همانطور که دیدیم یادگیری یک عامل مهم در تقویت عملکرد ربات ها می باشد ولی تا کنون در اکثر مسابقات این مهم نادیده گرفته شده است .

 

ما سعی کرده ایم در مواقعی که استفاده از منطق کافی نبوده مثلا در بعضی از حرکات فردی ربات ها مانند عکس العمل در مقابل شوت زدن و . . . که عملکرد مطلوب بدست نیامده از یادگیری استفاده کنیم که برای این منظور از شبکه های عصبی مصنوعی استفاده کرده ایم .
ما برای گام های بعدی در نظر داریم از یادگیری RL ، یادگیری به صورت Online و نیز از روش های بهینه سازی ، برنامه ریزی ( Planning ) ، حل مسئله ( ( Problem Solving مانند الگوریتم های ژنتیک وحتی کلونی مورچه ها استفاده کنیم .

همچنین از منطق فازی در ایجاد ارتباط و همکاری هوشمندانه استفاده شده است .
قابل ذکر است در مواردی که برای پردازش داده های مربوط به سنسورها Sensor Processing ) )از منطق فازی و یادگیری استفاده شده است .
در بعضی از موارد هم که نیازی به هوشمندی بالایی نبود از برنامه نویسی معمولی و منطق کلاسیک (Hard Computing )استفاده شده است .
۶-۷- شبکه های عصبی (Neural Network)
1. Biological Neural Network
2. Artificial Neural Network
شبکه های عصبی با تقریب عمومی کار می کنند.
در کنار هر شبکه عصبی یک قانون یادگیری (Learning rule) وجود دارد.
۷- الگوریتم هوشمند
الگوریتمی است که بر اساس ۶۴ بیت ساخته شده و بر اساس این ۶۴ بیت است که اگر روبات اطلاعاتی را که می‌گیرد بهتر از اطلاعات قبلیش باشد اطلاعات جدید را جایگزین اطلاعات قبلی می‌کند.
۷-۱- تیم هوشمند(روباتها):
روباتهای این تیم با الگوریتم هوشمند کار می‌کنند این بدین معنی است که : مثلاً وقتی یک روبات چند بار از یک روش برای گل زدن استفاده کرد اما به نتیجه نرسید خودش روش را عوض می‌کند و اگر از روش جدید توانست گل بزند می‌فهمد که این روش بهتر از روش قبلی بود بنابراین خود روبات روش جدیدرا جایگزین روش قبلی می‌کند و از دفعات بعد از روش جدید استفاده می‌کند.(وقتی که روبات برای چند بار تا مقابل دروازه حریف برود و شوت کند اما شوتش گل نشود دفعه بعد تا مقابل دروازه حریف می‌رود اما این دفعه به یکی از روباتهای خودی نزدیک دروازه حریف پاس می‌دهد اگر

این پاس به گل تبدیل شود، روبات پاس دادن راجایگزین روش شوت مستقیم توسط خود می‌کند و دفعات بعد از روش جدید استفاده می‌کند.) در برنامه‌ای که قرار است ما بنویسیم این نکته خیلی مهم است که برنامه ما توزیع شده باشد. یعنی ۱۲ تا روبات ما بتوانند با هم کار کنند و این هماهنگی را درحافظه خود داشته باشند. و اماهدف ما: نوشتن یک تیم بر اساس Server/client که بتواند ما را به هدفمان نزدیک کند.
۷-۲-Agent چیست ؟
اکنون یک محیط شبیه سازی شده در نظر میگیریم که بجای روبات‌ها یکسری موجودیتهای گرد مانند، فعالیت می‌کنند که یک زاویه دید ویک توان مشخص دارند. یک agent دقیقاً مثل انسان است. اگر بیش از حد در زمین بدود توانش را از دست می‌دهد و خسته می‌شود. Agent ‌ها مانند انسان‌ها فکر می‌کنند،تصمیم می‌گیرند و عمل می‌کنند.بطور کلی کره هایی هستند که ما در صفحه می‌بینیم که هر کره به عنوان یک بازیکن است.
۸- نقش Server client در Soccer Server
زمانی که Soccer Server راrun می‌کنیم هر کدام ازagent ‌ها روی یک client، run می‌شوند. این بدین معنی است که : Server همه اطلاعات مربوط به توپ و بازیکن و موقعیت تمامی بازیکنان و… را در خود نگه می‌دارد. (اطلاعات داخل محیط، موقعیت توپ، وضعیت بازی و. ..)
هر کدام از بازیکنان که بخواهد کاری را انجام دهد دستوری مبنی بر درخواست خود(مثلاً: بازیکن می‌گوید که می‌خواهم شوت کنم ) را به سرور می‌فرستد اگر سرور شرایط را برای انجام آن دستور مهیا بداند درخواست را انجام می‌دهد. حداکثر تعداد client ‌ها می‌تواند ۱۲ باشد که : ۱۱ نفرازآنها می‌توانند بازیکنان باشند و یک نفر مربی تیم. ارتباط بین Client‌ها با یکدیگر و با Server بوسیله پروتکلUDP/IP برقرار می‌شود. یعنی با سوکتهای UDP/IP، Client ‌ها با Server ارتباط برقرار می‌کنند.

۸-۱- Server
Server یک سیستم است که رفتارهای یک تیم یا چند تیم را دریک مسابقه بررسی می‌کند.Server‌ها وClient‌ها براساسUDP/IP فعالیت می‌کنند یعنی رابط (connection) میان هرClient وServer سوکتهای UDP/IP هستند. وقتی یک بازیکن به Server وصل می‌شود تمامی پیغام‌ها توسط این پرت رد وبدل می‌شود. بازیکنان درخواستهای خود را به سرور می‌فرستند و Server دستورهایی را که آن‌ها می‌خواهند اجرا می‌کند. اطلاعات همه بازیکنان در Server توسط سنسورهای اطلاعاتی وجود دارد که شامل:
۱- موقعیت زمین
۲ – اطلاعات در مورد بازیکن(مانند سرعت، توان ) می‌باشد.
این نکته مهم است کهServer یک سیستم Real Time است. پس در برنامه نویسی باید این نکته لحاظ شود. فرمان‌ها طی سیکل‌های زمانی خاص به Server فرستاده می‌شود و هر دستور برای اجرا باید یک سیکل زمانی را در اختیار بگیرد.
۸-۲- Monitor
یک محیط مجازی است برای اینکه انسانها بتوانند اتفاقاتی کهServer روی بازی انجام می‌دهد را ببینند.برای هربازی میتوان چندین monitor در اختیار داشت در عین حال می‌توان یک مسابقه را بدون مانیتور اجرا کرد. یعنی وجودmonitor برای اجرای بازی الزامی نیست.
۸-۳- Log player
زمانی که برنامه در حال اجرا است برنامه log player مانند یک دوربین فیلمبرداری عمل میکند و تمامی تغییرات بازی را در خود ذخیره می‌نماید. و پس از اتمام بازی شما میتوانید بازی را دوباره ببینید. Log player مثل media player عمل میکند یعنی بعد از اتمام بازی امکان عقب و جلو بردن، نمایش سریع یا آهسته فیلم گرفته شده را به ما میدهد.
۹- قوانین مسابقات
۱- قوانینی که توسط کامپیوتر اجرا میشود.
۲- قوانین داور فیزیکی.
۹-۱- قوانینی که توسط کامپیوتر اجرا می‌شوند
۳٫ Kick- Off
4. (Goal)

۵٫ Out of Field
6. Player Clearance
7. Offside
8. Backpasses
9. Free kick Faults
10. Half-Time and Time-up

۹-۱-۱- Kick-Off:
بازی فعال نیست ( وقتی که یک گل زده میشود، خطایی رخ میدهد، یا قبل از شروع دونیمه).
۹-۱-۲- Kick-Off
– قبل از هر kick off همه بازیکنان باید در نیمه خود باشند.
– بعد از هرگل حداکثر ۵ ثانیه زمان برای بازیکنان در نظر گرفته میشود.
– اگر بازیکنان ظرف مدت ۵ ثانیه موقعیت خود را تغییر نداده و در نیمه خود قرار نگیرند داور بصورت بصورت خودکار و Random بازیکن را درجایی از زمین خود رها میکند(مثلاً آن را کنار دروازه بان می‌گذارد و از پست اصلی خود که خط حمله بوده معلق می‌کند.)
۹-۱-۳- Goal
وقتی توپ از خط دروازه‌ها عبور کند یک گل محسوب میشود. بعداز هر گل kick off رخ میدهد. بعبارت دیگر: وقتی یک تیم بتواند امتیاز بدست آورد به آن گل گفته میشود. پس از هر گل یک massage سراسری برای بازیکنان فرستاده میشود با مفهوم :
(۱) Kick _off_x
که X نشان دهنده Right یاLeft می‌باشد وتوپ به نقطه مرکزی زمین منتقل می‌شود.
۹-۱-۴- Out of Field
زمانی که توپ خارج از زمین باشد. یعنی زمانی که توپ:
۱٫ corner شود.
۲٫ ازکنار دروازه خارج شود.

۳٫ از خط کنار زمین رد شود.
وقتی که توپ از زمین خارج شود داورمسابقه توپ را در جای مناسب قرار می‌دهد و وضعیت بازی را به یکی از وضعیتهای زیر تبدیل میکند:
۱٫ Kick in
2. Corner _ kick
3. Goal _ kick
وضعیت بازی:

وضعیتی که در هر لحظه بازی میتواند داشته باشد را وضعیت بازی می‌گویند.

۹-۱-۵- Offside
شرایط offside بصورت زیر می‌باشد :
۱- در زمین حریف باشد.
۲- فاصله ما تا دروازه بان بیش از دو بازیکن خودی باشد.
۳- نزدیک شدن به توپی که در حال وارد شدن به دروازه است.
۴- نزدیک شدن به توپی که فاصله آن تا دروازه بان کمتر از ۲٫۵ متر باشد.
۹-۱-۶- Backpasses
اگر یکی از بازیکنان خودی به دروازه بان پاس دهد ودروازه بان آن را بگیرد خطای back pass رخ میدهد و یک ضربه آزاد به سود تیم حریف گرفته می‌شود. در زمان خطای back-pass دروازه بان باید در محوطه جریمه باشد. (اگر خارج از محوطه جریمه باشد خطا نیست. ) اگر خطای back-pass رخ دهد توپ به یکی از گوشه‌های محوطه جریمه که نزدیکتر است انتقال می‌یابد.
۹-۱-۷-Free kick Faults
زمانی که یک free kick یا corner kick یا goal kick و یا kick in رخ میدهد بازیکن نمی تواند به خود پاس دهد (یعنی نمی تواند توپ را جلوتر بیندازد و خودش آن را بگیرد.) اگر این اتفاق افتاد خطای free kick fault گرفته می‌شود.
۹-۱-۸- Half-Time and Time-up

هر نیمه در Soccer Server شامل ۳۰۰۰ سیکل زمانی میباشد.(تقریباً ۵ دقیقه) اگر بازی پس از نیمه دوم مساوی شود بازی در دو نیمه اضافه دنبال میشود. تا زمانی که یکی از تیم‌ها گل به ثمر برساند.
نکته:
مفهوم penalty را درSoccer Server نداریم. Agent‌ها گرد هستند بنابرین در ۹۹% امکان خطا در محوطه جریمه نیست بنابراینpenalty نداریم. به این رو
۹-۲- قوانین داور فیزیکی
بعضی از خطاها برای سیستم اتومات داوری خیلی سخت است.برای گرفتن این خطاها Server یک Interface (رابط کاربر) در اختیار انسان قرار میدهد تا بتواند بازی را معلق کرده و یک free kick بگیرد. داور فیزیکی از سال ۲۰۰۰ به بعد در مسابقات بکار گرفته شد. قبل از سال ۲۰۰۰ در مسابقات داور فیزیکی نبود. زمانی که در مسابقات ۱۹۹۹ اسکا بعضی از تیم‌ها یکسری خطا در برنامه رباتهایشان نوشته بودند و از آنها برای رسیدن به پیروزی استفاده میکردند، این خطاها برای داور سیستم شناخته شده نبود و از دید آن اشکالی نداشت ولی در واقع خطا و تقلب بود(۱۰ نفر از بازیکنان دور توپ جمع می‌شدند و بسوی دروازه حریف حمله می‌کردند.)
۹-۲-۱- اعمال داور فیزیکی
۱٫ به جریان انداختن توپ.
۲٫ زمانی که گل توسط تعداد زیادی از بازیکنان پوشیده شده باشد.
۳٫ توپ بعد از یک زمان مشخص به جریان نیفتد.
۴٫ تعدادی از بازیکنان مانع حرکت یک بازیکن شوند.
۵٫ زمانی که دروازه بان توپ را در اختیار دارد (safe time ) یعنی زمانی که دروازه بان توپ را دراختیار دارد هیچ کدام از بازیکنان حریف نمی توانند توپ را از دروازه بان بگیرند(فقط در محوطه جریمه مطلب بالا درست است.)
۶٫ Down یا hang کردن Server توسط تعداد زیادی massage
یک بازیکن نباید بیشتر از ۳ یا ۴ دستور در هر سیکل زمانی برای Server بفرستد.اگر Server بیش از حد دستور دریافت کند در اصطلاح می‌گویند jammed شده است.
۱۰- انواع سنسورها
Soccer Server سه نوع سنسور متفاوت دارد:
۱٫ Aural Sensor Model(برای فرستادن و گرفتن message ‌ها کاربرد دارد.)
۲٫ Vision Sensor Model (دیدن بازیکن و وضعیت محیط)

۳٫ body sensor (وضعیت بدنی بازیکن را چک میکند)
۱۰-۱- Aural Sensor Model
فرمت کلی message ‌های aural sensor که از طرف server هستند بدین شکل میباشد:
(hear Time Sender “Message”)
در قسمت Time زمان جاری ثبت میشود. درقسمت sender، فرستنده message مشخص میشود. یکی از ۴ مورد زیر میتوانند فرستنده باشند و بجای قسمت sender قرار گیرند :
۱-self (خود بازیکن )
۲-referee (دیگران مثل بازیکنان دیگر)
۳- online_coach_left (مربی سمت چپ زمین )
۴ – 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 را دریافت کنن

د در ۱۰ سیکل۶ تا message فرستاده می‌شود.
(۲) ۶*۲=۱۲*۱۰=۱۲۰
(۶ = چون ۲ تا مربی داریم و ۴ تا بازیکن)
(۲= چون هرmsg را دو نفرمیتوانند دریافت کنند.)
چون هرmessage هم میتواند یک جواب داشته باشد در نتیجه ۲۴۰=۲*۱۲۰ message در ۱۰ سیکل.
۱۰-۲- Vision sensor model
به معنی نمایش است. برای دیدن محیط اطراف بکار میرود. باعث می‌شود اطلاعاتی (درمورد شی هایی که بازیکن در حال حاضر آن‌ها را میبیند) که از server به client یا از client به server میرود در هر ۱۵۰ میلی ثانیه یکبار در قالب چنین message ی آشکار شود.
(see ObjName Distance Direction DistChng DirChng BodyDir HeadDir)
به عبارت دیگر هر ۱۵۰ میلی ثانیه یکبار server یک چنین پروتکلی بهclient میفرستد و client هم جوابش را می‌دهد.
در پروتکل بالا اطلاعات obj دیده شده قرار میگیرد که بعضی از این اطلاعات در طی فرمول هایی بدست می‌آید.
همچنین هر یک از نقاط و خطوط در زمین فوتبال Soccer Server نام خاصی دارد

۱۰-۲-۱- Range of view
وسعت و کیفیت دید را معین می‌کند.مثلا در شرایط هوای بارانی وسعت و کیفیت و range دید بازیکنان میتواند ناخواسته تغییر کند و کم شود (مانند خود ما که در هوای بارانی وسعت دید کمتری داریم و…) یک تیم خوب تیمی است که بتواند range دید خودش را نسبت به شرایط عوض کند به عبارت دیگر با شرایط شبیه سازی شده در زمین بازی مثل باد شدید و باران و. .. بتواند خود را تطبیق دهد.
برای range of view ما یکسری پارامتر داریم که باید بعنوان یک client این پارامترها را بشناسیم. مثلا می‌توانیم ببینیم که هر بازیکن نسبت به فاصله اش چه چیزی را میتواند ببینند: به عنوان مثال یک بازیکن در نقطهA میتواند خود را و هم بازیکنان تیم خودی و شماره آن‌ها را تشخیص دهد. اگر فاصله ما کمتر از unum_far_lenght باشد هم شماره بازیکن و هم نام آن را میبینیم. اگر فاصله ما بین unum_too_far_lenght تا unum_far_lenght باشد نام تیم را میبینیم ولی ممکن است

نتوانیم شماره بازیکنان را بخونیم.اگر فاصله ما بیشتر ازunum_too_far_lenght باشد دیگر شماره بازیکنان قابل دیدن نیست.اگر فاصله ما کمتر از team_far_lenght باشد نام قابل تشخیص است. اگر فاصله بین team_far_lenght تا team_too_far_lenght باشد ممکن است بتوانیم نام تیم را تشخیص دهیم. اگر فاصله ما بشتر از team_too_far_lenght باشد object ‌ها قابل تشخیص نیستند. بنابرین f و g و b در شکل زیربرای بازیکن مورد نظر ما قابل تشخیص نیستند

پارامترهای موجود برای visual sensor در server.conf دارای مقاریری هستند که آنها را در جدول زیر میبینیم.

۱۰-۲-۲- Visual sensor Noise Model
وضعیت محیط زمین بازی را به بازیکنان میگوید.مثلاً توپ کجاست ؟ در حال حاضر توپ چه حرکتی دارد؟ و یکسری فرمول‌ها که نیاز نیست توسط ما تنظیم شوند، فقط باید با کار آنها آشنا باشیم.
۱۰-۳- Body sensor Model
وضعیت فیزیکی بازیکن را مشخص میکند. مثل قدرت بدنی و سرعت بازیکن و. ..
مثلاً اگر یک بازیکن ۱۳۴ بازstart زده باشد و دویده باشد عدد ۱۳۴ جلوی اسم بازیکن بجای

Dash Count قرار میگیرد. Noise در لغت به معنی مزاحمت است. در زمین بازی ما انسانها ممکن است در حین بازی باد شدید، باران، چاله‌های کوچک، مه گرفتگی و…. وجود داشته باشد که به خودی خود میتواند برای بازیکن ایجاد مزاحمت کند؛ و بازیکنی موفق است که بتواند با noise ‌های موجود خود را تطبیق دهد و به خوبی قبل بازی را ادامه دهد. (به عنوان مثال اگر باد شدید باشد و بازیکن توپ را هوایی شوت کند باد باعث انحراف توپ میشود و. ..) در Soccer Server ه

م برای سنجیدن میزان کارآیی، مقاومت و کیفیت تیم‌ها یکسری noise ‌ها در زمین بازی ایجاد شده است. مانند: باد، چاله‌های ریز موجود در زمین و. .. این noise ‌ها بطور اتوماتیک توسط Movement Noise Model تنظیم میشوند و فقط server به این noise ‌ها دسترسی دارد و برای ما یا بازیکنان و. .. قابل دستیابی نیست.
۱۰-۳-۱- Collision Model
زمانی که دو بازیکن یا دو شی در زمین بازی با هم برخورد میکنند این server است که تصمیم میگیرد که کدام بازیکن را در زمین نگه دارد تا بتواند به بازی ادامه دهد یا اینکه هر کدامشان پس از برخورد چقدر به عقب برگردند.(وقتی دو جسم که سرعت دارند به هم برخورد کنند پس از برخورد هر دو کمی به عقب رانده میشوند)
۱۰-۴- Action Model
شامل یکسری پارامترهایی است که باید تنظیم شوند.
۱- Catch Model: میدانیم دروازه بان تنها بازیکن زمین است که اجازه دارد در حین بازی توپ را با دست بگیرد. این پارامتر مشخص میکند دروازه بان در چه محدوده ای و با چه زا

 

ویه ای می‌تواند توپ را بگیرد. حال باید یکسری پارامترها برایش set کنیم از قبیل :
catchable_area_l : معین کننده طول محوطه ای که که دروازه بان درآن محوطه بتواند توپ را بگیرد.

catch_probability : مشخص میکند شانس گرفتن توپ توسط دروازه بان چقدراست. معمولاً ۱ عدد خوبی است، اگر توسط server، set شود.
catch_ban_cycle : معین میکند که دروازه بان در چند سیکل میتواند این توپ را بگیرد.
goalie_max_moves : معین کننده حداکثر پرش ممکن برای دروازه بان است.
۲- Dash Model: مشخص میکند که حداقل و حداکثر قدرت بدنی لازم برای دویدن بازیکن چقدر باشد. فعلاً با پارامترهای مربوط به dash model کاری نداریم.
۳- Kick Model:
معمولاً دو پارامتر میگیرد :
۱- قدرت (شتا ب ضربه ) توپ
۲- زاویه شوت را مشخص میکند.
قدرت شوت معمولاً صفر و زاویه شوت ۴۷ یا ۴۸ درجه است.

۱۰-۵-Stamina Model
معین میکند که قدرت بدنی یک بازیکن به چه نحوی بدست آید (recover شود)و چه گونه از دست برود.
اینجا یکسری شبه کد SOCCE SERVER داریم.
شبه کد: یک زبان برنامه نویسی تقریباً نزدیک به همه زبان‌های برنامه نویسی است.
اگر به الگوریتم‌های زیر توجه کنیم متوجه میشویم که:
قسمت اول بیان میکند که: اگر استقامت کمتر از Power بود از استقامت کم کن. recovery را اجرا کن (recovery را وقتی اجرا میکنیم که بازیکن یک انرژی از دست داده باشد حالا با این دستور آن را بدست می‌آورد. )البته امکان recovery محدود است. مثلاً بیشتر از ۲۰ بار از این دستور نمیتوانیم استفاده کنیم. اگر این recovery بیشتر از مقدار min ی است که ما برای recovery تعریف کردیم هنوز میتواند recovery را اجرا کند و یک واحد ازrecovery کم میشود بطور اتوماتیک و به استقامت اضافه میشود.
قسمت دوم هم به همین ترتیب استدلال می‌کنیم. البته ما با این الگوریتم‌ها سرو کار نداریم و این server است که اینها را اجرا میکند و مربوط به ما نیست. server با soccer p

layer همه این الگوریتم‌ها را اجرا می‌کند.
۱۱- Soccer server
دستورات در Soccer Server به دو دسته تقسیم می‌شوند:
۱- دستوراتی که از client به server می‌روند.

۲- دستوراتی که از server به client می‌روند.
این دستورات را در جدول زیر به طور خلاصه میبینیم :

۱۱-۱- Stamina
این پارامتر قدرت بدنی بازیکن را مشخص می‌کند
۱۱-۲-Dash
با هر دستور dash (شوت زدن – دویدن و. .. ) باعث کمتر شدن قدرت بازیکن میشویم.
۱۱-۳-Recover
نشان میدهد چقدر طول میکشد تا بازیکن ما قدرت خودش را بدست آورد (recover شود)
این پارامتر‌ها را در سه گروه تقسیم می‌کنیم :
۱٫ server_param
2. player_param
3. player_type
یکسری دستورات هم هستند که یک طرفه عمل می‌کنند یعنی فقط از طرف server به client فرستاده می‌شوند(only once per cycle : این بدین معنی است که در هر سیکل فقط یک بازیکن می‌تواند این پیغام را برای server بفرستد.)
۱۱-۴- Catch Direction
این پارامتر مشخص میکند که بازیکن توپ را در چه زاویه ای می‌تواند دریافت کند (مثلاً بازیکن ۴۵ درجه به راست بچرخد و بعد توپ را بگیرد = catch 45 )
11-5- Change_ view Width Quality
پارامتری است برای تغییر دید بازیکن اگرquality یک بازیکن را low انتخاب کنیم ممکن است بازیکن حتی نتواند هم تیمی‌های خودش را تشخیص دهد.اگر quality یک بازیکن high انتخاب شود ممکن است بازیکن حتی بتواند شماره بازیکن تیم حریف را هم بخواند.در قسمت width هم عرض محدوده دید بازیکن را مشخص می‌کنیم که کم یا معمولی یا عریض باشد.
۱۱-۶- dash Power
این پارامتر نشان دهنده مقدار انرژی مصرف شده توسط بازیکن است این مقدار می‌تواند minpower یا maxpower باشد. البته برگشت به عقب ۲ برابر انرژی مصرف می‌کن

د.
۱۱-۷- kick power Direction
نشان دهنده قدرت شوت ممکن برای یک بازیکن است. به عبارت دیگر حداکثر قدرت شوت برای یک بازیکن را می‌توانیم اینجا مشخص کنیم. اگر قدرت شوت را ۰ تا ۱۰۰ در نظر بگیریم این پارامتر مشخص می‌کند که قدرت شوت فلان بازیکن ۵۰ باشد.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 8700 تومان در 25 صفحه
87,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد