1- برنامه‌نویسی ربات چیست؟

همانطور که می‌دانید هر رباتی در واقع یک ماشین متشکل از حسگرها، موتورها و یک واحد محاسباتی است که براساس کنترل کاربر رفتار کرده یا خود براساس ورودی‌های حسگرش تصمیم­گیری می­کند. می‌توان گفت که مغز ربات واحد محاسباتی آن است که می‌تواند یک میکروکنترلر یا یک رایانه باشد. تصمیم گیری و اقدامات ربات به طور کامل بستگی به برنامه در حال اجرا در مغز ربات دارد. این برنامه می‌تواند یک سفت­افزار[2] در حال اجرا بر روی یک میکروکنترلر، یا کد C/C++ یا کد پایتون در حال اجرا بر روی یک رایانه شخصی یا یک بورد تک رایانه­ای نظیر رزبری­پای باشد. برنامه­نویسی ربات، فرآیند نوشتن یک برنامه برای مغز ربات (یعنی واحد پردازش) به منظور کار کردن ربات است.

شکل 4-1 بلوک دیاگرام کلی یک ربات حاوی قسمتی که در آن برنامه اجرا می‌شود را نشان می‌دهد.

شکل ‏4‑1: بلوک دیاگرام کلی یک ربات

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

عملگرها توسط کنترلرهای موتور و ارتباط با میکروکنترلر/PLC[4] کنترل می‌شوند. بعضی از عملگرها به طور مستقیم از طریق USB رایانه کنترل می‌شوند. حسگرها نیز با یک میکروکنترلر یا رایانه ارتباط دارند. حسگرهای التراسونیک و حسگرهای مادون قرمز به میکروکنترلر وصل می‌شوند. حسگرهای پیشرفته مانند دوربین‌ها و اسکنرهای لیزری می‌توانند به طور مستقیم با رایانه ارتباط برقرار کنند. برای تامین توان تمامی ‌اجزای ربات یک منبع تغذیه/باتری وجود دارد. دکمه توقف اضطراری برای توقف/ بازنشانی عملکرد ربات وجود دارد. رایانه و میکروکنترلر/PLC دو قطعه اصلی هستند که داخلشان برنامه ربات نوشته می‌شود  که از PLC‌ها عمدتا در ربات­های صنعتی استفاده می­کنند.

به طور خلاصه می‌توان گفت برنامه­نویسی ربات، برنامه­نویسی PC/SBC و Microcontroller/PLC داخل ربات به منظور انجام یک کاربرد خاص با استفاده از عملگرها و اخذ بازخورد از حسگرهای مختلف است. کاربردهای رباتیک شامل برداشتن و گذاشتن، و حرکت ربات از نقطه A به B است. انواع زبان‌های برنامه‌نویسی می‌توانند در ربات‌ها استفاده شوند. C/C++، پایتون، جاوا، C# و غیره روی رایانه‌های شخصی نصب و به کارگرفته می‌شوند. میکروکنترلرها از زبان سیم کشی Embedded C (نوشته شده بر اساس C++) استفاده می­کنند که در آردوینو و برنامه‌نویسیMbed[5]  استفاده می‌شود. در صنعت جهت کاربردهای رباتیک از SCADA یا زبان­های برنامه‌نویسی مختص هر شرکت مانند ABB و KUKA استفاده می‌شود. برنامه‌نویسی آنها از طریق دسته­ی آموزش[6] ربات صنعتی انجام می‌شود. RAPID زبان برنامه‌نویسی مورد استفاده در ربات‌های صنعتی ABB برای خودکار کردن کاربردهای رباتیک است.

برنامه­نویسی رباتیک به ایجاد یک هوشمندی در ربات به­منظور خود-تصمیم­گیری، به­کارگیری کنترلرهایی نظیر PID جهت حرکت مفاصل، خودکارسازی کارهای تکراری و ایجاد برنامه­های کاربردی بینایی رباتیک می‌پردازد.

[2] سفت­افزار یا firmware معمولا عملیات پایه در سطح پایین پردازش می­کند و بدون آن دستگاه کاملا بلا استفاده می شود. سفت­افزار یک اصطلاح نسبی است، همانطور که بیشتر دستگاه های امبدد دارای سفت­افزاری در بیش از یک سطح می­باشند. زیرسیستم هایی مانند CPU ها، تراشه های فلش، کنترل کننده های ارتباطی، ماژول های LCD و غیره دارای کد برنامه (معمولا ثابت) و / یا میکروکدی هستند که به وسیله نرم افزارهای سطح بالا (سطح) به عنوان بخشی از سخت افزار شناخته می شوند.

[3] Stepping motor

[4] کنترل کننده منطقی قابل برنامه ریزی

[5] https://os.mbed.com

[6] Teach pendant