در این جلسه به آموزش دریافت، نصب و اجرای ابزارهای شبیهسازی فوتبال خواهیم پرداخت. در پایان این جلسه یک مسابقه شبیهسازی بین دو تیم از پیش ساختهشده را بهدست خودتان اجرا خواهید کرد.
برای دریافت و نصب این بسته های نرم افزاری، به دو روش زیر می توان عمل نمود:
1. نصب به صورت Online:
در ابتدا با استفاده از فرمان زیر در محیط Terminal، مخزن Rubuntu را به لیست مخازن قابل دسترسی Ubuntu می افزاییم.
sudo add-apt-repository ppa:gnurubuntu/rubuntu && sudo apt-get update
|
سپس
با استفاده از فرمان های زیر ابزار های RCSSServer، RCSSMonitor و RCSSLogPlayer را از مخزن Rubuntu دریافت و نصب می نماییم:
sudo apt-get install rcssserver
sudo apt-get install rcssmonitor
sudo apt-get install rcsslogplayer
|
توجه نمائید که در هنگام صدور فرمانهای بالا حتما به شبکه اینترنت متصل باشید.
2. نصب بهصورت Offline:
در ابتدا سه بسته نرمافزاری RCSSServer، RCSSMonitor و RCSSLogPlayer را از پایگاه زیر دانلود کنید:
http://sourceforge.net/projects/sserver/files/
ابزارهای فوق بهصورت .tar.gz فشرده شدهاند. به روشی که جلسه پیش مطرح شد، آنها را Extract نموده و بهصورت زیر کامپایل و نصب نمائید.
./configure
make
sudo make install
|
ابزارهای مذکور، پس از نصب، از هر مسیری در Terminal قابل اجرا هستند.
در ابتدا با استفاده از فرمان زیر، Server شبیهساز را اجرا نمائید:
سپس با صدور فرمان زیر در یک Terminal جدید، نرمافزار Monitor را اجرا و به Server شبیهساز متصل نمائید:
توجه: بهجای دو فرمان بالا، میتوان از تک فرمان زیر برای اجرای Server و Monitor استفاده کرد:
در این لحظه، زمین مسابقه فوتبال توسط RCSSMonitor به تصویر کشیده شده و مشاهده میشود که بازیکنان بیرون زمینند.
برای ورود بازیکنان هر تیم به داخل زمین باید Agent های آن تیم به عنوان Client به Server شبیهساز متصل شوند.
Agent ها نرمافزارهای خودمختاری هستند که بهعنوان Client و از طریق پروتکل UDP/IP با سرور شبیهساز فوتبال ارتباط برقرار میکنند. بنابراین برای ساخت آنها از هر زبان برنامهنویسیای که این پروتکل را پشتیبانی نماید میتوان استفاده نمود. محبوبترین زبانهای برنامهنویسی برای این منظور، زبان های ++C و Java اند. Agent هایی که به یک زبان سطح بالا مثل ++C یا Java نوشته میشوند، برای اتصال به Server شبیهساز فوتبال، باید بهصورت یک فایل Binary کامپایل گردند. تیمهای کامپایلشده بهصورت Binary معمولا دارای یک اسکریپت بهنام start.sh اند که با اجرای آن میتوان Agent های تیم را به Server شبیهساز متصل نمود. پایگاه زیر شامل Binary تمامی تیمهای شرکتکننده در مسابقات رسمی است:
http://www.socsim.robocup.org/files/2D/binary/
Binary تیمهای HELIOS2012 و WrightEagle را از پوشه مربوط به RoboCup 2012 دانلود کنید. این دو تیم، فینالیستهای RoboCup 2012 بودهاند. آنها را Extract کرده و پس از اجرای Server شبیهساز، در دو Terminal مختلف توسط اسکریپتهای start.sh تیمها را به Server متصل نمایید. مشاهده میکنید که بازیکنها وارد زمین مسابقه میشوند.
باینری تیم WrightEagle برای اجرا نیاز به بسته نرمافزاری libboost-regex-dev دارد. بنابراین قبل از اجرای اسکریپت مربوطه، با فرمان زیر این بسته را نصب نمائید:
sudo apt-get install libboost-regex-dev
|
از آنجایی که در ساخت این تیم از نسخه 1.46.1 این بسته استفاده شده، پس از نصب میبایست در محیط Terminal به مسیر /usr/lib رفته و بهکمک دستور انتقال (mv) نام فایل libboost_regex.so.1.49.0 را به libboost_regex.so.1.46.1 تغییر دهید.
در اینجا فرض ما بر این است که Server و Client ها بر روی یک کامپیوتر اجرا میشوند. اما در مسابقات RoboCup با توجه به حساسیت رقابت و سنگین بودن الگوریتمهای هوشمند بهکار رفته شده در Agent ها، نرمافزارهای RCSSServer و RCSSMonitor بر روی یک کامپیوتر مرکزی نصب و اجرا شده و هر تیم Agent های مربوط به تیم خود را از طریق دو کامپیوتر جدا، به نرمافزار RCSSServer روی کامپیوتر مرکزی متصل مینماید. به عبارت دیگر به هر تیم دو کامپیوتر اختصاص داده میشود که روی هر کدام، 6 عامل از 12 عامل آن تیم اجرا میگردند. واضح است که برای اتصال به کامپیوتر مرکزی باید IP Address آن به Script مربوطه داده شود. برای مثال:
پس از اینکه بازیکنان هر دو تیم وارد زمین شدند، داور انسانی گزینه Kick-Off را از منوی Referee روی RCSSMonitor زده و بازی آغاز میشود...
در جلسه آینده با مفهوم Base Team آشنا شده و به معرفی تعدادی از Base Team های معروف خواهیم پرداخت.
پایان جلسه ششم
حمیدرضا حسین خانی