رباتیک و ملزومات طراحی ربات هوشمند- بخش اول

by

رباتیک (Robotic) را می‌توان به عنوان نقطه اوج پیشرفت تکنولوژی توصیف کرد. رباتیک علمی بین‌رشته‌ای است که از پیشرفت‌های علوم مختلف مانند مهندسی مکانیک، مهندسی مواد، ساخت سنسور، مهندسی برق و مهندسی کامپیوتر استفاده می‌کند. پیاده‌سازی رباتیک به صورت عملی، نیازمند تسلط در حوزه‌های مختلف ذکر شده است. سرویس آموزش و آزمون برق نیوز، رباتیک (Robotic) را می‌توان به عنوان نقطه اوج پیشرفت تکنولوژی توصیف کرد. رباتیک علمی بین‌رشته‌ای است که از پیشرفت‌های علوم مختلف مانند مهندسی مکانیک، مهندسی مواد، ساخت سنسور، مهندسی برق و مهندسی کامپیوتر استفاده می‌کند. پیاده‌سازی رباتیک به صورت عملی، نیازمند تسلط در حوزه‌های مختلف ذکر شده است. در این مطلب قصد داریم تا به معرفی رباتیک بپردازیم و حوزه‌های مختلف علم رباتیک را بررسی کنیم و سپس ملزومات عملی طراحی ربات هوشمند در حوزه الکترونیک و مکانیک و انواع پلتفرم‌های مختلف برای ربات‌ها را بررسی کنیم. رباتیک چیست؟

شاخه‌ای از تکنولوژی که با طراحی، ساخت، عملکرد، کاربرد ربات‌ها و نیز سیستم‌های کامپیوتری برای کنترل، فیدبک سنسوری و تجزیه و تحلیل داده‌های مربوط به آن‌ها سر و کار دارد، رباتیک نام دارد. در حالت کلی می‌توان گفت این تکنولوژی مربوط به ماشین‌های اتوماتیکی است که می‌توانند در محیط‌های کاری خطرناک و یا عملیات مربوط به ساخت، جایگزین انسان شوند و یا ظاهر، رفتار، درک، شناخت و یا حرکتی از انسان‌ها را تقلید کنند. در حالی‌که رشته‌های دیگر درگیر ریاضیات و تکنیک‌های ساخت اجزا هستند، رباتیک متناظر با ساخت محصول نهایی است. کاربرد‌های عملی ربات‌ها منجر به پیشرفت در سایر علوم می‌شوند؛ زیرا محققان علم رباتیک علوم دیگر را نیز مورد کنکاش قرار می‌دهند. ربات

ربات، به یک ماشین، معمولا قابل برنامه‌ریزی توسط کامپیوتر‌ها گفته می‌شود که قادر به انجام یک سری عملیات پیچیده به صورت خودکار است. یک ربات می‌تواند یا توسط یک وسیله کنترل خارجی هدایت شود و یا کنترل مربوط به آن را می‌توان به صورت داخلی در خود ربات جاسازی کرد. ربات‌ها می‌توانند در اشکال مختلف تولید شوند و عمدتا برای انجام کاری به منظور راحت‌تر کردن کار‌های بشر ساخته می‌شوند و به جنبه‌های زیباشناسی در ساخت آن‌ها توجه زیادی نمی‌شود. یک ربات می‌تواند خودگردان (Autonomous) یا نیمه خودگردان (Semi-Autonomous) باشد. گستره وسیعی از ربات‌ها در سال‌های اخیر تولید شده‌اند که شامل ربات‌های انسان‌نما، ربات‌های صنعتی، ربات‌های پزشکی، ربات‌های همیار بیمار و حتی ربات‌های میکروسکوپی و نانو هستند.

در واقع ربات در زبان انگلیسی برای توصیف هر ساختاری که عمل خاصی را به صورت اتوماتیک انجام می‌دهند، به کار می‌رود. برای مثال یک باز‌کننده در اتوماتیک، عمل باز کردن در را می‌تواند به صورت اتوماتیک انجام دهد. در این کاربرد از یک سنسور برای تشخیص سیگنال‌های دریافتی از کنترل از راه دور (Remote Control)، یک محرک (Actuator) برای باز کردن در و یک سیستم کنترل برای دادن دستورات لازم به موتور جهت باز و بسته کردن در استفاده می‌شود. در عمل این نوع ماشین‌ها، بیشتر با عنوان وسایل مکاترونیک (Mechatronic) شناخته می‌شوند و زیرمجموعه‌ای از ربات‌های خودگردان هستند. اجزای ماشین‌های مکاترونیکی معمولا به صورت زیر هستند.

سنسور: سنسور‌ها قادر به تشخیص شرایط محیط پیرامون هستند.
محرک: به وسیله محرک‌ها می‌توان تغییری در وضعیت ماشین در محیط فراهم آورد.
سیستم کنترل: سیستم کنترل برای کنترل محرک‌ها بر اساس شرایط محیط به کار می‌رود که توسط سنسور فراهم شده است.

اکثر اوقات، ربات‌ها را شاخه‌ای از ماشین‌های مکاترونیکی محسوب می‌کنند که دارای خودمختاری (Autonomy) باشند. ماشینی که خودگردان باشد، امور مربوط به خود را به تنهایی و بدون راهنمایی لحظه به لحظه انسان انجام می‌دهد. البته گاهی همه ماشین‌های مکاترونیکی نیز جزو ربات‌ها محسوب می‌شوند. در تصویر زیر نمایی از انواع مختلف ربات‌ها را مشاهده می‌کنید.

https://barghnews.com/files/fa/news/1398/9/18/84934_464.png

انواع مختلف ربات‌ها علوم مرتبط با رباتیک

همان‌طور که قبلا اشاره کردیم، رباتیک بازه وسیعی از علوم و مهندسی را در بر می‌گیرد؛ بنابراین به منظور طراحی یک ربات باید دانشی پایه‌ای در این علوم داشته باشید. میزان این دانش به سطح پیچیدگی ربات مورد نظر بستگی دارد. در این قسمت به بررسی حوزه‌هایی می‌پردازیم که برای طراحی یک ربات باید با آن‌ها آشنا باشید. توجه کنید که نیازی نیست تا به تمام این مباحث مسلط باشید و داشتن دانش پایه در اکثر آن‌ها بسیار مفید است و به جلوگیری از اشتباهات رایج کمک می‌کند. کاربرد مکانیک در طراحی ربات هوشمند

در حالت کلی علم مکانیک به بررسی سوالات زیر می‌پردازد:

چه مقدار نیرو بین اجزای مختلف سازه منتقل می‌شود؟
مرکز ثقل نیرو کجاست؟
میزان اصطکاک
موقعیت، سرعت، شتاب
قانون نیوتون
اینرسی
مشخصه‌های مواد

علم مکانیک به تعادل یک ربات کمک می‌کند. اگرچه می‌توان ربات را بدون داشتن دانش مکانیک نیز طراحی کرد، اما با کمک این علم می‌توان از مشکلاتی نظیر افتادن در هنگام گردش یا برداشتن اشیا جلوگیری کرد. علم مکانیک همچنین به بررسی محور‌ها می‌پردازد. در یک ربات کوچک می‌توان چرخ‌ها را مستقیما به شفت موتور متصل کرد. اما در ربات بزرگ نمی‌توان این‌کار را انجام داد؛ زیرا منجر به وارد شدن فشار زیاد به اجزای داخلی موتور خواهد شد. راه بهتر برای انجام دادن این کار، اتصال چرخ‌ها به یک محور و استفاده از چرخ دنده برای اتصال موتور به محور است. در واقع دانستن اصول مکانیکی به شما اجازه ساخت چنین سازه‌ای را می‌دهد. کاربرد الکترونیک در طراحی ربات هوشمند

علم الکترونیک به بررسی ادوات الکترونیک، مدارات آنالوگ، منطق دیجیتال و میکروکنترلر‌ها (Microcontroller) می‌پردازد. ساخت یک ربات بدون داشتن دانش نسبی از علم الکترونیک تقریبا غیرممکن است، مگر زمانی که بخواهید یک ربات کاملا مکانیکی و یا با استفاده از کنترل پنوماتیکی بسازید.  مفاهیم برنامه‌نویسی در طراحی ربات هوشمند

مباحثی که در برنامه‌نویسی به آن‌ها پرداخته می‌شوند عبارت است از:

کنترل ساختار (دنباله، گزینش، تکرار)
نوع داده (ثابت، متغیر، عدد صحیح، عد حقیقی، رشته)
الگوریتم‌ها
کنترل سخت‌افزار (تنظیمات و خواندن رجیستر‌ها و وقفه‌ها)
منطق

معمولا افرادی که درس آشنایی با برنامه‌نویسی را مطالعه کرده‌اند، با سه مورد اول آشنا هستند. اما مورد چهارم در دروس پیشرفته‌تر بررسی می‌شود و برای برنامه‌نویسی یک میکروکنترلر بسیار ضروری است و اگرچه در ظاهر ممکن است پیچیده به نظر برسد، اما در عمل این کار نیز ساده است. اکثر امور کنترل سخت‌افزار در نهایت به تنظیم بیت‌های یک بایت با استفاده از منطق بولی و نوشتن این مقادیر در رجیستر‌ها (Register) یا مکان‌های حافظه ختم می‌شود. زبان‌های سطح بالا مانند Bascom امکان آدرس‌دهی سخت افزاری را با استفاده از متغیر‌های مخصوص فراهم کرده است و می‌توان با آن‌ها مانند متغیر‌های دیگر رفتار کرد.

میکروکنترلر‌ها و برد‌های پردازنده، جزو محدود حوزه‌هایی هستند که استفاده از زبان اسمبلی (Assembly) هنوز رایج است. در این کاربرد‌ها حافظه (هم RAM و هم ROM) بسیار محدود است، اگرچه هر نسل جدید از میکروکنترلر‌ها دارای فضای حافظه بیشتری نسبت به نسل قبلی و با قیمت تقریبا مشابه است، اما بسیاری از میکروکنترلر‌ها در حدود ۲K تا ۳۰K حافظه دارند و برد‌های پردازنده نیز تا مقداری بیشتر از ۲۵۶ K حافظه در اختیار دارند. اگرچه این ارقام نیز مقدار قابل توجهی به نظر می‌رسند، اما در قیاس با حافظه یک کامپیوتر خانگی ارقام ناچیزی هستند. با این همه، حتی اگر با زبان اسمبلی آشنایی نداشته باشید، بسیاری از میکروکنترلر‌ها و برد‌های پردازنده دارای کامپایلر‌های سطح بالا در انواع مختلف (Fortran، Pascal، C) هستند. برنامه‌نویسی در یک ربات همچنین شامل موارد زیر است:

حلقه رخ دادها: اکثر میکروکنترلر‌ها دارای منبعی برای Threading نیستند. در واقع باید به وظایف ربات هر بار در کسری از ثانیه نگاه کرد و انتخاب کرد که چه کار کوچکی را باید انجام داد یا به عبارت دیگر در این لحظه برنامه چه کاری را می‌تواند انجام دهد تا ربات اندکی به هدف نزدیک‌تر شود. تفسیر داده سنسورها: سنسور‌ها منابعی هستند که می‌توانند دارای نویز و اطلاعات غلط بسیاری برای سیستم باشند. انتخاب این‌که نوع و میزان خطا تا چه میزان قابل قبول است، نیز قسمتی از کار‌های برنامه‌نویسی است. یک رئوستای کثیف، یک کلید شکسته و یا یک چشمک‌زن سوخته در یک فتودیود جزو خطا‌های واضح هستند. اما در مواردی مانند رانش گرمایی یا منحنی پاسخ غیرخطی و یا این‌که ربات سایه خود را تعقیب می‌کند، باید چه کاری را انجام داد؟
تصمیم‌گیری: تصمیم‌گیری یا هوش مصنوعی (AI) در ربات را می‌توان هنر اتخاذ تصمیمات درست بر مبنای قیود کنونی سیستم تعریف کرد.
موتور و حرکت: انجام حرکات مختلف در یک ربات معمولا مستلزم حرکت چندین موتور در یک لحظه است و معمولا از سنسور‌ها فیدبک لازم دریافت می‌شود.

علم مکانیک جامدات در طراحی ربات هوشمند

علم مکانیک جامدات معمولا به بررسی این موضوع می‌پردازد که چگونه نیرو درون یک ماده جامد توزیع می‌شود. دانستن این توزیع از این لحاظ مفید است که مشخص می‌کند یک ماده چگونه به نیروی وارد شده از بار پاسخ می‌دهد. در نتیجه از تعیین یک ماده بسیار نازک یا بسیار ضخیم برای یک کاربرد خاص جلوگیری می‌کند. دانستن این علم در ساخت ربات‌های کوچک یا متوسط ضروری نیست، اما کمک می‌کند از دلیل و شرایط رخ دادن شکست یا تغییر شکل مواد مطلع شویم و در انتخاب جنس مواد ساخت آگاهانه‌تر عمل کنیم.

اگر ربات مورد نظر یک ربات تعقیب خط کوچک باشد، تقریبا تمام مواد، می‌توانند برای ساخت به کار روند. اما اگر لازم باشد که ربات وزنی در حدود چند کیلو را تحمل کند، در ساخت باید مواد قوی‌تری را به جای مقوا به کار برد. اگر ربات دارای سایزی به اندازه یک انسان باشد، باید مواد کامپوزیت و فلزی را مورد استفاده قرار داد. کاربرد هوش مصنوعی در طراحی ربات هوشمند

کاربرد هوش مصنوعی در رباتیک و طراحی ربات هوشمند را می‌توان به صورت زیر بیان کرد:

امکان ایجاد یک میان‌بر برای ارتباط بین الکترونیک و برنامه‌نویسی
روش کنترل هنگام رویارویی با موانع
کنترل موقعیت‌های جدید با استفاده از یادگیری ماشین

منابع زیادی برای یادگیری علم هوش مصنوعی وجود دارد و در مجله فرادرس نیز مباحث مختلف مربوط به یادگیری ماشین به صورت کامل بررسی شده است. علم هوش مصنوعی غالبا برای مرتب‌سازی (Ordering and Sorting) و سازمان‌دهی (Organizing) اطلاعات در یک ماشین و ساخت الگوریتم‌هایی برای استخراج نتایج مورد کاربرد در دنیای واقعی از این پایگاه‌های داده به کار می‌رود. موتور‌های جست و جو مانند گوگل و یاهو مثال‌هایی از کاربرد هوش مصنوعی در دنیای واقعی هستند. در تصویر زیر نمایی از یک ربات جراحی را مشاهده می‌کنید که در ساخت آن‌ها از الگوریتم‌های هوش مصنوعی نیز استفاده می‌شود.  

https://barghnews.com/files/fa/news/1398/9/18/84935_444.png

ربات جراحی

  علاوه بر مراجعی که به هوش مصنوعی به صورت خالص می‌پردازند، مراجعی راجع به طرز کارکرد مغز نیز می‌توانند زوایای جالبی از هوش مصنوعی در رباتیک ارائه دهند. مفاهیمی مانند تمرکز (Concentration) و توجه (Attention) می‌توانند کاربرد‌های جالبی در مواردی مانند جمع‌آوری داده‌ها از سنسور‌ها داشته باشند. کاربرد ریاضیات در طراحی ربات هوشمند

اگرچه ریاضیات معمولا به عنوان علمی کاملا تئوری شناخته می‌شود، اما می‌تواند در اکثر حوزه‌های پیشرفته رباتیک یکی از مهم‌ترین مهارت‌های مورد نیاز باشد. مثلا محاسبات حوزه مکانیک می‌تواند از بسیاری از مفاهیم ریاضی استفاده کند. برای یک سازه ساده و ابتدایی ممکن است به ریاضیاتی در حد دبیرستان نیاز باشد، اما هرچه سازه ساخته شده پیچیده‌تر باشد به ریاضیات پیچیده‌تری نیاز خواهد بود. ذکر این نکته هم ضروری است که از آن‌جا که رباتیک یک حوزه علم بسیار کاربردی است، بسیاری از کار‌ها را می‌توان با استفاده از تقریب نیز انجام داد. لینک کوتاه کپی لینک