פרויקט: רובוט צייר
DESCRIPTION
פרויקט: רובוט צייר. מגישים: אופיר ארז אלכס לזיקין מנחה: ארי טוטפלד. מטרות הפרויקט. פיתוח וכתיבת תוכנה המאפשרת לרובוט לזהות את כיוון התקדמותו בעזרת מצלמה המכוונת לתקרה. הזיהוי כולל: זיהוי הזווית שהרובוט מסתובב אליה. זיהוי כיוון הסיבוב. זיהוי המרחק שהרובוט עובר בתנועה בקו ישר. - PowerPoint PPT PresentationTRANSCRIPT
פרויקט: רובוט ציירפרויקט: רובוט צייר מגישים: אופיר ארזמגישים: אופיר ארז
אלכס לזיקיןאלכס לזיקין
מנחה: ארי טוטפלדמנחה: ארי טוטפלד
מטרות הפרויקטמטרות הפרויקט פיתוח וכתיבת תוכנה המאפשרת לרובוט לזהות את כיוון פיתוח וכתיבת תוכנה המאפשרת לרובוט לזהות את כיוון
התקדמותו בעזרת מצלמה המכוונת לתקרה. הזיהוי כולל:התקדמותו בעזרת מצלמה המכוונת לתקרה. הזיהוי כולל:
.זיהוי הזווית שהרובוט מסתובב אליה.זיהוי הזווית שהרובוט מסתובב אליה.זיהוי כיוון הסיבוב.זיהוי כיוון הסיבוב.זיהוי המרחק שהרובוט עובר בתנועה בקו ישר.זיהוי המרחק שהרובוט עובר בתנועה בקו ישר .זיהוי כיוון ההתקדמות. זיהוי כיוון ההתקדמות
כתיבת תוכנה המעבירה את הרובוט מנקודה אחת במרחב כתיבת תוכנה המעבירה את הרובוט מנקודה אחת במרחבלנקודה שנייה.לנקודה שנייה.
שליחת נתוני שרטוט מהמחשב אל הרובוט במטרה שהרובוט שליחת נתוני שרטוט מהמחשב אל הרובוט במטרה שהרובוטישרטט את הציור על הרצפה.ישרטט את הציור על הרצפה.
בניית חומרה שתאפשר התממשקות בין בקר הרובוט, המחשב בניית חומרה שתאפשר התממשקות בין בקר הרובוט, המחשבוהעט.והעט.
נתוני הרובוטנתוני הרובוט
:הנתונים הרלוונטיים שמספק הרובוט:הנתונים הרלוונטיים שמספק הרובוט
x, y, zx, y, z.של מרכז הרובוט ברשת גלובלית. של מרכז הרובוט ברשת גלובלית .זווית הסיבוב הגלובלית של הרובוט.זווית הסיבוב הגלובלית של הרובוט.מהירויות הגלגלים.מהירויות הגלגלים.סטטוס פורטי המוצא והכניסה.סטטוס פורטי המוצא והכניסה.ערך המתח של הסוללה.ערך המתח של הסוללה
זיהוי המרחק שהרובוט עברזיהוי המרחק שהרובוט עברזיהוי זווית הסיבוב אליה הרובוט הסתובבזיהוי זווית הסיבוב אליה הרובוט הסתובבשילוב של זיהוי מרחק וזיהוי זווית סיבובשילוב של זיהוי מרחק וזיהוי זווית סיבוב
השימוש במצלמה לשם מה?השימוש במצלמה לשם מה?
סכימת בלוקים של המערכתסכימת בלוקים של המערכת
תוכנה שרצה במחשב
מחשב
תוכנה שרצה ברובוט
(PSOS)
רובוטזרוע
תמונה שהרובוט צריך לצייר
משדר / מקלט RS 232
מקלט ווידאו Frame grabber מצלמה משדר
ווידאו
משדר / מקלט
RS 232
דיאגראמת בלוקים של המערכתדיאגראמת בלוקים של המערכת
אלגוריתמיםאלגוריתמים
:האלגוריתמים שמומשו בפרויקט:האלגוריתמים שמומשו בפרויקט
תרגום בין שתי מערכות ציריםתרגום בין שתי מערכות צירים אלגוריתם שרטוט על הרצפה אלגוריתם שרטוט על הרצפהאלגוריתם זיהוי המרחקאלגוריתם זיהוי המרחקאלגוריתם זיהוי זווית הסיבובאלגוריתם זיהוי זווית הסיבובאלגוריתם ביטול רעשאלגוריתם ביטול רעשאלגוריתם תיקון תנועהאלגוריתם תיקון תנועה
תנועת הרובוט תנועת הרובוט תרגום בין שתי מערכות ציריםתרגום בין שתי מערכות צירים
:מערכת צירי מסך: מערכת צירי מסך ציר צירXX מכוון ימינה וציר מכוון ימינה וציר YY.מכוון למטה. מכוון למטה .מערכת צירים קבועה במקומה.מערכת צירים קבועה במקומה
:מערכת צירי רובוט: מערכת צירי רובוט ציר צירXX מכוון בכיוון התקדמות הרובוט וציר מכוון בכיוון התקדמות הרובוט וציר YY מכוון לעבר דופן שמאל של מכוון לעבר דופן שמאל של
הרובוט.הרובוט..)מערכת צירים קבועה לרובוט )המערכת זזה ומסתובבת עם הרובוט(.מערכת צירים קבועה לרובוט )המערכת זזה ומסתובבת עם הרובוט
תרגום בין שתי מערכות ציריםתרגום בין שתי מערכות צירים
טרנספורמציית המעבר בין המערכותטרנספורמציית המעבר בין המערכות
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
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"
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
אלגוריתם זיהוי המרחק אלגוריתם זיהוי המרחק
1תמונה 2תמונה
אובייקט שקיים בשתי התמונות
d
דגימת תמונה ראשונה תנועה דגימת תמונה שניה
:הנחות
כמעט אותם אובייקטים נמצאים בשתי התמונות הדגומות ללא שינוייםמהותיים.
.האובייקטים מספיק גדולים כך שהם נבדלים מהותית מן הרקע והרעש
:מסקנות שהוסקו תוך כדי עבודה
.יש צורך לדגום לתקופות יחסית קצרות
.עדיף לבצע זיהוי מרחק ע"י זיהוי המרחק בין האובייקטים ולא מתוך הרקע
11הרעיון: צעד הרעיון: צעד מציאת היטלים מציאת היטלים
עוצמה של שורה
ס' מ
השור 1תמונה 2תמונה
כלומר ההיטלים נראים כך:
d
1' הטלה מס
מס' שורות
2' הטלה מס
מס' שורות
d
ס' מ
השור
עוצמה של שורה
22הרעיון: צעד הרעיון: צעד
.נמקם את ההיטלים זה מול זה ונחסירם האחד מתוך השני
מס' שורה
1הטלה מס' 2הטלה מס'
"מרחק" בין הטלות
d
המרחקd.בין שיאי ההיטלים נותר בעינו גם לאחר החיסור
33הרעיון: צעד הרעיון: צעד
ההפרש הקטן ביותר בין הפרופילים )קרוב לקבוע( מתקבל כאשר התמונות הוזזו למצב בוהאובייקטים התלכדו.
.כדי להדגיש את ההפרש בין האובייקטים לבין הרקע, מתבצעת גזירה על ווקטור ההפרש ,)כדי לבצע השוואה בין תוצאת גזירה אחת לתוצאת גזירה אחרת )בין הזזה אחת לשניה
מסכמים את ערכי ווקטור הגזירה לשם קבלת סקלר..מתקבל ווקטור של סקלרים. כל סקלר מתייחס לטיב הקירבה בין ההיטלים.ככל שהסקלר נמוך יותר, ההיטלים קרובים יותר זה לזה.אינדקס המיקום של הסקלר עם הערך המינימלי, מציין את המרחק שבין שני ההיטלים
מס' שורה
1הטלה מס' 2הטלה מס'
"מרחק" בין הטלות
ביצוע הזזה של היטל אחד ביחס לשני, תוך כדי חיסור
2תמונה
1תמונה
- המשך - המשך33הרעיון: צעד הרעיון: צעד
1הטלה מס' 2הטלה מס'
"מרחק" בין הטלות
1' הטלה מס
2' הטלה מס
- סיכום - סיכום33הרעיון: צעד הרעיון: צעד
:הנוסחה המתאימה לשלבים שהוגדרו הינה:הנוסחה המתאימה לשלבים שהוגדרו הינה
50
501
PrPrminarg
j
n
ipreviouscurrent
jojoj
x
במיקום במיקוםj=dj=d.ימצא המינימום הדרוש. ימצא המינימום הדרוש
מה קורה מעשית ?מה קורה מעשית ?
אלגוריתם זיהוי זווית הסיבובאלגוריתם זיהוי זווית הסיבוב כאשר תמונה אחת מסובבת ביחס לשנייה מסובבים את אחת כאשר תמונה אחת מסובבת ביחס לשנייה מסובבים את אחת
התמונות עד שנוצרת התלכדות.התמונות עד שנוצרת התלכדות..הסיבוב מתבצע בקואורדינאטות פולאריות, כדי לסובב יותר מהר.הסיבוב מתבצע בקואורדינאטות פולאריות, כדי לסובב יותר מהר
חיסור רגיל של תמונות, מספק מעט אפסים ולכן מזוהה מינימום בצורה לא נכונה
חיסור רגיל של תמונות, מספק הרבה אפסים ולכן מזוהה
מינימום למרות שהאובייקטים כלל לא באותה זווית
הרעיוןהרעיון
."התמונות תהיינה באותה זווית כאשר האובייקטים שבהן יהיו "מקביליים". התמונות תהיינה באותה זווית כאשר האובייקטים שבהן יהיו "מקביליים המרחק בין האובייקטים יכול להיות שונה, אך הם שומרים על אותה זווית המרחק בין האובייקטים יכול להיות שונה, אך הם שומרים על אותה זווית
האחד ביחס לשני.האחד ביחס לשני. חיסור רגיל של תמונות לא עוזר כאן ולכן משתמשים ברעיון ההיטלים חיסור רגיל של תמונות לא עוזר כאן ולכן משתמשים ברעיון ההיטלים
שהוצג קודם.שהוצג קודם.
האובייקטים באותה זווית, אך מוזזים האחד ביחס לשני.
האובייקטים לא באותה זווית
שלביםשלבים מסובבים תמונה אחת ביחס לשניה לזווית מסובבים תמונה אחת ביחס לשניה לזוויתδδ...מחשבים היטלים אנכיים לשתי התמונות.מחשבים היטלים אנכיים לשתי התמונות מוצאים לפי שיטת ההיטלים את המרחק בין האובייקטים בציר האנכי ואת מוצאים לפי שיטת ההיטלים את המרחק בין האובייקטים בציר האנכי ואת
..DyDyהערך המינימלי של נגזרת המרחק האנכי: הערך המינימלי של נגזרת המרחק האנכי: .מחשבים היטלים אופקיים לשתי התמונות.מחשבים היטלים אופקיים לשתי התמונות מוצאים לפי שיטת ההיטלים את המרחק בין האובייקטים בציר האופקי ואת מוצאים לפי שיטת ההיטלים את המרחק בין האובייקטים בציר האופקי ואת
..DxDxהערך המינימלי של נגזרת המרחק האופקי: הערך המינימלי של נגזרת המרחק האופקי: שמירת שמירתDx+DyDx+Dy בתא שבווקטור שגיאה יחד עם הזוית בתא שבווקטור שגיאה יחד עם הזוית δδ..
כיצד נדע לאיזו זווית הרובוט באמת הגיע ?
מציאת מינימום על ווקטור השגיאה לפי הערכים מציאת מינימום על ווקטור השגיאה לפי הערכים Dx+DyDx+Dy יספק את הזווית יספק את הזווית δδ.המתאימה. המתאימה
מה קורה במציאותמה קורה במציאות
אלגוריתם ביטול רעשאלגוריתם ביטול רעש
הרעש שבמערכת נבע מאיבוד סנכרון הרעש שבמערכת נבע מאיבוד סנכרון
איבודי סנכרון
אנכי
איבודי סנכרון אופקי
הרעיוןהרעיון
קביעת רמת סף קביעת רמת סף
Noise Level = Max of projection vector + 20
ביצוע דגימהביצוע דגימה
?
?
?
?
?
חומרהחומרה
זרוע מ-"לגו" חשמליזרוע מ-"לגו" חשמלי"כרטיס אלקטרוני לבקרת מנוע ה-"לגו"כרטיס אלקטרוני לבקרת מנוע ה-"לגו
מעגל לזיהוי מצב העט מעגל לזיהוי מצב העט
10K
5V
To the inport
בעיותבעיות
תנועת רובוט קדימה תנועת רובוט קדימהתנועת רובוט סיבובית תנועת רובוט סיבובית
תנועה קווית או סיבובית מלווה בתנועות תיקוןתנועה קווית או סיבובית מלווה בתנועות תיקון
בעיותבעיות
תיקון אפשריתיקון אפשרי
המרה לא ליניארית בין פקודה למרחקהמרה לא ליניארית בין פקודה למרחק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
בעיותבעיות
המרה לא ליניארית בין פקודה לפיקסליםהמרה לא ליניארית בין פקודה לפיקסלים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
בעיותבעיות
תנועה קווית אחורה ולאחריה תנועה קדימהתנועה קווית אחורה ולאחריה תנועה קדימה
בעיותבעיות
רזולוציית התקדמות של הרובוטרזולוציית התקדמות של הרובוט
בעיותבעיות
שימוש בפקודת מהירות במקום פקודת מרחקשימוש בפקודת מהירות במקום פקודת מרחקהנחה: מהירות הרובוט קבועההנחה: מהירות הרובוט קבועה חישוב פשוט של הזמן הדרוש לרובוט לעבור מרחק חישוב פשוט של הזמן הדרוש לרובוט לעבור מרחקXX על על
הרצפה לפי:הרצפה לפי:
פתרון )חלקי( לבעיית תנועה קווית פתרון )חלקי( לבעיית תנועה קווית אחורה ולאחריה תנועה קדימהאחורה ולאחריה תנועה קדימה
בפועל החישוב מורכב יותר עקב סחיפה ומהירות שאינה בהכרח בפועל החישוב מורכב יותר עקב סחיפה ומהירות שאינה בהכרחקבועה לכל אורך המסלולקבועה לכל אורך המסלול
velocity
distancetime
פתרון לבעיית תנועה קווית אחורה פתרון לבעיית תנועה קווית אחורה ולאחריה תנועה קדימהולאחריה תנועה קדימה
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
]
תודה על ההקשבהתודה על ההקשבה