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