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


  RCSSServer:

 

 

سرور شبیه‌ساز فوتبال روبوکاپ (RoboCup Soccer Simulation Server) نرم افزار استانداردی است که فدراسیون روبوکاپ برای لیگ شبیه‌سازی فوتبال در مسابقات منتشر نموده است. این نرم افزار محیط حقیقی بازی فوتبال را با تمام جزییات اعم از وزن توپ، وزن بازیکنان، سرعت و شتاب توپ، سرعت بازیکنان، مختصات اشیاء در زمین مسابقه، تعداد گل ها، جهت وزش باد و ... به همراه قوانین فیزیکی حاکم بر مسابقه شبیه‌سازی می‌کند.


هر تیم از 12 عامل (Agent) هوشمند شامل 11 بازیکن و یک مربی تشکیل شده است. این Agent ها از نظر نقش با یکدیگر متفاوت هستند (دروازه‌بان، مدافع، حمله و ...). به این گونه عامل‌ها، عامل‌های ناهمگون (Heterogeneous Agents) گویند.


این Agent ها به عنوان سرویس گیرنده (Client) به نرم افزار سرویس دهنده (Server) شبیه‌سازی فوتبال متصل شده و از طریق پروتکل UDP/IP با آن به تبادل پیام (message) می‌پردازند. حاصل این تبادل پیام ها بین Server و Client ها، شبیه‌سازی بازی فوتبال است.

 


Agent ها از طریق حسگرهای مجازی خود، دانش‌های محیطی (اطلاعات موجود در محیط شبیه‌سازی شده مثل موقعیت توپ یا بازیکنان و ...) را در قالب Message ها از سرور شبیه‌ساز دریافت و بر اساس استراتژی و منطق راهبردی خود، تصمیم‌گیری نموده و نتیجه تصمیم (مثلا شوت به سمت دروازه) را از طریق Message به سرور ارسال می‌نمایند.


Server پیام دریافت‌شده را تجزیه و تحلیل نموده و با در نظر گرفتن تمامی عوامل از جمله میزان انرژی بازیکن، سرعت توپ و ... نتیجه تصمیم Agent را بر روی محیط مجازی اعمال می‌نماید. Message ها در قالب یک رشته کاراکتری (String) بین Server و Client ها رد و بدل می‌شوند.
در زیر چند نمونه از Message هایی که Client ها به سرور شبیه‌ساز می‌فرستند را مشاهده می‌نمایید:

 

انتقال بازیکن مربوط به Agent جاری به نقطه (X, Y) move X Y
شوت کردن توپ در جهت Direction و با قدرت Power kick Power Direction
چرخاندن گردن و تغییر زاویه دید به اندازه Angle درجه turn-neck Angle

 

 

یک نمونه Message از Server شبیه ساز به Client ها نیز در زیر آورده شده است:

 

این پیام پس از اتصال Agent به Server، از طرف Server به Agent فرستاده شده و آن را مقدار دهی اولیه می کند. Side معرف نیمه چپ یا راست زمین است. Unum شماره بازیکن (1 تا 11) و PlayMode حالت بازی که معمولا Before_Kick_Off است مگر اینکه Agent بعد از شروع بازی به سرور متصل شده باشد. init Side Unum PlayMode

 

 

برای مشاهده لیست کامل Message های رد و بدل‌شونده بین Server شبیه‌ساز فوتبال و Agent ها به راهنمای رسمی سرور شبیه‌ساز فوتبال دو بعدی (لینک زیر) مراجعه نمایید:

http://sourceforge.net/apps/mediawiki/sserver/index.php?title=Users_Manual/Soccer_Server


وظیفه دیگر سرور شبیه‌ساز فوتبال، پیش بردن زمان است. این نرم افزار، زمان ده دقیقه ای اجرای یک مسابقه فوتبال کامل را به 6000 برش زمانی گسسته و جدا از هم موسوم به سیکل (Cycle) تقسیم می‌کند؛ بنابراین هر Cycle، زمانی معادل 100 میلی‌ثانیه طول می‌کشد. در هر Cycle تنها یک دستور جابجاکننده (مثل move یا kick) قابل اجرا است. اما دستوراتی مانند تغییر زاویه دید (turn-neck) می‌توانند بارها و در کنار سایر دستورات در یک Cycle اجرا شوند. به عبارت دیگر، در طول مدت یک Cycle، همه اشیای موجود در زمین مسابقه، بی‌حرکت می‌مانند و اگر دستور جابجایی یک شی (توپ یا بازیکن) در یک Cycle به Server ارسال شود، شی مربوطه در ابتدای Cycle بعدی جابجا خواهد شد.


توجه کنید که در هر Cycle، تمامی 12 عامل (Agent) یک بار و به صورت همزمان اجرا می‌گردند.


بازی فوتبال در لیگ شبیه سازی دو بعدی به دو نیمه 3000 سیکلی تقسیم می شود. اگر در پایان دو نیمه، نتیجه بازی دو تیم، مساوی باشد، دو تیم در یک نیمه 1000 سیکلی با قانون گل طلایی، با یکدیگر مسابقه داده و اولین تیمی که به گل دست یابد برنده مسابقه می‌شود.


اگر در پایان این 1000 سیکل، نتیجه بازی همچنان مساوی باشد، دو تیم مجددا در یک نیمه 1000 سیکلی دیگر با قانون گل طلایی روبروی یکدیگر مسابقه می دهند. نیمه با قانون گل طلایی برای بار سوم تکرار نمی شود و در صورتی که نتیجه بازی همچنان مساوی باشد، برنده بازی از روی ضربات پنالتی مشخص می‌گردد.


از دیگر وظایف نرم افزار سرور شبیه ساز فوتبال (RCSSServer) اجرای قوانین داوری (آفساید یا ارایه کارت زرد و قرمز و ...) است. البته برخی از خطا ها توسط نرم افزار Server قابل تشخیص نبوده و در این مواقع داور انسانی  خطای مربوطه را تشخیص می دهد. برای مثال احاطه کردن توپ توسط تعدادی بازیکن به صورتی که بازیکنان تیم حریف توانایی دسترسی به توپ را نداشته باشند و یا پر کردن دروازه با تعداد زیادی بازیکن، خطا هایی هستند که توسط سرور شبیه ساز (Automated Referee) قابل تشخیص نمی باشند و تشخیص آنها به عهده داور انسانی (Human Referee) است.


برای اطلاعات بیشتر در مورد قواعد بازی و خطا هایی که داور خودکار و یا داور انسانی مسئول قضاوت در مورد آنها هستند می توانید به لینک زیر مراجعه نمائید:

http://sourceforge.net/apps/mediawiki/sserver/index.php?title=Users_Manual/Overview


در جلسه آینده با سایر ابزار های مورد نیاز برای شبیه سازی فوتبال آشنا خواهید شد.


 


پایان جلسه ششم
حمیدرضا حسین خانی

1392/2/8 لينک مستقيم

نظر شما پس از تاييد در سايت قرار داده خواهد شد
نام :
پست الکترونيکي :
صفحه شخصي :
نظر:
تایید انصراف
 

 

 فعاليت هاي علمي
 تماس با ما