דוגמת הרצה
דוגמת הרצה
בסעיף תהליכים וזרימת מידע הוצגו המסכים השונים המוצגים במהלך ריצת הפרויקט, ולכן לא אראה אותם בשנית בחלק זה. בסעיף זה, ברצוני להדגיש מספר נקודות בסיסיות ולתת הסברים כלליים על דרך השימוש במערכת והשלבים, אותם אנו עוברים תוך כדי ריצה.
1. רשאית, עלינו לוודא כי התוכנה והחומרה, בהם יש שימוש על ידי המערכת, מותקנים ומחוברים. התוכנות הם: MATLAB (כולל שני כלים נוספים בה Image Processing ו-Image Acquisition), Phantom, BricxCC , דרייברים למצלמה ולמגדל השידור. חומרה: מצלמה פועלת ומחוברת היטב, בקר RCX כולל סוללות חדישות, מגדל שידור תקין ומחובר להתקן USB במחשב. במידה וכל הנ"ל פועלים/מותקנים, אנו יכולים להפעיל את מודל העקיבה.
2. הקובץ הראשי נקרא "ProjGui", אותו יש להריץ לאחר עליית MATLAB.
3. בשלב זה יוצג חלון כניסה ראשוני איור 8.1
ולאחריו נתבקש להזין את נתוני המצלמה
במידה ואלו השתנו איור 6.2
4. לאחר מכן, יתקבל מסף Preview המציג
את שהמצלמה רוכשת, ומצדו הימני מסך
איור 6.2.1, בו אנו יכולים להניע את הרובוט לשם שיפור
איור 8.1 מסך כניסה למערכת
זווית צילום, בעזרת מקשי החיצים, או בעזרת הלחצנים בחלון התוכנית.
5. לאחר "תפיסת" האובייקט בחלון התצוגה, אנו לוחצים על לחצן "Snapshot", ונרכשת תמונה סטטית של זירת האירוע.
6. סמן העכבר נהפך לסמן "+" ועלינו לסמן את האובייקט, אחריו אנו רוצים לעקוב. סימון זה מתבצע בעזרת העכבר. לחיצה ימנית ארוכה, סימון, ושחרור לחיצה.
כעט סיימנו, למעשה, את מלאכתנו באתחול המערכת, מכאן והילך, הרובוט יחל בעקיבה אחר האובייקט. בכל רגע נתון, תתקבל תמונה עדכנית של זירת העקיבה, ובתוכה האובייקט מסומן בריבוע שחור (חלון החיפוש), וב-"+" אדום יסומן מרכז המסה של אובייקט העקיבה.
כאשר ריצת המערכת מסתיימת, יש באפשרותנו להתחיל מהתחלה תהליך חדש, כלומר סימון מחדש של אובייקט וכו', או להציג את סרט העקיבה. לחצן "Show Movie" יציג בפנינו בעזרת Media Player של Windows את הסרט, שנבנה במהלך העקיבה. קובץ זה נקרא ProjectMovie.avi. ישנה אפשרות לא ליצור את הסרט במהלך ריצת הפרויקט, במידה והמשתמש מבחין בעומס יתר על המחשב, שכן פעולת בניית הסרט צורכת משאבים נוספים וכן זיכרון רב לשמירת התמונות.
במידה ונחליט כי ברצוננו לסיים את העבודה, לחצן "Close", יבצע שחרור של כל משתני הסביבה והפרמטרים, שהוגדרו בשלבים הראשונים: "שלב אתחול משתני תוכנה" ו-"שלב אתחול משתני חומרה". פעולה זו חשובה, ואלמלא מתבצעת, המערכת יכולה להיגרר למצב של זליגת זיכרון (Memory leaks). לכן יש להקפיד לסיים את העבודה בצורה מבוקרת.
איור 8.2 מציג את תוכנת Media Player כאשר, זו מראה את הסרט שנבנה במהלך העקיבה. כדאי לשים לב, כי ישנו סימון אדום אנכי ואופקי לאורך כל המסך, המציין את מרכז רזולוציות התמונה. נקודת מפגש הקווים היא נקודת האמצע, אליה הרובוט צריך "להביא" את האובייקט וזאת כדי לשמר את העקיבה. מבחינת המערכת, ברגע שאובייקט העקיבה נמצא בתחום ממרכז התמונה – זהו מצב של "On target" והודעה מתאימה (בצבע צהוב) תופיע בחלון הפרויקט.
איור 8.2 מתוך סרט העקיבה, שימו לב לסימון מרכז התמונה לעומת סימון מרכז המסה של האובייקט.
ניתוח יעילות
שלוש מטרות הפרויקט, שהוגדרו בדו"ח הביניים ובהצעת הפרויקט, הושגו במלואם.
נמצא אלגוריתם לעקיבה, הניתן למימוש במערכת שאינה זמן אמת כגון MATLAB. בעיות סנכרון הזמנים, בין החומרות השונות, נפתרו על-ידי שימוש בתוכנות נוספות (עורכי קוד ופקדים), המאפשרים שליטה נוחה ופרטנית במצלמה, ברובוט ובמגדל השידור.
ביצועי המערכת תלויים מאוד במשאבים, בהם אנו משתמשים. בהינתן מעבד Pentium 4 ומעלה ומצלמה הרוכשת תמונות מעל ל-20fps , ניתן להגיע לביצועי סבירים ואף יותר מכך.
מבדיקות, שערכתי בכלים שברשותי (מחשב ומצלמה), המערכת עובדת בין 10-20fps. תוצאה זו מפתיעה ביותר, ומאפשרת תנועה, כמעט חופשית, לאובייקט בזמן העקיבה. ככל שהמשאבים בהם נשתמש יהיו פשוטים יותר, מהירות הריצה תקטן וכך נקבל אילוץ לתנועת האובייקט במהירות איטית בלבד.
האלגוריתם מניב תוצאות מכסימליות, כאשר זירת המעקב אינה מוארת באור שמש מסנוור ולחלופין אינה חשוכה מידי, למרות שעבור מצבים אלו ניתן פתרון בפרויקט.
כמו-כן, על מנת לקבל תוצאות מהירות במשלוח תשדורות לרובוט, יש להשתמש בסוללות חדישות, המאפשרות תשדורות יחסית חלקות, ללא הפרעות מרחק וזוויות שידור.
מבחן התוצאה של פרויקט זה מתחלק ל-2 חלקים.
האחד הוא מבחן האלגוריתם, או במילים אחרות מבחן מימוש האלגוריתם ב-MATLAB. MATLAB אינה תוכנת Real Time ולכן ראשית, יש לבדוק, האם האלגוריתם מניב תוצאות רצויות, על אף ההאטה שנגרמת כתוצאה מפלטפורמת הפרויקט. כמובן שאחת המטרות החשובות של הפרויקט, הייתה מציאת אלגוריתם כזה, שיושפע במידה מועטה מאיטיות החישוב של תוכנה כגון MATLAB בהשוואה לתוכנות Real Time.
המבחן השני, שיש לבצע הוא מבחן מימוש האלגוריתם, בזמן אמת, תוך כדי שימוש ברובוט נ-RCX.
כפי שציינתי רבות, תקשורת ה-IR בין התוכנה לרובוט, צורכת זמן רב ולכן מעקבת את מחזוריות העקיבה. כלומר ישנה האטה נוספת בקונפיגורציות העבודה בפרויקט זה והיא - זמני השידור לרובוט.
מבחן זה אמור לבדוק את תוצאת העקיבה, כאשר אנו שולחים הודעות עקיבה אמיתית בהתאם לתוצאות האלגוריתם לרובוט.
לאחר חיפושים רבים, מציאת אלגוריתם ומימושו הופקו התוצאות הבאות:
איור9.1
ניתן לראות בברור, כי האלגוריתם עובד בצורה חלקה ומספק תוצאות טובות. באיור 8.1 מסומן ב"+" אדום, מרכז המסה של האובייקט הנעקב. כפי שמעיד האיור, אנו מצליחים לעקוב אחריו בכל תמונה ותמונה מבלי לאפשר לאובייקט לברוח.
בבחינת האלגוריתם בדוגמא הנ"ל הופקו תוצאות במקצבים משתנים בין 20-30 fps. מקצבים אלו גבוהים במיוחד עקב אי-שימוש במגדל השידור לתשדורות IR לרובוט.
במבחן הבא, אבדוק, כיצד עובד האלגוריתם, תוך כדי שליחת הודעות עקיבה לרובוט.
נקודה ראשונה וחשובה מאוד, שהתגלתה מיד בתחילת מבחן המערכת בשימוש עם הרובוט, הייתה עוצמת הסוללות שבבקר ה-RCX. כאשר השתמשתי בסוללות ישנות, חלה ירידה משמעותית במקצבי העבודה ואף בתשדורות שגויות. על-מנת להתגבר על בעיות אלו, יש להשתמש
בסוללות טובות ומלאות במהלך ריצת המערכת. ישנה אפשרות לרכוש בקר עם יחידת הספק חיצונית ובכך לחסוך את השימוש בסוללות והחלפתן כל מספר ימים.
מחשב
RAM
Video Card
מקבצי עבודה
Pentium III
512 M
32 M
5 – 10 fps
Pentium IV
1 G
128 M
10 – 20 fps
איור 9.2
באיור 8.2 מובאת טבלה, המסכמת את מקצבי ריצת המערכת, על שני מחשבים שונים. הראשון הינו מחשב Pentium III, בעל נתונים פשוטים. מחשב זה נלקח לצורך בדיקת האלגוריתם על מערכת שווה לכל נפש. ברגע שנצליח להריץ את הפרויקט על פלטפורמה שכזו, ולקבל תוצאות משביעות רצון, נוכל להניח כי המערכת עובדת בצורה יעילה, שכן רוב המחשבים הביתיים, הינם בעלי נתונים טכניים טובים מאלו.
מצד שני נלקח מחשב עם נתונים טובים יותר, ועם זאת, לא מהטובים ביותר. במחשב זה ניכר שיפור משמעותי בזמני ריצת האלגוריתם ובכך קיבלנו מערכת יציבה ואמינה הרבה יותר. כיוון שעולם המחשבים משתנה בכל רגע, ובכל יום "משתחרר" מעבד חזק מקודמו, ניתן להניח כי מעת ואילך, הפרויקט הנ"ל יוכל לבצע את משימתו על כל מחשב ביתי, מהפשוט ביותר ועד לחדיש.
איור 9.1 תוצאות אלגוריתם העקיבה לאחר מימושו ב-MATLAB
איור 9.2 טבלת השוואות בין מערכות שונות

0 Comments:
Post a Comment
<< Home