280 likes | 441 Views
מערכות ובקרה. פרוייקט ברובוטיקה – סיכום ביניים 1/01/2003. מטרת הפרוייקט. בניית רובוט Behavior Based אשר נמשך למקור אור ועוקף מכשולים בדרכו למקור אור, תוך שימוש בחלקים של Lego Mindstorms . ביצוע תרגיל בקרה תוך מימוש בקר Fuzzy. שלבי הפרוייקט. בחירת מבנה פיזי של הרובוט.
E N D
מערכות ובקרה פרוייקט ברובוטיקה – סיכום ביניים 1/01/2003
מטרת הפרוייקט • בניית רובוט Behavior Based אשר נמשך למקור אור ועוקף מכשולים בדרכו למקור אור, תוך שימוש בחלקים של Lego Mindstorms. • ביצוע תרגיל בקרה תוך מימוש בקר Fuzzy.
שלבי הפרוייקט • בחירת מבנה פיזי של הרובוט. • בחירה והתקנה של מערכת ההפעלה ושפת תכנות. • בניית רובוט אשר נמשך למקור אור (ללא מכשולים בדרך). • בניית הרדאר - גלאי כיוון אור • כתיבת תוכנית ראשונית לבקרת הרובוט.
שלבי הפרוייקט • מימוש בקרת הרדאר כתהליך נפרד • בניית Bumpers – חישנים שיגלו מכשולים • בחירת שיטות עקיפת המכשולים • מימוש עקיפת המכשולים בתוכנה (2 שיטות) • לימוד הסימולציה של TeamBots • הגדרת 3 התנהגויות ברובוט Lego, ועיצוב של Subsumption Architecture.
שלבי הפרויירט • בחינת השפעת שינוי המשקלים של התנהגויות על תיפקוד הרובוט. • ניסיון להשוות את התנהגותו של הרובוט בסימולציות TeamBots לרובוט המציאותי. • ביצוע תרגיל להדגמה של בקרה Fuzzy. • כתיבת דוח סופי.
מבנה הרובוט • רכיבי Lego: • RCX • 2 מנועי הנעה • חישן אור • חישן סיבוב • חישן מגע • חלקי בניה • רכיבים שאינם Lego: • מנוע CD-ROM • מראה אחורית של LCD
מבנה הרובוט • 2 גלגלי הנעה – הנעה נפרדת ע"י שני מנועים • 2 גלגלי Pivot. • Bumper לגילוי מכשולים
מבנה הרובוט • Pivot Wheel • דגש על קשיחות המבנה: שני צירים אנכיים ושני צירים אופקיים. • קלות סיבוב מסביב לציר כיוון – מושג ע"י הרחקת הציר של הגלגל מהציר האנכי.
מבנה הרדאר • חישן אור מורכב מעל המראה המסתובבת • חישן סיבוב מורכת אל הציר של מראה. • תמסורת גומיות מהמנוע לציר המראה דרך שתי גלגלות. • יחס תמסורת 1:25
מבנה הרובוט – מכלול של רדאר וחישן אור
כתיבת תוכנית ראשונית לבקרת הרובוט while(1) { if (ROTATION_3>16) { ROTATION_3=1; if (direction<=7) right(); if (direction>=9) left(); if (direction==8) forward(); max=0; } if (LIGHT_2>max) { direction=ROTATION_3; max=LIGHT_2; } }
void left() { motor_a_speed(off); motor_c_speed(off); motor_a_dir(fwd); motor_a_speed(100); msleep(300); motor_a_speed(off); } void forward() { motor_a_dir(fwd); motor_a_speed(100); motor_c_dir(fwd); motor_c_speed(100); } שגרות פנייה ונסיעה קדימה
בעיות במימוש ראשוני • אילוץ הנובע ממימוש ראשוני – אי אפשר להעלות את מהירות הסיבוב של הרדאר. זמן מחזור הסיבוב חייב להיות קטן מזמנן שהייה בשגרות פנייה ימינה\שמאלה. • אם האילוץ מופר – מתפספס הרגע של איפוס חיישן הסיבוב, ואז הרובוט יוצא מהשליטה.
פתרון הבעיה של מימוש ראשוני • מימוש שגרת בקרת הרדאר בעזרת תהליך נפרד void set_direction() { while(1) { if (ROTATION_3>16) { ROTATION_3=1; max=0; direction=temp_direction; } if (LIGHT_2>max) { temp_direction=ROTATION_3; max=LIGHT_2; } } }
פתרון הבעיה של מימוש ראשוני • תהליך רץ בנפרד, לכן המונה של חישן סיבוב מתאפס בכל פעם שמגיע ל- 16. • מימוש זה מאפשר להעלות את מהירות הרדאר עד 3 סיבובים בשניה (ואולי אף יותר) • משמעות הדבר – זמן תגובה משופר, הרובוט מקבל תיקוני כיוון 3 פעמים בשניה.
מימוש שגרת עקיפת המכשולים – שיטה 1 • בשיטה זו רובוט נסוג אחורה, מסתובב 90 מעלות ימינה, נוסע הצידה ואז ממשיך לכיוון האור void detour() { reverse(); msleep(1000); while (direction!=12) right(); forward(); msleep(2000); } • חיסרון השיטה – אין פיתרון למצב שבו יש מכשול גם מלפנים וגם מימין
מימוש שגרת עקיפת המכשולים – שיטה 2 • הרובוט נסוג לכיוון ראנדומלי void detour() { reverse(); msleep(1000); i=random(); if (i<0) i=i*(-1); a=i/16; b=i-(a*16)+1; lcd_int(b); while (direction!=b) { if (b>=8) right(); if (b<8) left(); } forward(); msleep(2000); } • חיסרון השיטה – הרובוט עלול לבצע תנועות מיותרות.
עבודה להמשך שיפור התוכנית • כיוון 1: • שיפור האינטליגנציה של רובוט ע"י הוספת זיכרון של מכשולים • כיוון 2: • הגדרת התנהגויות: הליכה לכיוון האור, נדידה, עקיפת מכשולים. • ניהול ההתנהגויות בשיטת Subsumption Architechture.
תרגיל בקרה בשיטת Fuzzy - מטרה • במימוש הקיים הרובוט מתביית על מקור האור ע"י פקודות היגוי קצרות רבות. • ברצוני לבנות בקר אשר יחשב את אורך פקודת היגוי כך שהרובוט יקבל כיוון נכון ע"י פקודת היגוי אחת בלבד. • תנאי התחלה מחמיר: מהירות הפנייה אינה ידועה מראש (למשל במקרה שכל פעם שמים גלגלים בקוטר שונה, או שיש החלקה) • הבקר ייבנה בשיטת Fuzzy.
תרגיל בקרה – הגדרת כניסות \ יציאות • כניסות לבקר: • זווית למקור אור • מהירות זוויתית של בפניות • יציאות: • אורך פקודת היגוי.
הגדרת Membership Functions • עבור זווית: • עבור מהירות:
הגדרת Membership Functions • עבור אורך היגוי:
תרגיל בקרה – עבודה להמשך • מימוש הבקר ב- LegOS • כיול הבקר • הפעלה עם גלגלים שונים