طراحی ربات هوشمند – به زبان ساده
رباتیک (Robotic) را میتوان به عنوان نقطه اوج پیشرفت تکنولوژی توصیف کرد. رباتیک علمی بینرشتهای است که از پیشرفتهای علوم مختلف مانند مهندسی مکانیک، مهندسی مواد، ساخت سنسور، مهندسی برق و مهندسی کامپیوتر استفاده میکند. پیادهسازی رباتیک به صورت عملی، نیازمند تسلط در حوزههای مختلف ذکر شده است. در این مطلب قصد داریم تا به معرفی رباتیک بپردازیم و حوزههای مختلف علم رباتیک را بررسی کنیم و سپس ملزومات عملی طراحی ربات هوشمند در حوزه الکترونیک و مکانیک و انواع پلتفرمهای مختلف برای رباتها را بررسی کنیم.
رباتیک چیست؟
شاخهای از تکنولوژی که با طراحی، ساخت، عملکرد، کاربرد رباتها و نیز سیستمهای کامپیوتری برای کنترل، فیدبک سنسوری و تجزیه و تحلیل دادههای مربوط به آنها سر و کار دارد، رباتیک نام دارد. در حالت کلی میتوان گفت این تکنولوژی مربوط به ماشینهای اتوماتیکی است که میتوانند در محیطهای کاری خطرناک و یا عملیات مربوط به ساخت، جایگزین انسان شوند و یا ظاهر، رفتار، درک، شناخت و یا حرکتی از انسانها را تقلید کنند.
در حالیکه رشتههای دیگر درگیر ریاضیات و تکنیکهای ساخت اجزا هستند، رباتیک متناظر با ساخت محصول نهایی است. کاربردهای عملی رباتها منجر به پیشرفت در سایر علوم میشوند؛ زیرا محققان علم رباتیک علوم دیگر را نیز مورد کنکاش قرار میدهند.
ربات
ربات، به یک ماشین، معمولا قابل برنامهریزی توسط کامپیوترها گفته میشود که قادر به انجام یک سری عملیات پیچیده به صورت خودکار است. یک ربات میتواند یا توسط یک وسیله کنترل خارجی هدایت شود و یا کنترل مربوط به آن را میتوان به صورت داخلی در خود ربات جاسازی کرد. رباتها میتوانند در اشکال مختلف تولید شوند و عمدتا برای انجام کاری به منظور راحتتر کردن کارهای بشر ساخته میشوند و به جنبه های زیباشناسی در ساخت آنها توجه زیادی نمیشود. یک ربات میتواند خودگردان (Autonomous) یا نیمه خودگردان (Semi-Autonomous) باشد. گستره وسیعی از رباتها در سالهای اخیر تولید شدهاند که شامل رباتهای انساننما، رباتهای صنعتی، رباتهای پزشکی، رباتهای همیار بیمار و حتی رباتهای میکروسکوپی و نانو هستند.
در واقع ربات در زبان انگلیسی برای توصیف هر ساختاری که عمل خاصی را به صورت اتوماتیک انجام میدهند، به کار میرود. برای مثال یک بازکننده در اتوماتیک، عمل باز کردن در را میتواند به صورت اتوماتیک انجام دهد. در این کاربرد از یک سنسور برای تشخیص سیگنالهای دریافتی از کنترل از راه دور (Remote Control)، یک محرک (Actuator) برای باز کردن در و یک سیستم کنترل برای دادن دستورات لازم به موتور جهت باز و بسته کردن در استفاده میشود. در عمل این نوع ماشینها، بیشتر با عنوان وسایل مکاترونیک (Mechatronic) شناخته میشوند و زیرمجموعهای از رباتهای خودگردان هستند. اجزای ماشینهای مکاترونیکی معمولا به صورت زیر هستند.
- سنسور: سنسورها قادر به تشخیص شرایط محیط پیرامون هستند.
- محرک: به وسیله محرکها میتوان تغییری در وضعیت ماشین در محیط فراهم آورد.
- سیستم کنترل: سیستم کنترل برای کنترل محرکها بر اساس شرایط محیط به کار میرود که توسط سنسور فراهم شده است.
اکثر اوقات، رباتها را شاخهای از ماشینهای مکاترونیکی محسوب میکنند که دارای خودمختاری (Autonomy) باشند. ماشینی که خودگردان باشد، امور مربوط به خود را به تنهایی و بدون راهنمایی لحظه به لحظه انسان انجام میدهد. البته گاهی همه ماشینهای مکاترونیکی نیز جزو رباتها محسوب میشوند. در تصویر زیر نمایی از انواع مختلف رباتها را مشاهده میکنید.
علوم مرتبط با رباتیک
همانطور که قبلا اشاره کردیم، رباتیک بازه وسیعی از علوم و مهندسی را در بر میگیرد. بنابراین به منظور طراحی یک ربات باید دانشی پایهای در این علوم داشته باشید. میزان این دانش به سطح پیچیدگی ربات مورد نظر بستگی دارد. در این قسمت به بررسی حوزههایی میپردازیم که برای طراحی یک ربات باید با آنها آشنا باشید. توجه کنید که نیازی نیست تا به تمام این مباحث مسلط باشید و داشتن دانش پایه در اکثر آنها بسیار مفید است و به جلوگیری از اشتباهات رایج کمک میکند.
کاربرد مکانیک در طراحی ربات هوشمند
در حالت کلی علم مکانیک به بررسی سوالات زیر میپردازد:
- چه مقدار نیرو بین اجزای مختلف سازه منتقل میشود؟
- مرکز ثقل نیرو کجاست؟
- میزان اصطکاک
- موقعیت، سرعت، شتاب
- قانون نیوتون
- اینرسی
- مشخصههای مواد
علم مکانیک به تعادل یک ربات کمک می کند. اگرچه می توان ربات را بدون داشتن دانش مکانیک نیز طراحی کرد، اما با کمک این علم میتوان از مشکلاتی نظیر افتادن در هنگام گردش یا برداشتن اشیا جلوگیری کرد. علم مکانیک همچنین به بررسی محورها میپردازد. در یک ربات کوچک میتوان چرخها را مستقیما به شفت موتور متصل کرد. اما در ربات بزرگ نمیتوان اینکار را انجام داد؛ زیرا منجر به وارد شدن فشار زیاد به اجزای داخلی موتور خواهد شد. راه بهتر برای انجام دادن این کار، اتصال چرخها به یک محور و استفاده از چرخ دنده برای اتصال موتور به محور است. در واقع دانستن اصول مکانیکی به شما اجازه ساخت چنین سازه ای را میدهد.
کاربرد الکترونیک در طراحی ربات هوشمند
علم الکترونیک به بررسی ادوات الکترونیک، مدارات آنالوگ، منطق دیجیتال و میکروکنترلرها (Microcontroller) میپردازد. ساخت یک ربات بدون داشتن دانش نسبی از علم الکترونیک تقریبا غیرممکن است، مگر زمانی که بخواهید یک ربات کاملا مکانیکی و یا با استفاده از کنترل پنوماتیکی بسازید. در مجله فرادرس تمام مطالب مربوط به الکترونیک و مکانیک پایه به خوبی پوشش داده شده است.
مفاهیم برنامهنویسی در طراحی ربات هوشمند
مباحثی که در برنامهنویسی به آنها پرداخته میشوند عبارت است از:
- کنترل ساختار (دنباله، گزینش، تکرار)
- نوع داده (ثابت، متغیر، عدد صحیح، عد حقیقی، رشته)
- الگوریتمها
- کنترل سختافزار (تنظیمات و خواندن رجیسترها و وقفهها)
- منطق
معمولا افرادی که درس آشنایی با برنامهنویسی را مطالعه کردهاند، با سه مورد اول آشنا هستند. اما مورد چهارم در دروس پیشرفتهتر بررسی میشود و برای برنامهنویسی یک میکروکنترلر بسیار ضروری است و اگرچه در ظاهر ممکن است پیچیده به نظر برسد، اما در عمل این کار نیز ساده است. اکثر امور کنترل سختافزار در نهایت به تنظیم بیتهای یک بایت با استفاده از منطق بولی و نوشتن این مقادیر در رجیسترها (Register) یا مکانهای حافظه ختم میشود. زبانهای سطح بالا مانند Bascom امکان آدرسدهی سخت افزاری را با استفاده از متغیرهای مخصوص فراهم کرده است و میتوان با آنها مانند متغیرهای دیگر رفتار کرد.
میکروکنترلرها و بردهای پردازنده، جزو محدود حوزههایی هستند که استفاده از زبان اسمبلی (Assembly) هنوز رایج است. در این کاربردها حافظه (هم RAM و هم ROM) بسیار محدود است، اگرچه هر نسل جدید از میکروکنترلرها دارای فضای حافظه بیشتری نسبت به نسل قبلی و با قیمت تقریبا مشابه است، اما بسیاری از میکروکنترلرها در حدود 2K تا 30K حافظه دارند و بردهای پردازنده نیز تا مقداری بیشتر از ۲۵۶K حافظه در اختیار دارند. اگرچه این ارقام نیز مقدار قابل توجهی به نظر میرسند، اما در قیاس با حافظه یک کامپیوتر خانگی ارقام ناچیزی هستند. با این همه، حتی اگر با زبان اسمبلی آشنایی نداشته باشید، بسیاری از میکروکنترلرها و بردهای پردازنده دارای کامپایلرهای سطح بالا در انواع مختلف (Fortran ،Pascal ،C) هستند. برنامهنویسی در یک ربات همچنین شامل موارد زیر است:
- حلقه رخ دادها: اکثر میکروکنترلرها دارای منبعی برای Threading نیستند. در واقع باید به وظایف ربات هر بار در کسری از ثانیه نگاه کرد و انتخاب کرد که چه کار کوچکی را باید انجام داد یا به عبارت دیگر در این لحظه برنامه چه کاری را میتواند انجام دهد تا ربات اندکی به هدف نزدیکتر شود.
- تفسیر داده سنسورها: سنسورها منابعی هستند که میتوانند دارای نویز و اطلاعات غلط بسیاری برای سیستم باشند. انتخاب اینکه نوع و میزان خطا تا چه میزان قابل قبول است، نیز قسمتی از کارهای برنامهنویسی است. یک رئوستای کثیف، یک کلید شکسته و یا یک چشمکزن سوخته در یک فتودیود جزو خطاهای واضح هستند. اما در مواردی مانند رانش گرمایی یا منحنی پاسخ غیرخطی و یا اینکه ربات سایه خود را تعقیب میکند، باید چه کاری را انجام داد؟
- تصمیمگیری: تصمیمگیری یا هوش مصنوعی (AI) در ربات را میتوان هنر اتخاذ تصمیمات درست بر مبنای قیود کنونی سیستم تعریف کرد.
- موتور و حرکت: انجام حرکات مختلف در یک ربات معمولا مستلزم حرکت چندین موتور در یک لحظه است و معمولا از سنسورها فیدبک لازم دریافت میشود.
علم مکانیک جامدات در طراحی ربات هوشمند
علم مکانیک جامدات معمولا به بررسی این موضوع میپردازد که چگونه نیرو درون یک ماده جامد توزیع میشود. دانستن این توزیع از این لحاظ مفید است که مشخص میکند یک ماده چگونه به نیروی وارد شده از بار پاسخ میدهد. در نتیجه از تعیین یک ماده بسیار نازک یا بسیار ضخیم برای یک کاربرد خاص جلوگیری میکند. دانستن این علم در ساخت رباتهای کوچک یا متوسط ضروری نیست، اما کمک میکند از دلیل و شرایط رخ دادن شکست یا تغییر شکل مواد مطلع شویم و در انتخاب جنس مواد ساخت آگاهانهتر عمل کنیم.
اگر ربات مورد نظر یک ربات تعقیب خط کوچک باشد، تقریبا تمام مواد، میتوانند برای ساخت به کار روند. اما اگر لازم باشد که ربات وزنی در حدود چند کیلو را تحمل کند، در ساخت باید مواد قویتری را به جای مقوا به کار برد. اگر ربات دارای سایزی به اندازه یک انسان باشد، باید مواد کامپوزیت و فلزی را مورد استفاده قرار داد.
کاربرد هوش مصنوعی در طراحی ربات هوشمند
کاربرد هوش مصنوعی در رباتیک و طراحی ربات هوشمند را میتوان به صورت زیر بیان کرد:
- امکان ایجاد یک میانبر برای ارتباط بین الکترونیک و برنامهنویسی
- روش کنترل هنگام رویارویی با موانع
- کنترل موقعیتهای جدید با استفاده از یادگیری ماشین
منابع زیادی برای یادگیری علم هوش مصنوعی وجود دارد و در مجله فرادرس نیز مباحث مختلف مربوط به یادگیری ماشین به صورت کامل بررسی شده است. علم هوش مصنوعی غالبا برای مرتبسازی (Ordering and Sorting) و سازماندهی (Organizing) اطلاعات در یک ماشین و ساخت الگوریتمهایی برای استخراج نتایج مورد کاربرد در دنیای واقعی از این پایگاههای داده به کار میرود. موتورهای جست و جو مانند گوگل و یاهو مثالهایی از کاربرد هوش مصنوعی در دنیای واقعی هستند. در تصویر زیر نمایی از یک ربات جراحی را مشاهده میکنید که در ساخت آنها از الگوریتمهای هوش مصنوعی نیز استفاده میشود.
علاوه بر مراجعی که به هوش مصنوعی به صورت خالص میپردازند، مراجعی راجع به طرز کارکرد مغز نیز میتوانند زوایای جالبی از هوش مصنوعی در رباتیک ارائه دهند. مفاهیمی مانند تمرکز (Concentration) و توجه (Attention) میتوانند کاربردهای جالبی در مواردی مانند جمعآوری دادهها از سنسورها داشته باشند.
کاربرد ریاضیات در طراحی ربات هوشمند
اگرچه ریاضیات معمولا به عنوان علمی کاملا تئوری شناخته میشود، اما میتواند در اکثر حوزههای پیشرفته رباتیک یکی از مهمترین مهارتهای مورد نیاز باشد. مثلا محاسبات حوزه مکانیک میتواند از بسیاری از مفاهیم ریاضی استفاده کند. برای یک سازه ساده و ابتدایی ممکن است به ریاضیاتی در حد دبیرستان نیاز باشد، اما هرچه سازه ساخته شده پیچیدهتر باشد به ریاضیات پیچیدهتری نیاز خواهد بود. ذکر این نکته هم ضروری است که از آنجا که رباتیک یک حوزه علم بسیار کاربردی است، بسیاری از کارها را میتوان با استفاده از تقریب نیز انجام داد.
ملزومات عمومی طراحی ربات هوشمند
طراحی ربات هوشمند نیازمند ایجاد توازنی بین اندازه (معمولا وزن)، توان موتور و توان باتری است. این سه مولفه اساسی با یکدیگر در ارتباط هستند. هر چه وزن ربات بیشتر باشد، موتور قویتری مورد نیاز است و به همین دلیل به باتری با توان بیشتری نیاز است. یافتن توازن مناسب بین این سه فاکتور نیازمند تجربه و تحقیق بسیار است. گاهی عناصر سنگین ربات را به صورت واحد خروجی بر واحد وزن توصیف میکنند (موتور: گشتاور بر کیلوگرم، باتری: میلی آمپر ساعت بر کیلوگرم) و مقداری را برای آن انتخاب میکنند که بیشترین مقدار را ممکن بسازد.
استفاده از مواد سبکتر، مثلا استفاده از آلومینیوم به جای استیل، به طور واضح وزن ربات را پایین میآورد. ساخت قالب با فلزات سبک و استفاده از صفحات پلاستیک به عنوان سطح به جای استفاده از صفحات فلزی باعث سبکتر شدن ربات میشود. برای رباتهای کوچک استفاده از پلاستیک آکریلیک گزینه مناسبی است و کار با ان نیز از سادگی بسیاری برخوردار است.
روشهای دیگری برای ساخت ربات به جای برش و سوراخکاری صفحات آلومینیومی وجود دارد. استفاده از اسباببازیهایی مانند مجموعه لگو و یا ساختنی در مواقعی که امکان برش و سوراخ کاری صفحات آلومینیومی و پلاستیکی توسط خود فرد وجود ندارد، ایده بسیار موثری است. همچنین استفاده از کیتهای آماده رباتیک برای شروع کار راه بسیار خوبی است. این کیتها معمولا تمام قطعات مورد نیاز را در اختیار افراد تازه کار قرار میدهند. در تصویر زیر نمای از یک کیت رباتیک برای اشروع کار در رباتیک را مشاهده میکنید.
زمانی که شروع به طراحی ربات هوشمند میکنید، اولین کار این است که مشخص کنید ربات باید دارای چه اندازهای باشد. البته راجع به اندازه دقیق یک ربات نمیتوان اطمینان حاصل کرد، اما میتوان اندازه نسبی آن را تخمین زد. اندازه دقیق ربات را بعد از تعیین نوع موتور و باتری میتوان به دست آورد؛ زیرا این دو مولفه تاثیر بهسزایی در اندازه و شکل ربات دارند.
سپس باید تقریبی کلی از وزن ربات را به دست آورد و بر اساس آن موتور و چرخها را انتخاب کرد. در نظر داشته باشید که در ساخت رباتها معمولا به گشتاور بالا و سرعت پایین نیاز است. یک موتور DC دارای سرعت بالا و گشتاور پایین است، اما با افزودن چرخ دنده کاهشی به آن میتوان این مشکل را حل کرد. موتورهای DC با چرخ دندههای کاهشی به صورت آماده نیز موجود هستند. سرعت موتور و نیز سایز چرخها تعیینکننده سرعت ربات در حرکت کردن هستند. به عنوان مثال، موتور RB-35 با چرخ دنده کاهشی ۱ به ۵۰ را در نظر بگیرید. این موتور دارای سرعت 120 دور بر دقیقه است یعنی در هر ثانیه دو دور را کامل میکند. اگر برای ربات چرخی با شعاع 10 سانتی متر را انتخاب کنیم، محیط چرخ برابر با ۶۲٫۸ سانتی متر خواهد بود. یعنی در هر بار گردش چرخ، ربات مسافت 62٫۸ سانتی متر را طی میکند. با نصب این چرخ بر روی موتور، چون در هر ثانیه ۲ بار گردش میکند، ربات مسافت 125٫۶ سانتی متر را طی میکند. بنابراین سرعت ربات برابر با ۱٫۲۵۶ متر بر ثانیه خواهد بود.
اما در عمل این مقدار کمتر خواهد بود؛ زیرا سرعت موتور در حالت بدون بار برابر با 120 دور بر دقیقه است. البته توجه کنید که حتی سرعت 1 متر بر ثانیه هم برای رباتهای خانگی سرعت زیادی است و احتمالا مجبور شوید از تکنیک PWM یا روشهای دیگر برای کاهش آن استفاده کنید.
در مورد انتخاب باتری در طراحی ربات هوشمند باید اطمینان حاصل شود که برای عملکرد موتور و تمام ادوات الکترونیکی ربات تا زمان مشخصی توان وجود دارد و مقداری نیز به صورت ذخیره برای راهاندازی مجدد ربات در آینده باقی میماند. حال باید وزن باتری و موتور انتخابی با وظایف ربات مقایسه شود و در صورت لزوم مراحل بالا را مجددا محاسبه کرد.
پلتفرمهای مختلف طراحی ربات هوشمند
برای طراحی ربات هوشمند پلتفرمهای مختلفی وجود دارد که در این قسمت به بررسی آنها میپردازیم.
پلتفرم چرخی (Wheeled Platform)
این نوع پلتفرم میتواند هر تعداد چرخ داشته باشد. اما انواع سه، چهار و شش چرخ متداولتر هستند. توجه کنید که انواع دیگر مانند تک چرخ و یا دو چرخ نیز وجود دارند، اما به لحاظ دشواری در پیادهسازی رایج نیستند. در حالت کلی دو نوع چرخ در یک ربات وجود دارد: نوع تواندار (Powered) و نوع فاقد توان (Unpowered). نوع اول توسط موتورها انرژی جنبشی دریافت میکنند و ربات را به سمت جلو و عقب حرکت میدهند. اما نوع دوم برای حفظ تعادل ربات از طریق ایجاد سطح تماس با زمین به کار میروند. تصویر زیر نمایی از یک طراحی ربات هوشمند با پلتفرم چرخی را نشان میدهد.
گردش
ربات میتواند با استفاده از روشهای مختلف حرکت گردشی داشته باشد.
گردش تانکی
- حرکت یک چرخ به جلو و دیگری به عقب. در این وضعیت ربات حول یک دایره کوچک به مرکز وسط فاصله دو چرخ تواندار، به دور خود میچرخد.
- از طریق حرکت دادن یکی از چرخها با سرعت کمتر از چرخ دیگر. در این حالت ربات به سمت چرخ با سرعت کمتر میچرخد. سرعت گردش به اختلاف بین سرعت دو چرخ بستگی دارد.
هدایت آکرمن
این سیستم هدایت مشابه با سیستم هدایت مورد استفاده در خودروها است. پیادهسازی این روش به صورت عملی، پیچیده است؛ زیرا چرخهای داخلی و خارجی باید در زوایای متفاوتی بچرخند.
هدایت خرچنگی
در این نوع سیستم، هر چرخ میتواند به صورت مستقل بچرخد. اگرچه این طراحی ربات هوشمند دارای استقلال زیادی است، اما به مکانیزم پچیدهای نیاز دارد تا بتواند هم تمام مجموعه موتور و چرخ دنده و چرخها را بچرخاند و هم توان را از یک موتور ثابت در جای خود، منتقل کند.
سیستم سهچرخ
این سیستم میتواند در انواع مختلف مانند چرخهای تواندار مفصلی یا با دو چرخ تواندار ثابت یا ترکیبی از این دو حالت پیادهسازی شود.
پلتفرم ریلی
این نوع پلتفرم از ریلهایی مانند آنچه در تانکها مورد استفاده قرار میگیرد، بهره میبرد. پلتفرم ریلی بیشتر برای کار در محیطهایی مانند گل و لای و سطوح نرم و یا شُل مانند فرش یا ماسه مورد استفاده قرار میگیرند؛ زیرا سطوح سفت، نیروی کششی افقی زیادی حین چرخش ربات فراهم میکنند و در نتیجه ربات در تعقیب مسیر مورد نظر کاربر ناموفق عمل خواهد کرد. تصویر زیر نمایی از یک ربات با پلتفرم ریلی را نشان میدهد.
ربات راهرونده (Walkers)
ربات های راهرونده نوعی از رباتها هستند که به جای استفاده از چرخ یا ریل، به تقلید از انسانها یا حیوانات، بر روی پاهای خود راه میروند. ساخت این نوع رباتها از ساخت رباتهای چرخدار سختتر است و چالشی واقعی حتی برای کسانی که در ساخت رباتها تجربه کافی نیز دارند نیز محسوب میشود.
رباتهای دو پا (Two-Legged)
این نوع از رباتها به تقلید حرکت انسانها میپردازند و پیادهسازی آنها نسبت به سایر انواع رباتهای راهرونده بسیار دشوارتر است. در واقع میتوان گفت چالش اصلی در طراحی ربات هوشمند، برقراری تعادل ربات هنگام اجرای عملیات حرکتی مختلف است. کاربرد اصلی این رباتها در دو مورد است، اولی رباتهای انساننما و دومی در مواردی که لازم است نیروی بسیار زیادی به صورت عمودی به سطحی وارد شود. رباتهای راهرونده دو پا با قد بلندتر که معمولا برای تقلید انسان به کار میروند، برای ساخت با مشکلات بیشتری همراه هستند و به مدارات بیشتری برای حفظ تعادل، حرکات سریع و عملکرد دقیق احتیاج دارند. از طرف دیگر رباتهای راهرونده دو پا با قد کوتاهتر میتوانند برای جابهجایی بارهای بزرگ مورد استفاده قرار میگیرند. در ساخت این رباتها میتوان از سیستمهای پنوماتیکی نیز بهره برد؛ زیرا این سیستمها میتوانند نیروی بسیار بیشتری نسبت به موتورها فراهم کنند. شکل زیر نمونهای از دو ربات دو پا راهرونده را نشان میدهد.
رباتهای چهار پا (Four-Legged)
ربات راهرونده چهار پا به تقلید از حرکات حیوانات ۴ پا میپردازد. اما در اصل بسیاری از طراحیها به گونهای انجام میگیرد که برخلاف حیوانات که در هر لحظه دو پای خود را به حرکت در میآورند، ربات قادر خواهد بود در هر لحظه فقط یکی از پاهای خود را تکان دهد. زیرا برای برقراری تعادل استاتیکی نیاز است که در هر لحظه سه پای دیگر بر روی زمین باشند، در حالی که حرکت دارای تعادل دینامیکی (حرکت دو پا در یک لحظه)، راه رفتن بسیار سریعتر و روانتری را فراهم میکند. نمونه ای از ربات راهرونده چهار پا در شکل زیر دیده میشود.
رباتهای شش پا (Six-Legged)
این رباتها برای تقلید حرکات حشرات به کار میروند. بسیاری از رباتهای شش پا برای ایجاد تعادل استاتیکی در هر لحظه سه پای خود را حرکت میدهند. به دلیل اینکه این ربات در هر لحظه نصفی از پاهای خود را بدون از دست دادن تعادل حرکت میدهد، پیادهسازی آنها نسبت به رباتهای چهار پا سادهتر است.
نکته: تعادل استاتیک به این معنی است که سازه در تمام زمانها در تعادل است. به همین دلیل اگر ربات در هر لحظه از توقف باز بایستد، هرگز نمیافتد. از طرف دیگر تعادل دینامیک به این معنی است که ربات فقط زمانی که گام خود را کامل کند، در حالت تعادل قرار دارد و اگر در وسط کامل کردن گام خود از حرکت باز ایستد، خواهد افتاد. اگرچه این ویژگی مطلوب به نظر نمیرسد، اما تعادل دینامیکی منجر به حرکات سریعتر و روانتری میشود. این نوع تعادل به سنسورهای بیشتری جهت دریافت فیدبک تعادل نیاز دارند. انسانها و حیوانات از تعادل دینامیکی برخوردار هستند.
شکل زیر نمایی از یک ربات شش پا را نشان میدهد.
ربات Whegs
در این نوع از رباتها از ترکیبی از چرخ و پا به منظور حرکت استفاده میشود.
رباتهای چرخی توپی
حرکت در این نوع از رباتها بسیار به حرکت موس در کامپیوترهای قدیمی شباهت دارد. یک توپ در محفظهای چنان نصب میشود که بتواند در تمام جهات آزادانه بچرخد. همچنین دو عدد چرخ در اطراف این توپ با اختلاف 90 درجه با یکدیگر و موازی با زمین نصب میشوند. یکی از این چرخها برای حرکت چپ و راست و دیگری برای حرکت بالا و پایین است. رباتهایی که از سیستمی مشابه با سیستم این موسها استفاده میکنند، در این نکته متفاوت هستند که چرخها به موتور متصل هستند. به این طریق میتوان توپ را وادار کرد که در هر جهت بچرخد. در این صورت ربات قادر خواهد بود تا در جهات راست و چپ و بالا و پایین حرکت کند اما نمیتواند حول محور عمودی خود بچرخد. برای چرخش ربات حول محور عمودی، باید از سه عدد توپ استفاده کرد. شکل زیر نمایی از این نوع ربات را نشان میدهد.
ملزومات الکترونیکی طراحی ربات هوشمند
طراحی ربات هوشمند از نظر الکترونیکی معمولا به ۶ دسته تقسیم میشود.
- کنترل موتور: عملیات این گروه مربوط به کنترل موتورها و سروها است. رلهها، ایجاد سیگنال PWM و ساخت پل H نیز مربوط به این طبقه میشود.
- مخابرات: در این دسته به برقراری ارتباط بین کنترلکننده ربات، یک کامپیوتر خارجی یا یک ربات دیگر و یا کنترل از راه دور پرداخته میشود.
- خواندن اطلاعات سنسورها: این دسته به خواندن اطلاعات فراهم شده توسط سنسورها، برای استفاده در میکروکنترلر مربوط است.
- کنترلکننده: انواع مختلف میکروکنترلرها شامل بردهای میکروکنترلری، بردهای میکروپروسسوری و بردهای منطقی در این گروه جای دارند.
- مدیریت توان: این قسمت مسئول تولید ولتاژ ثابت ۵ ولت یا ۱۲ ولت DC و یا هر سطح ولتاژ دیگری است که از باتری خارج میشود. همچنین شامل مداری برای پایش وضعیت باتری میشود.
- مدارات منطقی: بخشی که منجر میشود تا قسمتهای مختلف ربات با یکدیگر ارتباط برقرار کنند. مثالی از این قسمت مبدلهای سطح TTL یا CMOS است.
توجه کنید که تمام این قسمتها در همه رباتها وجود ندارند و همچنین هر مدار الزاما در یک طبقه خاص نمیگنجد. بسیاری از رباتها به یک برد سنسوری مجزا احتیاج ندارند. زیرا اکثر سنسورها خود این امکان را دارند که مستقیما به برد میکروکنترلر یا میکروپروسسور متصل شوند. در طراحی قسمت الکترونیکی یک ربات توجه به نکات زیر مفید خواهد بود.
- از LEDهای با توان پایین استفاده کنید؛ زیرا به شدت توان مصرفی مدار را کاهش میدهند. به عنوان مثال یک LED عادی جریان ۱۵ میلی آمپر را مصرف میکند، در حالیکه میکروکنترلر مدرن نیز به همین مقدار جریان نیاز دارد. در صورت امکان توصیه میشود که LEDهایی که از آنها استفاده نمیشود، غیرفعال شوند.
- به جای استفاده از آیسیهای کلاسیک TTL، سعی شود از آیسیهای CMOS استفاده شود. این کار نیز سبب کاهش جریان مصرفی میشود و منجر به ایجاد ولتاژ تغذیه بسیار ثابتتری میشود. در هنگام لحیمکاری، به حساسیت آنها نسبت به الکتریسیته ساکن توجه شود.
- حتما از سوکت آیسیهای با کیفیت استفاده شود. اما در مدارات حساس (مدارات سرعت بالای دیجیتال، سیگنالهای کلاک و سیگنالهای آنالوگ) تا حد امکان سعی شود که اصلا از سوکت آیسی استفاده نشود؛ زیرا حرکت متداوم ربات در طول زمان میتواند منجر به شل شدن آیسیها شود. استفاده از میکروکنترلرهای قابل برنامهریزی نیاز به جدا کردن آیسیها را از بین میبرند.
- استفاده از LED برای روئیت سیگنالهای دیجیتال با سرعت پایین در عمل رواج دارد و اضافه کردن آنها در بعضی خطوط سیگنال برای عیبیابی امری متداول است، اما منجر به افزایش مصرف باتری میشوند. به همین دلیل بعد از اینکه از کارکرد درست مدار اطمینان حاصل شد، بهتر است که برای صرفه جویی در انرژی مصرفی آنها را حذف کرد. برای این کار باید LEDها را با سیم و مقاومتها را با مقادیر بالاتر جایگزین کرد.
- بررسی شود که آیا میکروکنترلر با سرعت کلاک پایینتری کار میکند یا خیر. زیرا هر اندازه که سرعت کلاک بالاتر باشد، انرژی مورد نیاز نیز بالاتر خواهد رفت.
- از توابع Sleep میکروکنترلر در جایی که ممکن است، حتما استفاده شود. همچنین هر قسمت که به آن احتیاجی نبود، غیرغعال شود.
- یادگیری ساخت PCB میتواند در ساخت رباتهای حرفهای موثر باشد. اما همچنان برای نمونههای آزمایشی اولیه میتوان از برد بورد (Breadboard) استفاده کرد. در مرحله نهایی میتوان PCB را بر روی SMDها ساخت؛ زیرا منجر به کاهش اندازه، وزن و قیمت مدار میشوند.
- در صورت تمایل به ساخت ربات به صورت جدی و حرفهای، بهتر است که یک اسیلوسکوپ دوکاناله تهیه شود. زیرا اسیلوسکوپهای تک کانالی بسیار محدودکننده هستند. در انتخاب اسیلوسکوپ، بهتر است پهنای باند آن حداقل چهار برابر بیشتر از بزرگترین فرکانس کاری مدارات متداول باشد.
- داشتن یک منبع تغذیه متغیر میتواند در ارزیابی این که ربات در ولتاژهای پایین (هنگام افت سطح باتری) چگونه کار میکند، بسیار مفید باشد.
- اگر امکان انتخاب از بین مقاومتهای پول داون (Pull-Down) و پول آپ(Pull-Up) وجود داشته باشد، باید هر کدام که منجر به مصرف توان کمتری میشوند را انتخاب کرد. مثلا اگر مدار اکثر اوقات در ولتاژ ۵ ولت است، مقاومت بالاکش و اگر اکثر اوقات در ولتاژ ۰ ولت است، مقاومت پایینکش انتخابهای بهتری هستند. توجه شود که چنین خروجیهایی زمانی که ترانزیستور فعال باشد، توان مصرف میکنند، اما زمانی که ترانزیستور غیرفعال باشد، توان بسیار کوچکی (یک جریان نشتی کوچک گذرا از مقاومت و امپدانس ورودی مدار بعدی) مصرف میکنند.
- از مقادیر مناسب برای مقاومتهای بالاکش و پایینکش استفاده شود. توجه به این نکته ضروری است که سیگنالهای فرکانس بالا، جهت کمینه کردن اعوجاج، به مقاومتهای با مقادیر کوچک نیاز دارند.
- بسیاری از ادوات الکترونیکی در ربات از تغذیه ۵ ولت استفاده میکنند، درنتیجه به رگولاتورهای ۵ ولت نیاز است. بهتر است به منظور جلوگیری از قطع یا افت (BrownOut) ولتاژ ۵ ولت، از رگولاتورهای با افت ولتاژ پایین (Low-Dropout) یا LDO استفاده شود.
نمایشگر در طراحی ربات هوشمند
در طراحی ربات هوشمند بسیار کوچک، فقط به چند عدد LED برای نمایش تمام اتفاقات درون ربات احتیاج دارند. اما برای فرایند خطایابی در رباتهای پیچیدهتر، استفاده از رابط متنی مفیدتر است. بعضی از محاسبهگرها و PDAها دارای رابط RS232 یا انواع سادهتر برای ارتباط با ربات هستند. در قسمت بالایی هر ربات میتواند چنین PDA یا محاسبهگر وجود داشته باشد، تا کاربران انسانی از آنچه درون میکروکنترلر در حال رخ دادن است، مطلع شوند. در مورد طراحی ربات هوشمند بزرگ، به منظور نمایش اطلاعات از صفحات لپتاپ استفاده میشود.
سلام من خیلی علاقه به ربات دارم
میشه بگید به چه رشته ای باید برم و از دانشگاه دنبال کنم !
خیلی مطالب مفید دیبود من 13سالمه ولی بااین مطالب تونستم یک روبات آدم نمای 66ثانتی بسازم ممنون از مطلب خوبتون
سلام ببخشید من به ساخت ربات خای دوپا علاقه دارم میشه بگید چطور و میشه این رشته رو از طریق دانشگاه دنبال کرد ؟؟؟ممنون