بخشی از مقاله
چکیده
رباتهای شش درجه آزادی سری قابلیت ایجاد حرکت در سه محور X,Y,Z و چرخش حول این سه محور در فضای حرکتی ربات با سرعت و شتاب بسیار بالا را دارند که با توجه به این ویژگیها اینگونه رباتها کاربردهای بسیاری زیادی در صنعت دارند. از کاربردهای مهم این نوع از رباتها، شبیهسازی حرکت هواپیما، قطار، اتومبیل، وسایل تفریحی و سایر سیستمهای مشابه آن است.
یکی از نیازهای این رباتها، نرم افزار واسط بین کاربر و ربات است به نحوی که کاربر بتواند در یک محیط گرافیکی مسیر حرکت ربات را مشخص کند و نرم افزار دستورات لازم برای حرکت ربات را متناسب با مسیر تعریف شده، تولید کند. در این مقاله به چگونگی طراحی و توسعه نرمافزار شبیهسازی حرکت ربات شش درجه آزادی سری باقابلیت ارتباط با ربات، میپردازیم.
-1 مقدمه
استفاده از رباتهای شش درجه آزادی برای شبیهسازی حرکت، میتواند امکانات زیادی را برای کاربر فراهم کند که ازجمله این امکانات میتوان به قابلیت ایجاد حرکت در سه محور X,Y,Z و چرخش حول این سه محور در فضای حرکتی ربات و با سرعت بسیار بالا اشاره کرد. این امکانات باعث شده است که از ربات شش درجه آزادی برای شبیهسازی حرکت استفاده شود. نرمافزار شبیهساز امکان استفاده بهتر از رباتهای شش درجه آزادی را فراهم میکند. شکل - 1 - استفاده از ربات شش درجه آزادی سری برای شبیهسازی حرکت را نشان میدهد.
در طراحی نرمافزار شبیهساز حرکت رباتهای شش درجه آزادی، بعد از مرحله 1CAD و تولید شیء موردنظر نیازمند اجرای مرحله 2CAM هستیم. منظور از مرحله CAD مدل کردن محیطی است که شبیهسازی قرار است در آن انجام شود؛ ازآنجاییکه این کار توسط نرمافزارهای CAD قابل انجام است این مرحله، مرحله CAD نامگذاری شده است. منظور از مرحله CAM نیز مشخص کردن مسیر با همه جزئیات و انجام حرکت شبیهسازی توسط ربات مدل شده و گرفتن خروجی - تقریباً مشابه - G-Code به زبان ربات است. در واقع خروجی مرحله CAD بهعنوان ورودی مرحله CAM مورداستفاده قرار میگیرد.
هدف از اجرای طرح، توانایی مشخص کردن مسیر روی شیء طراحیشده با استفاده از یک رابط گرافیکی و تولید خروجی به زبان ربات از روی اطلاعات بهدستآمده از شبیهسازی صورت گرفته توسط کاربر است. ازآنجاییکه هر ربات تولیدی توسط شرکتهای خارجی، نرمافزار خاص خود برای شبیهسازی مسیر را داشته و خروجی به زبان قابلفهم همان ربات را تولید میکند، در این پژوهش تلاش شده است که علاوه بر تولید نرمافزار خاص ربات مورد نظر، محیطی قابلانعطاف برای شبیهسازی، خودکارسازی و تولید خروجی به زبان قابلفهم برای ربات -که یکی از ضروریترین نیازهای یک ربات محسوب میشود- طراحی و پیاده سازی شود. نرمافزار بهگونهای انعطافپذیر طراحیشده است که با کمی تغییرات، توانایی شبیهسازی و تولید خروجی برای سایر رباتها را نیز دارد.
در این طراحی سعی شده است که یک نرمافزار منبع باز CAD موجود در بازار که قابلیت برنامه CAM را نیز تا حدودی داشته باشد، یافته و سپس با تغییر در کدهای آن و اضافه کردن ماژولهای دیگر، به خروجی مطلوب که به زبان ربات است، دست یافته شود. از آنجایی که نرمافزارهای موجود فقط توانایی کار با رباتهای مخصوص خود را دارند، درحالیکه این نرمافزار توانایی انجام این کار را برای ربات ساختهشده دارد، انجام فرآیند بسیار مهم و ضروری است. دستاوردها و قابلیتهای این طراحی که به صورت منحصر به فرد برای روبات ساخته شده بکارگیری شده است ، بهصورت زیر است:
• دارا بودن قابلیت خواندن، نمایش و ویرایش طراحیهای CAD با پسوندهای مختلف.
• قابلیتهای یک نرمافزار .CAD
• قابلیتهای یک نرمافزار .CAM
• شبیهسازی و آزمودن عملکرد ربات.
• قابلیت خروجی به زبان ربات.
• قابلیت یکسان بودن با حرکتهای ربات واقعی.
-2 ترجمه کردن کد منبع
در طراحی و توسعه نرمافزار CAD و CAM برای ربات مورد نظر، از توسعه نرمافزارهای منبع باز موجود در بازار استفاده شده است. برای انجام این کار ابتدا باید کد منبع باز موجود در بازار که دارای ویژگیهای خاصی باشد را انتخاب کرد. پساز اینکه چنین نرمافزاری انتخاب شد، باید آن را ترجمه کرده و بعد از ترجمه کردن، تغییرات روی کد انجام شود تا نرمافزار خاص روبات مدنظر تولید شود. توجه داشته باشید که نرمافزارهایی که در بازار وجود دارند برای رباتهای دیگر است و هر شرکت سازنده ربات، نرمافزار CAM و CAD خاص خود را دارد.
اما در اینجا فقط از چند ماژول آنها که پایه همه این دسته از نرمافزارها است، استفاده شده است و فرآیند اصلی که افزودن ربات و فرمانهای اصلی ربات است، در این پژوهش پیادهسازی شده است. این فرآیند طبق یکی از اصول مهندسی نرمافزار که در حوزه کیفیت نرمافزار قرار دارد و به نام قابلیت استفاده مجدد شناخته میشود، انجامشده است. برای کامپایل کردن این نرمافزار باید پیشنیازهای آن دانلود و کامپایل شود. این پیشنیازها در زیر لیست شده است:
• دانلود کد منبع .FreeCAD
• دانلود بسته حاوی کتابخانههای FreeCAD که آن را LibPack نیز مینامند.
• دانلود نرمافزار .CMake
• دانلود VisualStudio2013
-3 اضافه کردن ربات
برای اضافه کردن ربات به نرمافزار، ابتدا باید تغییراتی در کد منبع اعمال شود. بدیهی است که قبل از رسیدن به کد، باید دانسته شود که برای اضافه کردن ربات به چه اطلاعاتی نیاز است.برای اضافه کردن ربات باید دو پَروَنجا - file - ساخته شود که در اینجا به توضیح کامل اینپَروَنجاها میپردازیم.
• پَروَنجا با پسوند WRL و فرمت VRML2 یا VRML کلمهای اختصاری برای Virtual Reality Modeling Language است.این پَروَنجا شامل هندسه ربات بوده و محل اتصال لینکها را نشان میدهد. درواقع شکل کلی و ظاهر ربات در واقعیت را شبیهسازی میکند. دنیای مجازی ایجاد شده به زبان VRML زبان مدلسازی واقعیت مجازی است که میتواند در سه بعد هدایت شود و حاوی مختصات و رنگهایی است که هر شیء و شکل را توصیف میکنند. همچنین شامل مختصات نقطه دید برای دید ابتدایی منظره سهبعدی استپَروَنجاها.یWRL به فرمت متنی ASCII ذخیره میشوند که میتوانند با ویرایشگر متن ویرایش شوند.
• پَروَنجا CSV شامل اطلاعات مربوط به سینماتیک و محدودیتهای ربات است که پارامترهای A و D و و و چهار پارامتر برای سینماتیک ربات را با استفاده از روش CH table نمایش میدهد. پارامترهای min و max برای هر موتور حداقل و حداکثر دوران را نشان میدهد. مثلاً موتور شماره یک میتواند بین +115 و -115 درجه دوران کند. پارامتر Velocity حداکثر سرعت دورانی مفصل را مشخص میکند و واحد آن درجه بر ثانیه است.
-4 ویرایش Trajectory
Trajectory یا خط سیر، یک تابع حرکت جسم در فضا برحسب زمان است. ویرایش یک Trajectory به این معنا است که بتوان در یک مختصات مشخص برای مجری نهایی ربات، سرعت و شتاب دلخواه برای آن تنظیم کرد. همانطور که میدانید بعد از بسته شدن ابزار، مجری نهایی ربات، نوک ابزار خواهد بود. در این صورت ابتدا بایستی طراحی و پیادهسازی ابعادی ابزار انجام شود و سپس سرعت و شتاب دلخواه برای نوک ابزار که مجری نهایی ربات در نظر گرفته میشود، تنظیم شود. از دیگر ویژگی Trajectory میزان چرخش نسبت به هر یک از محورهای مختصات است که میتوان آن را نیز برای هر نقطه تنظیم کرد. در ادامه به توضیح هر یک از زیر بخشهای گفتهشده، پرداخته خواهد شد.
1؛-4 طراحی و پیادهسازی ابعادی ابزار
ربات ساختهشده بهصورت عمومی است بدین معنا که میتوان ابزارهای مختلفی را بسته به کاربرد ربات به آن اضافه کرد. بهعنوانمثال ابزار جوشکاری را میتوانیم به مجری نهایی ربات اضافه کرد. یک ابزار شامل دو پَروَنجا است: پَروَنجای اول که هندسه ابزار را نمایش میدهدپَروَنجا، CAD است. پَروَنجای دوپَروَنجام، با پسوند.csv بوده که شامل اطلاعات مربوط به میزان انتقال و چرخش ابزار نسبت به مختصات مجری نهایی ربات است.
-5 استخراج Trajectory
یکی از مهمترین کارهایی که این نرم افزار میتواند انجام دهد تولید خروجی به زبان ربات است. در اینجا خروجی G-Code برای ربات تولید میشود. هر خط این پَروَنجا حاوی یک دستور به زبان ربات است. در این پَروَنجا چهار خط اول نشاندهنده اطلاعات ربات و محل ذخیرهسازی پَروَنجا و ساعت و تاریخ ذخیرهسازی پَروَنجا است. هر خط دستور کلمات کلیدی دارد که به ترتیب از چپ به راست به توضیح آن پرداخته میشود.
کلمه کلیدی اول که میتواند LIN،PTP، CIRC باشد نشاندهنده نوع مسیر در پَروَنجا CAD است. کلمات کلیدی بعدی X، Y و Z است که به ترتیب مقادیر آنها نیز در مقابل هر یک نوشتهشده است. کلمات کلیدی A، B و C به ترتیب نشاندهنده زوایای roll، pitch و yaw است و مقادیر آنها نیز مقابل هر یک نوشتهشده است. کلمه کلیدی بعدی F بوده که نشاندهنده سرعت خطی نوک ابزار ربات است. آخرین عبارت CON است که نشاندهنده پیوستگی مسیر است.
-6 شبیهسازی فرآیند حرکتی ربات
2؛-4 پیادهسازی سرعت و شتاب ابزار
در این نرمافزار بهصورت پیشفرض سرعت و شتاب به یک عدد ثابت تنظیم میشود و سعی شده است که کاربر بتواند سرعت و شتاب هر قسمت را به صورت دستی تنظیم کند. برای این کار یک دکمه قرار داده شده است که بعد از زدن این دکمه، جدولی ظاهر میشود که هر یال انتخابشده در Trajectory یک ردیف در این جدول بوده و سرعت و شتاب آن بخش نیز مشخص و قابل تغییر است.
3؛-4 پیادهسازی زاویه ابزار
چرخش ابزار به وسیله زوایای اویلر رول - Roll - ، پیچ - Pitch - و یاو - Yaw - مشخص میشود که به ترتیب بیانگر دوران حول محورهای ثابت X، Y و Z هستند. در این نرم افزار مقادیر Roll، Pitch و Yaw برای ابزار که به عنوان مجری نهایی ربات در نظر گرفته میشود را میتوان به دلخواه تنظیم کرد. بعد از تولید مسیر - Trajectory - ، مسیر توسط ربات پیمایش میشود. برای شروع ساخت شبیهسازی فرآیند حرکتی ربات ابتدا باید معادلات سینماتیک مستقیم [1] و معکوس [2] ربات حل شود. منظور از سینماتیک، معادلات حرکتی ربات فقط با توجه به هندسه ربات است. برای به دست آوردن معادلات سینماتیک دو روش معمول وجود دارد.
استفاده از پارامترهای دناویت-هارتبرگ DH و استفاده از کواترنیونها . - Quaternion - در اینجا از روش دوم برای به دست آوردن معادلات سینماتیک استفاده میشود. برای سینماتیک مستقیم، زوایای موتورهای ربات داده شده است و هدف به دست آوردن موقعیت نوک ابزار و میزان چرخش ابزار ربات است. در مساله سینماتیک معکوس، موقعیت نوک ابزار و میزان چرخش ابزار ربات داده شده است و هدف به دست آوردن مقدار زوایای موتورهای ربات است.