بخشی از مقاله
چکیده
ربات هاي دنبالگر خط ربات هایی هستند که به صورتی طراحی شده اند که قابلیت دنبال کردن خط هاي با رنگی متفاوت با رنگ پیش زمینه را دارا می باشند از این قابلیت میتوان در کارخانه ها براي آدرس دهی و هدایت ربات ها استفاده کرد .بیشتر ربات هایی که تا کنون در این زمینه ساخته شده اند براي شناخت خط از سنسور هاي حساس به نور استفاده میکنند . اما در این پروژه با یک نوآوري جدید موفق به ساخت یک ربات دنبالگر خط با کنولوژيت متفاوت شدیم. در این روش از یک ماژول پردازشی به نام myRIO و دوربین وبکم براي تشخیص خط و اندازه گیري زاویه ي مربوط به آن استفاده گردید.این ربات به دلیل برخوردار بودن از وبکم و پردازش تصویر فیدبک را از دوربین دریافت میکند و حتی اگر ربات به دلیل برخورد با موانع منحرف شد باز خود را اصلاح میکند. از دیگر ویژگی هاي این ربات توانایی تغییر رنگ خطی است که ربات دنبال میکند در کدنویسی این ربات از زبان برنامه نو یسی لب ویو استفاده شده است .دو روش کنترلی تناسبی و PI در کنترل این ربات به کار گرفته شده است . در آخ ر این دو روش با یکدیگر مقایسه گردید و مشخص شد کنترلر PI با خطاي کمتر و با سرعت پاسخ دهیبالاتر نسبت به کنترلر تناسبی ربات را هدایت می کند.
کلید واژه:پردازش تصویر ، ربات دنبالگر خط، سنجش زاویه ، کنترلر تناسبی ، کنترلر PI ، ماژول myRIO ، نرم افزار لب ویو
در کد نویسی این ربات از نرم افزار لب ویو استفاده گردیده است .نرم افزارلب ویو ، یک زبان برنامه نویسی گرافیکی است که به صورت گسترده براي کاربرد هاي مختلفی در صنایع، تحصیلات، آموزش و تحقیقات آزمایشگاهی به عنوان یک مدل استاندارد براي جمع آوري و پردازش داده ها و همچنین برنامه اي جهت کنترل و شبیه سازي ابزارهاي مجازي درآمده است. این برنامه یک نرم افزار قدرتمند و قابل انعطاف جهت تجزیه و تحلیل سیستم هاي اندازه گیري است،از برنامه نویسی متنی متداول و مرسوم مجزاست و یک محیط کدنویسی گرافیکی را براي کاربر فراهم ساخته است. [1]
پردازش تصویر
براي تشخیص خطی که ربات می بایست دنبال کند از پردازش تصویر لب ویو استفاده گردید.انجام پرداش تصویر در لب ویو نیازمند نصب افزونه NI.Vision.Acquisition.Software است تا بتوان به وسیله ي آن در مرحله اول تصویر را از سنسور دریافت کرد و در مرحله بعد پردازش لازم را براي استخراج اطلاعات در آن صورت داد از جمله تنظیماتی که بر روي تصویر صورت می گیرد عبارتند از ابعاد تصویر ، فریم تصویر، روشنی تصویر ، کیفیت تصویر و ... مهمترین قسمتپردازش تصویر در لب ویو قسمت NI.Vision.Development است. این قسمت داراي یکسري توابع براي پردازش تصویر است .از جمله این توابع میتوان به تشخیص رنگ ، تشخیص مساحت ، فیلترهاي مختلف ریاضیاتی ، تشخیص زاویه ،تشخیص موقعیت و... اشاره کرد. همانطور که گفته شد در مرحله اول میبایست تصویر دریافت گردد ، از مجموعه توابع زیر که مربوط دریافت تصویر میباشند با ساختار زیر می توان براي دریافت تصویر از وبکم استفاده کرد.
تابع IMAQ Create براي اختصاص یک فضاي مموري یا حافظه براي تصویر دریافتی استفاده شده است و دو تابع IMAQ Open Camera.vi و IMAQ Configure Grab.vi نیز براي تعیین نوع تصویر یعنی اینکه عکس یا ویدیو باشد و ایجاد یک ارتباط بین وبکم و لب ویو استفاده شده است. و تابع آخر به نام IMAQdx Grab نیزفرمت تصویر را به فرمتی که قابل پردازش باشد تبدیل میکند.در این مرحله میبایس ت به این تابع آدرس پورتی که به وبکم به myRIO متصل است داده شود [2]. پس از این مرحله وارد مرحله پردازش تصویر می شویم.تصویر دریافتیما یک خط مشکی رنگ در پیش زمینه ي سفید است ما از وجه تمایز رنگها میتوانیم خط را تشخیص دهیم. از تابع IMAQ Color Threshold براي تشخیص رنگ استفاده میکینم در این تابع میتوانیم با تعیین میزان رنگ قرمز، آبی و سبز ، رنگ دلخواه خود را با مشخص کردن عددي بین 0 تا 255 درتصویر تشخیص دهیم.
رنگ مشکیترکیبی از سه رنگ با مقدار بالا است .نوع تصویر ما در این مرحله از حالت RGB یا رنگی به حالت باینري یا دو رنگ در می آید که این به این معنی است که نقاطی که رنگ مورد نظر ما را دارا می باشند را با یک رنگ که ما مشخص می کنیم - قرمز - نمایش داده می شود و بقیه نقاط با رنگ مشکی نمایش داده می شوند که به این معنی است که این نقاط رنگ مورد نظر ما را نداشته اند و از پردازش حذف شده اند.پس از این مرحله میبایست با به کارگیري توابعی به تمیزتر شدن شکل تشخیص داده شده بپردازیم[2] .تابع بعدي که مورد استفاده قرار گرفته تابع IMAQ Particle Filter است این تابع میتواند نقاط و مقادیر تشخیص داده شده در مرحله قبل را بر اساس مساحت ، شکل ، طول و عر ض و دیگر ویژگی هاي ظاهري حذف کند. پس از آنکه شکل مورد نظرمان را از تصویر استخراج کردیم نوبت مرحله ي استخراج داده از آن میرسد تابع IMAQ Particle Analysis قابلیت هاي جالبی از جمله تشخیص زاویه ، مرکز شکل ، مختصات شکل ، مساحت شکل و... را دارا میباشد.[3]
ا ین مرحله یکی از اصلی ترین مراحل پردازش تصویر میباشد و میبایست تنها اطلاعاتی که لازم است ، از تصویر استخراج گردد چراکه در غیر این صورت باعث بالا رفتن حجم محاسبت می گردد.شکل هاي زیر خط تشخیص داده شده توسط دوربین بعد از انجام پردازش تصویر براي زاویه هاي 90 درجه و 50 درجه را نشان میدهد.ربات مورد نظر ما از نوع دوچرخ می باشد موتور هاي استفاده شده در این ربات دو موتور DC با حداکثر سرعت 20rpm می باشند که سرعت آن توسط موج PWM کنترل می شود. حداکثر سرعت ربات به 20 rpm می رسد.براي راه اندازي این موتورها از درایور L298N استفاده گردیده است در واقع دلیل استفاده از درایور تغدیه ي جریان مورد نیاز موتورها می باشد[4] .تغدیه ي ماژول myRIO و درایورها توسط منبعتغذیه ي 12 ولتی و یا باتري 12 ولتی صورت میگیرد. از ماژول myRIO ساخت شرکت National instrument کانادا به عنوان کنتر لر این ربات استفاده گردیده است .
این ماژول قابلیت نصب وبکم [5] بر روي آن و امکان برقراري ارتباط با کامپیوتر به صورت وایرلس را دارا می باشد..از خروجی هاي PWM ماژول myRIO براي فرمان دهی به موتور ها استفاده گردیده است.استفاده از ماژول myRIO امکان انجام عمل مانیتورینگ ربات در کامپیوتر را به صورت وایرلس در هر لحظه فراهم می آورد که از جمله ي آنها میتوان نمایشمقدار موج PWM مربوط به هر موتور تصویر خط تشخیص داده شده، مقدار زاویه ي تشخیص داده شده ، میزان فریم دوربین ، روش کنترلی که در حال پیاده سازي است و ... را نام برد .[6] همچنین وجود ارتباط وایرلس امکان تغییر روش کنترلر ،به حرکت درآوردن یا متوقف کردن ربات و یا تغییر رنگ خطی که ربات باید تشخیص دهد را در هر لحظه توسط کامپیوتر فراهم می کند.که ربات نسبت به خط می سازد گرفته می شود .[7]
درواقع کنترلر پیاده سازي شده یک کنترلر تناسبی حلقه بسته است به طوریکه که فیدبکی از زاویه به ورودي سیستم اعمال می گردد. زاویه ي مطلوب ما 0 درجه است که توسط ورودي به سیستم اعمال می گردد.بنابراین زاویه ي خروجی در هر لحظه از صفر درجه کم شده و خطاي حاصل در ضریبروش دامنه ي موج PWM هر یک از موتورها متناسب با زاویه تغییرتناسبی ضرب شده و به سیستم اعمال می گردد.در واقع در اینمیکند و به موتور ها در حالت هاي مختلف اعمال می گردد.شکل زیر نمایی از دیاگرام کنتلر طراحی شده براي سیستم است که در آن R - s - زاویه ي ورودي یا مطلوب ، C - s - زاویه ي خروجی ، ضریب تناسبی کنترلر ، H - s - ضریب فیدبک و G - s - سیستم ربات می باشد .در کنترل این ربات از دو روش کنترل تناسبی و PI استفاده گردید و در آخرنتایج حاصل از این دو روش با یکدیگر با مقایسه گردید .
کنترلر تناسبی
براي پیاده سازي کنتلر تناسبی ابتدا حالت هاي مختلفی که ربات دنبالگر خط در آن قرار می گیرد بررسی گردید .بازه اي که ربات میتواند عملکرد صحیح از خود نشان دهد از منفی 90 درجه تا مثبت 90 درجه است. کنترل این ربات به طور کلی خطی نیست اما در بازه هاي زاویه ي مشخص شده اي از خود رفتار تقریبا خطی نشان میدهد بنابراین از آنجا که کنترلر تناسبی براي سیستمهاي غیر خطی مناسب نیست می باست در بازه هاي مختلفی از زاویه براي آن کنترلر تناسبی طراحی کرد.در جدول 1 حالتهاي مختلف را همراه با بازه هاي زاویه مشخص شده را نمایش می دهد.لازمه ي کنترلر ربات تشخیص صحیح زاویه توسط پردازش تصویر و فرستادن موج PWM مناسب با زاویه به موتورها است هدف اصلی از کنترل ربات کنترل زاویه اي است که ربات نسبت به خط دارد و اطلاع از میزان دور موتور ها اهمیتی چندانی ندارد چراکه فیدبک از زاویه ايمیدهد. H - s - در تمامی حالت ها1در نظر گرفته شده است.
پس از طراحی کنتلر تناسبی حلقه بسته یک کنترلر PI براي ربات طراحی گردید تا تاثیر وجود ضرایب انتگرالی در ربات دنبالگر خط مشخص گردد.همانطور که ذکر گردید کنترل این ربات به طور کلی خطی نیست اما در بازه هایی از زاویه رفتار تقریبا خطی از خود نشان میدهد. بنابراین براي آنکه بتوان کنترلر PI را براي این ربات پیاده سازي کرد می بایست زاویه اي که ربات با خط میسازد را مانند کنترلر تناسبی بازه بندي کرد و براي هر بازه یک کنترلر PI متناسب با آن طراحی کرد.حالت هاي در نظر گرفته شده همانند حالت قبل ،پیچ به راست، پیچ به چپ و خط مستقیم می باشد. شکل 7 نمایی از بلوك دیاگرام کنترلر طراحی شده را نمایش میدهد. که در آن R - s - مقدار زاویه ي ورودي یا مطلوب که 0 درجه است، - C - s زاویه ي خروجی ،