מטרות
תקציר
בניית מודל רובוטי לעקיבה אוטומטית לפי זיהוי מטרה בסביבה שאינה מלאכותית, הרובוט מצויד במצלמה המשדרת תמונות למחשב פי סי, המחשב מבצע דגימת תמונה ועיבודה לצורך זיהוי המטרה. בהתאם לזיהוי, משדר המחשב פקודות תנועה לרובוט
בניית מודל רובוטי לעקיבה אוטומטית לפי זיהוי מטרה בסביבה שאינה מלאכותית, הרובוט מצויד במצלמה המשדרת תמונות למחשב פי סי, המחשב מבצע דגימת תמונה ועיבודה לצורך זיהוי המטרה. בהתאם לזיהוי, משדר המחשב פקודות תנועה לרובוט
דגימת תמונה
רכישת תמונה לעיבוד מתבצעת בסיב נפרד חסכון בזמן מכיוון שהיא
פעולת , I/O ועל כן צריך לסנכרן את קצב דגימת התמונות ,עם קצב עיבוד התמונה ,על
מנת למנוע מצב בו אנו מעבדים תמונה שאינה משקפת את המצב העכשווי
הפתרון שמומש הוא הפעלת אות Trigger בסיום עיבוד כל תמונה, שיסמן "אור ירוק" לרכישה של התמונה הבאה.
סוגיה משמעותית נוספת היא מציאת Spectrum אידיאלי לעבודה.
ידוע כי בחירת Spectrum של מקור אור כזה או אחר, ישפיע באופן ישיר על צבע האובייקט, הנראה תחת אותו אור. כיוון שהאלגוריתמים הנבחנים בפרויקט זה, מסתמכים במידה רבה בדיוק של ייצוג הצבע, מקור האור ופורמט ייצוג התמונה מהווים שיקול חשוב ומשמעותי להצלחת העקיבה.
עיבוד תמונה וזיהוי המטרה
זיהוי המטרה בצורה טובה ויעילה, היא משימה קשה והכרחית להצלחת הפרוייקט ורק עם צליחתו, יש מקום להמשיך בתהליך המעקב.
מכיוון שבפרויקט זה יש שימוש במשאבי המחשב (דגימת תמונות, העברת מידע לרובוט באינפרא אדום וכדו'), אין באפשרותי לממש אלגוריתם "כבד", הגוזל משאבים חשובים – דבר שמאט משמעותית את ביצועי כלל מערכת העקיבה.
מתוך אילוץ זה, נדרשתי למצוא מספר אלגוריתמים מהירים מחד גיסא ואמינים מאידך גיסא, ולאחר חקר ישימות, למצוא את אותו אלגוריתם, בעל התוצאות הטובות ביותר, במונחים של מהירות, אמינות ומימוש.
ראשית, היה צורך לבחור, כיצד יזהה הרובוט העוקב את המטרה בתמונה המתקבלת, ועל סמך זה למצוא שיטה לעקיבה.
הועלו מספר אפשרויות:
אפשרות ראשונה [מקור 8] הייתה האפשרות של חיפוש התנועה, על-פי תמונות ההפרשים (Motion Detection–Some of Absolute Differences), אפשרות זאת נפסלה כבר בשלבים הראשונים של המימוש, כיוון שהמצלמה בפרויקט זה אינה נייחת ולכן תמונת ההפרשים בין שני frames עוקבים, אינה תורמת כל מידע על מיקום המטרה בתמונה. יש לזכור, כי לא רק אובייקט המטרה זז במרקע סטטי, אלא כל התמונה שהמצלמה קולטת משתנה בצורה דינאמית בכל איטרציית זמן. ניתן לבצע שיערוך של תנועת המצלמה, אך שערוך זה קשה במקרה זה מכיוון שזאת תנועה לא מדויקת, בגלל מגבלות הדיוק של מנועי הבקר, וכמו-כן, באופן כללי שערוך כזה הוא בסיבוכיות גבוהה יותר מהפתרון האלטרנטיבי.
אפשרות שנייה, הייתה זיהוי הצורה של הרובוט הנרדף, אפשרות זאת נפסלה גם כן, כיוון שבזוויות שונות, מקבלת המטרה צורות שונות ולא ניתן לשמור על אינווריאנטיות של מטרת הרדיפה.
אפשרות שלישית שהתקבלה על סמך מאמרים רבים [[מקור 12][מקור 13][מקור 14] [מקור 15][מקור 16]], הייתה זיהוי המטרה, על-סמך הצבע שלה. הרעיון היה לדאוג לכך, שהמטרה תהיה בצבע שונה (אך לא בהכרח!) מסביבתה, ו-"כל שיהיה" על הרובוט לעשות, הוא למצוא את הצבע המסוים הזה בתמונה. על מנת להקשות את הזיהוי, הוחלט מראש, שלא ניצור עבור הרובוט הרודף, סביבה מלאכותית (כלומר סביבה בעלת צבע אחיד השונה מזו של המטרה).
כיוון שהמטרה נעה בחופשיות במרחב, אין לצפות מאיזו זווית המצלמה תקלוט את המטרה ולכן הנחת היסוד היא כי המטרה צריכה להיות ויזבילית מכל זווית .
הכוונת הרובוט
החלטת כוון התנועה של הרובוט, מתקבלת ביחס ישיר לתוצאות החיפוש (מציאה / אי מציאה של המטרה בתמונה הנרכשת). הפקודות האפשריות הנם: תנועה ימינה, תנועה שמאלה, תנועה למעלה, תנועה למטה, עצירה. (האלגוריתם מאפשר הרחבה לדרגת חופש נוספת – סיבוב סביב האובייקט).
הבעייתיות במשימה זו היא השליטה בתנועות הרובוט. במידה והמטרה רחוקה מהמצלמה – כל תנועה קטנה של הרובוט, תגרום למטרה, לצאת מרזולוציות המצלמה ולהפך, כאשר המטרה קרובה למצלמה, תנועה לא מספיק ממושכת, לא תאפשר עקיבה רציפה ויעילה ואף עלולה להסתיים בבריחת המטרה מהרובוט.
מכאן נובעת הנחת יסוד נוספת, בהתייחס למרחק האובייקט הנעקב מהמצלמה/רובוט. מרחק זה יקבע בהתאם למבחני Try and False, שיבוצעו לאחר מימוש האלגוריתם.
הרובוט שהינו יחידת RCX – זהו מחשב קטן, המבוסס על שבב הH8- של היטאצ'י. מעבד שמונה ביט זה, מספק serial I/O , מתמיר אנלוגי לדיגיטאלי וטיימרים, ועליו לקבל פקודות רציפות, לכאורה, המציינות את הכיוון שעליו לנוע ,על-מנת לשמר את מעגל העקיבה.
פעולת "הכוונת הרובוט", הינה פעולה, הדורשת משאבים רבים ועל-כן, נמשכת זמן רב ויקר.
כדי לפתור בעייתיות זו, השתמשתי בשפה חדשה Not Quite C NQC המאפשרת תכנות מתקדם ל-RCX ו"הורדת" התכנה לבקר.
הפתרון, עליו ארחיב בהמשך (בשלב תיאור האלגוריתמים), מבוסס על רעיון של יצירת Events (אירועים) ושליחת הודעה לרובוט, אך ורק כאשר ישנו שינוי כיוון או עצירה, ובכך אנו חוסכים תקשורת IR מיותרת, אלא כשזו נדרשת בלבד.
שילוב מערכות
יש צורך בבניית מערכת אחת, המשלבת מערכות תוכנה וחומרה, בעלות ממשקים ומקצבי עבודה שונים, בהתאם למגבלות טכניות שונות.
על-מנת לאפשר רכישת תמונות ממצלמת USB ותקשורת IR עם רובוט RCX, יש צורך בידע מעמיק בתחום MATLAB™ Integration המאפשר יצירת קשר בין MATLAB לתכניות Processes אחרות.

0 Comments:
Post a Comment
<< Home