Presentation is loading. Please wait.

Presentation is loading. Please wait.

שימוש בעכבר אופטי לניווט של רובוט מנחה: רן זסלבסקי עמית בוכריס

Similar presentations


Presentation on theme: "שימוש בעכבר אופטי לניווט של רובוט מנחה: רן זסלבסקי עמית בוכריס"— Presentation transcript:

1 שימוש בעכבר אופטי לניווט של רובוט מנחה: רן זסלבסקי עמית בוכריס עידו עוזיאל

2 אפיון יעדי הפרויקט רקע לימודי: א. שיטות לניווט רובוטים ניידים
ב. אודומטריה – עקרונות, יתרונות וחסרונות, תיקון שגיאות, סוגי חיישנים ג. סקירה + בחירת פרוטוקול אחד למימוש (PS2, RS232,USB) ד. התממשקות ועבודה ב PICDEM 2 PLUS DEMO BOARD ה. עקרון פעולה של חיישן אופטי תכנון וביצוע ניסוי לביצועי החיישן כתלות ב: מרחק מהמשטח, מהירות, סוג המשטח, וכיוון התנועה 3. בניית מודל שגיאה לחיישן 4. בניית רובוט לגו כל היעדים הושגו פרט לאחרון – אשר ימומש על ידי זוג הסטודנטים הנוסף.

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

4 אודומטריה האודומטריה היא שיטה למדידה וחישוב מיקום יחסי למדידה הקודמת
הרעיון של אודומטריה הוא לספור את סיבובי גלגלי הרובוט על סמך נתונים גיאומטריים של מערכת ההנעה, ניתן לחשב את הכיוון והמרחק של הרובוט בכל רגע ורגע נדגים את העקרונות על מרכב מסוג הנעה דיפרנציאלית:

5 אז למה לא אודומטריה? Systematic errors Non-systematic errors
ODOMETRY ERRORS Systematic errors Non-systematic errors

6 1. Systematic errors Unequal wheel diameters
Average of wheel diameters differs from nominal diameter Misalignment of wheels Uncertainty about the effective wheelbase (due to non-point wheel contact with the floor) Limited encoder resolution and sampling rate

7 2. Non-systematic errors
Travel over uneven floors Travel over unexpected objects on the floor Wheel-slippage due to: slippery floors over-acceleration fast turning interaction with external bodies non-point wheel contact with the floor

8 אז החלטנו להשתמש בחיישן של עכבר אופטי:

9 Typical Application using PS/2 Output
LED

10 חיישן ה-2051-ADNS חיישן ה-2051-ADNS הוא חיישן אופטי המשתמש בעקרון של זיהוי ועיבוד תמונה על מנת לחשב התקדמות. החיישן מיוצר ע"י חברת Agilent Technologies™. החיישן פועל ברזולוציה של cpi400 (counts per inch) וניתן לתכנות לרזולוציה של עד cpi800. החיישן מאיר את משטח העבודה באמצעות LED (light-emitting diode) באור מונוכרומטי, וקולט תמונה של המשטח על ידי חיישן CMOS , 2300 פעמים בשניה. התמונה נשלחת ליחידת ה (digital signal processor) DSP לניתוח. על סמך השינוי ברצף תמונות, ה DSP מוציא נתונים לגבי תנועה בציר X וציר Y. התמונות שמפיק החיישן נראות כך:

11 חיישן ה-2051-ADNS להלן נתוני החיישן לגבי רזולוציה כפונקציה של גובה פעולה:

12 שימוש בחיישן אופטי לניווט רובוט
LD=Loction+Direction Actual LD Desired LD בקר הניווט מנוע תמסורת משוב

13 שימוש בחיישן אופטי לניווט רובוט
LD=Location+Direction Actual LD Desired LD בקר הניווט מנוע תמסורת frames עיבוד הנתונים חיישן אופטי קריאת הנתונים Measured LD dX,dY, Carry PS2

14 שימוש בחיישן אופטי לניווט רובוט
באודומטריה, ה- encoder מודד את סיבובי הגלגל => הוא ממוקם בסמוך לגלגל, על ציר הסיבוב חיישן אופטי יודע למדוד תנועה בשני הצירים => אם נמקם אותו לאורך ציר בסיס הגלגלים – נפסיד מידע לגבי התנועה בציר האנכי => כדאי למקם את החיישן לאורך הציר האנכי, למשל:

15 שימוש בחיישן אופטי לניווט רובוט
נסמן: dX = השינוי במיקום בציר X dY = השינוי במיקום בציר Y dTETA = השינוי בזוית האינדקס: s=sensor קירוב: dX dY זניחים ביחס ל-R tan(dTETAs)=dXs/dYs dX/dXs=dY/(r+dYs) Tan(dTATA)=dX/dY=dXs/(dYs+R)

16 סביבת הפיתוח הבקר שעמד לרשותנו במהלך הפרוייקט הינו מיקרו-בקר מסוג PIC16F877A של חברת MicroChip™. הבקר מוקם ע"ג לוח לדוגמא מסוג PICDEM2 Plus. לוח ה-:PICDEM הלוח מכיל מספר פונקציות בהם השתמשנו: 15: LCD 17:ספקים +5V, GND 6: לחיצים 4: ממשק ל-PC PIC16F877A

17 סביבת הפיתוח את הכרטיס חיברנו למחשב באמצעות רכיב ICD2 (in circuit debugger) אל ה-PC התכנות מתבצע בשפת C, ומקומפל באמצעות קומפילר של HI-TECH™ C, לשפת ASM שמתאימה לבקר המסויים שלנו. הקוד נצרב על הרכיב באמצעות ה-ICD, ומרגע זה ניתן להפעיל את הכרטיס באופן עצמאי לחלוטין. את התוכנה שכתבנו ניתן לקמפל ולהריץ על סוג אחר של בקר בשינויים קלים בלבד, וזאת בהינתן שקיים הקומפיילר המתאים.

18 פרוטוקול הPS2- פרוטוקול ה-2PS הוא פרוטוקול המשמש לחיבור של עכברים ומקלדות למחשבי PC. הפרוטוקול הזה מוחלף היום ע"י פרוטוקול ה-USB, והופך להיות נדיר יותר. אנחנו בחרנו לממש את פרוטוקול ה-PS2 באמצעות ה-PIC, ולא את פרוטוקול ה-USB מכיוון שהוא פשוט יותר למימוש. המחשב נקרא ה-HOST, והמקלדת או העכבר נקראים ה-DEVICE. אנחנו מימשנו באמצעות ה-PIC את ה-HOST, ובכך דימינו את תפקידו של המחשב, בעכבר עצמו לא נעשה כל שינוי. התקשורת מתבצעת על שני קווי מידע – DATA, CLOCK. במצב של חוסר תקשורת, שני הקווים יהיו במצב '1' לוגי. על מנת לבצע בקשה לשליחת מידע, יש לפעול לפי פרוטוקול מסויים.

19 פרוטוקול הPS2- להלן פירוט של פרוטוקול שליחת מידע מהHOST(PIC) אל ה-DEVICE (עכבר): באמצעות פרוטוקול זה ניתן לשלוח פקודות אל העכבר כדוגמת: Reset – ביצוע איתחול של העכבר ובדיקה עצמית Set Sampling Rate: /sec default is 100 Get Device ID – סוג המכשיר – עכבר \ מקלדת Enter Stream Mode – כניסה למצב העבודה הרגיל של העכבר Enable Data Reporting – גורם לעכבר לשלוח מידע אל המחשב לפי ההגדרות

20 פרוטוקול הPS2- להלן פירוט של פרוטוקול שליחת מילה אחת מה-DEVICE אל ה-HOST: לאחר שהעכבר הוכנס למצב STREAM MODE, ואפשרנו DATA ENABLING, העכבר שולח בכל פעם "חבילה" של 3 מילים לפי הפירוט הבא: Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Left Btn Right Btn Middle Btn Reserved 1 X MSB Y MSB X overflow Y overflow Byte0 X movement – in counts (9 bit 2’s complement integer) Byte1 Y movement – in counts (9 bit 2’s complement integer) Byte2 התזוזה שמדווח עכבר היא כמות הcounts שזז העכבר מאז ששלח את ה "חבילה האחרונה שלו. הסקלה היא לפי הרזולוציה שמוגדרת לו. באופן סטנדרטי זוהי counts/inch 400.

21 ממשק PS2 ל-PIC ממשק ה-PS2 מצריך 4 קווים: Clock, Data, GND, VCC
את החיבור אל הPIC עשינו דרך כרטיס הPICDEM, באופן הבא: בחירות הPorts נעשתה על בסיס מקום פנוי, כלומר ports שלא היו תפוסים ע"י רכיבים אחרים בכרטיס.

22 ממשק PS2 ל-PIC החיבור הסופי נראה כך:

23 ממשק PS2 ל-PIC התוכנית שכתבנו לPIC מבצעת את הפונקציות הבאות:
ביצוע של RESET לעכבר וביצוע בדיקה עצמית. במידה ולא התקבל מהעכבר דיווח ש"הכל תקין" נדלקת נורית תקלה. לאחר מכן התוכנית מכניסה את העכבר למצב דיווח נתונים. התוכנית אז ממתינה לנתונים מהעכבר. היא סוכמת את התנועה בציר X ובציר Y, ואוגרת אותם בשני משתנים בגודל 32bit כ"א. (משתנים אלה מספיקים לאגור תנועה של עד120 Km). לפי בקשה, התוכנית מציגה על גבי צג הLCD של הPIC את התנועה שהתבצעה עד כה, ומאתחלת את משתני התנועה. חשוב לציין כי הPIC- עם שעון בתדר 4MHz לא הספיק לבצע את הפעולות הנדרשות של קריאת הנתונים מהעכבר, ולשם כך נאלצנו להחליף את השעון לשעון בתדר 20MHz ולבצע אופטימיזציות לקוד הקריאה. ייתכן כי בקר בסדר גודל כזה לא יהיה מסוגל לבקר 2 או יותר עכברים בו זמנית מבחינת יכולת חישוב מהירה וכמות זכרון חופשי (RAM).

24 מהלך הניסויים ניסוי ראשון:
בניסוי הראשון ניסינו לאפיין את החיישן ע"י חיבור העכבר ישירות למחשב, וקריאת תוצאותיו ע"י מדידת תזוזה בפיקסלים על המסך: קיבוע העכבר:

25 מהלך הניסויים ניסוי ראשון: למחשב
העכבר הוזז ידנית לאורך מסילה מרחק קבוע שאותו מדדנו באמצעות סרגל פשוט: למחשב

26 מהלך הניסויים ניסוי ראשון, תוצאות:

27 מהלך הניסויים ניסוי ראשון, תוצאות:

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

29 מהלך הניסויים ניסוי שני:
בניסוי השני קראנו את נתוני החיישן מהעכבר ע"י בקר A877PIC של חברת MicroChip™. סכמנו את הקריאות המגיעות מהעכבר והצגנו אותם על גבי תצוגת הLCD שעל כרטיס הPIC. ההמרה מקריאות עכבר לפיקסלים התבצעה לפי יחס של 400 DPI. כל הנעת העכבר התבצעה ע"י SCORBOT™ במעבדה לרובוטיקה בפקולטה לתעשייה וניהול. הרובוט מאפשר תנועה מדוייקת, שניתנת לשחזור. כמו כן, ניתן ניתן לזהזיז אותו בקו ישר או בקשת, ב7 צירים.

30 מהלך הניסויים ניסוי שני: הצגת הנתונים ע"ג כרטיס ה-PICDEM:

31 מהלך הניסויים ניסוי שני: ממשק ה2PS בין העכבר אל ה-PIC:

32 תמונת הניסוי הכולל:

33 מהלך הניסויים ניסוי שני: תנועה בקו ישר: סיבוב העכבר במקום:

34 מהלך הניסויים ניסוי שני, תוצאות:

35 מהלך הניסויים ניסוי שני, תוצאות:

36 מהלך הניסויים ניסוי שני, תוצאות:

37 מהלך הניסויים ניסוי שני, תוצאות:

38 מהלך הניסויים ניסוי שני, תוצאות:

39 מהלך הניסויים ניסוי שני, תוצאות:

40 מהלך הניסויים ניסוי שני, מסקנות:
כמו בניסוי 1, המרחק המדוד אכן יורד עם הגברת המהירות. הירידה, אבל, היא פחות מcm-0.3, שזה פחות מ 1% מהמרחק. סטיית התקן היא בסדר גודל של 0.2%, ולא 0.5% כפי שנמדד בניסוי הראשון, ואינה תלוייה במהירות. כפי שמציין הdatasheet- של החיישן, איכות המדידה יורדת באופן דרמטי עם גובה המדידה, והופכת לא רלוונטית עבור גובה הגבוה מ mm1.5. החיישן אינו מתפקד על גבי משטחים מבריקים, שכן אין בהם די פרטים. בסיבוב סביב עצמו, החיישן אינן מראה קריאה של 0, אלא קריאה אקראית בערך קרוב לאפס. בסיבוב בקשת, החיישן מתפקד בצורה דומה לתנועתו בקו ישר.

41 מסקנות כלליות לפרוייקט
החיישן האופטי מתאים לעבודה בסוגי משטחים רבים, אך עם המגבלות הבאות: א. על המשטח להיות אחיד בגובה ברמה של כ-חצי מ"מ. לצורך העניין, המרווחים בין המרצפות הן בעיה, בעיקר בעת נסיעה בקו ישר לאורך המרצפה. ב. מכיוון שהחיישן "מצלם" את פני השטח, אסור שתמונת פני השטח תהיה אחידה. לפיכך משטחים מבריקים ובעלי צבע אחיד הינם בעייתים. לדוגמא, משטח פלסטיק לבן מבריק הוא בעייתי, אך דף נייר לבן אינו בעייתי. ג. התנהגות החיישן נבדקה עד למהירויות של כ- 20cm/sec ונמצאה תקינה. ד. אין לחיישן מגבלה מבחינת כיוון התנועה הנמדד. ה. שגיאת המדידה של החיישן היא תמיד שלילית, כלומר לא נקבל קריאות גבוהות מהמרחק האמיתי. ו. ההשקעה בפיתוח (חומרה + זמן ) היא נמוכה. ז. באמצעות רכיב פשוט יחסית ניתן לשלוט על מספר חיישנים.

42 מקורות: Agilent ADNS-2051 Optical Mouse Sensor Data sheet – Agilent Technologies ™ "Where Am I? Sensors and methods for mobile robot positioning." – J. Borenstein, H.R. Everett, and L. Feng, University of Michigan. The PS/2 Mouse Interface - © 2001 Adam Chapweske. PS/2 Mouse/Keyboard Protocol - © 1999 Adam Chapweske. PICDEM™ 2 PLUS – user's guide.

43 - סוף -

44 Backup Slides

45 חישוב עזר של גורם ההמרה שלב 1. נגדיר:
Cm = גורם המרה בין המרחק הלינארי שהגלגל עבר, לכמות הפולסים של המקודד. ונקבל: Cm = Pi * Dn / (n*Ce) כאשר: Dn = קוטר נומינלי של הגלגל (מ"מ) Pi * Dn = היקף נומינלי של הגלגל Ce = רזולוציית המקודד, כמות פולסים לסיבוב n = יחס סיבובים בין המנוע (עליו מורכב המקודד) לבין הציר המניע

46 שלב 2. חישוב השינוי במיקום מרכז הרובוט נסמן :
dN = השינוי בפולסים של המקודד dU = השינוי במיקום של הגלגל => מכאן מתקבל לכל גלגל: dU = dN * Cm => והשינוי במיקום מרכז הרובוט – ממוצע של שני הגלגלים שלב 3. חישוב השינוי בכיוון הרובוט נסמן: dTETA = השינוי בזוית הראש של הרובוט b = רוחב בסיס הגלגלים, נמדד כמרחק בין נקודות המגע של הגלגלים ברצפה => ומתקבל: dTETA = (dUleft - dUright)/b


Download ppt "שימוש בעכבר אופטי לניווט של רובוט מנחה: רן זסלבסקי עמית בוכריס"

Similar presentations


Ads by Google