استفاده از هوش مصنوعی در کنترل حرکت ربات ها : بررسی حالت لغزندگی

این پژوهش به بررسی ربات غیر هولونومیک در یک وضعیت لغزنده می پردازد، یعنی در شرایطی که اعمال کنترل، نتیجه رضایت بخشی را به همراه نخواهد داشت. این پژوهش به بررسی مواردی می پردازد که در آن یک یا چند چرخ تحت تأثیر لغزندگی قرار دارند. از یک الگوریتم هوش مصنوعی برای جمع آوری تمام وضعیت ها و راه حل های ممکن استفاده می شود. پس از ارائۀ نتایج، انتظار می رود که زمینه ای جهت بحث و گفتگو درباره این نوع مشکلات به وجود آید.

مقدمه

سیستم های مختلفی وجود برای کنترل خودروها وجود دارند که از جمله آن ها می توان به ABS، ESP و ITC اشاره کرد. این سیستم ها در تلاش هستند تا از عدم کشش مطلوب چرخ ها اجتناب کرده، سرعت فرمان را کاهش داده و یا از انسداد چرخ ها جلوگیری کنند. تاکنون هیچ راه حل قطعی برای مسئلۀ آکواپلانینگ در مسیرهای پیچ دار مطرح نشده است، چون این مسئله به معیارهای متفاوت و تجربه کافی از سوی چندین فرد خبره احتیاج دارد. یک راننده ممکن است جهت خودرو را بر خلاف جهت سُرخوردن تنظیم کند، دیگری شاید جهت خودرو را هم راستا با جهت سرخوردن تنظیم کند، و راننده های دیگری ممکن است در این شرایط از ترمز ملایم استفاده کرده و یا شتاب گیرند.

وضعیت ربات های متحرک خارج از ساختمان، آزمایشگاه یا کارخانه جات، شبیه به خودروها است. به عنوان مثال رباتی را در نظر بگیرید که وظیفۀ آن، سنجش چراغ خیابان است (۲۰۱۸) (شکل ۱). این ربات در خیابان ها و پیاده­روها گردش کرده و در حین گذر از بین این دو، ممکن است با مشکل عدم کشش یک یا چند چرخ مواجه شود. بنابراین یافتن راه حلی برای غلبه بر این مشکل یا به حداقل رسانی تأثیر ناشی از این مشکل، امری ضروری برای به حداکثر رساندن فرایند خودکارسازی به شمار می آید.

ربات سنجش چراغ خیابان
شکل ۱- ربات متحرک برای سنجش چراغ خیابان

مؤلفین متعددی از جمله بروکز (۲۰۰۹)، لی (۲۰۰۸)، اوجدا (۲۰۰۵)، مندو (۲۰۰۷) و وارد (۲۰۰۸) برای حل این مشکل، از حسگرهای متعدد برای اندازه گیری و سنجش میزان سر خوردگی، تحلیل نوع زمین، تنظیم اقدامات و اعمال انرژی روی هر چرخ استفاده کرده اند. ربات دارای چرخ های مستقلی است، یعنی انرژی متفاوتی می تواند روی هر چرخ اعمال شود، یا حتی در شرایطی که انرژی جنبشی افزایش می یابد، از ترمزهای مجزا استفاده شود. وجود ویژگی های متعدد در رویارویی با اقدامات و وضعیت های متفاوت، باعث دشواری در حل مستقیم مسئله می شود. بنابراین بهتر است این مسئله با کمک فناوری هوش مصنوعی مورد بررسی و تحقیق قرار گیرد.

معماری نرم افزاری و سخت افزاری ربات

پژوهش های انجام شده در مؤسسه پژوهشی VICOROB متعلق به دانشگاه ژیرونا، امکان ساخت ربات های متحرک برای محیط های خارجی را فراهم می آورند. این ربات ها می توانند وظایف مختلفی را بر عهده بگیرند، مثل کارهای نگهداری و ترمیم در شهرهای هوشمند، یا ماموریت های نجات بخش مثل یافتن و کمک به افراد قربانی در هنگام بروز وضعیت های اضطراری.

شکل ۲ پیکربندی و معماری فعلی ربات مورد استفاده در این آزمایش ها را نشان می دهد. یک ربات متحرک از نوع skid-steer با سطح پلتفرم GEARS-SMP از سیستم های آموزشی GEARS در این پژوهش به کار رفته، که مجهز به یک میکروکنترلر dsPic33FJ256MC710 جهت کنترل چهار موتور DC و یک کامپیوتر شخصی فشرده PC i3 با پشتیبانی از فناوری Wi-Fi است. از زبان لینوکس برای برنامه نویسی و کنترل وظایف استفاده می شود. ربات مورد نظر، از دو باتری قابل شارژ ۱۲ ولتی بهره می گیرد، یکی برای استفادۀ PC و دیگری برای موتورهای DC و سایر تجهیزات الکترونیکی موجود در ربات. به علاوه، این ربات به چهار انکدر برای چهار چرخ با CPR 65500 و همینطور چهار سنسور جریان Hall با دامنه سنجش -۵A÷+۵A مجهز شده است که سرعت و جریان را اندازه گیری می کنند. همچنین، یک واحد سنجش اینرسی میکرواسترین ۳DM-GX1، یک گیرنده D-GPS NH 162 و یک دوربین کینکت در این ربات تعبیه شده اند تا بدین وسیله، امکان حرکت خودمختار برای ربات فراهم شود. وزن این ربات برابر با ۱۳٫۴ کیلوگرم بوده و طول و عرض آن به ترتیب برابر با ۰٫۵۹ و ۰٫۵۲ متر است. شعاع چرخ های این ربات برابر با ۰٫۰۸۵ متر است.

و اما نرم افزار PC مبتنی بر چارچوب لینوکس اوبونتو ۱۶٫۰۴ و معماری نرم افزاری Kame کینتیک ROS (سیستم عامل رباتیک) است. سیستم ROS در واقع سیستم عاملی است که به طور ویژه برای ربات ها طراحی شده و امکان برقراری ارتباط و یکپارچه سازی دستگاه های متعدد در یک کامپیوتر منفرد را میسر می سازد. به بیان ساده تر، ROS را می توان به صورت مجموعه ای از گره ها در نظر گرفت که با استفاده از پیام های استاندارد با یکدیگر در تعامل هستند. هر گره برای اجرای وظیفۀ خاصی طراحی شده است، مثل برقراری ارتباط با یک کنترلگر سطح پایین، جمع آوری داده ها از سنسورها، انجام یک محاسبۀ خاص، یا کنترل جوی استیک. سپس گره ها با ارسال پیام ها (که به آنها تاپیک گفته می شود) اطلاعاتی که باید به اشتراک گذاشته شوند و یا در دسترس سایر گره ها قرار گیرند، را منتشر می کنند. معماری نرم افزاری ربات (شکل ۳) در گره های متفاوت، یعنی پاسخ دهنده    ، هدایتگر    ، تغییر زمین و آزمون زمین پیاده سازی می شود. گرۀ پاسخ دهنده مسئول مدیریت جریان داده ها در بورد کنترلی، گرۀ هدایتگر مسئول ایجاد خط سیر     برای حرکت ربات، گرۀ تغییر زمین مسئول تشخیص تغییر بین (نوع) سطوح و گرۀ آزمون زمین مسئول شناسایی زمینی است که ربات در حال حرکت روی آن است.

معماری سخت افزار ربات
شکل ۲- معماری سخت افزاری ربات
معماری نرم افزار ربات
شکل ۳- معماری نرم افزاری ربات

هدایت ربات

به منظور راهبری و هدایت ربات در سناریوهای خارج از ساختمان، شناسایی زمینی که حرکت روی آن صورت می گیرد، از اهمیت بسیاری برخوردار است، چون روی مشخصه های تماس چرخ با زمین تأثیر می گذارد. روش های تشخیص و کلاس بندی زمین متعددی در ادبیات پژوهشی پیشنهاد شده است که از سنسورهای محرک خارجی     وولف (۲۰۰۵)، لو (۲۰۰۹)، گوئرو (۲۰۰۹)، مک دنیل (۲۰۱۰) و روکوپیو (۲۰۱۰) و سنسورهای محرک داخلی    ، اوجدا (a,b2005) استفاده می کنند. با این حال ربات های ما از یک سیستم GPS در یک محیط شهری بهره می گیرند. در محیط شهری مورد نظر، ساختمان هایی وجود دارند که مانع سیگنال دهی و در نتیجه کاهش دقت و یا حتی شکست احتمالی می شوند. در نواحی با دریافت GPS ضعیف، معمولاً از یک سیستم اودومتری استفاده می شود که ابزار کم هزینه و خوبی جهت تخمین مکان ربات به شمار می آید. اما برای ربات های skid-steer، سیستم ادومتری چندان قابل اطمینان نیست، چون ربات در بعضی از حرکت ها می لغزد. برای غلبه بر این مشکل، خود ربات باید تشخیص دهد که روی چه زمینی حرکت می کند تا بدین وسیله، بتواند اودومتری را بر اساس نوع زمین اصلاح کند. روش مورد استفاده توسط ربات برای تشخیص زمین، اندازه گیری و سنجش جریان موتورها در هنگام وجود تغییر است. زمانی که ربات می چرخد و لغزندگی رخ می دهد، جریان ها در بین زمین ها (سطوح) بالاتر و متفاوت هستند. اما وقتی ربات مسیر مستقیمی را طی می کند، جریان ها در ازای زمین های متفاوت، یکسان هستند، بنابراین یک ترمز کوچک به موتورهای عقبی وارد می شود تا جریان ها به منظور تشخیص زمین، افزایش یابند. همانطور که قبلاً گفته شد، رفتار پویای ربات، با توجه به زمین تغییر می کنید، بنابراین اودومتری نیز تحت تأثیر قرار خواهد گرفت.   

طبق پژوهش مندو (۲۰۰۷) و یو (۲۰۰۹) فرمول ربات متحرک skid-steer را می توان به نحوی تغییر داد که شامل یک فاکتور مقیاس دهی ساده شود (۱). علت این تغییر به مرکز چرخش لحظه ای مربوط می شود که تحت تأثیر لغزندگی چرخ ها قرار می گیرد.    

فرمول کنترل ربات
(۱)

که در آن،  و  به ترتیب به افزایش حرکت از چرخ های راست و چپ اشاره می کنند. در ضمن، B برابر با فاصلۀ بین چرخ های چپ تا چرخ های راست بوده و  به ضریب اصلاح اشاره می کند که باید برای هر زمین و شعاع چرخش حاسبه شود. در نهایت  برابر با زاویۀ افزایشی چرخش یافته توسط ربات است. پس از اجرای چندین آزمایش، مقادیری به شرح زیر استخراج شده اند :

مقادیر ضریب
جدول ۱- مقادیر ضریب

هوش مصنوعی برای ربات متحرک

به دلیل دشواری در برنامه ریزی راه حل به شیوۀ معمولی، از یک الگوریتم هوش مصنوعی استفاده شده که می تواند آزمایش های مثبت و منفی را در قالب ID3 الگوریتم تقسیم کننده تکراری ۳) توصیف کند. این الگوریتم نسختین بار توسط کوینلن (۱۹۸۶) معرفی شده و به یک درخت تصمیم گیری اشاره می کند. این درخت از نقطۀ آغاز، راه حل های مختلف را بسته به مراحل قبلی، شرح می دهد.

روش C4.5 با استفاده از مشخصه های گسسته و پیوسته، و از طریق هرس کردن درخت و حذف شاخه های نامربوط، الگوریتم ID3 را بهبود می بخشد.

الگوریتم ID3 به کار رفته در پژوهش رباتی، با استفاده از آزمایش های متعدد، منجر به یک دیاگرام درخت تصمیم گیری با گره های مختلف شده است، که احتمال وضعیت ها و محرک های لغزشی را نشان می دهند. این درخت همچنین می تواند وضعیت های قابل پیش بینی را مورد بررسی قرار دهد. در نتیجه، دیاگرام زیر، با هرس راه حل های منفی به دست می آید.

این الگوریتم ها به روی ربات پیاده سازی می شوند. الگوریتم از وضعیت حرکت ابتدایی در درخت آغاز شده و داده ها را برای یافتن وضعیت لغزشی در مرحلۀ بعدی مورد تحلیل قرار می دهند. سپس اقدامی که باید برای رسیدن به حداکثر نتیجۀ مثبت صورت گیرد، را به روی چرخ مورد نظر اِعمال می کنند.

الگوریتم ID3 در بلوک تغییر زمین (Terrain Change) ترکیب می شود. بدین وسیله در هنگام تغییر زمین یا مواجه شدن با وضعیت لغزشی، مشخص می شود که کدام اقدام متقابل باید اجرا شود.   

الگوریتم ID3 ربات
شکل ۴- الگوریتم ID3

سنجش وضعیت لغزشی و اقدام مرتبط با آن

۱- تصحیح چرخ

زمانی که ربات در حال حرکت در یک مسیر مستقیم روی یک زمین صاف است، چهار چرخ این دستگاه باید با سرعت یکسانی بچرخند. این سرعت به نرخ انکدرها اشاره دارد که تقریباً یکسان است. ضریب اصلاح نیز همان حاشیۀ  است که به زمین بستگی دارد. زمانی که ربات به چپ یا راست می چرخد، هر سمت ربات، یعنی دو چرخ سمت راست یا دو چرخ سمت چپ باید با سرعت یکسانی بچرخند. به بیان دیگر، اطلاعات انکدرها باید با توجه جانب چپ یا راست، مورد استفاده قرار گیرند.   

تفاوت بین دو چرخ در یک جانب، نشان دهنده وضعیت لغزش است. اندازه این اختلاف بسته به نوع زمین  باید بیشتر از مقدار لغزندگی باشد (فرمول ۱). این اطلاعات، پیش نیاز انتخاب یک اقدام برای حل مسئله یا به حداقل رساندن آن است.

۲- اصلاح یک چرخ

یک چرخ ممکن است به دلیل شیب زمین، چاله، تغییر جنس زمین، گل، آب، ریگ و غیره، اثر کمی را به جای بگذارد، یا کلاً اثری از خود بجا نگذارد. آزمایش الگوریتم ID3 برای یکی از چرخ های جلو، دو اقدام امکان پذیر، یعنی Action 1.1 و Action 1.2 را نتیجه داده است که در شکل ۴ مشاهده می شوند. اقدام Action 1.1 به عنوان اقدام مثبت در نظر گرفته می شود، چرا که ربات را از مشکل (زمین مشکل ساز) دور کرده، موجب ترمز چرخ مخالف شده، ربات را چرخانده و از عبور سایر چرخ ها از روی زمین مشکل ساز، جلوگیری می کند. در مورد چرخ های عقب، اقدام Action 2.1 منجر به راه حل مشابه با اقدام Action 1.1 می شود.

الگوریتم ID3 امکان بررسی عمیق راه حل را فراهم می آورد. این روش می تواند سرعت و شتاب دقیق هر چرخ را جهت رسیدن به نتیجۀ بهینه در هر حالت، مشخص کند. 

اصلاح چرخش
شکل ۵- اصلاح یک چرخ

۳- اصلاح دو چرخ

در هنگامی که دو چرخ (مثلاً دو چرخ جلویی) لیز می خورند از اقدام Action 3.1 استفاده می شود. این وضعیت بسیار خطرناک بوده و ربات باید علاوه بر گرفتن ترمز، به عقب باز گردد. تشخیص لغزش از هر دو جانب راست و چپ برای چرخ های جلویی از اهمیت بالایی برخوردار است، در غیر این صورت، چرخ های عقب به سختی می توانند به مشکل غلبه کنند. در زمین های ناهموار، چنین مشکلاتی به کرات اتفاق می افتد.

۴- اصلاح سه چرخ

سه چرخ با اثر کم، مشکل بسیار بزرگی است و می تواند نشان دهندۀ این موضوع باشد که ربات وادار به حرکت در یک جهت ناخواسته شده است. برای تشخیص این وضعیت، باید نقطۀ تنظیم و فاصلۀ اندازه گیری شده را مورد بازرسی قرار داد، تا جانب لغزش یافتۀ ربات را به درستی شناسایی کرد. این وضعیت نیز در زمین های ناهموار مشاهده می شود. در این شرایط، اقدام باید روی چرخی اجرا شود که از خود اثر بجا گذاشته است. این چرخ باید در جهت مخالف حرکت کرده و سایر چرخ ها به صورت رها باقی بمانند.

۵- آکواپلانینگ

وضعیت آکواپلانینگ در سطوح شیب دار و لغزنده و در هنگام چرخش ربات به وجود می آید. سنجش این وضعیت با کمک حسگرهایی اینرسی و GPS انجام می شود. اقدام مناسب برای مواجهه با این وضعیت، حرکت در جهت مخالف برای به حداقل رساندن اینرسی حرکتی است.

آزمایش ها

آزمایشی برای حل وضعیت آکواپلانینگ انجام شده است. حرکت و اقدام های مناسب برای مواجهه با این مشکل مورد بررسی قرار گرفته اند. در نگامی که ربات می چرخد، یک جابجایی عجیب اتفاق می افتد. نیروی اینرسی، موجب جابجایی ربات می شود، چون سطح زمین لغزنده بوده و ربات سعی می کند تا بر خلاف جهت لغزش حرکت کند تا خط سیر را اصلاح کرده و در مسیر اصلی باقی بماند. نتایج این آزمایش در زیر نشان داد شده اند.

اصلاح مسیر ربات
شکل ۶- اصلاح خط سیر ربات

خط سیر بالا که به وسیلۀ بلوک های متعدد نشان داده شده است، مربوط به حرکت ربات در هنگام چرخش می شوند. در این لحظه، ربات در وضعیت لغزش قرار گرفته و یک جابجایی به سبب اینرسی و شتاب نرمال به وجود می آید. اقدام اِعمال شده روی چرخ ها در این لحظه پاسخگو نیست، تا زمانی که چسبندگی دوباره بازیابی شود. در خط سیر پایینی، از هوش مصنوعی جهت هدایت ربات استفاده شده، که تفاوت آن با خط سیر بالایی به خوبی نشان داده شده است. با ترکیب هوش مصنوعی در سیستم، یک سیگنال اصلاحی روی چرخ های داخلی اِعمال می شود تا  چسبندگی را بازیابی کنند. در این حالت، چسبندگی در چرخ های داخلی به سبب وجود شیب، بیشتر از چسبندگی در چرخ های خارجی است. در این وضعیت، سیستمی که فاقد الگوریتم ID3 است بهتر می تواند حرکت ربات را کنترل کنند.

نتیجه گیری

امروزه، خودروها از سیستم های متعددی برای اجتناب از وضعیت هایی استفاده می کنند که در آنها، راننده قادر به کنترل کامل خودرو نیست. ربات های غیر هولونومیک نیز در چنین شرایطی از سیستم های مختلف برای حرکت بهره می گیرند. این مقاله به منظور حل این مسئله، از ربات های غیر هولونومیک استفاده می کند. درحال حاضر، ربات های ساخته شده برای محیط های خارج از ساختمان پدیدۀ جدید و غیرمعمولی به شمار می آیند. از این ربات ها می توان برای تحلیل چراغ های خیابان بهره گرفت. در این حالت، باید از نوعی روش کنترلی برای جلوگیری از حرکات نامناسب ربات استفاده کرد. امید است که این نوع مسائل، توجه بیشتری را در بین جوامع علمی به دست آورده و در آینده پژوهش های بیشتری برای حل آنها انجام شود.

بیشتر بخوانید :

منبع Science Direct

همچنین ببینید

ربات های تویوتا با کپی برداری از انسان ها، انجام کارهای خانه را یاد می گیرند

ربات های تویوتا با یادگیری از انسان ها، کارهای خانه را انجام می دهند

شرکت خودروسازی تویوتا در حال توسعه گونه ای از ربات هاست که با مشاهده نحوه …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *