علوم مرتبط با رباتیک:
همان طور که قبلا اشاره کردیم، رباتیک بازه وسیعی از علوم و مهندسی را در بر می گیرد. بنابراین به منظور طراحی یک ربات باید دانشی پایه ای در این علوم داشته باشید.
میزان این دانش به سطح پیچیدگی ربات مورد نظر بستگی دارد. در این قسمت به بررسی حوزه هایی می پردازیم که برای طراحی یک ربات باید با آن ها آشنا باشید.
توجه کنید که نیازی نیست تا به تمام این مباحث مسلط باشید و داشتن دانش پایه در اکثر آن ها بسیار مفید است و به جلوگیری از اشتباهات رایج کمک می کند.
کاربرد مکانیک در طراحی ربات هوشمند:
در حالت کلی علم مکانیک به بررسی سوالات زیر می پردازد:
علم مکانیک به تعادل یک ربات کمک می کند. اگرچه می توان ربات را بدون داشتن دانش مکانیک نیز طراحی کرد، اما با کمک این علم می توان از مشکلاتی نظیر افتادن در هنگام گردش یا برداشتن اشیا جلوگیری کرد. علم مکانیک همچنین به بررسی محورها می پردازد.
در یک ربات کوچک می توان چرخ ها را مستقیما به شفت موتور متصل کرد. اما در ربات بزرگ نمی توان این کار را انجام داد؛ زیرا منجر به وارد شدن فشار زیاد به اجزای داخلی موتور خواهد شد.
راه بهتر برای انجام دادن این کار، اتصال چرخ ها به یک محور و استفاده از چرخ دنده برای اتصال موتور به محور است. در واقع دانستن اصول مکانیکی به شما اجازه ساخت چنین سازه ای را می دهد.
کاربرد الکترونیک در طراحی ربات هوشمند:
علم الکترونیک به بررسی ادوات الکترونیک، مدارات آنالوگ، منطق دیجیتال و میکروکنترلر ها (Microcontroller) می پردازد.
ساخت یک ربات بدون داشتن دانش نسبی از علم الکترونیک تقریبا غیرممکن است، مگر زمانی که بخواهید یک ربات کاملا مکانیکی و یا با استفاده از کنترل پنوماتیکی بسازید. در مجله فرادرس تمام مطالب مربوط به الکترونیک و مکانیک پایه به خوبی پوشش داده شده است.
مفاهیم برنامه نویسی در طراحی ربات هوشمند:
مباحثی که در برنامه نویسی به آن ها پرداخته می شوند عبارت است از:
معمولا افرادی که درس آشنایی با برنامه نویسی را مطالعه کرده اند، با سه مورد اول آشنا هستند. اما مورد چهارم در دروس پیشرفته تر بررسی می شود و برای برنامه نویسی یک میکروکنترلر بسیار ضروری است و اگرچه در ظاهر ممکن است پیچیده به نظر برسد، اما در عمل این کار نیز ساده است.
اکثر امور کنترل سخت افزار در نهایت به تنظیم بیت های یک بایت با استفاده از منطق بولی و نوشتن این مقادیر در رجیسترها (Register) یا مکان های حافظه ختم می شود.
زبان های سطح بالا مانند Bascom امکان آدرس دهی سخت افزاری را با استفاده از متغیرهای مخصوص فراهم کرده است و می توان با آن ها مانند متغیرهای دیگر رفتار کرد.
میکروکنترلرها و بردهای پردازنده، جزو محدود حوزه هایی هستند که استفاده از زبان اسمبلی (Assembly) هنوز رایج است.
در این کاربردها حافظه (هم RAM و هم ROM) بسیار محدود است، اگرچه هر نسل جدید از میکروکنترلرها دارای فضای حافظه بیشتری نسبت به نسل قبلی و با قیمت تقریبا مشابه است، اما بسیاری از میکروکنترلرها در حدود 2K تا 30K حافظه دارند و بردهای پردازنده نیز تا مقداری بیشتر از 256K حافظه در اختیار دارند.
اگرچه این ارقام نیز مقدار قابل توجهی به نظر می رسند، اما در قیاس با حافظه یک کامپیوتر خانگی ارقام ناچیزی هستند.
با این همه، حتی اگر با زبان اسمبلی آشنایی نداشته باشید، بسیاری از میکروکنترلرها و بردهای پردازنده دارای کامپایلر های سطح بالا در انواع مختلف (Fortran، Pascal، C) هستند.
برنامه نویسی در یک ربات همچنین شامل موارد زیر است:
حلقه رخ دادها:
اکثر میکروکنترلرها دارای منبعی برای Threading نیستند. در واقع باید به وظایف ربات هر بار در کسری از ثانیه نگاه کرد و انتخاب کرد که چه کار کوچکی را باید انجام داد یا به عبارت دیگر در این لحظه برنامه چه کاری را می تواند انجام دهد تا ربات اندکی به هدف نزدیک تر شود.
تفسیر داده سنسورها:
سنسورها منابعی هستند که می توانند دارای نویز و اطلاعات غلط بسیاری برای سیستم باشند. انتخاب این که نوع و میزان خطا تا چه میزان قابل قبول است، نیز قسمتی از کارهای برنامه نویسی است. یک رئوستای کثیف، یک کلید شکسته و یا یک چشمک زن سوخته در یک فتودیود جزو خطاهای واضح هستند.
اما در مواردی مانند رانش گرمایی یا منحنی پاسخ غیرخطی و یا این که ربات سایه خود را تعقیب می کند، باید چه کاری را انجام داد؟
تصمیم گیری:
تصمیم گیری یا هوش مصنوعی (AI) در ربات را می توان هنر اتخاذ تصمیمات درست بر مبنای قیود کنونی سیستم تعریف کرد.
موتور و حرکت:
انجام حرکات مختلف در یک ربات معمولا مستلزم حرکت چندین موتور در یک لحظه است و معمولا از سنسورها فیدبک لازم دریافت می شود.
علم مکانیک جامدات در طراحی ربات هوشمند:
علم مکانیک جامدات معمولا به بررسی این موضوع می پردازد که چگونه نیرو درون یک ماده جامد توزیع می شود. دانستن این توزیع از این لحاظ مفید است که مشخص می کند یک ماده چگونه به نیروی وارد شده از بار پاسخ می دهد.
در نتیجه از تعیین یک ماده بسیار نازک یا بسیار ضخیم برای یک کاربرد خاص جلوگیری می کند. دانستن این علم در ساخت ربات های کوچک یا متوسط ضروری نیست، اما کمک می کند از دلیل و شرایط رخ دادن شکست یا تغییر شکل مواد مطلع شویم و در انتخاب جنس مواد ساخت آگاهانه تر عمل کنیم.
اگر ربات مورد نظر یک ربات تعقیب خط کوچک باشد، تقریبا تمام مواد، می توانند برای ساخت به کار روند. اما اگر لازم باشد که ربات وزنی در حدود چند کیلو را تحمل کند، در ساخت باید مواد قوی تری را به جای مقوا به کار برد. اگر ربات دارای سایزی به اندازه یک انسان باشد، باید مواد کامپوزیت و فلزی را مورد استفاده قرار داد.
کاربرد هوش مصنوعی در طراحی ربات هوشمند:
کاربرد هوش مصنوعی در رباتیک و طراحی ربات هوشمند را می توان به صورت زیر بیان کرد:
منابع زیادی برای یادگیری علم هوش مصنوعی وجود دارد و در مجله فرادرس نیز مباحث مختلف مربوط به یادگیری ماشین به صورت کامل بررسی شده است.
علم هوش مصنوعی غالبا برای مرتب سازی (Ordering and Sorting) و سازمان دهی (Organizing) اطلاعات در یک ماشین و ساخت الگوریتم هایی برای استخراج نتایج مورد کاربرد در دنیای واقعی از این پایگاه های داده به کار می رود.
موتورهای جست و جو مانند گوگل و یاهو مثال هایی از کاربرد هوش مصنوعی در دنیای واقعی هستند. در تصویر زیر نمایی از یک ربات جراحی را مشاهده می کنید که در ساخت آن ها از الگوریتم های هوش مصنوعی نیز استفاده می شود.
علاوه بر مراجعی که به هوش مصنوعی به صورت خالص می پردازند، مراجعی راجع به طرز کارکرد مغز نیز می توانند زوایای جالبی از هوش مصنوعی در رباتیک ارائه دهند. مفاهیمی مانند تمرکز (Concentration) و توجه (Attention) می توانند کاربردهای جالبی در مواردی مانند جمع آوری داده ها از سنسورها داشته باشند.
کاربرد ریاضیات در طراحی ربات هوشمند:
اگرچه ریاضیات معمولا به عنوان علمی کاملا تئوری شناخته می شود، اما می تواند در اکثر حوزه های پیشرفته رباتیک یکی از مهم ترین مهارت های مورد نیاز باشد. مثلا محاسبات حوزه مکانیک می تواند از بسیاری از مفاهیم ریاضی استفاده کند.
برای یک سازه ساده و ابتدایی ممکن است به ریاضیاتی در حد دبیرستان نیاز باشد، اما هرچه سازه ساخته شده پیچیده تر باشد به ریاضیات پیچیده تری نیاز خواهد بود.
ذکر این نکته هم ضروری است که از آن جا که رباتیک یک حوزه علم بسیار کاربردی است، بسیاری از کارها را می توان با استفاده از تقریب نیز انجام داد.