پایان نامه درباره روبات، شبیهسازی، ، فوتبال، شبیهساز، کامپایل، کدهای، و…

افزار شبیهساز که اصطلاحا به آن سرور شبیهسازی میگویند در حقیقت مسئول شبیهسازی تمامی عوامل دخیل در یک مسابقه فوتبال واقعی مانند وزن توپ، وزن بازیکنان، شرایط محیطی مانند وزش باد و… است. این نرم افزار مسئول شبیهسازی یک محیط زمان حقیقی و خطادار است به نحوی که دو تیم از روباتهای نرم افزاری را قادر به رقابت در برابر هم میسازد. سیستم شبیهسازی دو بعدی یک سیستم چند عامله ارزشمند برای تحقیق در همکاری توزیع شده اعضای تیمها، یادگیری ماشین و … است اما به علت دوبعدی بودن، نتایج حاصل قابل به آسانی انتقال به جهان واقعی نمیباشد به همین منظور در سال 2003 یک سیستم شبیهسازی سه بعدی و نزدیک به جهان واقعی به نام سیمسپارک پیشنهاد شد و برای اولین بار در سال 2004 مورد استفاده قرار گرفت.
سرور شبیه ساز سه بعدی Rcssserver3D یک شبیهساز سه بعدی بر اساس اسپارک و موتور پویای آزاد (ODE) است. اسپارک قادر به انجام محاسبات و پردازشهای توزیع شده چند عاملی میباشد[8]. این سیستم یک شبیهساز بر مبنای اجزای عمومی سیستم شبیهسازی چند عاملی فیزیکی است که در این پایاننامه اساس کار قرار میگیرد. برای روی آوردن به شبیهسازی و دست کشیدن از ساخت روبات دلایل بسیاری میتوان برشمرد، از جمله اینکه ساخت یک روبات از لحاظ زمانی و تجهیزات هزینهبر است و احتیاج به احاطه بر مسائل سخت افزاری دارد، روبات واقعی بر اثر استفاده مداوم دچار عیوب سخت افزاری میشود که بر هزینه زمانی و مالی میافزاید و… که تمامی این مسائل خصوصا ساخت روبات و درگیری با مسائل سخت افزاری فرصت را از محققین برای پرداختن به مسائل نرمافزاری و پیاده سازی و ارتقای الگوریتمها میگیرد. شبیهسازی با فراهم آوردن بستری مهیا، این فرصت را فراهم آورده است که بدون درگیری با مسائل جانبی، تمام توجه خود را بر روی ابداع، پیادهسازی و بهبود و ارتقای الگوریتمهای مورد نیاز متمرکز کنیم. البته شبیهسازی با تمام مزایایی که دارد، مشکلاتی نیز دارد که از جمله میتوان به خطاهای رخ داده در مدلسازیها، مشکلاتی در پیادهسازی الگوریتمهای شبیهسازی شده در محیط واقعی و… اشاره کرد. اما با وجود این مشکلات، مزایای شبیهسازی به حدی مهم و با ارزش هستند که کماکان شبیهسازی در بسیاری از موارد گزینه نخست است. همین مسائل، مسابقات شبیه سازی خصوصا شبیهسازی فوتبال را در زمره جذابترین بخشهای مسابقات روبوکاپ قرار داده است.
1-4-2- مدل روبات
روبات مورد استفاده در شبیهسازی فوتبال سهبعدی، در حال حاضر روبات انساننمای نائو میباشد. این روبات که هماکنون بازیگر اصلی صحنه مسابقات روباتیک خصوصا شبیهسازی فوتبال سه بعدی است، در سال 2008 به بازار معرفی شد دلیل اصلی جذابیت این روبات، نزدیکی قابلیتهای حرکتی این روبات به انسان است. این روبات همانگونه که در جدول 1-1 مشخص شده است، یک روبات انسان نمای با 22 درجه آزادی است که برای هر پا 6 تا، هر دست 4 تا و سر 2 درجه آزادی وجود دارد. همچنین این روبات دارای یک حسگر همه جهته، موتورها و حسگرهای زاویهسنج جداگانه برای هر مفصل، یک سنسو زیروسکوپ، یک ابزار ارتباطی ویک حسگر نیرو در هر پا میباشد. علاوه بر فوتبال، این روبات با استفاده از چهار میکروفن تعبیه شده در سر و سیستم پردازش صوتش قادر به برقراری ارتباط و صحبت کردن است. در نسخه شبیهسازی شده این روبات، تمامی مفاصل و سیستم مکانیکی روبات، موتورها و محرکهای روبات و حسگرهای آن توسط سیستم شبیهساز پیادهسازی میشود و تنها قسمت باقیمانده مغز روبات میباشد که بایستی توسط برنامه نویس، برنامه ریزی شود و به طور قطع الگوریتمهای پیاده سازی شده بایستی با شبیهساز و معماری آن سازگاری داشته باشند.
جدول SEQ جدول * ARABIC 1-1 : مشخصات روبات نائو
نام روبات ارتفاع وزن تعداد درجات آزادی
نائو 57سانتی متر 5/4 کیلوگرم 22-25 درجه آزادی
رقابتهای شبیهسازی فوتبال سه بعدی در حال حاضر در زمینی به ابعاد 21 در 14 متر بین دو تیم که هر یک دارای 9 بازیکن (عامل) هستند انجام میشود. هر تیم بر روی یک کامپیوتر جداگانه اجرا میشود و مسابقه شامل دو نیمه 5 دقیقهای میباشد[7]. محیط شبیهساز فوتبال سه بعدی با تمامی ویژگیها و محدودیتها، زمینه مناسبی برای فعالیت در حیطه علوم روباتیک و هوش مصنوعی فراهم آورده است. در این پایاننامه از روبات نائو به عنوان روبات مورد آزمایش و از محیط شبیهساز فوتبال سهبعدی به عنوان بستری برای ارزیابی روش ها استفاده میکنیم.
1-4-3- کد پایه
کدهای پایه در زمینه مسابقات روبوکاپ در واقع بستری هستند به منظور فراهم آوردن امکانات لازم جهت پیاده سازی الگوریتمها و روشها. در زمینه فوتبال سه بعدی کد پایه ارتباط بین سرور شبیهسازی و عاملهای بازی را فراهم می آورد، و معمولا برخی از توانایی های پایهای لازم برای روبات فوتبالیست را در خود دارد به این ترتیب کد پایه احتیاج برنامه نویس برای درگیر شدن با جزئیات را بر طرف میکند و به او این امکان را میدهد که بدون توجه به جزئیات، به پیاده سازی تواناییهای متنوع بپردازد. در زمینه شبیهسازی فوتبال سهبعدی، اکثر تیمها کدهای پایه مربوط به خود را منتشر کردهاند که برای تیمهای دیگر قابل استفاده است. این کار در این مورد نیز مانند سایر پروژههای متن باز باعث رفع خطاهای منطقی موجود در کدها و بهینهتر شدن کدهای منتشر شده، شده است. بسیاری از این کدها را میتوان از پایگاه اینترنتی پروژههای متن باز sourceforge.net دریافت کرد. یکی از معروفترین کدهای پایه در شبیهسازی فوتبال سه بعدی، کد پایه تیم Nexusاز دانشگاه فردوسی مشهد است. بعد از دریافت کد و استخراج آن، مشاهده می شود که کد پایه به دستههای doc و lib، src تقسیم میشود که به ترتیب حاوی کد منبع تیم، کتابخانه های مورد استفاده و مستندات تولید شده توسط Doxygenاست. به منظور کامپایل کردن کد، به نرم افزار CMake جهت ایجاد پیش نیازهای کامپایل کد نیاز داریم. کد تیم از نظر تئوری در تمامی پلتفرم هایی که از g++ و Cmake پشتیبانی میکنند قابل استفاده میباشد.
برای کامپایل کردن کد کافیست شاخه ای به عنوان نمونه با نام build در ریشهی کد ایجاد کرده و با اجرای دستور cmake نسبت به ایجاد فایل های مورد نیاز جهت کامپایل و اجرای کد اقدام نماییم. با این کار فایل هایی از جمله start.sh(اسکریپت موجود برای اجرا کردن تیم) ایجاد میشوند و با اجرای دستور make کد تیم کامپایل شده و فایل nexus3D به عنوان فایل اجرایی تیم تولید میگردد. جدول 1-2 به طور خلاصه به محتویات شاخه های موجود در کد پایه میپردازد.
جدول 1-2 : محتویات شاخه های موجود در کد پایه
کاربرد نام شاخه
محل قرار گرفتن فایل اجرایی تیم به همراه اسکریپت ها و فایل های مورد نیاز /bin
محل قرار گرفتن فایل های مورد نیاز جهت کامپایل کد پایه /build
محل قرار گرفتن مستند سازیهای موجود در کد پایه /doc
محل نگهداری از کتابخانه های مورد استفاده /lib
محل قرار گرفتن کدهای تیم /src
کد پایه تیمNexus مانند سایر کدهای پایه ای بر اساس معماری لایه ای از سه لایه ی اصلی ارتباطی، داده و تصمیم گیری تشکیل شده. لایه ی ارتباطی وظیفه ی برقراری ارتباط با کارگزار شبیه سازی، لایه ی داده وظیفه ی پردازش داده های خام ورودی از لایه ی قبل و لایه ی تصمیم گیری وظیفه ی تصمیم گیری با استفاده از اطلاعات ورودی از لایه ی قبل را بر عهده دارد که شکل 1-9 ساختار لایه ای آن را نشان میدهد.

شکل 1-9 : ساختار لایه ای کد پایه
راه رفتن روبات انساننما از بغل
به طور کلی تواناییهای یک روبات انساننمای فوتبالیست به دو دسته تقسیم میشود:
تواناییهای سطح پایین
تواناییهای سطح بالا
تواناییهای سطح پایین در حقیقت همان تواناییهای اولیه و اساسی یک روبات هستند، از این دسته میتوان به حفظ تعادل، راه رفتن به جلو وعقب، راه رفتن از بغل و… اشاره کرد. این تواناییها سنگ بنای تواناییهای سطح بالایی مانند تصمیمگیری، همکاری در تیم فوتبال و… هستند و همین امر موجب افزایش اهمیت آنها شدهاست.
راه رفتن یکی از پایهایترین و اساسیترین تواناییهای یک روبات دوپا است، اگر چه این توانایی برای انسان بسار جزیی و ناچیز قلمداد میشود اما در روبات دوپا دخیل شدن مساله حفظ تعادل در راه رفتن، دشواری راه رفتن را دوچندان میکند. حفظ تعادل و راه رفتن در روباتهای دو پا اهمیت فراوانی دارد به این دلیل که توانایی فعالیت در محیطهای انسانی را برای روبات فراهم میآورد. اگرچه با استفاده از روباتهای چرخدار میتوان بر بسیاری از دشواریهای حفظ تعادل و راه رفتن غلبه کرد اما در عوض بسیاری از مزایایی که انعطافپذیری راه رفتن دوپا به همراه دارد قربانی خواهند شد. راه رفتن از بغل به عنوان یک توانایی سطح پایین که به صورت طبیعی در انسانها وجود دارد دارای مشکلات و پیچیدگیهای فراوان است. ابتدا روبات باید بتواند بدون بر هم خوردن تعادل سر جای خود

متن کامل در سایت homatez.com

About: admin