Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   پروژه های هوش مصنوعی در ایران (http://artificial.ir/intelligence/forum42.html)
-   -   شبیه ساز روبات حل ماز! (http://artificial.ir/intelligence/thread39.html)

Iman ۰۳-۲-۱۳۸۷ ۱۱:۵۱ بعد از ظهر

شبیه ساز روبات حل ماز!
 
1(ها)ضميمه
سلام
یکی دو سال پیش تو مسابقات حلی کاپ ما تو مسابقه حل ماز شرکت کردیم. البته ما ثبت نام کردیم اما متاسفانه روبات مون آماده نشده بود. جالب اینکه از 14-15 تیم شرکت کننده توی این مسابقه تنها 2 تیم شرکت کردند و تقریبا فکر میکنم بیشترین مشکل برای این ربات هوش مصنوعی این ربات باید باشه که شرکت کننده اون کم هست.
برای تست هوش مصنوعی ربات من زمین مسابقه رو شبیه سازی کردم.
این شبیه ساز 2 قسمت داره. قبل از شرح شبیه ساز مسابقه حل ماز رو توضیح میدم:

یک زمین 9*15 داریم که کف اون به صورت شطرنجی در اومده(سیاه و سفید). روبات از یک خونه شروع به حرکت میکنه و باید به خونه انتها برسه. نکته اساسی اینجاست که این همه خونه ها به هم راه ندارن و بین هر خونه ممکنه دیوار باشه. هر رباتی زودتر بتونه خونه انتها رو پیدا کنه برنده هست. دو تا از خونه ها هم خونه خطا هستند و ربات در صورتی که وارد اونها بشه امتیاز منفی میگیره.

---
شبیه ساز این مسابقه دارای دو قسمت هست. هر دو قسمت با ویژوال بیسیک 6 نوشته شده.

BoardMaker:
این برنامه برای طراحی زمین مسابقه قرار داده شده. شما با این برنامه میتونید بین هر خونه ای که بخواید دیوار بزارید و بعد اون رو در یک فایل ذخیره کنید و در شبیه ساز از اون استفاده کنید.


Maze:
این برنامه شبیه ساز هست. وقتی New رو میزنید مشخصات ربات (طول، عرض، مکان شروع؛ سرعت دو موتور، نوع کنترل ) و زمین بازی رو انتخاب میکنید. البته در کنترل دستی شما به کلیدهای جهتی کیبورد به صورت دستی میتونید ربات رو حرکت بدید.

چون ما میخواستیم این شبیه ساز چیزی باشه که ما خودمون ازش استفاده میکنیم پس بهتره این اطلاعات رو هم بدم که ربات ما چجوری کار میکرد.
ربات ما در زیرش چهار تا سنسور مادون قرمز داشت. بالا، پایین ، چپ و راست. چون زمین مسابقه سیاه سفید هست با این سنسور ها برای تشخیص خونه ای که ربات در اون قرار داره استفاده کردیم. وقتی شبیه ساز رو میارید توی قسمت "Sensors/ Motors" زیر قسمت IR_Down میتونید وضعیت این چهار سنسور رو مشاهده کنید.
در چهار طرف ربات هم چهار تا سنسور مادون قرمز وجود داشت که این چهار سنسور رو طوری باید تنظیم میکردیم که اگه دیوار نزدیک بود تشخیص بده. (فکر میکنم اندازه هر خونه 20*20 سانت بود). توی قسمت سنسور ها در شبیه ساز وضعیت این چهار سنسور رو هم میتونید ببینید.
ربات ما دو تا موتور داشت. یکی برای بالا و پایین رفتن و یکی برای چپ رو راست رفتن. وقتی که New رو میزنید TopSpeed1 و TopSpeed2 رو میبینید که حداکثر سرعت هر موتور رو اینجا قرار دادیم که وضعیت مکانیکی ربات بررسی بشه و شتاب موتوها هم در قسمت Accelator قرار داره.
در کل این وضعیت ظاهری ربات بود که ما بر اساس اون این شبیه ساز رو طراحی کردیم.
برای میکرو هم فکر کنم از Atmega 32 استفاده کردیم که 1کیلوبایت حافظه داشت و این شبیه ساز خونه های حافظه رو نشون میده.

برای اینکه هوش مصنوعی این شبیه ساز رو عوض کنید وقتی پروژه Maze رو توی ویژوال بیسیک باز کردید در ماژول ها، ماژول mMicro رو باز کنید و کد میکرو رو عوض کنید. البته برای اینکار نیاز به دونستن ویژوال بیسیک دارید.
فکر نمیکنم کد سختی نوشته باشم ولی اگه یه جایی متوجه یه چیزهایی نشدید بگید تا توضیح بیشتر بدم.
این شبیه ساز هم بدرد اونهایی میخوره که میخوان توی مسابقه ربات حل ماز شرکت کنند و هم بدرد اونهایی میخوره که میخوان یک سورس کد اینجوری رو ببینند. امیدوارم بدرد همتون بخوره.

در ضمن اگه میخواید توی این مسابقات شرکت کنید یه حقه کوچیک هست که فکر میکنم برای همه جالب باشه. همونطور که توی همین شبیه ساز میبینید ربات مسیری رو که میره توی حافظه ذخیره میکنه. توی این مسابقه هم زمان تست و هم چندبار زمان رکوردگیری هست. بعضیا(یعنی خیلی ها!) توی تست یا رکورد گیری اول میزارن ربات کل مسیر رو بره و وقتی ربات به خونه انتهایی رسید دیگه مسیر رو ذخیره میکنه و توی رکوردگیری بعدی همون مسیر اصلی رو که پیدا کرده میره :D
توی مسابقات حلی کاپ اون سال هم من یادم میاد از این حقه استفاده کردند و کسی ایراد نگرفت. احتمالا هنوز هم مسابقات این چنینی ایراد نگیرند.

پروژه ها ضمیمه شده.
موفق باشید.

Miyhridate ۰۳-۳-۱۳۸۷ ۱۲:۳۴ قبل از ظهر

بسیار ممنونم جالب بود. فقط اگه میشه یه کم راجع به هوش مصنوعی یه این مسئله و نحوه ی پیاده سازی اون توضیح بدین.

Iman ۰۳-۳-۱۳۸۷ ۰۳:۵۷ بعد از ظهر

برای هوش مصنوعی این ربات، روش های زیادی وجود داره. که البته خیلی هاشون ساده هستند و تقریبا ناکارا.... برای همین هم هست که گفتم توی اون مسابقه از 15 تیم ثبت نام کرده 2 تیم شرکت کردند....
بعضیا میان ربات رو به سمت راست میگیرن و حرکت میکنند! بعضیا با الگوریتم های گراف حرکت میکنند و ....
الگوریتمی که من برای حرکت توی این شبیه ساز در نظر گرفتم چیزی شبیه Dfs هست. یعنی به هر خونه که چند راه رسید یکی رو انتخاب میکنه و تا عمق میره و در صورتی که موفق نشد به اون خونه برمیگرده و مسیر دیگه رو ادامه میده.
برای کارایی بهتر ربات اگه دیده باشید این هوش مصنوعی که ربات ما داره توی حافظه اش وضعیت زمین رو ذخیره میکنه. برای بیرون نرفتن از زمین(چون ممکنه اطراف زمین دیوار نباشه! ربات اطراف زمین رو دیوار در نظر میگیره و همچنین اطراف خونه خطا (بنابراین وقتی به همسایگی خونه خطا میرسه راهی برای رفتن به خونه خطا پیدا نمیکنه!).
برای رفتن به خونه بالایی یا پایینی یا چپ و راست ، ربات سنسور های زیر رو در نظر میگیره. وضعیت اولیه رو در نظر میگیره و شروع به رفتن به سمت مورد نظر میکنه. وقتی که جفت سنسورهای مورد نظر تغییر وضعیت دادن در اینصورت متوجه میشه که به خونه کناری رفته! البته همونطور که میتونید تو قسمت تنظیمات موتورها انجام بدید میبینید که اگه حد سرعت موتورها زیاد باشه و شتاب کم این یک مشکل خیلی خیلی بد هست. چون تا ربات بیاد دستور ایست بده از خونه مورد نظر خارج میشه!
از اونجایی که الگوریتم Dfs (بدون هیچ تغییری) حتما جواب میده ولی زمان زیادی ممکن هست بگیره برای همین از ذخیره کردن مسیر ربات میشه استفاده کرد که در رکوردگیری مسیر اصلی رو طی کنه. اما اگه یه زمانی قانون خطا بودن این رو در نظر بگیره همین الگوریتم رو میشه استفاده کرد ولی برای بهینه سازی مسیر برگشت میشه از تکنیک های دیگری استفاده کرد.
شما با این شبیه ساز میتونید هر الگوریتمی رو که تو سر دارید به این ربات منتقل کنید....

bahar_53800 ۱۲-۱۰-۱۳۸۷ ۰۱:۳۹ بعد از ظهر

سلام من درسي به نام شيوه ارائه داريم كه بايد حتما يه پروژه خوب ارائه بدم و پروژم رو در مورد سيستم هاي فازي برداشتم اما هر چي دنبال مطالب خوب و بدرد بخور ميگردم هيچي گيرم نمياد كسي مي تونه در اين زمينه به من كمك كنه؟ ازش منمنون ميشم.


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۹:۰۶ قبل از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.