قدیمی 09-09-2010, 02:34 PM   #1
Sasha
(کاربر تازه وارد)
 
Sasha آواتار ها
 
تاریخ عضویت: Oct 2009
محل سکونت: تهران
نوشته ها: 2
Sasha به Yahoo ارسال پیام
54 شبیه سازی در روباتیک به چه معناست؟

مقدمه ای بر شبیه سازی فوتبال


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

حالا چرا شبیه سازی کنیم وقتی می تونیم تمام جوانب رو در واقعیت بررسی کنیم؟
" بعضی از وقایع یا آزمایش ها بسیار پر هزینه هستند و حتی بعضی از اونا در زمان مورد نظر قابل آزمایش نیستند. به عنوان مثال می خوایم روش های مختلف مدیریتی رو بعد از وقوع زلزله بررسی کنیم! واضحه که ایجاد یک زلزله ممکن نیست و حتی اگر ممکن بود خسارت مالی و جانی فراوانی به همراه داشت. اینجاست که شبیه سازی به کمک ما میاد. در حال حاضر در زمینه ی مدیریت پس از زلزله هر سال مسابقاتی در سطح جهان برگزار میشه!. "

در زمینه ی فوتبال هم مسابقه برگزار می شه؟
" بله، هر سال مجموعه مسابقاتی با نام روبوکاپ برگزار میشه که در زمینه ی شبیه سازی میشه از شبیه سازی نجات، شبیه سازی فوتبال دوبعدی و سه بعدی و شبیه سازی روبات های مجازی یا Virtual Robots نام برد!
این مسابقات هر سال توی یکی از نقاط دنیا برگزار میشه، امسال توی آمریکا بود و سال دیگه توی چین خواهد بود. "


جریان مسابقات اپن چی هست؟
" این سوالت نشون میده تا حدودی در جریان مسابقات روباتیک هستی! هر سال توی چند کشور مسابقات اپن در رشته های مختلف انجام میشه که از جاهای مختلف دنیا توی این مسابقات شرکت میکنند. هر تیم بخواد توی مسابقات جهانی شرکت کنه اول باید یک بار مینیمم توی مسابقات اپن شرکت کرده باشه. اتفاقا هر ساله توی کشور خودمون هم مسابقات اپن به پشتیبانی دانشگاه آزاد اسلامی واحد قزوین که تیم روباتیک بسیار قدرتمندی داره برگزار میشه! و جالب تر از اون این نکته هست که ایران در زمینه ی شبیه سازی در دنیا حرف برای گفتن داره و توی شبیه سازی نجات هر سال دو تیم از چهار تیم اول جهان (یا حتی بیشتر) از ایران هست! "

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


شروع می کنیم!

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

کلاینت باید به زبان خاصی نوشته شه؟
" خوشبختانه در این زمینه محدودیتی وجود نداره! کلاینت به وسیله ی پروتکل UDP/IP به سرور وصل میشه در نتیجه هر زبان برنامه نویسی که این پروتکل رو ساپرت کنه قابل استفاده هست، البته اکثر تیم ها C++ یا Java استفاده می کنن! "
شاید بد نباشه قبل از شروع به نصب شبیه ساز فوتبال چند تا عکس از محیط شبیه سازی شده ببینیم!




بعد از اینکه کلاینت ها (دو تیم) به سرور وصل شدن بازیکن های هر تیم در جایگاه های خودشون با توجه به چینش اولیه ی انتخاب شده قرار می گیرن.






بازی دقیقا بعد از اینکه داور دکمه ی کیک آف رو بزنه شروع میشه.




Sasha آنلاین نیست.   پاسخ با نقل قول
قدیمی 09-09-2010, 02:44 PM   #2
Sasha
(کاربر تازه وارد)
 
Sasha آواتار ها
 
تاریخ عضویت: Oct 2009
محل سکونت: تهران
نوشته ها: 2
Sasha به Yahoo ارسال پیام
57 نصب شبیه ساز فوتبال

نصب شبیه ساز فوتبال

توجه

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


مراحل نصب

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

به جای لینوکس میشه از Cygwin توی ویندوز استفاده کرد؟

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

ببخشید، gcc دقیقا چیکار می کنه؟
" gcc یکی از کمپایلر های C هستش که توی لینوکس خیلی استفاده میشه. "
بعد از اینکه مطمئن شدید gcc نصب هست باید یه پکیج دیگه بنام boost رو نصب کنید!
توی این صفحه آموزش نصب این پکیج هست! نصب این پکیج زمان خیلی زیادی می گیره و حدود 1 گیگ هم هارد نیاز داره! البته سرور شبیه ساز فوتبال فقط نیاز به دو تا از Library های اون داره، شما می تونید فقط همون دو تا رو make و make install کنید:
  • libboost_filesystem-gcc.so
  • libboost_program_options-gcc.so
بصورت پیش فرض این Library ها توی /usr/local/lib ذخیره میشن! اما یه مشکلی که وجود داره اینه که اسم این Library ها توی پکیج جدید Boost نسبت به زمانی که Soccer Simulation Server ساخته شده فرق کرده پس باید اسم اونا رو عوض کنیم!
برای این کار به /usr/local/lib برین و اسم دو تا فایل رو با این دوخط دستور عوض کنید:
  • mv libboost_filesystem-gcc41-1_34_1.so libboost_filesystem-gcc.so
  • 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 بنویسید:
  • Tar --bzip2 -xf FileName
هر دو تا فایل رو با استفاده از این دستور Untar کنید، یادتون نره بجای FileName اسم فایلی که میخواین Untar شه رو بزنید!
بعد از اینکه Untar کردید اول توی فولدر rcssbase-... برید و دستورای زیر رو بزنید:
  • ./configure
  • make
  • 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 و بعد توی ترمینال بزنید:
  • ./rcssserver
اگه ارور گرفتین که گفته دایرکتوری یا فایل مورد نظر موجود نیست و اسم یه .so فایل رو به شما داده وحشت نکنید!
تو بعضی از ورژن های لینوکس این مشکل با یه Restart حل میشه! اما اگر نشد کافیه این کار هارو بکنید!
اگر فرض کنیم پکیچ rcssserver و rcssbase رو توی /home/siavash/rcssserver-11.1.1 و /home/siavash/rcssbase-11.1.0 ریختید این دستور ها رو توی Terminal اجرا کنید:
  • cp /home/siavash/rcssbase-11.1.0/rcssbase/conf/.libs/* /home/siavash/rcssserver-11.1.1/src/
  • cp /home/siavash/rcssbase-11.1.0/rcssbase/net/.libs/* /home/siavash/rcssserver-11.1.1/src/
  • cp /home/siavash/rcssbase-11.1.0/rcssbase/lib/.libs/* /home/siavash/rcssserver-11.1.1/src/
  • 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 وارد کنید:
  • ./rcssserver
قاعدتا نباید با پیغام خطا روبرو بشید. حالا باید مونیتور رو اجرا کنید!
برای این کار کافیه به فولدر rcssmonitor-.../src/ برید و توی Terminal بزنید:
  • ./rcssmonitor
حالا دیگه تنها قسمتی که مونده وصل کردن کلاینت یا کد خودتون هست! می تونید برای شروع این کد رو بگیرید!. که یک نمونه برای شروع هست با نام Trilearn base sources.این برنامه نصبش مثل پکیج های قبلی هست! برای اجراشم کافیه به فولدر trilearn_base_sources-3.3 برید و توی Terminal دستور زیر رو بزنید:
  • ./start.sh localhost TeamName
واضح هست که باید دو بار این دستور رو تو دو تا صفحه ی Terminal مجزا با دو TeamName مختلف بزنید چون وگرنه یه تیم بدون رقیب توی زمین خواهد بود. برای شروع بازی هم کافیه kick-off رو توی rcssmonitor بزنید! می تونید برای شرکت توی مسابقات همین سورس کد کلاینت رو توسعه بدید یا اینکه از base client های دیگه استفاده کنید! با کمی Search کلاینت هایی به زبون های دیگه مثل Java هم پیدا میشه!
انشاالله در جلسات بعدی درباره ی Objectها و Classهای شبیه سازی فوتبال و طریقه ی کد نویسی برای اون صحبت می کنیم. و البته کمی هم در رابطه با شبیه سازی زلزله که به نظر من خیلی جالب تر هست!
Sasha آنلاین نیست.   پاسخ با نقل قول
پاسخ

برچسب ها
فوتبال سیمولاتور, شبیه سازی, شبیه سازی فوتبال


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 
ابزارهای موضوع
نحوه نمایش

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code هست فعال
شکلک ها فعال است
کد [IMG] فعال است
کد HTML غیر فعال است

انتخاب سریع یک انجمن

War Dreams    Super Perfect Body    Scary Nature    Lovers School    Winner Trick    Hi Psychology    Lose Addiction    Survival Acts    The East Travel    Near Future Tech    How Cook Food    Wonderful Search    Discommend

Book Forever    Electronic 1    Science Doors    The Perfect Offers    Trip Roads    Travel Trip Time    Best Games Of    Shop Instrument    Allowedly


All times are GMT. The time now is 12:55 PM.


کپی رایت © 1388 . کلیه حقوق برای وبگاه حرف روز محفوظ است