Download pptx - פרויקט ב- COROBOT

Transcript
Page 1: פרויקט ב-  COROBOT

- ב COROBOTפרויקט

כוחיי : קובי מנחהשטיין: ויהודה אסולין אייל מגישים

Page 2: פרויקט ב-  COROBOT

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

: במצגת מה

Page 3: פרויקט ב-  COROBOT

COROBOT

Page 4: פרויקט ב-  COROBOT

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

ה באמצעות הרובוטי .PCהחלקהPC(( יחסית שיצר – 1.5Ghz, 448 MB RAMחלש מה

. בהמשך נגיע אליהן בעיות :4רובוט , חיישני שני ( IRגלגלים ומאחורה ) מקדימה

. התקרה כלפי שפונה ומצלמהPC( :למסך )VGAיציאות ועכבר(, וכניסות(, 2PSמקלדת

USB FIREWIRE.- COMו ל הן ל Windowsתאימות .Linuxוהן ה של זו בגרסא רובוטית זרוע CoroBotאין

COROBOT

Page 5: פרויקט ב-  COROBOT

. רובוט: של מיקומו ידיעת הבעיה

" מיקומם " מהו יודעים לא הרובוטים רובמרובע(( ) x,yקואורדינאטת) ) חדר מסוים חלל בתוך

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

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

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

מוטיבציה:

1 1,x y

Page 6: פרויקט ב-  COROBOT

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

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

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

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

וזיהוי איתור מבחינת שצילם מה את ולנתח לצלם שידע. " צ לנ שמצא צבעים רצפי להתאים שיוכל כך צבעים

: הפרוייקט מטרת

Page 7: פרויקט ב-  COROBOT

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

נפרדים. , ' את להביא מטרתנו מציגים אנו שאותו א בפרוייקט

קל לנו יהיה שממנו בתכנות ראשוני למצב הרובוט , יכולות והצגת בסיסי תכנות כלומר הלאה להמשיך

.) מיד) יפורט עד מתקדם בתכנות להמשיך נדרש ההמשך בפרוייקט

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

: - המשך הפרוייקט מטרת

Page 8: פרויקט ב-  COROBOT

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

הנדרשות . הרובוט עם בתקשורת הקשיים על להתגבר , נסיעה ) ברובוט השונות הפונקציות את להפעיל לדעת

ב IRחישני והשימוש ( Encodersמצלמה לזיהוי המצלמה של בסיסי תמונה עיבוד להפעיל

. בתקרה שונים בצבעים כתמים לתוכנה בסיס להפעלת השונים הממשקים בין לקשר

. ביחד הכל לעשות שתוכל

:' א בפרוייקט המטרות פירוט

Page 9: פרויקט ב-  COROBOT

הCOROBOT שמותקנות הפעלה מערכות שתי עם מגיע-Windowsעליו: שמיועדת playerתוכנת. Linuxו

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

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

, ) היינו ) דרייברים התקנת למשל לינוקס מערכת תחת. לנו - היה שלא מה נרחב ידע צריכים

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

העבודה סביבת בחירת

Page 10: פרויקט ב-  COROBOT

בסביבתWindows הנקראת רובוטים על לשליטה תוכנה ישנהMicrosoft Robotics Developer Studio (MRDS).

החברהCoroWare( ( ה את את CoroBotשמייצרת פיתחההתוכנה בעזרת הרובוט על אתר MRDSהשליטה פתחה כן וכמו

. " זו תוכנה י ע הרובוט את לתכנת שעוזר ב להשתמש לא החלטנו .MRDSאנו ההתחלתי הפיתוח למרות שה התוכנה PCמסתבר את להריץ מסוגל לא אופן בשום החלש

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

) ב להשתמש לא משמעית חד והמליץ וויטלי .MRDSיצחק החברה שגם לב שמנו יותר את CoroWareמאוחר הורידה

... זו בתוכנה להשתמש ההמלצה

: עבודה MRDSסביבת

Page 11: פרויקט ב-  COROBOT

הפורומים באחד מצאנו חיפושים C-languageאחריAPI ה להפעלת. COROBOTעבור ממשק למעשה זהו

בשפת ניתן. Cהרובוט הממשק פונקציות בעזרת ( , בצורה תמונות לצלם הגלגלים מהירות את לקבוע

- ,) מה נתונים לקבל מסורבלת '.IRמאוד וכו הC-API על ושליטה לתכנות בסיסי ממשק הוא

של, ראשוניים בשלבים רק נמצא זה ממשק הרובוט " החברה י ע . CoroWareהפיתוח

וגם הנדרשות הספריות את להתקין כדי קשה עבדנושה למצב .C-APIלהגיע אליהם לגשת ידע

C-API: עבודה סביבת

Page 12: פרויקט ב-  COROBOT

ל , CAPIה, playerבניגוד . לדוגמא בפונקציות עשיר לאעל הצהרות יש הנסיעה על שאחראים הממשק בקבצי

, קביעת ) מהירות קביעת פונקציות של רחב מגוון , זוויתית, תאוצה קביעת זוויתית מהירות קביעת תאוצהקביעת'( שמאפשרת הפונקציה רק בפועל כאשר וכו

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

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

. הרובוט של

C-APIהמשך -

Page 13: פרויקט ב-  COROBOT

ה של התנועה את לכייל צריכים היינו כל .CoroBotראשית הCAPI על ולא המנועים עוצמת על רק שליטה לנו נתן

מהירות. – מרחק של כיול לעשות שצריך כיולים שני ישנם למעשה

. זוויתי וכיול נסיעה ,צריכים והיינו מהתאוריה שונה תמיד המציאות כידוע

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

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

C-APIתכנות -

Page 14: פרויקט ב-  COROBOT

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

ב השתמשנו כך בשפת – OpenCVלשם ספריות של Cממשק. תמונות עם נוחה עבודה המאפשר

ה בין בקישור וגם זו סיפריות מערכת בהתקנת קשיים לנו היוC-API לOpenCV.

המצלמה את לחלוטין לנטרל היה לבסוף שעשינו מהה של ה C-APIבאיתחול דרך רק הצילום על ולהסתמך

OpenCV. , ממשקים בין קישורים בעיית פתרנו גם פעמיים הרווחנו בעצם

ה דרך הצילום .OpenCVוגם מסורבל ופחות נח יותר הרבה

OpenCV:

Page 15: פרויקט ב-  COROBOT

ה , OpenCVבעזרת , תמונה לצלם רבה בקלות ניתןהתמונה על בסיסי מידע ולקבל תמונה ולפתוח לשמור

.)' , , וכו) רוחב אורך פורמט , , של הבתים ומספר הרוחב האורך על המידע בעזרת

) כל ) על בלולאות לרוץ ניתן פיקסל תת או פיקסל כלהפיקסלים

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

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

OpenCV

Page 16: פרויקט ב-  COROBOT

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

לקבוע ) כלומר אחיד לא בגוון לאותו גוונים מס'הוא(.צבע

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

.הצבע מאותו תנועת את מידי יותר לעכב לא כדי מינימלי ניתוח זמן

. יעילים =< באלגוריתמים הצורך הרובוט

: תמונה בעיבוד האתגרים

Page 17: פרויקט ב-  COROBOT

" של שילוב י ע מיוצג צבע .R G Bכל " ב פשוטים טווחים י ע צבעים טווחי לקבוע ניסינו בתחילה

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

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

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

" י ע ליצוג עברנו יש H S Lלכן זו לקביעת 3בשיטה פרמטרים. , ובהירות – טוהר גוון צבע

טווח בהגדרת יעילה יותר והרבה אינטואטיבית יותר זו שיטהצבע של

םיעבצ חותינ

Page 18: פרויקט ב-  COROBOT

מ " HSLל RBGהמעבר פשוט אלגוריתם י ע נעשהשמימשנו.

" על שצילמנו תמונות פ ע קבענו עצמם הגוונים את , כתם בכל הצבעים את וניתחנו המעבדה תקרת

בתמונה.

' ב רק השתמשנו א זאת 4בפרוייקט בכך אך צבעיםל הטווחים את הבא 7-8התאמנו החלק בשביל צבעים

.)! דיוק ) יותר שמצריך מה הפרוייקט של

המשך-ם יעבצ חותינ

Page 19: פרויקט ב-  COROBOT

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

. אמת ובזמן ביחד והמצלמה הרובוט ( ב קבצים מערכת יצרנו שבה Visual Stodio)לבסוף

, התוכנה הרובוט של ולפונקציות למצלמה אתחולים יש " ה י ע אותם ומנתחת תמונות לאחר OpenCVמצלמת

" " הרובוט ממשק י ע לזוז איך מחליטה הנתונים פ ע מכן .C-APIה–

. הממשקים בין בשילובים זהירים להיות צריכים היינו

) סיכום ) המאפיינים כל של שילוב

Page 20: פרויקט ב-  COROBOT

. חלקם את נפרט בעיות מאוד הרבה לנו היו העבודה במהלך

– ה על שעבד סטודנט היה קודמים מפרוייקטים הרובוט על מידע חוסרCoroBot ; כמו להודו וחזר מספקת בצורה עבודתו את פירט לא הוא אך

תחת עבר הוא תחת Linuxכן אנחנו .Windowsואילו◦. הבאים הסטודנטים בשביל מעמיקה בצורה שעשינו מה את לפרט החלטנו זה לאור

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

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

.) הספריות בין בשילוב בעיות עוד ואז בנפרד ספריה לכל בקישוריות

העבודה במהלך בעיות

Page 21: פרויקט ב-  COROBOT

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

ה .RAMזיכרון הרובוט של - עבדנו- לרוב היום של שונות בשעות ניתוח יכולת צבעים

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

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

; הגלגלים המנועים עוצמת על שלה וההשפעה הסוללהמהר – יותר לזוז ולפעמים בכבדות לזוז יכולים לפעמים

) , זה ) על שליטה לנו אין כלומר בלבד מכניות מסיבות

בעיות המשך

Page 22: פרויקט ב-  COROBOT

: גם להתאים צריכה המצלמה המצלמה עם בעיותלתוכנה וגם הרובוט של העיבוד יכולת OpenCVלרמת

.זיהוי: ◦ בשביל מספיק גבוהה להיות צריכה הרזולוציה רזולוציה

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

ב ◦ באג בדגם OpenCVקיים רזולוציה בשינוי עלינו מקשה אשר. שלנו המצלמה

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

-) לשגיאה מיידית שגורם מה הבא בפרוייקט חלקית יובאבתזוזות.

בעיות המשך

Page 23: פרויקט ב-  COROBOT

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

. שגויה בצורה ויפעל וורוד צבע " טווח של הגבלה י ע הוא זו לצרה הפתרון

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

.) התקרה ) על לא כלומר רגילים בתנאים לא שהצבעים " גדול הכתם שגודל הבנה י ע הוא נוסף פתרון כן כמו

בגלל ) – פה ולא השני בחלק גם ממומש מהרגיל) התקרה על לא שהכתמים

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

Page 24: פרויקט ב-  COROBOT

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

( התוכנהPROJECT_A )ומזהה התקרה את 4מצלמת ) היא ) צבע לכל כאשר ההדגמה בשביל שונים צבעים

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

. הנדרשות המטרות את שהשגנו מרגישים

המטרה השגת