تبليغاتX
๑۩۞۩๑ مطالب جالب از سراسر وب ๑۩۞۩๑ - روبوكاپ؟؟؟شبيه سازي يعني چي؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

๑۩۞۩๑ مطالب جالب از سراسر وب ๑۩۞۩๑

مطالب علمي ،سياسي ، فرهنگي و هنري و تفريحي ، هر چي بخوايي پيدا ميكني .دانلود.شهرستان خلخال.هك

روبوكاپ؟؟؟شبيه سازي يعني چي؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

شبيه سازي يعني چي؟
شايد اين اولين سوالي باشه که بعد از شنيدن شبيه سازي فوتبال يا Soccer Simulation به ذهنتون برسه! به طور کلي شبيه سازي تو رايانه يعني محيطي مثل واقعيت توي رايانه بسازيم و عملياتي روي محيط شبيه سازي شده انجام بديم و نتيجه ي اون رو ببينيم!

Question level 3 حالا چرا شبيه سازي کنيم وقتي مي تونيم تمام جوانب رو در واقعيت بررسي کنيم؟
Answer " بعضي از وقايع يا آزمايش ها بسيار پر هزينه هستند و حتي بعضي از اونا در زمان مورد نظر قابل آزمايش نيستند. به عنوان مثال مي خوايم روش هاي مختلف مديريتي رو بعد از وقوع زلزله بررسي کنيم! واضحه که ايجاد يک زلزله ممکن نيست و حتي اگر ممکن بود خسارت مالي و جاني فراواني به همراه داشت. اينجاست که شبيه سازي به کمک ما مياد. در حال حاضر در زمينه ي مديريت پس از زلزله هر سال مسابقاتي در سطح جهان برگزار ميشه!. "
Question level 4 در زمينه ي فوتبال هم مسابقه برگزار مي شه؟
Answer " بله، هر سال مجموعه مسابقاتي با نام روبوکاپ برگزار ميشه که در زمينه ي شبيه سازي ميشه از شبيه سازي نجات، شبيه سازي فوتبال دوبعدي و سه بعدي و شبيه سازي روبات هاي مجازي يا Virtual Robots نام برد!
اين مسابقات هر سال توي يکي از نقاط دنيا برگزار ميشه، امسال توي آمريکا بود و سال ديگه توي چين خواهد بود. "
Question level 5 جريان مسابقات اپن چي هست؟
Answer " اين سوالت نشون ميده تا حدودي در جريان مسابقات روباتيک هستي! هر سال توي چند کشور مسابقات اپن در رشته هاي مختلف انجام ميشه که از جاهاي مختلف دنيا توي اين مسابقات شرکت ميکنند. هر تيم بخواد توي مسابقات جهاني شرکت کنه اول بايد يک بار مينيمم توي مسابقات اپن شرکت کرده باشه. اتفاقا هر ساله توي کشور خودمون هم مسابقات اپن به پشتيباني دانشگاه آزاد اسلامي واحد قزوين که تيم روباتيک بسيار قدرتمندي داره برگزار ميشه! و جالب تر از اون اين نکته هست که ايران در زمينه ي شبيه سازي در دنيا حرف براي گفتن داره و توي شبيه سازي نجات هر سال دو تيم از چهار تيم اول جهان (يا حتي بيشتر) از ايران هست! "
Question level 2 واااي، چه عااالييي!

عجيبه که هيچ کدومتون اين سوال رو نپرسيدين که چرا فوتبال رو شبيه سازي مي کنيم؟ فوتبال که نه هزينه ي زيادي مي خواد نه سخته بازي کردنش! دليل شبيه سازي فوتبال خيلي چيزا ميتونه باشه که از مهمترين دلايلش تمرين هوش مصنوعي، شبيه سازي شبکه هاي عصبي و منطق فازي رو ميشه نام برد! در ضمن قراره در آينده ي نه چندان دور تيم فوتبال روبات ها با قهرمان فوتبال دنيا مسابقه بده و اونو ببره! از اونجايي که هنوز سخت افزار روبات ها زياد پيشرفت نکرده الان دارن روي تصميم گيري روبات ها جلوتر کار مي کنند! پس يه دليل شبيه سازي فوتبال اين هست که هنوز بدنه ي مناسبي براي بازي فوتبال براي روبات ها درست نشده!
شروع مي کنيم
براي وارد شدن به دنياي شبيه سازي فوتبال اولين کاري که بايد بکنيم اينه که برنامه هاي شبيه سازي رو نصب کنيم!
اصولا برنامه هاي شبيه سازي که تو مسابقات مرسوم هستند دو بخش دارند! يک بخش سرور که قوانين محيط توش قرار داره و يه بخش کلاينت که نميتونه قوانين رو تغيير بده اما مي تونه با توجه به قوانين محيط و اختياراتي که داره تصميم گيري کنه و دستور بفرسته. مثلا در شبيه سازي زلزله يک سرور داريم که محيط بعد از زلزله رو شبيه سازي مي کنه، بعضي جاها آتيش ميگيره يا يعضي خيابونا بسته ميشه و حتي جهت باد يا وضعيت آدم هاي مجروح رو تعيين مي کنه! و بخش کلاينت در واقع اون بخشي هست که نحوه ي عملکرد آتش نشان ها، پليس ها و آمبلانس ها رو تعيين مي کنه! هر تيم که بهتر عمل کنه و با کمترين خسارت بتونه محيط رو کنترل کنه برنده هستش!
شبيه سازي فوتبال هم به همين شکل هست! سرور زمين فوتبال و جهت باد و تغيير موقعيت توپ و قوانين فيزيکي و خيلي چيز هاي ديگرو شبيه سازي مي کنه و کلاينت که مسابقه سر بهتر شدن اونه دستورات رو مي ده که بازيکن ها و Coach چطور بازي کنند!

Question level 4 کلاينت بايد به زبان خاصي نوشته شه؟
Answer " خوشبختانه در اين زمينه محدوديتي وجود نداره! کلاينت به وسيله ي پروتکل UDP/IP به سرور وصل ميشه در نتيجه هر زبان برنامه نويسي که اين پروتکل رو ساپرت کنه قابل استفاده هست، البته اکثر تيم ها C++ يا Java استفاده مي کنن! "

شايد بد نباشه قبل از شروع به نصب شبيه ساز فوتبال چند تا عکس از محيط شبيه سازي شده ببينيم!
محيط شبيه سازي فوتبال قبل از وصل شدن کلاينت ها
بعد از اينکه کلاينت ها (دو تيم) به سرور وصل شدن بازيکن هاي هر تيم در جايگاه هاي خودشون با توجه به چينش اوليه ي انتخاب شده قرار مي گيرن
محيط شبيه سازي فوتبال بعد از وصل شدن کلاينت ها
بازي دقيقا بعد از اينکه داور دکمه ي کيک آف رو بزنه شروع ميشه
محيط شبيه سازي فوتبال بعد از شروع بازي
نصب شبيه ساز فوتبال
توجه
تمامي فايل هاي مورد نياز در اين آموزش به جز پکيج Boost (به علت حجم زياد) در اين فايل موجود است، در صورتي که اين فايل را دريافت کنيد نيازي به گرفتن فايل هايي که در ادامه ي اين آموزش آمده نيست!
پکيج بوست را ميتوانيد از اينجا بگيريد!

مراحل نصب
براي نصب پکيچ Soccer Simulation شما بايد يه کامپيوتر با سيستم عامل لينوکس داشته باشيد!

Question level 5 به جاي لينوکس ميشه از Cygwin توي ويندوز استفاده کرد؟
Answer " خوشبختانه شما مي تونيد از Cygwin براي نصب و اجراي سرور استفاده کنيد! راه ديگه براي نصبش تو ويندوز هم اينه که برنامه ي VMWare Workstation رو نصب کنيد و روي اون لينوکس نصب کنيد! اينطوري به محيط گرافيکي لينوکس هم توي ويندوز دسترسي خواهيد داشت! "

من روي کامپيوتر خودم از Linux Suse 10.1 استفاده کردم، اما شما مي تونيد از هر کدوم از ورژن هاي لينوکس چه تو محيط KDE چه محيط Gnome استقاده کنيد!
از اينجا به بعد رو بايد با يوزر root تولي لينوکس لاگين کنيد!
قبل از شروع نصب بايد مطمئن شيد که gcc روي لينوکستون نصب هست! اگر نيست مي تونيد از توي سي دي لينوکستون و با استقاده از Software Management توي YaST اونو نصبش کنيد يا توي Terminal بزنيد:

1.
yum install gcc

Question level 3 ببخشيد، gcc دقيقا چيکار مي کنه؟
Answer " gcc يکي از کمپايلر هاي C هستش که توي لينوکس خيلي استفاده ميشه. "

بعد از اينکه مطمئن شديد gcc نصب هست بايد يه پکيج ديگه بنام boost رو نصب کنيد!
توي اين صفحه آموزش نصب اين پکيج هست! نصب اين پکيج زمان خيلي زيادي مي گيره و حدود 1 گيگ هم هارد نياز داره! البته سرور شبيه ساز فوتبال فقط نياز به دو تا از Library هاي اون داره، شما مي تونيد فقط همون دو تا رو make و make install کنيد:

1.
libboost_filesystem-gcc.so
2.
libboost_program_options-gcc.so

بصورت پيش فرض اين Library ها توي /usr/local/lib ذخيره ميشن! اما يه مشکلي که وجود داره اينه که اسم اين Library ها توي پکيج جديد Boost نسبت به زماني که Soccer Simulation Server ساخته شده فرق کرده پس بايد اسم اونا رو عوض کنيم!
براي اين کار به /usr/local/lib برين و اسم دو تا فايل رو با اين دوخط دستور عوض کنيد:

1.
mv libboost_filesystem-gcc41-1_34_1.so libboost_filesystem-gcc.so
2.
mv libboost_program_options-gcc41-1_34_1.so libboost_program_options-gcc.so

اگه ورژن Boostاي که گرفتين فرق داشته باشه ممکنه اون عدد هاي آخر فرق کنن!خوب حالا رسيديم به مرحله ي اصلي يعني نصب rcssbase و rcssserver که سرور رو تشکيل ميدن!
براي اين کار بايد دو تا پکيج RoboCup Soccer Simulator Base Code و Robocp Soccer Simulator Server رو از اينجا بگيريد!
بعد از گرفتن اين دو تا فايل اونا رو توي يه فولدر که دوست دارين قرار بدين و اونا رو Untar کنيد! براي Untar کردن کافيه توي Terminal بنويسيد:

1.
Tar --bzip2 -xf FileName

هر دو تا فايل رو با استفاده از اين دستور Untar کنيد، يادتون نره بجاي FileName اسم فايلي که ميخواين Untar شه رو بزنيد!
بعد از اينکه Untar کرديد اول توي فولدر rcssbase-... بريد و دستوراي زير رو بزنيد:

1.
./configure
2.
make
3.
make install

اکثر برنامه ها که با سورس ارائه ميشن نصبشون به اين شکل هست. ./configure با توجه به مشخصات رايانه و سيستم عاملتون يه MakeFile ميسازه و اون MakeFile هم طريقه ي کمپايل شدن فايل ها رو تو خودش داره! وقتي دستور make رو مي زنيد اون فايل ها کمپايل ميشن و make install هم اون فايل ها رو نصب مي کنه! ممکنه هر کدوم از اين مرحله ها يه مقدار وقت بگيره البته از دفعه قبلي که اين کار رو براي boost انجام دادين کمتر وقت مي گيره.
حالا بريد توي فولدر rcssserver-... و همين دستور هارو براي اون بزنيد.
به اين ترتيب شما سرور رو نصب کرديد! اما سرور چيزي رو به شما نمايش نميده براي اينکه بتونيد فعاليت سرور رو ببينيد نياز به Robocup Soccer Simulator Monitor دارين! و براي اينکه بتونيد عمليات سرور و کلاينت رو بعدا دوباره بررسي کنيد بايد Robocup Soccer Simulator Log Player رو نصب کنيد که مثل اين ميمونه که يه مسابقه ي فوتبال رو رکورد کنيد و بعد اونو تماشا کنيد!
نصب اين دو تا برنامه دقيقا مثل rcssbase و rcssserver هست! يعني Untar مي کنيد و توي فولدرشون ميريد و اون دستور هارو مي زنيد!
الآن بايد ديگه بتونيد پکيج Robocup Soccer Simulator رو بطور کامل اجرا کنيد!
براي اينکار اول بريد توي فولدر /rcssserver-.../src و بعد توي ترمينال بزنيد:

1.
./rcssserver

اگه ارور گرفتين که گفته دايرکتوري يا فايل مورد نظر موجود نيست و اسم يه .so فايل رو به شما داده وحشت نکنيد!
تو بعضي از ورژن هاي لينوکس اين مشکل با يه Restart حل ميشه! اما اگر نشد کافيه اين کار هارو بکنيد!
اگر فرض کنيم پکيچ rcssserver و rcssbase رو توي /home/siavash/rcssserver-11.1.1 و /home/siavash/rcssbase-11.1.0 ريختيد اين دستور ها رو توي Terminal اجرا کنيد:

1.
cp /home/siavash/rcssbase-11.1.0/rcssbase/conf/.libs/* /home/siavash/rcssserver-11.1.1/src/
2.
cp /home/siavash/rcssbase-11.1.0/rcssbase/net/.libs/* /home/siavash/rcssserver-11.1.1/src/
3.
cp /home/siavash/rcssbase-11.1.0/rcssbase/lib/.libs/* /home/siavash/rcssserver-11.1.1/src/
4.
cp /home/siavash/rcssbase-11.1.0/rcssbase/gzip/.libs/* /home/siavash/rcssserver-11.1.1/src/

يادتون نره /home/siavash/ رو با جايي که سرور و بيس رو نصب کردين عوض کنيد! اين دستورا در اصل Library هارو در دسترس rcssserver قرار ميده! البته راه بهتر اين بود که path اين فايل هارو به rcssserver بديم اما اين راه براي افرادي که براي اولين بار اين کار رو انجام ميدن راحت تره!
اگر باز هم با مشکل روبرو شديد لطفا تو همين صفحه گزارش بدين! حالا دوباره ميريم سر اجراي سرور!
براي اين کار اول بريد توي /rcssserver-.../src/ و دستور زير رو توي Terminal وارد کنيد:

1.
./rcssserver

قاعدتا نبايد با پيغام خطا روبرو بشيد. حالا بايد مونيتور رو اجرا کنيد!
براي اين کار کافيه به فولدر rcssmonitor-.../src/ بريد و توي Terminal بزنيد:

1.
./rcssmonitor

حالا ديگه تنها قسمتي که مونده وصل کردن کلاينت يا کد خودتون هست! مي تونيد براي شروع اين کد رو بگيريد!. که يک نمونه براي شروع هست با نام Trilearn base sources.اين برنامه نصبش مثل پکيج هاي قبلي هست! براي اجراشم کافيه به فولدر trilearn_base_sources-3.3 بريد و توي Terminal دستور زير رو بزنيد:

1.
./start.sh localhost TeamName

واضح هست که بايد دو بار اين دستور رو تو دو تا صفحه ي Terminal مجزا با دو TeamName مختلف بزنيد چون وگرنه يه تيم بدون رقيب توي زمين خواهد بود. براي شروع بازي هم کافيه kick-off رو توي rcssmonitor بزنيد! مي تونيد براي شرکت توي مسابقات همين سورس کد کلاينت رو توسعه بديد يا اينکه از base client هاي ديگه استفاده کنيد! با کمي Search کلاينت هايي به زبون هاي ديگه مثل Java هم پيدا ميشه!
انشاالله در جلسات بعدي درباره ي Objectها و Classهاي شبيه سازي فوتبال و طريقه ي کد نويسي براي اون صحبت مي کنيم. و البته کمي هم در رابطه با شبيه سازي زلزله که به نظر من خيلي جالب تر هست!
شبيه سازي فوتبال در عمل
قطعه اي از بازي دو تيم مشابه در مقابل هم!
لينک هاي داخلي

* فايل هاي مورد نياز در اين آموزش

لينک هاي خارجي

* پکيج Boost
* وبسايت رسمي شبيه سازي فوتبال
* انجمن هوش مصنوعي ايران


+ نوشته شده در  دوشنبه چهارم آذر 1387ساعت 11:54  توسط سيدرضاالياسي  | 

 
Free Domain Name - www.CARBON3.co.nr!