تا حالا به این فکر کردی که چطوری میشه یه ربات بسازی که توی زمین فوتبال، مثل یه بازیکن حرفهای بتونه تصمیم بگیره، بدوه و گل بزنه؟ مسابقات RoboCup دنیای شگفتانگیزی از رباتیک و هوش مصنوعیه که بهترین محققان دنیا رو کنار هم جمع میکنه. و یکی از جذابترین لیگهای این مسابقات، لیگ شبیهسازی فوتبال دوبعدی (Soccer Simulation 2D) هست.
اینجا همهچیز درباره ساختن بازیکن های ( عامل - agent ) هوشمنده که توی لحظه تصمیم میگیرن و عمل میکنن. جذاب نیست؟ حالا وقتشه که تو هم به این دنیا وارد بشی و بازیکن های خودت رو بسازی!
خب، ساختن بازیکن های هوشمند که توی زمین فوتبال با بازیکن های دیگه رقابت کنه، خیلی باحال به نظر میرسه، درسته؟ اما یه مشکلی وجود داره: بیشتر کد پایهای که توی این لیگ استفاده میشه به زبان C++ نوشته شده. شاید C++ خیلی سریع و قدرتمند باشه، ولی یادگیریش میتونه خیلی وقتگیر و پیچیده باشه، مخصوصاً وقتی میخوای وارد دنیای هیجانانگیز هوش مصنوعی و یادگیری ماشین بشی.
حالا اینجاست که Cross Language Soccer Framework (CLSFramework) به کمکمون میاد! این چارچوب تازه و نوآورانه یه قدم جلوتر گذاشته و بهت اجازه میده که با زبانهایی مثل #Python، C و JavaScript وارد بازی بشی. یعنی دیگه نیازی نیست نگران پیچیدگیهای C++ باشی؛ حالا میتونی با زبان مورد علاقت یه تیم فوتبال هوشمند بسازی!
اینجا جادو اتفاق میافته! CLSFramework از دو بخش کلیدی به نامهای Soccer Simulation Proxy و PlayMaker Server استفاده میکنه. اینا چیکار میکنن؟
اول : Soccer Simulation Proxy یه جور رابط (واسط) بین کد تو و سرور شبیهساز فوتباله. این پروکسی وظیفه داره دادههای بازی رو بگیره و اونها رو به کدت ارسال کنه. بعد از اینکه عاملت تصمیم گرفت، پروکسی اون تصمیمات رو به سرور شبیهساز میفرسته.
دوم :PlayMaker Server جاییه که تصمیمگیری اتفاق میافته. تو میتونی سرور PlayMaker رو توی زبانهایی مثل Python، C#، یا حتی JavaScript بنویسی و باهاش کلی از کتابخونههای یادگیری ماشین باحال استفاده کنی!
به راحتی میتونی نمونههای آماده PlayMaker Server رو توی زبانهای مختلف ببینی و ازشون استفاده کنی:
PlayMaker-Server-Python-thrift
PlayMaker-Server-Python-CSharp
حتی میتونی PlayMaker خودت رو بسازی! فقط کافیه از gRPC برای ارتباط استفاده کنی. این انعطافپذیری باعث میشه هرکسی بتونه به راحتی وارد دنیای رباتهای فوتبالی بشه.
هدف CLSFramework سادهتر کردن آشنایی با لیگ شبیه ساز دو بعدی است، مخصوصاً برای اونایی که تازه وارد دنیای برنامهنویسی هوش مصنوعی شدن. دیگه نیازی نیست با سختیهای C++ دست و پنجه نرم کنی. به جای اینکه توی هر زبان یه کد پایهای جدید بنویسی، این چارچوب از یه مدل مرکزی Proxy-Server استفاده میکنه که کل عملیات پیچیده رو ساده میکنه.
پروکسی مسئول اینه که با سرور شبیهساز فوتبال ارتباط بگیره و همه دادهها رو منتقل کنه. ولی تصمیمگیریهای اصلی توی PlayMaker Server اتفاق میافته، یعنی تو میتونی روی منطق هوش مصنوعی تمرکز کنی و نگران جزئیات ریز و درشت شبیهسازی نباشی.
یکی از بهترین ویژگیهای CLSFramework اینه که بهت اجازه میده از زبان برنامهنویسیای که دوست داری استفاده کنی. gRPC و Thrift به پروکسی و PlayMaker Server کمک میکنن تا فارغ از زبان برنامهنویسی، به راحتی با هم حرف بزنن. این یعنی هرکسی میتونه توی این ماجراجویی شرکت کنه: از طرفدارهای Python گرفته تا JavaScript و C#!
این انعطاف باعث شده که کلی مثال از PlayMaker Server توی زبانهای مختلف مثل Python، C# و JavaScript نوشته بشه و قدرت این چارچوب رو به همه نشون بده.
تازه CLSFramework طوری طراحی شده که شروع کار باهاش بسیار ساده باشه. بدون نیاز به تنظیمات پیچیده و بدون دغدغههای کدنویسی سخت و تنها با دسترسی به یک ترمینال لینوکسی ، میتونید بازیکن های هوشمند خودتون رو در Python اجرا کنید. فقط چند خط کد کافیه تا کارتون راه بیفته!
برای مثال، اگر از PlayMaker-Server-Python-gRPC استفاده میکنید، با این چند خط کد ساده میتونید سرور رو اجرا کنید و ارتباط با پروکسی برقرار کنید برای اینکار ابتدا ریپازیتوری رو باید دانلود کنی :
git clone https://github.com/CLSFramework/sample-playmaker-server-python-grpc.git cd sample-playmaker-server-python-grpc
بعد یسری چیز های اولیه رو نصب کنی :
sudo apt-get install fuse #Used to run AppImages pip install -r requirements.txt ./generate.sh # Generate the gRPC files
در ادامه بری فایل های proxy و rcssserver رو دانلود کنی :
pushd scripts sh download-rcssserver.sh # Download the soccer simulation server popd pushd scripts sh download-proxy.sh #install C++ proxy popd
در نهایت هم کافیه بری rcssserver رو توی یه ترمینال اجرا کنی با دستورات زیر و در یه ترمینال دیگه تیمت رو به سرور وصل کنی.
# First terminal cd scripts/rcssserver ./rcssserver # Second terminal ./start-team.sh
ایول حالا تونستی برای اولین بار وارد لیگ به این باحالی بشی.
اگر خواستی اینکار رو در کنار یکی دیگه انجام بدی میتونی این ویدیو توتوریال ما رو در یوتویوب ببینی :)
فریمورک CLSFramework کاملاً اپن سورس و رایگانه. ما براتون مستندات کامل، نمونههای آماده و آموزشهای قدمبهقدم تهیه کردیم تا خیلی راحت شروع کنی. فرقی نداره که میخوای از کتابخونههای قدرتمند Python برای تحقیق توی هوش مصنوعی استفاده کنی یا میخوای یه تیم فوتبالی حرفهای توی C# بسازی، این چارچوب همهچیز رو آسون کرده. فقط کافیه از GitHub repository ما یا از وبسایتمون دیدن کنی و تیمت رو همین امروز بسازی!
این فریمورک CLSFramework دقیقاً همون چیزیه که تو بهش نیاز داشتی تا بدون دغدغه وارد دنیای هیجانانگیز RoboCup Soccer Simulation بشی. با امکان استفاده از زبانهای مختلف، این چارچوب نه تنها فرایند توسعه رو برای همه آسون کرده، بلکه یه فرصت عالی برای تجربه دنیای هوش مصنوعی و رباتیک ایجاد کرده. بیا و همراه ما باش، چون هر مسابقه یه قدم به سمت آینده هوش مصنوعی نزدیکتره!