رادمان پژوه هوشمند تهران

مکان یابی در ربات های فوتبالیست انسان نما

1398-02-13 در 07:37

یکی از بخش های مهم در هر ربات فوتبالیست مسیله مکان یابی و تشخیص موقعیت و جهت خود در زمین مسابقه و تشخیص اشیا به وسیله بینایی ربات می باشد. مسیله مکان یابی و تشخیص موقعیت تاثیر به سزایی در افزایش میزان هوشمندی ربات دارد. در این مقاله روشی ارایه گردیده تا ربات بتواند با استفاده از ویژگی های زمین نظیر خطوط و دروازه ها موقعیت خود را در زمین مسابقه تخمین زده و بیابد.

رادمان پژوه هوشمند تهران-مکان یابی در ربات های فوتبالیست انسان نما
مکان یابی در ربات های فوتبالیست انسان نما

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


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


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

اودومتری

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

تشخیص محیط با استفاده از بینایی

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

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

مشخصات زمین بازی

زمین مسابقات ربوکاپ در لیگ ربات های انسان نما مستطیلی به ابعاد9 متر در 6 متر می باشد که متشکل از 2 دروازه و خطوط زمین فوتبال به شرح زیر است:

زمین مسابقات ربوکاپ در لیگ ربات های انسان نما
زمین مسابقات ربوکاپ در لیگ ربات های انسان نما

ابعاد زمین مسابقات در لیگ ربات های انسان نما

ردیف عنوان سایز کودک سایز نوجوان و بزرگسال
A طول زمین 900 900
B عرض زمین 600 600
C عمق دروازه 50 60
D عرض دروازه 180 260
E طول محوطه جریمه 60 100
F عرض محوطه جریمه 345 500
G فاصله نقطه پنالتی 180 210
H قطر دایره مرکز زمین 150 150
I عرض نوار دور زمین 70 70

همانطور که در شکل مشخص است زمین مسابقه شامل خطوطی است که تشخیص و شناسایی این خطوط اساس حل مسئله مکان یابی می باشد. همچنین تشخیص ویژگی های دیگر نظیر نشانه های محل تقاطع خطوط ( تشکیل نشانه های L مانند و یا نشانه های T مانند و یا X مانند ) نیز در بهبود دقت کمک شایانی می کند.

دریافت تصویر از دوربین و مشخصات فریم

گام نخست دریافت تصاویر ارسالی از دوربین ربات می باشد. سرعت ارسال این تصاویر و همچنین ابعاد فریم در نتیجه نهایی و خروجی الگوریتم تاثیر به سزایی دارد. هرچه نرخ فریم در ثانیه (FPS) در دوربین مورد استفاده بیشتر باشد دقت محاسبات بالاتر خواهد رفت. همچنین هرچه اندازه فریم نیز بزرگتر باشد عملیات پردازش زمان بر تر و راندمان آن پایین تر خواهد بود. بالعکس با کوچک کردن فریم نیز اگرچه سرعت اجرا بالاتر است ولی در عین حال دقت پردازش به دلیل داده های ورودی کم به شدت کاهش می یابد.

بنابراین انتخاب وضوح تصویر مناسب نکته ی قابل اهمیتی است. وضوح تصویر با توجه توان سخت افزاری و نوع کاربرد مورد نظر انتخاب می شود. در مسئله مکان یابی و استخراج ویژگی های مورد نظر با توجه به ابعاد زمین مسابقه وضوح 640*480 گزینه مناسبی می باشد.

عملیات پردازش تصویر بر روی فریم ارسالی با کمک کتابخانه Open-Cv انجام می پذیرد. این کتابخانه ی متن باز مخصوص پردازش تصویر و بینایی ماشین می باشد که اکثر الگوریتم های مورد نیاز را به صورت بهینه برای استفاده پیاده سازی کرده است. همچنین فضای رنگی مورد استفاده در این ربات فضای رنگ HSV می باشد. دلیل انتخاب این فضای رنگی حساسیت کمتر مولفه های Hue ، Saturation  و Value به میزان نور و یا جا به جایی سورس تصویر (دوربین) نسبت به مولفه های فضاهای رنگی دیگر می باشد.

استخراج محدوده زمین مسابقه

گام نخست در انجام عملیات پردازش استخراج محدوده زمین مسابقه و حذف اطلاعات خارج از محدوده زمین می باشد. این کار با حذف اطلاعات اضافی و محدود کردن پردازش به زمین مسابقه به طور خودکار باعث حذف نویز ها و داده های اضافی محیط شده و باعث افزایش دقت در محاسبات و البته افزایش سرعت پردازش می شود.

الگوریتم استفاده شده برای پیاده سازی این عملیات الگوریتم گراهام می باشد که با کمک اطلاعات بازه رنگی زمین که در جدول رنگ به ربات داده شده  به روش پوش محدب به استخراج مرز حاشیه زمین و محیط بیرون بپردازد.

انجام عملیات لبه یابی و استخراج خطوط زمین

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

سپس می بایست با اعمال الگوریتمی جهت لبه یابی، لبه های میان رنگ های سبز و سفید را استخراج کنیم. جهت انجام عملیات لبه یابی عملگر های متفاوتی با مشخصات متفاوتی وجود دارند که از شاخص ترین آنها می توان به عملگر های Sobel و Canny اشاره نمود.

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

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

فریم دریافتی از ربات (تصویر چپ) فریم پردازش شده با مشخص کردن ویژگی های استخراج شده در محدوده زمین (تصویر راست)
فریم دریافتی از ربات (تصویر چپ) فریم پردازش شده با مشخص کردن ویژگی های استخراج شده در محدوده زمین (تصویر راست)

استخراج نشانه ها و تقاطع خطوط

      در گام بعد و با داشتن اطلاعات خطوط نسبت به زاویه و محل برخورد خطوط به تشخیص نشانه های این خطوط می پردازیم. این نشانه های عبارت اند از:

  • نشانه های L : محل برخورد ابتدا یا انتهای دو خط با یکدیگر مانند نشانه تشکیل شده در نقطه کرنر یا گوشه های محوطه جریمه.
  • نشانه های T : محل برخورد ابتدا یا انتهای یک خط با وسط خط دیگر مانند نشانه های تشکیل شده در محل تقاطع خطوط طولی خط عرضی مرکز زمین مسابقه.
  • نشانه های X : محل برخورد وسط یک خط با وسط خط دیگر مانند محل تقاطع خط عرضی مرکز زمین و دایره مرکزی زمین مسابقه.

این نشانه ها نیز اطلاعاتی از اطراف ربات در اختیار آن قرار می دهد که در راستای استفاده برای حل مسئئله مکان یابی مورد استفاده قرار می گیرد.

یافتن فواصل ویژگی های استخراج شده از ربات

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

یافتن فواصل به کمک توابع مثلثاتی

یکی از راه های یافتن فاصله ربات تا جسم مورد نظر استفاده از روابط مثلثاتی با داشتن اطلاعاتی از پیش تعیین شده می باشد. برای مثال اگر فاصله ربات تا نقطه مورد نظر را d بنامیم و ارتفاع ربات برابر با h باشد و همچنین زاویه گردن ربات نسبت به افق a باشد. با توجه به این که ربات به صورت عمود بر روی زمین قرار گرفته و مثلث قائم الزاویه را تشکیل می دهد. فاصله d از رابطه زیر قابل استخراج می باشد:

d=tan(a)*h

که در آن a زاویه گردن ربات با افق و h ارتفاع ربات از زمین می باشد.

یافتن فاصله ربات تا یک نقطه به کمک روابط مثلثاتی
یافتن فاصله ربات تا یک نقطه به کمک روابط مثلثاتی

برای دریافت اطلاعات بیشتر در رابطه با این مقاله می توانید با استفاده از این لینک به متن کامل دسترسی داشته باشید.




۱ دیدگاه برای این نوشته درج شده

  • سلام، این یک دیدگاه است.
    برای شروع مدیریت، ویرایش و پاک کردن دیدگاه‌ها، لطفا بخش دیدگاه‌ها در پیشخوان را ببینید.
    تصاویر نویسندگان دیدگاه از Gravatar گرفته می‌شود.