36
טטטטטט: טטטטט טטטטטט: טטטטט טטטט טטטט זזזזזז: זזזזז זזז זזזזזז: זזזזז זזז זזזז זזזזזז זזזז זזזזזז זזז זזזזזז זזזז: זזז זזזזזז זזזז:

פרויקט: רובוט צייר

Embed Size (px)

DESCRIPTION

פרויקט: רובוט צייר. מגישים: אופיר ארז אלכס לזיקין מנחה: ארי טוטפלד. מטרות הפרויקט. פיתוח וכתיבת תוכנה המאפשרת לרובוט לזהות את כיוון התקדמותו בעזרת מצלמה המכוונת לתקרה. הזיהוי כולל: זיהוי הזווית שהרובוט מסתובב אליה. זיהוי כיוון הסיבוב. זיהוי המרחק שהרובוט עובר בתנועה בקו ישר. - PowerPoint PPT Presentation

Citation preview

Page 1: פרויקט: רובוט צייר

פרויקט: רובוט ציירפרויקט: רובוט צייר מגישים: אופיר ארזמגישים: אופיר ארז

אלכס לזיקיןאלכס לזיקין

מנחה: ארי טוטפלדמנחה: ארי טוטפלד

Page 2: פרויקט: רובוט צייר

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

התקדמותו בעזרת מצלמה המכוונת לתקרה. הזיהוי כולל:התקדמותו בעזרת מצלמה המכוונת לתקרה. הזיהוי כולל:

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

כתיבת תוכנה המעבירה את הרובוט מנקודה אחת במרחב כתיבת תוכנה המעבירה את הרובוט מנקודה אחת במרחבלנקודה שנייה.לנקודה שנייה.

שליחת נתוני שרטוט מהמחשב אל הרובוט במטרה שהרובוט שליחת נתוני שרטוט מהמחשב אל הרובוט במטרה שהרובוטישרטט את הציור על הרצפה.ישרטט את הציור על הרצפה.

בניית חומרה שתאפשר התממשקות בין בקר הרובוט, המחשב בניית חומרה שתאפשר התממשקות בין בקר הרובוט, המחשבוהעט.והעט.

Page 3: פרויקט: רובוט צייר

נתוני הרובוטנתוני הרובוט

:הנתונים הרלוונטיים שמספק הרובוט:הנתונים הרלוונטיים שמספק הרובוט

x, y, zx, y, z.של מרכז הרובוט ברשת גלובלית. של מרכז הרובוט ברשת גלובלית .זווית הסיבוב הגלובלית של הרובוט.זווית הסיבוב הגלובלית של הרובוט.מהירויות הגלגלים.מהירויות הגלגלים.סטטוס פורטי המוצא והכניסה.סטטוס פורטי המוצא והכניסה.ערך המתח של הסוללה.ערך המתח של הסוללה

Page 4: פרויקט: רובוט צייר

זיהוי המרחק שהרובוט עברזיהוי המרחק שהרובוט עברזיהוי זווית הסיבוב אליה הרובוט הסתובבזיהוי זווית הסיבוב אליה הרובוט הסתובבשילוב של זיהוי מרחק וזיהוי זווית סיבובשילוב של זיהוי מרחק וזיהוי זווית סיבוב

השימוש במצלמה לשם מה?השימוש במצלמה לשם מה?

Page 5: פרויקט: רובוט צייר

סכימת בלוקים של המערכתסכימת בלוקים של המערכת

תוכנה שרצה במחשב

מחשב

תוכנה שרצה ברובוט

(PSOS)

רובוטזרוע

תמונה שהרובוט צריך לצייר

משדר / מקלט RS 232

מקלט ווידאו Frame grabber מצלמה משדר

ווידאו

משדר / מקלט

RS 232

Page 6: פרויקט: רובוט צייר

דיאגראמת בלוקים של המערכתדיאגראמת בלוקים של המערכת

Page 7: פרויקט: רובוט צייר

אלגוריתמיםאלגוריתמים

:האלגוריתמים שמומשו בפרויקט:האלגוריתמים שמומשו בפרויקט

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

Page 8: פרויקט: רובוט צייר

תנועת הרובוט תנועת הרובוט תרגום בין שתי מערכות ציריםתרגום בין שתי מערכות צירים

:מערכת צירי מסך: מערכת צירי מסך ציר צירXX מכוון ימינה וציר מכוון ימינה וציר YY.מכוון למטה. מכוון למטה .מערכת צירים קבועה במקומה.מערכת צירים קבועה במקומה

:מערכת צירי רובוט: מערכת צירי רובוט ציר צירXX מכוון בכיוון התקדמות הרובוט וציר מכוון בכיוון התקדמות הרובוט וציר YY מכוון לעבר דופן שמאל של מכוון לעבר דופן שמאל של

הרובוט.הרובוט..)מערכת צירים קבועה לרובוט )המערכת זזה ומסתובבת עם הרובוט(.מערכת צירים קבועה לרובוט )המערכת זזה ומסתובבת עם הרובוט

Page 9: פרויקט: רובוט צייר

תרגום בין שתי מערכות ציריםתרגום בין שתי מערכות צירים

טרנספורמציית המעבר בין המערכותטרנספורמציית המעבר בין המערכות

OXTX RS 1

0

0

cossin

sincos

y

x

y

x

y

x

R

R

S

S

θθהינה הזווית בין שתי מערכות הצירים הינה הזווית בין שתי מערכות הצירים

0

0

cossin

sincos

yy

xx

y

x

s

s

R

R

OXTX SR

Page 10: פרויקט: רובוט צייר

currXnextXTX SSR

-stroke-stroke.

nextX S

22

YX RR XXd

X

Y

R

R

X

Xarctan

d > threshold?

.

d,

()

sin

cos

dX

dX

Y

X

R

R

,

currXXTnextX SRS 1

θ

oldnew

. :

nextXcurrX SS

Title"

Page 11: פרויקט: רובוט צייר

Need to change stroke?

Turn to desired angle

Correct position by

moving backward

Move pen down

Move to desired distance

Move pen up

Correct position by

moving forward

Turn to desired angle

Don’t change to new stroke

Change to new stroke

Move to desired distance

אלגוריתם שרטוט על הרצפהאלגוריתם שרטוט על הרצפה

Need to change stroke?

Turn to desired angle

Move to desired distance

Correct position by

moving forward

Move pen up

Move to desired distance

Move pen down

Correct position by

moving backward

Turn to desired angle

Page 12: פרויקט: רובוט צייר

אלגוריתם זיהוי המרחק אלגוריתם זיהוי המרחק

1תמונה 2תמונה

אובייקט שקיים בשתי התמונות

d

דגימת תמונה ראשונה תנועה דגימת תמונה שניה

:הנחות

כמעט אותם אובייקטים נמצאים בשתי התמונות הדגומות ללא שינוייםמהותיים.

.האובייקטים מספיק גדולים כך שהם נבדלים מהותית מן הרקע והרעש

:מסקנות שהוסקו תוך כדי עבודה

.יש צורך לדגום לתקופות יחסית קצרות

.עדיף לבצע זיהוי מרחק ע"י זיהוי המרחק בין האובייקטים ולא מתוך הרקע

Page 13: פרויקט: רובוט צייר

11הרעיון: צעד הרעיון: צעד מציאת היטלים מציאת היטלים

עוצמה של שורה

ס' מ

השור 1תמונה 2תמונה

כלומר ההיטלים נראים כך:

d

1' הטלה מס

מס' שורות

2' הטלה מס

מס' שורות

d

ס' מ

השור

עוצמה של שורה

Page 14: פרויקט: רובוט צייר

22הרעיון: צעד הרעיון: צעד

.נמקם את ההיטלים זה מול זה ונחסירם האחד מתוך השני

מס' שורה

1הטלה מס' 2הטלה מס'

"מרחק" בין הטלות

d

המרחקd.בין שיאי ההיטלים נותר בעינו גם לאחר החיסור

Page 15: פרויקט: רובוט צייר

33הרעיון: צעד הרעיון: צעד

ההפרש הקטן ביותר בין הפרופילים )קרוב לקבוע( מתקבל כאשר התמונות הוזזו למצב בוהאובייקטים התלכדו.

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

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

מס' שורה

1הטלה מס' 2הטלה מס'

"מרחק" בין הטלות

ביצוע הזזה של היטל אחד ביחס לשני, תוך כדי חיסור

Page 16: פרויקט: רובוט צייר

2תמונה

1תמונה

- המשך - המשך33הרעיון: צעד הרעיון: צעד

1הטלה מס' 2הטלה מס'

"מרחק" בין הטלות

1' הטלה מס

2' הטלה מס

Page 17: פרויקט: רובוט צייר

- סיכום - סיכום33הרעיון: צעד הרעיון: צעד

:הנוסחה המתאימה לשלבים שהוגדרו הינה:הנוסחה המתאימה לשלבים שהוגדרו הינה

50

501

PrPrminarg

j

n

ipreviouscurrent

jojoj

x

במיקום במיקוםj=dj=d.ימצא המינימום הדרוש. ימצא המינימום הדרוש

Page 18: פרויקט: רובוט צייר

מה קורה מעשית ?מה קורה מעשית ?

Page 19: פרויקט: רובוט צייר

אלגוריתם זיהוי זווית הסיבובאלגוריתם זיהוי זווית הסיבוב כאשר תמונה אחת מסובבת ביחס לשנייה מסובבים את אחת כאשר תמונה אחת מסובבת ביחס לשנייה מסובבים את אחת

התמונות עד שנוצרת התלכדות.התמונות עד שנוצרת התלכדות..הסיבוב מתבצע בקואורדינאטות פולאריות, כדי לסובב יותר מהר.הסיבוב מתבצע בקואורדינאטות פולאריות, כדי לסובב יותר מהר

Page 20: פרויקט: רובוט צייר

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

חיסור רגיל של תמונות, מספק הרבה אפסים ולכן מזוהה

מינימום למרות שהאובייקטים כלל לא באותה זווית

הרעיוןהרעיון

."התמונות תהיינה באותה זווית כאשר האובייקטים שבהן יהיו "מקביליים". התמונות תהיינה באותה זווית כאשר האובייקטים שבהן יהיו "מקביליים המרחק בין האובייקטים יכול להיות שונה, אך הם שומרים על אותה זווית המרחק בין האובייקטים יכול להיות שונה, אך הם שומרים על אותה זווית

האחד ביחס לשני.האחד ביחס לשני. חיסור רגיל של תמונות לא עוזר כאן ולכן משתמשים ברעיון ההיטלים חיסור רגיל של תמונות לא עוזר כאן ולכן משתמשים ברעיון ההיטלים

שהוצג קודם.שהוצג קודם.

האובייקטים באותה זווית, אך מוזזים האחד ביחס לשני.

האובייקטים לא באותה זווית

Page 21: פרויקט: רובוט צייר

שלביםשלבים מסובבים תמונה אחת ביחס לשניה לזווית מסובבים תמונה אחת ביחס לשניה לזוויתδδ...מחשבים היטלים אנכיים לשתי התמונות.מחשבים היטלים אנכיים לשתי התמונות מוצאים לפי שיטת ההיטלים את המרחק בין האובייקטים בציר האנכי ואת מוצאים לפי שיטת ההיטלים את המרחק בין האובייקטים בציר האנכי ואת

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

..DxDxהערך המינימלי של נגזרת המרחק האופקי: הערך המינימלי של נגזרת המרחק האופקי: שמירת שמירתDx+DyDx+Dy בתא שבווקטור שגיאה יחד עם הזוית בתא שבווקטור שגיאה יחד עם הזוית δδ..

כיצד נדע לאיזו זווית הרובוט באמת הגיע ?

מציאת מינימום על ווקטור השגיאה לפי הערכים מציאת מינימום על ווקטור השגיאה לפי הערכים Dx+DyDx+Dy יספק את הזווית יספק את הזווית δδ.המתאימה. המתאימה

Page 22: פרויקט: רובוט צייר

מה קורה במציאותמה קורה במציאות

Page 23: פרויקט: רובוט צייר
Page 24: פרויקט: רובוט צייר

אלגוריתם ביטול רעשאלגוריתם ביטול רעש

הרעש שבמערכת נבע מאיבוד סנכרון הרעש שבמערכת נבע מאיבוד סנכרון

איבודי סנכרון

אנכי

איבודי סנכרון אופקי

Page 25: פרויקט: רובוט צייר

הרעיוןהרעיון

קביעת רמת סף קביעת רמת סף

Noise Level = Max of projection vector + 20

ביצוע דגימהביצוע דגימה

Page 26: פרויקט: רובוט צייר

?

?

?

?

?

Page 27: פרויקט: רובוט צייר

חומרהחומרה

זרוע מ-"לגו" חשמליזרוע מ-"לגו" חשמלי"כרטיס אלקטרוני לבקרת מנוע ה-"לגו"כרטיס אלקטרוני לבקרת מנוע ה-"לגו

מעגל לזיהוי מצב העט מעגל לזיהוי מצב העט

10K

5V

To the inport

Page 28: פרויקט: רובוט צייר

בעיותבעיות

תנועת רובוט קדימה תנועת רובוט קדימהתנועת רובוט סיבובית תנועת רובוט סיבובית

Page 29: פרויקט: רובוט צייר

תנועה קווית או סיבובית מלווה בתנועות תיקוןתנועה קווית או סיבובית מלווה בתנועות תיקון

בעיותבעיות

תיקון אפשריתיקון אפשרי

Page 30: פרויקט: רובוט צייר

המרה לא ליניארית בין פקודה למרחקהמרה לא ליניארית בין פקודה למרחקConversion Graph From Command To MM

y = -0.3453x2 + 14.449x

R2 = 0.9956

0

20

40

60

80

100

120

0 2 4 6 8 10 12

command

mm

on

flo

or

בעיותבעיות

Page 31: פרויקט: רובוט צייר

המרה לא ליניארית בין פקודה לפיקסליםהמרה לא ליניארית בין פקודה לפיקסליםConversion Graph From Command To Pixels

y = -0.077x2 + 2.8488x

R2 = 0.9958

0

5

10

15

20

25

0 2 4 6 8 10 12

command

pix

els

בעיותבעיות

Page 32: פרויקט: רובוט צייר

תנועה קווית אחורה ולאחריה תנועה קדימהתנועה קווית אחורה ולאחריה תנועה קדימה

בעיותבעיות

Page 33: פרויקט: רובוט צייר

רזולוציית התקדמות של הרובוטרזולוציית התקדמות של הרובוט

בעיותבעיות

Page 34: פרויקט: רובוט צייר

שימוש בפקודת מהירות במקום פקודת מרחקשימוש בפקודת מהירות במקום פקודת מרחקהנחה: מהירות הרובוט קבועההנחה: מהירות הרובוט קבועה חישוב פשוט של הזמן הדרוש לרובוט לעבור מרחק חישוב פשוט של הזמן הדרוש לרובוט לעבור מרחקXX על על

הרצפה לפי:הרצפה לפי:

פתרון )חלקי( לבעיית תנועה קווית פתרון )חלקי( לבעיית תנועה קווית אחורה ולאחריה תנועה קדימהאחורה ולאחריה תנועה קדימה

בפועל החישוב מורכב יותר עקב סחיפה ומהירות שאינה בהכרח בפועל החישוב מורכב יותר עקב סחיפה ומהירות שאינה בהכרחקבועה לכל אורך המסלולקבועה לכל אורך המסלול

velocity

distancetime

Page 35: פרויקט: רובוט צייר

פתרון לבעיית תנועה קווית אחורה פתרון לבעיית תנועה קווית אחורה ולאחריה תנועה קדימהולאחריה תנועה קדימה

time )ms( vs distance on floor )mm( y = 0.0063x2 + 20.783x + 145.32

R2 = 0.9995

0

500

1000

1500

2000

2500

3000

3500

0 20 40 60 80 100 120 140 160

Distance [mm]

tim

e [

ms

ec

]

Page 36: פרויקט: רובוט צייר

תודה על ההקשבהתודה על ההקשבה