نرمافزار ربات
برخی از ویرایشها در این مقاله در چارچوب یک تکلیف دانشگاهی انجام شدهاند. این تکالیف توسط ؟ برای دانشجویان ؟ تعیین شدهاند. |
این مقاله، نرمافزار ربات، اخیراً بهواسطهٔ فرایند ایجاد مقاله ایجاد شدهاست. بازبینیکننده در حال بستن درخواست است و این برچسب احتمالاً بهزودی برداشته میشود.
ابزارهای بازبینی: پیشبارگیری بحث اعلان به نگارنده |
خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد.
این هماکنون برای مدتی کوتاه تحت ویرایش عمده است. این برچسب برای جلوگیری از تعارض ویرایشی اینجا گذاشته شدهاست، لطفاً تا زمانیکه این پیام نمایش داده میشود ویرایشی در این صفحه انجام ندهید. این صفحه آخرینبار در خطا: زمان نامعتبر (ساعت هماهنگ جهانی) (۲ سال پیش) تغییر یافتهاست؛(ویرایش نشدهاست، این الگو را حذف کنید. اگر شما ویرایشگری هستید که این الگو را اضافه کردهاست، لطفاً مطمئن شوید آن را حذف یا با {{در دست ساخت}} جایگزین میکنید. ) لطفاً اگر در چند ساعت اخیر رده:صفحههای سخت در دست ویرایش |
نرمافزار ربات دسته ای از دستورات کدگذاری شدهاست که به دستگاه مکانیکی و سیستم الکترونیکی که با هم به عنوان ربات شناخته میشوند، میگوید که چه وظایفی را انجام دهند. نرمافزار ربات برای انجام کارهای مستقل استفاده میشود. سیستمها و چارچوبهای نرمافزاری زیادی برای آسانتر کردن کار رباتهای برنامهنویس پیشنهاد شدهاند.
هدف برخی از نرمافزارهای رباتی توسعه و پیشرفت دستگاههای مکانیکی هوشمند است. وظایف معمول آنها شامل حلقههای بازخورد، کنترل، مسیریابی، فیلتر کردن دادهها، مکانیابی و به اشتراک گذاری دادهها میشود.
مقدمه[ویرایش]
در حالی که نوع خاصی از نرمافزار است، تاکنون بسیار گوناگون بوده است. (دارای استفادهها مخلتفی میباشد). هر سازنده نرمافزار ربات خود را دارد. در حالی که بخش اعظمی از نرمافزارها در مورد تحلیل و دستکاری دادهها و دیدن نتیجه روی صفحه هستند، نرمافزار ربات برای تحلیل و دستکاری اشیا یا ابزارها در دنیای واقعی است.
نرمافزار ربات صنعتی[ویرایش]
نرمافزار برای رباتهای صنعتی شامل دادههای اشیا و لیستی از دستورالعملها است که به عنوان جریان برنامه (فهرست دستورالعملها) شناخته میشود. برای مثال ،
Go to Jig1 (به مکان jig1 برو)
این دستور العملی برای ربات است که به دادههای موقعیتی به نام Jig1 برود. البته همینطور برنامهها میتوانند حاوی دادههای مجازی باشند
Tell axis 1 move 30 degrees.(به محور ۱ بگویید ۳۰ درجه حرکت کند)
دادهها و برنامهها معمولاً در بخشهای جداگانه ای از حافظه کنترل گر ربات نگه داشته میشوند. میتوان دادهها را بدون تغییر در برنامه تغییر داد و همچنین بالعکس. به عنوان مثال، میتوان با استفاده از همان دستور Jig1 یک برنامه متفاوت نوشت یا میتوان موقعیت Jig1 را بدون تغییر در برنامههایی که از آن استفاده میکنند، تغییر داد.
نمونههایی از زبانهای برنامهنویسی برای رباتهای صنعتی[ویرایش]
با توجه به اینکه ماهیت نرمافزار ربات بسیار انحصاری است، بیشتر سازندههای سختافزار ربات نرمافزار مخصوص خود را نیز ارائه میدهند. در حالی که این کار در سایر سیستمهای کنترل خودکار غیرعادی نیست، نبود استانداردسازی روشهای برنامهنویسی برای رباتها سبب پیدایش چالشهای خاصی میشود. برای مثال، بیشتر از ۳۰ سازنده مختلف رباتهای صنعتی وجود دارد، در نتیجه بیشتر از ۳۰ زبان برنامهنویسی ربات مختلف نیز مورد نیاز است. با توجه به اینکه شباهتهای زیادی بین رباتهای مختلف وجود دارد میتوان بدون نیاز به یادگیری زبان اختصاصی هر سازنده، درک زیادی ای از برنامهنویسی ربات به دست آورد.[۱]
یکی از روشهای کنترل رباتها توسط سازندگان مختلف، استفاده از پس پردازنده و نرمافزار برنامهنویسی آفلاین (رباتیک) است. بااستفاده این روش، میتوان زبان برنامهنویسی ربات خاص برند را از یک زبان برنامهنویسی جهانی (عمومی) مانند پایتون (زبان برنامهنویسی) مدیریت کرد.[۲] با این حال، کامپایل و بارگزاری کد آفلاین ثابت در یک کنترلگر ربات به سیستم رباتیک دسترسی نمیدهد که از وضعیت آگاه باشد، درنتیجه نمیتواند حرکت خود را مطابقت دهد و با تغییر محیط بازیابی کند. کنترل تطبیقی یکدست در زمان واقعی برای هر رباتی در حال حاضر با چند ابزار شخص ثالث مختلف میسر و امکانپذیر میباشد.
چند مثال از زبانهای برنامهنویسی ربات منتشر شده در زیر نمایش داده شدهاست.
کار به زبان انگلیسی ساده:
Move to P1 (a general safe position) Move to P2 (an approach to P3) Move to P3 (a position to pick the object) Close gripper Move to P4 (an approach to P5) Move to P5 (a position to place the object) Open gripper Move to P1 and finish
(حرکت به موقعیت P1 (یک موقعیت ایمن عمومی) انتقال به موقعیت P2 (رویکردی به P3) حرکت به موقعیت P3 (موقعیتی برای انتخاب یک شی) دستگیره را ببندید انتقال به موقعیت P4 (رویکردی به P5) حرکت به موقعیت P5 (موقعیتی برای قرار دادن شی) دستگیره باز به موقعیتP1 بروید و تمام کنید)
VAL یکی از اولین زبانهای برنامهنویسی ربات بود و در رباتهای Unimate(متحد و یکپارچه) استفاده شد. انواع مختلفی از VAL توسط تولیدکنندگان دیگر از جمله Adept Technology استفاده شدهاست.در حال حاضر شرکت Stäubli از VAL3 استفاده می کند.
مثالهایی از برنامه:
محل انتخاب برنامه 1. MOVE P1(حرکت به p1) 2. MOVE P2(حرکت بهp2) 3. MOVE P3(حرکت به p3) 4. CLOSEI ۰٫۰۰ 5. MOVE P4(حرکت به p4) 6. MOVE P5(حرکت به p5) 7. OPENI ۰٫۰۰ 8. MOVE P1(حرکت به p1)
. پایان نمونه ای از برنامه Stäubli VAL3:
شروع movej(p1,tGripper,mNomSpeed) movej(appro(p3,trAppro),tGripper,mNomSpeed) movel(p3,tGripper,mNomSpeed) close(tGripper) movej(appro(p5,trAppro),tGripper,mNomSpeed) movel(p5,tGripper,mNomSpeed) open(tGripper)
movej(p1,tGripper,mNomSpeed) پایان
trAppro متغیر تبدیل دکارتی است. اگر از in با دستورالعمل appro استفاده کنیم، نیازی به آموزش موقعیت P4 زمین P2 نداریم، بلکه به صورت پویا یک رویکرد را به موقعیتی انتخاب و مکان برای تولید مسیر جابجا میکنیم.
Epson RC+ (مثالی برای انتخاب خلاء)
تابع PickPlace پرش P1 پرش P2 پرش P3 در خلاء صبر کنید .۱ پرش P4 پرش P5 خلاء خاموش صبر کنید .۱ پرش P1 دفع کنید
Function PickPlace
Jump P1
Jump P2
Jump P3
On vacuum
Wait .1
Jump P4
Jump P5
Off vacuum
Wait .1
Jump P1
Fend
ROBOFORTH (زبانی بر مبنای FORTH).
: PICKPLACE
P1
P3 GRIP WITHDRAW
P5 UNGRIP WITHDRAW
P1
;
: PICKPLACE
P1
P3 GRIP WITHDRAW
P5 UNGRIP WITHDRAW
P1
;
(با Roboforth میتوانید مکانهای نزدیک را برای موقعیتهایی مشخص کنید تا به P2 و P4 نیاز نداشته باشید)
مشخص است که ربات نباید حرکت بعدی را تا زمانی که گیره کاملاً بسته شود ادامه دهد. تأیید یا زمان مجاز در مثالهای فوق از CLOSEI و GRIP مجازی است در حالی که دستورالعمل On vacuum برای مطمئن شدن از مکش رضایتبخش به تأخیر زمانی احتیاج دارد.
سایر زبانهای برنامهنویسی ربات[ویرایش]
زبان برنامهنویسی بصری[ویرایش]
زبان برنامهنویسی LEGO Mindstorms EV3 یک زبان ساده برای تعامل کاربران آن است. این یک رابط کاربری گرافیکی (GUI) است که با زبان LabVIEW نوشته شدهاست. رویکرد این است که به جای شروع از دادهها، با برنامه شروع کنید. این برنامه با کشیدن نمادها به مکان برنامه واضافه کردن یا درج آن به دنباله ساخته میشود. برای هر نماد، پارامترها (دادهها) را مشخص میکنید. برای مثال، برای نماد درایو موتور شما مشخص میکنید که کدام موتورها و به چه اندازه حرکت میکنند. هنگامی که برنامه نوشته میشود، برای آزمایش در لگو NXT 'brick' (میکروکنترلر) دانلود میشود.
زبانهای اسکریپت (اسکریپت نویسی)[ویرایش]
زبان اسکریپت برنامهنویسی یک زبان برنامهنویسی سطح بالا است که برای کنترل برنامه نرمافزاری استفاده میشود و به جای اینکه از قبل کامپایل شود، به صورت بلافاصله یا "در حال ترجمه" ترجمه میشود. یک زبان برنامهنویسی ممکن است یک زبان برنامهنویسی همهجانبه باشد یا ممکن است محدود به توابع خاصی باشد که برای تقویت اجرای برنامه یا برنامه کامپیوتری استفاده میشود. بعضی از زبانهای اسکریپتنویسی، مثل RoboLogix، دارای اشیاء دادهای هستند که در ثباتها (ریجستر) قرار دارند و جریان برنامه فهرست دستورالعملها یا مجموعه دستورالعملهایی را نشان میدهد که برای برنامهنویسی ربات استفاده میشود.
برند ربات | نام زبان |
---|---|
ABB | سریع |
کامائو | PDL2 |
فنوک | کارل |
کاوازاکی | مانند |
کوکا | KRL |
استابلی | VAL3 |
یاسکاوا | آگاه کردن |
زبانهای برنامهنویسی عموماً برای ساختن ساختارهای داده و الگوریتمها از ابتدا طراحی و ساخته شدهاند، در حالی که زبانهای برنامهنویسی بیشتر برای متصل کردن، یا «چسباندن» اجزا و دستورالعملها به یکدیگر در نظر گرفته شدهاند؛ بنابراین، مجموعه دستورات زبان اسکریپت معمولاً یک لیست ساده از دستورات برنامه است که برای ساده کردن فرایند برنامهنویسی و ارائه توسعه و پیشرفت سریع برنامه استفاده میشود.
زبانهای موازی[ویرایش]
یکی دیگر از رویکردهای جالب قابل ذکر این است که همه برنامههای رباتیک نیاز به برنامهریزی موازی رویداد محور را دارند. موازی سازی جایی است که ربات دو یا چند کار را همزمان انجام میدهد. این کار نرمافزار و سختافزار منباسب را نیازمند میباشد. بیشتر زبانهای برنامهنویسی برای مدیریت موازیسازی و پیچیدگیهای به وحود آمده از آن، مانند دسترسی همزمان به منابع مشترک، به رشتهها یا کلاسهای انتزاعی پیچیده تکیه میکنند. URBI سطح بالاتری از انتزاع را با ادغام موازی و رویدادها در هسته معنایی زبان فراهم میکند.
whenever(face.visible)
{
headPan.val += camera.xfov * face.x
&
headTilt.val += camera.yfov * face.y
}
کد بالا headPan
و headTilt
موتور را به صورت موازی حرکت می دهد تا سر ربات را به دنبال چهره انسان در ویدئو گرفته شده توسط دوربین آن تا زمانی که چهره توسط ربات دیده می شود بگرداند.
نرمافزار کاربردی ربات[ویرایش]
جدا از اینکه چه زبانی استفاده میشود، نتیجه آخر نرمافزار ربات ایجاد برنامههای رباتیک است که به مردم کمک میکند یا آنها را سرگرم و مشغول میکند. برنامههای کاربردی عبارت هستند از نرمافزار فرمان و کنترل و وظیفه. نرمافزار فرمان و کنترل شامل رابط کاربری گرافیکی کنترل ربات برای رباتهای کنترل از راه دور، نرمافزار فرمان نقطه-n-کلیک برای رباتهای مستقل و نرمافزار زمانبندی برای رباتهای متحرک و پویا در کارخانهها میباشد. نرمافزار Tasking شامل رابطهای drag-n-drop ساده و معمول برای راهاندازی مسیرهای تحویل، گشتهای امنیتی و تورهای بازدیدکننده است. همچنین شامل برنامههای سفارشی خاص است که برای استقرار برنامههای خاص نوشته و طراحی شدهاند. نرمافزار کاربردی ربات با هدف عمومی بر روی پلتفرمهای رباتیک بهطور گسترده توزیع شدهاست.
ملاحظات ایمنی[ویرایش]
خطاهای برنامهنویسی مخصوصاً در رباتهای صنعتی بزرگ، یک ملاحظه ایمنی جدی است. قدرت و اندازه رباتهای صنعتی به این معناست که در صورت برنامهریزی غلط یا استفاده نا ایمن، میتوانند صدمات وخسارت زیادی را وارد کنند. با توجه به وزن و سرعت بالای رباتهای صنعتی، ماندن انسان در محل کار ربات در حین کار خودکار همیشه ناامن است. این سیستم میتواند در زمانهای غیرمنتظره و غیرقابل پیشبینی شروع به حرکت کند و انسان نمیتواند در بسیاری از موقعیتها به سرعت واکنش نشان دهد، حتی اگر آماده این کار باشد. درنتیجه، حتی اگر نرمافزار بدون خطای برنامهنویسی و دقیق باشد، باید دقت زیادی کرد تا یک ربات صنعتی برای کارگران انسانی یا تعاملات انسانی ایمن شود، مانند بارگیری یا تخلیه قطعات، پاک کردن گیر کردن قطعه، یا انجام تعمیرات. کتاب ANSI/RIA R15.06-1999 استاندارد ملی آمریکا برای رباتهای صنعتی و سیستمهای ربات - الزامات ایمنی (نسخه ANSI/R15.06-1992) از انجمن صنایع رباتیک استاندارد قبول شده در مورد ایمنی ربات است. این شامل دستورالعملهایی برای طراحی رباتهای صنعتی و پیادهسازی یا ادغام و استفاده از رباتهای صنعتی در کف کارخانه است. مفاهیم ایمنی زیادی مثل کنترلکنندههای ایمنی، حداکثر سرعت در طول یک حالت آموزش و استفاده از موانع فیزیکی پوشش داده شدهاست.
جستارهای وابسته[ویرایش]
- Behavior-based robotics and Subsumption architecture
- Developmental robotics
- Epigenetic robotics
- Evolutionary robotics
- Industrial robot
- Cognitive robotics
- Robot control
- RoboLogix
- Automated planning and scheduling
- Cybernetics
- Artificial intelligence
- Robotics suite
- Telerobotics / Telepresence
- Robotic automation software
- Swarm robotics platforms
منابع[ویرایش]
"The future of robot off-line programming". CoRo Blog. 2015-10-25. Retrieved 2017-01-03.
RoboDK. "Offline programming - RoboDK". www.robodk.com. Retrieved 2017-01-03.
O. Nnaji, Bartholomew (1993). Theory of Automatic Robot Assembly and Programming (1993 ed.). Springer. p. 5. ISBN 978-0-412-39310-5. Retrieved 8 February 2015.
"Robot programming languages". Fabryka robotów. Retrieved 8 February 2015.
پیوند به بیرون[ویرایش]
- A review of robotics software platforms توسط Archive.today (archived ۲۰۱۳-۰۱-۲۷) دستگاههای لینوکس
- ANSI/RIA R15.06-1999 استاندارد ملی آمریکا برای رباتهای صنعتی و سیستمهای ربات - الزامات ایمنی (بازبینی ANSI/RIA R15.06-1992)
رده:نرمافزار رباتیک رده:صفحات با ترجمه بازبینینشده
This article "نرمافزار ربات" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:نرمافزار ربات. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
- ↑ "The future of robot off-line programming". CoRo Blog. 2015-10-25. Retrieved 2017-01-03.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ RoboDK. "Offline programming - RoboDK". www.robodk.com. Retrieved 2017-01-03.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ "Robot programming languages". Fabryka robotów. Retrieved 8 February 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.