Presentation is loading. Please wait.

Presentation is loading. Please wait.

השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים

Similar presentations


Presentation on theme: "השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים"— Presentation transcript:

1 השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים
הטכניון - מכון טכנולוגי לישראל TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY הפקולטה להנדסת חשמל המעבדה לבקרה ורובוטיקה השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים מגישים: מיכאל פיטרמן ערן אליהו מנחה: קובי כוחיי סמסטר: אביב תשס"ד

2 הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
הקדמה הפרויקט הזה הוא מעין פרויקט המשך לפרויקט שעסק בפיתוח אלגוריתם של רובוט נייד להגעה למטרה באמצעות הימנעות ממכשולים. בפרויקט הזה, החלטנו לעסוק בהשוואה של אלגוריתמים קיימים להימנעות ממכשולים והגעה למטרה והשוואתם לאלגוריתם שמוצא את המסלול האידיאלי, כאשר המכשולים הינם נייחים, ומיקום המכשולים אינו ידוע לרובוט מראש. הפיתוח כולו נעשה בסביבת Microsoft Visual Studio .NET בשפת С++, בניגוד לאלגוריתם הקודם שנכתב בשפת C. בפרויקט הזה השתמשנו בשני אלגוריתמים עיקריים. האלגוריתם הראשון הוא האלגוריתם שבו השתמשנו בפרויקט הראשון, אשר מתבסס על מפת הפוטנציאלים הסטאטית והדינאמית. האלגוריתם השני הוא אלגוריתם שמשתמש בשיטת ה – VFF ( Virtual Force Field), כשהרעיון הוא שכל מכשול מפעיל כוח וירטואלי על הרובוט והמטרה מפעילה כוח, אך בכיוון ההפוך. האלגוריתם השלישי בו השתמשנו הוא אלגוריתם שמוצא את הדרך האופטימאלית למטרה, כאשר המידע שהוא מקבל על המפה, הוא מידע מלא על המכשולים. האלגוריתם הזה נועד בעיקר בשביל השוואה ובדיקת היעילות של שני האלגוריתמים האחרים.

3 תיאור הבעיה הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה תיאור הבעיה נתונה סביבה מוגדרת, שבתוכה מכשולים נייחים. כמו כן נתונה נקודת ההתחלה של הרובוט ונקודת היעד שלו. מטרת הרובוט היא להגיע לנקודת היעד בלי להתנגש במכשולים. הרובוט מאויש בחיישנים אשר מסוגלים להבחין במכשול במרחק מסוים מהרובוט. הרובוט לא יודע מראש על מיקום המכשולים. המטרה של הרובוט היא להגיע לנקודת היעד מנקודת ההתחלה בצורה האופטימאלית. אנו נממש את שני האלגוריתמים בתכנות מונחה עצמים ונפעיל אותם על הרובוט במספר מכשולים שונים ופרמטרים שונים של האלגוריתמים, ואחר כך נציג את התוצאות של הבדיקות וננסה לנתחן. הניווט של הרובוט יעשה בשני שלבים: ההכנה ההתחלתית של המסלול, כאשר לרובוט ידוע גודל המפה, ונקודת הסוף, אך לא מיקום המכשולים. בעצם זוהי הכנת מפה על "עוור". 2. ניתוח זמן אמת של המידע מהחיישנים של הרובוט ועקיפת המכשולים או הפעלת מנגנון הצלה ברגע שהרובוט נתקע.

4 מבנה התכנית הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה מבנה התכנית התכנית כתובה בשיטת תכנות מונחה עצמים, כאשר כל פרט בהדמיה, מיוצג ע"י מחלקה בתכנית. בתכנית שלנו קיימות 4 מחלקת ראשיות: רובוט אלגוריתם 1 אלגוריתם 2 האלגוריתם האופטימאלי קיימות, כמו כן, מספר מחלקות עזר: מפה הדרך שעבר הרובוט כוח המופעל על הרובוט המחלקות מחולקות למספר קבצים בפרויקט בשביל נוחות העבודה: Robcpp.cpp – קובץ המכיל את הפקודות להרצה של התכנית, את המכשול ואת יצירת האובייקטים הראשוניים. Misc.cpp – קובץ אחראי לקביעת הפרמטרים של הריצה, למבני העזר ולמחלקות העזר. Algorythm1.cpp – קובץ המכיל את המחלקה של האלגוריתם הראשון. Algorythm2.cpp – קובץ המכיל את המחלקה של האלגוריתם השני. Optimal.cpp – קובץ המכיל את המחלקה של האלגוריתם האופטימאלי.

5 מבנה התכנית הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה מחלקת Rob:
הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה מבנה התכנית מחלקת Rob: המחלקה הזו בעצם אחראית לאובייקט הרובוט עצמו. היא מטפלת בפונקציות העיקריות של הרובוט: יצירת רובוט חדש – הגדרת נקודת היעד, נקודת ההתחלה, הכיוון ההתחלתי. הזזת הרובוט בכיוון שהוא פונה אליו. סיבוב הרובוט סביב צירו. חישוב קואורדינאטות המכשולים אשר הרובוט רואה בעזרת החיישנים שלו. החזרת ערכים שונים של הרובוט, כגון נקודות יעד ומיקום עכשיו, מיקום המכשולים וכו'. מחלקת Algo1 ו – Algo2: המחלקות של האלגוריתמים אחראיות למציאת הצעד הבא של הרובוט. האובייקט של האלגוריתם, מקבל את הנתונים של הרובוט מהרובוט עצמו ולפי הנתונים האלה, הוא מחליט לאיזה כיוון הרובוט צריך לנוע ונותן את הפקודה המתאימה בעזרת המתודה המתאימה של אובייקט הרובוט. מחלקת Optimal: המחלקה של האלגוריתם האופטימאלי פועלת בצורה שונה משני האלגוריתמים האחרים. המחלקה הזו נועדה רק בשביל הבדיקה ולכן היא לא צריכה להזיז את האובייקט של הרובוט. היא פשוט מקבלת את כל נתוני המוצא של התנועה – נקודת ההתחלה ונקודת הסוף ואת מפת המכשולים הכללית (לא זאת שהרובוט רואה, אלא את המפה של כל המכשולים שלא ידועה לרובוט), ולפי המפה הזו, האלגוריתם מחשב את הדרך האופטימאלית למטרה. מחלקת Map: המחלקה הזו מטפלת בכל מה שקשור לעיבוד מפות, כאשר מפה היא פשוט מטריצה בגודל שנקבע בפרמטרים, כאשר לכל נקודה של המטריצה קיים ערך מסוים כדי לתת משמעות לכל נקודה – נקודה ריקה, מכשול וכו'. במשך התכנית, אנו משתמשים בכמה מפות, כאשר החשובה ביניהן זו המפה הכללית בה מסומנים המכשולים. המחלקה יודעת להציב ערך לנקודה, להחזיר ערך של נקודה, להעתיק מפה למפה אחרת, להדפיס מפה על המסך.

6 הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
אלגוריתם 1 באלגוריתם הזה נשתמש במושג "מפת פוטנציאל". הכוונה במושג הזה היא שאנו מחלקים את המרחב לרשת (מטריצה) שכל תא בה מיוצג ע"י ערך כלשהו, האלגוריתם מחליט לאן ינוע הרובוט לפי הערך של התא בו הוא נמצא והערך של התאים ליד. האלגוריתם שלנו, בעצם מורכב משתי מפות עזר – קיימות שתי מפות פוטנציאל: מפת הפוטנציאל הסטטי – המפה הזו מחושבת מנקודת היעד, ובכל נקודה של המפה, ערך הנקודה הוא, כפי שאמרנו, המרחק המינימאלי מנקודת היעד, עם התחשבות במכשולים הידועים לנו מראש (בתחילת הריצה, אין מכשולים ידועים מראש). מפת הפוטנציאל הדינאמי – המפה הזו היא מפה יותר קטנה מהמפה הקודמת, והיא מחושבת כל צעד מחדש, ע"י מידע המגיע ממערך החיישנים של הרובוט. בכל מקום שקיים מכשול, שלא ידענו עליו מראש, נוצרת גבעת פוטנציאל. בכל צעד, כאשר מחושב הפוטנציאל הדינאמי באזור, אנו מחברים (חיבור בין תאים) את הפוטנציאל הדינאמי באזור ואת הפוטנציאל הסטטי באזור מסביב לרובוט (לא כל המפה, אלא רק האזור בקרבת הרובוט) ולפי המפה הנוצרת, הרובוט מחליט על כיוון הצעד הבא שלו.

7 אלגוריתם 2 Ftotal = ∑Fr + Ft
הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה אלגוריתם 2 האלגוריתם הזה מבוסס על שיטה הנקראת VFF – Virtual Force Field. האלגוריתם הזה משתמש בשדה וירטואלי על מנת לכוון את הרובוט כלפי מטרתו. העיקרון הוא פשוט: המטרה מפעילה כוח מסוים על הרובוט, והמכשולים שהרובוט רואה מפעילים עליו כוח בכיוון הנגדי, וע"י כך דוחים את הרובוט. כאשר אנו מוצאים את השקול של כל הכוחות הפועלים על הרובוט, אנו קובעים את כיוון תנועתו לפי הכיוון של הווקטור השקול של הכוחות אשר מצאנו. אם נסמן בתור Fr את הכוח הדוחה של כל מכשול, ובתור Ft את הכוח המושך של המטרה, אז הנוסחא לווקטור הכללי היא כלהלן: Ftotal = ∑Fr + Ft הנוסחא שלפיה אנו מחשבים את הכוח המושך של המטרה היא:

8 אלגוריתם 2 הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה אלגוריתם 2 הנוסחא לחישוב הכוח הדוחה של מכשול מסוים היא: הנוסחא הסופית היא:

9 הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
האלגוריתם האופטימלי המטרה של האלגוריתם האופטימאלי היא למצוא את המסלול הכי מהיר (עם המספר המינימאלי של צעדים והמספר המינימאלי של פניות) לנקודת היעד. שני הקריטריונים מתקיימים בצורה הבאה: החישוב הראשון שנעשה הוא חישוב מפת פוטנציאל סטטית– אנו מחשבים את המפה עם המכשולים, ולא את המפה הריקה כמו שעשינו באלגוריתם הראשון. אם נבחן את האלגוריתם שבו זה נעשה, כאשר אנו פשוט מוסיפים אחד לערך של הנקודה של כל שכן של הנקודה שאנו עובדים עליה, ונזכור שיש לנו רק ארבעה כיווני תנועה אפשריים, אנו נראה שערך נקודת ההתחלה (נקודת היעד היא 0) הוא בדיוק מספר הצעדים המינימאלי שלוקח לרובוט להגיע לנקודת היעד. לכן, אם רק נסתכל על הערך של נקודת ההתחלה, ידוע לנו מספר הצעדים המינימאלי שלוקח לרובוט להגיע לנקודת היעד. כעת, כל מה שנשאר לנו, זה פשוט להריץ את הרובוט על כל המסלולים האפשריים שכוללים מספר צעדים מינימאלי ולקחת את המסלול עם מספר הפניות הקטן ביותר. זה נעשה ע"י פונקציה רקורסיבית פשוטה אשר בנויה בצורה הבאה:

10 האלגוריתם האופטימלי בדוק אם הנקודה היא נקודת הסוף. אם כן, השווה למספר הפניות המינימלי שיש לך כעת. אם הוא קטן יותר,זה המסלול האופטימלי לעכשיו. תחזור לפונקציה הקוראת. אם מספר הפניות גדול יותר, תחזור לפונקציה הקוראת. תפעיל את הפונקציה על הנקודה השמאלית, אם היא לא חסומה (מכשול, סוף מפה וכו') ואם הערך שלה קטן מהערך של הנקודה הנוכחית. תפעיל את הפונקציה על הנקודה מלמעלה, אם היא לא חסומה ואם הערך שלה קטן מהערך של הנקודה הנוכחית. תפעיל את הפונקציה על הנקודה הימנית, אם היא לא חסומה ואם הערך שלה קטן מהערך של הנקודה הנוכחית. תפעיל את הפונקציה על הנקודה מלמטה, אם היא לא חסומה ואם הערך שלה קטן מהערך של הנקודה הנוכחית. חזור לפונקציה הקוראת.

11 השוואות הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה השוואות ריכזנו את כל התוצאות שקיבלנו מהרצת האלגוריתמים השונים על שלושה מכשולים שונים בנקודות ההתחלה וסוף שונות. רב המסלולים ניתנים לפי קואורדינאטות, אך לחלק מהמסלולים מצורפת מפה המראה את תנועת הרובוט. ניתן לראות בצבע אדום את המכשול עצמו, בצבע כחול את התנועה של הרובוט ובצבע ירוק את הנקודות בהן הרובוט נכנס למנגנון הצלה. המסלול הראשון שאנו רואים בכל נקודה, הוא המסלול האופטימאלי, והוא מראה את הדרך האידיאלית למטרה. אפשר להשתמש במפה שלו בשביל להשוות לתוצאות באלגוריתמים האחרים. לשם השוואה בין שני האלגוריתמים, הרצנו הרבה ניסויים עם פרמטרים שונים ועם נקודות התחלה וסוף שונות על שלושה מכשולים שונים.על כל נקודה, הרצנו את האלגוריתם הראשון עם גודל מפה דינאמית שונה (ז"א טווח חיישנים שונה) ופרמטרים של EXTENT ו – SLOPE שונים. באלגוריתם השני, גם השתמשנו בגדלים שונים של מפות ושינינו את פרמטר ה – RATIO שזה היחס בין הכוחות הפועלים על הרובוט. כדי להשוות בין ביצועי שני האלגוריתמים בצורה יותר מדויקת, החלטנו להשתמש בקריטריון אשר בודק את יעילות האלגוריתם בכל ניסוי. צריך לזכור שהאינדיקאטורים שאנו משתמשים בהם, הם מספר הצעדים של הרובוט עד שהוא מגיע ליעד שלו ומספר הפעמים שהוא פנה. הקריטריון החשוב יותר הוא מספר הצעדים כי במציאות, זה הזמן שלוקח לרובוט להגיע. מספר הפניות מאט את הקצב רק קלות, בגלל הזמן שמבוזבז על פניות וההאטה לפני הפניה. הציונים הם בטווח של 0 – 1, כאשר 0 זה ציון לניסוי בו הרובוט לא הצליח להגיע למטרה בכלל ו - 1 זה הציון של האלגוריתם האופטימאלי. הניסוי עם מספר הצעדים המקסימאלי ומספר הפניות המקסימאלי קיבל את הציון 0.5, ולכן הנוסחא בה השתמשנו לחישוב הציון היא :

12 הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
גרפים

13 הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה
גרפים

14 גרפים

15 סיכום באופן כללי, אנו יכולים להבחין בכמה הבדלים בין שני האלגוריתמים:
הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה סיכום באופן כללי, אנו יכולים להבחין בכמה הבדלים בין שני האלגוריתמים: בתנועה של האלגוריתם הראשון קיימות הרבה מאוד חזרות לאותה נקודה. הסיבה לכך היא שבאלגוריתם הזה, לרובוט יש אפשרות לחזור לאותה נקודה. באלגוריתם השני, לרובוט כמעט אין מצבים בהם הוא חוזר לאותה נקודה. באלגוריתם השני אנו רואים מסלולים מאוד ארוכים ולא הכרחיים.זה נובע בד"כ מבעיות במנגנון ההצלה. הבעיה היא שבגלל שהרובוט יכול לנוע רק בארבעה כיוונים, והמנגנון לא תמיד מצליח לזהות את המצב בו הרובוט אמור לחזור למצב הרגיל. היתרון של האלגוריתם הראשון מול השני הוא, שאם קיימת דרך להגיע לנקודת הסוף, הוא יביא את הרובוט לנקודה הזו ב – 100% מהמקרים, לעומת האלגוריתם השני אשר אחוז ההצלחה שלו יותר נמוך. לפי התוצאות שראינו, קשה להגיד איזה מהאלגוריתמים יותר יעיל. למרות שהאלגוריתם הראשון קיבל ציונים גבוהים יותר בסך הכל, קשה להגיד שהוא יותר טוב, מכיוון שהוא איטי יחסית לאלגוריתם השני. מצד שני, היתרון הבולט של האלגוריתם הראשון הוא היכולת למצוא את הדרך, אם היא קיימת, ב – 100% מהמקרים. ז"א שנוצרת לנו פה החלטה של בטחון הגעה כנגד יעילות הגעה, וההחלטה הזו תלויה מאוד בסוג המפה בה אנו משתמשים.


Download ppt "השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים"

Similar presentations


Ads by Google