ساخت ربات کرمیشکل با یادگیری تقویتی
رباتی که خزیدن را یاد میگیرد
فرضیه ساده بود: یک ربات کرمی از سروو و آردوینو بسازیم و بهجای کدنویسی دستی، با یادگیری تقویتی حرکت خزیدن را کشف کنیم.
سختافزار
- یک برد آردوینو که پنج سروو موتور را در یک خط هدایت میکند و یک کرم بخشبندیشده را شبیهسازی میکند.
- هر بخش بهطور مستقل خم میشود و کل بدنه با هم برای حرکت رو به جلو کار میکند.
چیدمان یادگیری
حالت، نمایشی فشرده از زاویه سرووهاست. کنش، مجموعه زاویههای هدف برای گام زمانی بعد است. پاداش، ربات را به حداکثر جابهجایی رو به جلو در عین حفظ محدودیتهای ایمن مفاصل سوق میدهد:
reward = forward_displacement - angular_penalty
چه چیزی واقعاً زمان برد
- شکلدهی پاداش. پاداش ساده «به جلو حرکت کن»، حرکت دیوانهوار و ناکارآمد تولید میکند. افزودن جریمه نرمی، راه رفتن را از لرزشی به سینوسی تبدیل کرد.
- نگهبانها. بدون جریمه محدودیت مفصل، عامل یاد میگرفت سرووها را محکم بکوبد — و این چرخدندهها را میشکند. فیزیک حرص را مجازات میکند.
- صبوری. اجراهای اولیه خراب به نظر میرسیدند. قبل از ظهور یک راه رفتن منسجم، اپیزودهای زیادی لازم بود.
درسها
ساختن یک سیستم یادگیری فیزیکی اساساً با یک سیستم شبیهسازیشده تفاوت دارد. هر اپیزود زمان واقعی، انرژی واقعی و فرسایش واقعی هزینه دارد — بنابراین در مورد کارایی نمونه و ایمنی بیشتر فکر میکنید. این قید، پروژه را بسیار ارزشمندتر از هر شبیهسازی تمیزی کرد.