גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ...

32
דוח פרויקט: פרויקט ב' ( סימסטראלי) הנושא: ניווט רובוט מסוגROOMBA במרחב ממופה מגישים: גיל בן יוסף איציקוביץ עומר034321547 031704174 מנחה: קובי כוחי סמסטר: ח ורף תשס" ט( 2008 ) הטכניון- מכו ן טכנולוגי לישראלTECHNION - ISRAEL INSTITUTE OF TECHNOLOGY הפקולטה להנדסת חשמל המעבדה לבקרה ורובוטיקה

Transcript of גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ...

Page 1: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

(סימסטראלי)' פרויקט ב: דוח פרויקט

:הנושא

ניווט רובוט מסוגROOMBA

במרחב ממופה

:מגישים

איציקוביץ עומר גיל בן יוסף 034321547 031704174

:מנחה

קובי כוחי

(2008) ט"ורף תשסח :סמסטר

ן טכנולוגי לישראל מכו -הטכניון TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY

הפקולטה להנדסת חשמל

המעבדה לבקרה ורובוטיקה

Page 2: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: תוכן עיניינים

עמוד נושא

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

3מבוא

The Roomba 4: חומרה

Pic Microcontroller 8: חומרה

2ICD 10 :חומרה

11תרשים זרימה

12הגדרת המפה : מפת הרומבה

13מציאת מסלול אופטימלי : מפת הרומבה

19הבית של הרובוט : מפת הרומבה

21אתחול :המשימה

21נסיעה אל החדר : המשימה

22ניקוי החדר : המשימה

23אינדקטורים מחיישני הרובוט : ניווט הרובוט

23 אודומטריהבקרה באמצעות : ניווט הרובוט

23תהליך הבקרה בתנועה למטרה : ניווט הרובוט

26סיבוב ליעד : ניווט הרובוט

27תמודדות עם מכשולים ה, נסיעה לאיזור היעד: ניווט הרובוט

28דקירת היעד : ניווט הרובוט

30מסקנות והצעות לשיפור

31בעיות טכניות בהן נתקלנו בעת ביצוע הפרויקט

31בבילוגרפיה

Page 3: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

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

כך Pic microcontrollerבאמצעות ( המדמה דירה)בתוך מרחב ממופה ROOMBAמסוג ניווט רובוט

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

. צפויים

: מבוא

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

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

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

עובד בדרך כלל בסביבה קבועה ( אינטלגנטי יותר או פחות) כמו כל שואב אבק Roomba –מכיוון שה

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

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

. והניקוי

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

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

. יתקל בו שוב במהלך עבודתו

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

בור בדרך הפנויה הקצרה ביותר לחדר את הדרך הפנויה הקצרה ביותר לחדר הראשון לניקוי ינקה אותו ויע

יעקוף הרובוט את המכשול ויחשב ובמקרה של היתקלות במכשול בדרך לחדר או בניקוי, הבא וכן הלאה

. מסולול תנועה אפוטימלי חדש תוך כדי התחשבות בו

דבר ) הן מבחינת זמן עבודה והן מבחינת הספק נצרך מסוג זה יהיה חסכוני יותר " משודרג" Roombaרובוט

(. היאפשר לו עבודה רציפה ארוכה יותר

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

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

Page 4: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

The Roomba (Roombot):

המשמש בדרך כלל כשואב אבק המסוגל לפעול iRobot Corporation מתוצרת הרומבה הינו רובוט

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

: ניתן למנות

באופן יחסי עלות זולה

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

הפיכה ובוט הינה השפעה חיצונית על הר- “reversible hacking”- ועם ניתוק ההתקן החיצוני

. הרובוט יחזור לתפקודו המקורי

הרובוט מצוייד במספר חיישנים מובנים

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

.ולחברו לחיישנים חיצונייםלשלוח לו פקודות , וסביבתו בכל רגע נתון

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

Page 5: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

:תקשורת עם הרובוט

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

לשליחת פקודות לרובוט הינם נתיבי התקשורת XRוביט ( הרובוט מחיישני)לקבלת מידע XTביט , דין

. העיקריים

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

Data Bytes Opcode byte

( : Data Bytes 4בעלת ) Driveלדוגמא פקודה מסוג

[137] [Velocity high byte] [Velocity low byte] [Radius high byte] [Radius low byte]

: הפקודות השימושיות ביותר בפרויקט זה היו

Drive command - פקודה המורה לרובוט לנסוע ולהסתובב במהירות ורדיוס כלשהו .

Sensors command – פקודה המבקשת מהרובוט לשלוח מידע מהחיישנים .

: ונליות של כל כניסה סריאליתוהפונקצי Mini –Dinמחבר

Page 6: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: חיישני הרובוט

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

:רגע נתון

: הסביבההתנועה וחיישנים המספקים מידע על

Wheel Encoders - המרחק שהרובוט עבר מחושבידע זה ממודדים את מספר סיבובי הגלגלים ולפי

Bump Sensors - מזהים פגיעה של הרובוט באובייקט

IR Receiver - לזיהוי קיר ווירטואלי חיישן אינפרה אדום

– Cliff Sensors חיישן המזהה מצב בו החלק הקדמי של הרובוט באוויר

Wheel Drop Sensors -חיישן המזהה מצב של גלגל באוויר

: מיקום החיישנים

Page 7: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

sensor data)האינדקטורים מחולקים לקבוצות , אינדקטורים כפלט מחיישניו 43מסוגל לשלוח עד הרובוט

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

:packets sensor data -מחולקים ל בה הם והדרךרים וקטנדהאי

Page 8: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

PIC Microcontroller:

Page 9: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

ומיקרו Packaging, ההתפתחות המהירה שנעשתה בשנים האחרונות בתחום המעגלים המשולבים

' שעונים וכ, O\Iקווי ,רכיבי זכרון, אלקטרוניקה ככלל מאפשרת כיום אחסון מספר רב של טרנזיסטורים

. בקר-סמו של המיקרוזהו סוד ק, זולה וקלה לניוד, באריזה קטנה

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

(. דיגיטלים ואנלוגים)ומאפשר קריאת מספר גלאים רב

. ומבוסס על לולאות ופסיקות MPLABבסביבת Cבשפת התבצעתכנות הבקר

:מרכיבי הבקר

בגודל( תן למחיקה וכתיבה מחדשהני) זכרוןbytes 16384 Program memory (FLASH):

.המשמש לשמירת הקוד

בגודל ( נמחק עם כיבוי הבקר)זכרון פנימי זמני bytes4096 16 -ל המחולק RAM:

. bytes256 בנקי זכרון של

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

.הצורךלשחזר במידת

חיבורים פיזקלים בין הבקר לסביבתו. PORTS:

הערך , ביט הפועלים באופן בלתי קשור לתוכנית 8רגיסטרים שלFREE-RUN TIMER:

ית של האוסצילטור עד שהרגיסטר ברגיסטר גדל בכל פעימה רביע

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

( . הפחתה

. שימושי מאוד בקוד המבוסס על פסיקות TIMER–ה

מעבד המנהל את ביצוע התוכניתCENTRAL PROCESSING UNIT:

Page 10: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

I/O:

:רגליים 40בצעת באמצעות ההתקשרות של הבקר עם העולם החיצון מת

Pin Diagram:

PORTS

Page 11: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

. המאוחסנים ברגיסטרים PORTS (A- E)הרגליים מחולקים לחמישה , כל רגל מייצגת ביט בודד

: REG PORTAלדוגמא

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

RC6- asynchronous transmit bit

RC7- asynchronous receive bit

ICD2:

מחבר בין המחשב לבין הכרטיס עליו MPLAB ,ICD2באמצעות תוכנת משמש לטעינה של התוכנה לבקר

: מצבי עבודה 2מאפשר , יושב הבקר

Programmer -מאפשר לבקר לעבוד באופן עצמאי ברגע שהבקר מתחבר למתח . 1

Debugger -וכנה נצרבת לבקר אך מתאפשרת ריצה רק כאשר הבקר מחובר פיזית למחשב במצב זה הת. 2

תוך כדי ריצת הקוד debuggingבמצב זה ניתן לבצע פעולות , MPLAB -עם תוכנת ה

Page 12: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

איתחול

הרובוט

טעינת נתוני הדירה

(מיקום קירות וחדרים)

: בחירת מוד עבודה

(a ) סע לחדרx ונקה אותו

(b ) נקה את כל החדרים

חישוב המסלול הקצר

ביותר ממיקום התחלתי

ההתחלה של החדר ' לנק

היעד ' תנועה לנק

בדרך הקצרה ביותר

איסוף , האפשרית

חישוב , נתוני תנועה

מיקום וכיוון תנועה

, עקיפת המכשול

עדכון מפת הדירה

' הגעה לנק

היעד

סיום

איסוף , ניקוי החדר

, נתוני תנועה

חישוב מיקום

וכיוון תנועה

היתקלות במכשול

סיום ניקוי

החדר

, עקיפת המכשול

ת הדירהעדכון מפ

' קבע את נק

ההתחלה של

החדר הבא

כיעד הבא

היתקלות במכשול

b משימה a משימה

סיום ניקוי בל החדרים

נותרו חדרים לניקוי

:תרשים זרימה

Page 13: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: מפת הרומבה

:הגדרת המפה

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

. להיכנס Roombotנגדיר מפה שתמפה את האזורים אליהם אסור ל

כאשר כל ריבוע במטריצה מייצג אזור בגודל 8X8את המפה נגדיר בעזרת מטריצה בגודל של

50cmX50cm .

. 4mX4mכ גודל המפה שלנו "סה, כלומר

( '1')אם הביט דלוק . כל ביט מיצג ריבוע במפה(. Byte)ביטים 8בן כל שורה במפה מיוצגת על ידי מספר

. להיות באזור Roombot אסור ל, ('0')אם הביט כבוי , מותר לשהות באזור Roombotל

(. {0 ,0}נקודת ה ) [4,4]נגדיר את מרכז המפה כמרכז הריבוע

(. ל למעלהגד Yגדל ימינה ו X)ואת המפה כמערכת צירים קארטזית רגילה

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0 0 0 0 2

0 1 0 1 1 0 0 0 3

1 1 1 1 1

0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

50 cm

4 m

{0,0}

X

Y

Page 14: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: מציאת המסלול הקצר ביותר

. {0,0}נמצא בהתחלה במרכז Roombotנניח שה

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

. {1,3} –לדוגמא נגדיר את נקודת הסיום כ

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

. בלבד

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

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

. למטה< -ימינה

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

מבט קצר במפה מראה . חוקית לתנועה [5,4]לכן נבדוק האם המשבצת , והכיוון הראשון שנבדוק הוא שמאלה

חוקית לתנועה ולכן [4,3]המשבצת . למעלה, נמשיך לכיוון הבא. שהכיוון שמאלה לא אפשרי בצעד הראשון

. היא תהיה הצעד הבא שלנו

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0 0 0 0 2

0 1 0 1

1 0 0 0 3

1 1 1 1 1 0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

Page 15: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

שוב נתחיל לבדוק את המשבצת השמאלית . נבדוק מה הצעד הבא שלנו. [4,3]כעת אנחנו נמצאים במקום

. אך התנועה ימינה אפשרית, ר נגלה שגם התנועה שמאלה וגם התנועה למעלה לא אפשריתמה. ראשונה

. [3,3] לכן הצעד הבא יהיה למשבצת

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0 0 0 0 2

0 1 0 1

1 0 0 0 3

1 1 1 1 1 0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0 0 0 0 2

0 1 0 1 1 0 0 0 3

1 1 1 1 1 0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

Page 16: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

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

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

אחת ובבדיקה עבור עליה משבצת , [2,2]לפי אלגוריתם זה נגיע בקרוב למצב בו אנחנו נמצאים במשבצת

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

. ונמשיך לחפש את המסלול, [2,1]למשבצת [2,2]את המעבר ממשבצת

: המסלול הראשון אותו האלגוריתם מוצא הוא זה

. צעדים 6אורך המסלול הוא

. אך זהו לא המסלול היחיד

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

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

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0

0 0 0 2

0 1 0 1 1 0 0 0 3

1 1 1 1 1 0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

Page 17: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: המסלול הבאה שהאלגוריתם ימצא יהיה

. צעדים לכן המסלול הראשון שנמצא ישאר המועדף 6גם מסלול זה אורכו

: המסלול הקצר ביותר שימצא יהיה

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0

0 0 0 2

0 1 0 1 1 0 0 0 3

1 1 1 1 1 0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0 0 0 0 2

0 1 0 1

1 0 0 0 3

1 1 1 1 1 0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

Page 18: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

. צעדים בלבד 4אורך מסלול זה הוא

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

. צעדים בלבד 12אורך מסלול זה הוא

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

הנקודה אליה הוא יצטרך להגיע . אליה הוא צריך להגיע במעבר בין משבצות יקבל נקודת ציון Roombotה

. תהיה אמצע הצלע המחברת בין המשבצות

יצטרך להגיע לנקודה Roombot ה [3,4]למשבצת השניה [4,4]במעבר בין המשבצת הראשונה , לדוגמא

(. מ"המספרים הם במ) {250,0}

: המסלול כולו יהיה

{0,0} -> {250,0} -> {750,0} -> {1250,0} -> {1500,250} -> {1500,500} .

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1

0 1 1 1 0

0 0 0 2

0 1 0 1 1 0 0 0 3

1 1 1 1 1 0 0 0 4

1 1 0 0 1 0 0 0 5

0 1 1 1 1 0 0 0 6

0 0 0 0 0 0 0 0 7

Page 19: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

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

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

[4, 4] -> [4, 3] -> [3, 3] -> [3, 2] -> [2, 2] -> [1, 2] -> [1, 3]

[4, 4] -> [4, 3] -> [3, 3] -> [3, 4] -> [2, 4] -> [1, 4] -> [1, 3]

[4, 4] -> [3, 4] -> [3, 3] -> [3, 2] -> [2, 2] -> [1, 2] -> [1, 3]

[4, 4] -> [3, 4] -> [2, 4] -> [1, 4] -> [1, 3]

[4, 4] -> [4, 5] -> [4, 6] -> [3, 6] -> [2, 6] -> [1, 6] -> [1, 5] -> [1, 4] -> [2, 4] -> [3, 4] ->

[3, 3] -> [3, 2] -> [2, 2] -> [1, 2] -> [1, 3]

[4, 4] -> [4, 5] -> [4, 6] -> [3, 6] -> [2, 6] -> [1, 6] -> [1, 5] -> [1, 4] -> [1, 3]

[4, 4] -> [4, 5] -> [4, 6] -> [3, 6] -> [2, 6] -> [1, 6] -> [1, 5] -> [0, 5] -> [0, 4] -> [1, 4] ->

[2, 4] -> [3, 4] -> [3, 3] -> [3, 2] -> [2, 2] -> [1, 2] -> [1, 3]

[4, 4] -> [4, 5] -> [4, 6] -> [3, 6] -> [2, 6] -> [1, 6] -> [1, 5] -> [0, 5] -> [0, 4] -> [1, 4] ->

[1, 3]

SHORTEST PATH:

[4, 4] -> [3, 4] -> [2, 4] -> [1, 4] -> [1, 3]

DESTINATIONS:

{250, 0} -> {750, 0} -> {1250, 0} -> {1500, 250} -> {1500, 500}

Page 20: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: Roombotהבית של

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

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

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

: נראה כך Roombotשהבית של ה נניח

ידע למצוא את הדרך הקצרה ביותר Roombotה , ומספר חדר לנקות, מיקום התחלתי Roombotבהינתן ל

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

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

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

1' חדר מס 2' חדר מס

3' חדר מס 4' חדר מס

Page 21: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: כמפת רומבה Roombotנתאר את הבית של

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

. עליונה ונקודה ימנית תחתונה

: ל יהיו מיוצגים כך"החדרים במפה הנ: לדוגמה

Down Right Up Left Room

2 4 0 7 1

2 0 0 2 2

7 5 4 7 3

7 0 4 2 4

0 1 2 3 4 5 6 7

1 1 1 0 1 1 1 1 0

1 1 1 0 1 1 1 1 1

1 1 1 0 1 1 1 1 2

0 0 1 0 0 1 0 0 3

1 1 1 1 1 1 1 1 4

1 1 1 1 0 1 1 1 5

1 1 1 1 0 1 1 1 6

1 1 1 1 0 1 1 1 7

Page 22: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: המשימה

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

. או יותר

: מתחלקת לשלושה חלקים Roombotהמשימה של ה

אתחול.

נסיעה אל החדר

ניקוי של החדר

אתחול

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

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

. צריך לנקות

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

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

. עצמו Roombotנתחיל באיתחול של ה , ואת הטיימר, Roombotלאחר שאיתחלנו את הערוץ הסריאלי ל

ראה בפרק )לו ושליחת פרמטרים לרובוט לצורך אתחו, Roombotהאתחול כולל הדלקה חשמלית של ה

(. המימוש

. מוכן להתחיל במשימה Roombotכעת ה

נסיעה אל החדר

להגיע תחילה בשלום ובדרך המהירה ביותר לחדר אותו הוא Roombotעל ה , כדי להתחיל בניקוי החדר

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

. עובר מצעד לצעד עד שהוא מגיע ליעדו הסופי Roombotה . סלול בנוי ממספר צעדיםהמ

: כל צעד בנוי משלושה שלבים

סיבוב ליעד.

נסיעה לאזור היעד.

דקירת היעד.

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

Page 23: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

ניקוי החדר

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

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

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

. ל כל החדרנמשיך כך עד שנעבור ע. ונעבור שוב מימין לשמאל

0 1 2 3 4 5 6 7

1 1 1 0 1 1 1 1

0

1 1 1 0 1 1 1 1 1

1 1 1 0 1 1 1 1 2

0 0 1 0 0 1 0 0 3

1 1 1 1 1 1 1 1 4

1 1 1 1 0 1 1 1 5

1 1 1 1 0 1 1 1 6

1 1 1 1 0 1 1 1 7

נכבה את הרובוט , בסיום העבודה

Page 24: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: Roombot -ניווט ה

: Roombot -ינדקטורים מחיישני הא

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

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

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

. מהדגימה האחרונה

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

. בדרך זו הרובוט מזהה פגיעה, של הבקר RC1המחוברת לרגל ומתכת נוספת VDD –המחוברת ל

: בקרה באמצעות אודומטריה

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

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

. )ספירת מספר סיבובי הגלגלים

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

. דבר העלול לגרור שגיאות מצטברות משמעותיות, שהערכותיו שגויות

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

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

. והוספנו תיקונים בקוד שאיפשרו ניווט יחסית מדויק

: תהליך הבקרה בתנועה למטרה

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

: הבא יעד המטרהבכל שלב מוערך מיקומנו הנוכחי ומוגדר , בשלבים

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

Page 25: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: לדוגמא עבור המסלול הנוכחי

:מערכות 2נגדיר

עבור הזווית . א

מערכת זו רלוונטית בעת סיבוב הרובוט במקום

ההתחלתי על הרובוט להגיע לכיוון רצוי מהכיוון

+

כיוון רצוי

Roomba בקר

מדידות כיוון נוכחי

+

-

בקר

יעד סופי

מיקום וכיוון

נוכחי

יעד המטרה הבא

יעד המטרה השלישי

Page 26: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: הסבר

(כניסה)נקבע כיוון רצוי .א

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

(Roomba)כיוון של הרובוט /מדידות מיקום, תנועה של הרובוט למטרה .ג

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

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

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

.באלגוריתם

:עבור המיקום. ב

נסיעת הרובוט למטרה מערכת זו רלוונטית בעת

על הרובוט להגיע ממיקום התחלתי למיקום רצוי

: הסבר

(כניסה)נקבע מיקום רצוי .א

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

( בקר( )נטייה לכייון מוגדר עם" ישר"יכולה להתבצע

(Roomba)כיוון של הרובוט /מדידות מיקום, תנועה של הרובוט למטרה .ג

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

(בקר)וקובע את המיקום הנוכחי ( תיקונים המוגדרים בקוד+ סכום המדידות

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

.באלגוריתם

+

רצוי מיקום

Roomba בקר

מדידותנוכחי מיקום

+

-

בקר

Page 27: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: שלבים בניווט

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

סיבוב ליעד

(והתמודדות עם מכשול במידת הצורך)נסיעה לאיזור היעד

דקירת היעד

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

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

:סיבוב ליעד

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

: הבאים

.אמצע הגבול בין המשבצות –יעד המטרה לפי המשבצת הבאה באלגוריתם מחושב .1

: מחושבת הזווית בין חרטום הרובוט ליעד המטרה .2

. מעלות 90במקרה זה הזווית למטרה הינה , לדוגמא

מילי שניות הרובוט שולח עדכון לגבי כיוון 100בכל , תחילת סיבוב לעבר הכיוון הרצוי .3

.החרטום

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

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

(.את הערך קבענו לאחר שביצענו מספר ניסויים עבור סיבובים בזוויות שונות)הרובוט

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

.נסיעה לאיזור היעד -נעבור לשלב הבא המטרה

המשבצת

הבאה לפי

האלגויתם

מיקום נוכחי

0חרטום לכיוון

יעד מטרה

Page 28: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: נסיעה לאיזור היעד

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

אם כן הרובוט יפעיל מנועי ניקוי, בדיקה האם אנו במוד ניקוי חדר .1

אינדקטורים וחישוב מיקום הרובוט במרחב קריאת .2

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

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

.מצב בו המטרה מעט שמאלה מהרובוט

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

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

. כדי להשיג תנועה יותר מדויקת ולתקן סטיות

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

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

במידה וחישוב מיקום הרובוט במרחב מגלה כי המרחק בין הרובוט למטרה קטן מסף שנקבע נעבור .5

.דקירת היעד -לשלב הבא

: התמודדות עם מכשולים

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

(. בדרך זו הרובוט מזהה פגיעה, של הבקר RC1ומתכת נוספת המחוברת לרגל VDD –ל

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

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

הרובוט עצירת -לאחר נסיעה קצרה לאחור .2

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

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

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

( החדר

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

. את הדרך הקצרה ביותר למשבצת הבאה שהוא צריך לנקות

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

סיבוב ליעד

נסיעה לאיזור היעד

דקירת היעד

Page 29: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

:עדדקירת הי

במידה ובמהלך שלב הנסיעה ליעד חישוב מיקום הרובוט במרחב מגלה כי המרחק בין הרובוט למטרה קטן

: ונפעל לפי השלבים הבאים -דקירת היעד -מסף שנקבע נעבור לשלב הבא

.הרובוט ימשיך ליסוע ישר לכיוון המטרה אך יאט את מהירותו .1

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

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

:סכימת הדגימות .3

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

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

( האחרונה

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

. הגענו ליעד –עצירה לרובוט

:יתכנו מספר תרחישים –בדיקת סטטוס .4

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

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

הנסיעה לחדר באלגוריתם

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

.דקירת היעד< -נסיעה לאיזור היעד < -סיבוב ליעד

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

i. חדרהרובוט יעבור למצב ניקוי

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

באלגוריתם ניקוי החדר

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

.דקירת היעד< -הפעלת מנועי ניקוי + נסיעה לאיזור היעד < -סיבוב ליעד

: הרובוט באמצע ניקוי החדר .ג

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

באלגוריתם ניקוי החדר

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

דקירת היעד< -נסיעה לאיזור היעד < -סיבוב ליעד

Page 30: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

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

: מספר חדרים ונשארו חדרים לניקוי

i. הבקר יחשב את המסלול הקצר ביותר לנקודה ימנית תחתונה של החדר הבא ,

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

באלגוריתם הנסיעה לחדר הבא

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

.דקירת היעד< -נסיעה לאיזור היעד < -סיבוב ליעד

ומשימת הרובוט היא לנקות ( נקודה שמאלית עליונה)הרובוט הגיע לנקודת סיום של החדר .ה

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

סוף המשימה –הרובוט יעצור -

Page 31: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: מסקנות והצעות לשיפור

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

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

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

. נמוכה ביותר וללא צורך בשינויי חומרה של הרובוט

: מספר הצעות לשיפור

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

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

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

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

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

במהלך כתיבת הקוד וצריבתו לבקר נתקלנו בבעית זכרון שאילצה אותנו לייעל – זכרון מוגבל בבקר. ב

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

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

. בוחרים להגדיל את גודל המשבצות

. מהזיכרון הפנוי שלו 90% –צריבת הקוד שלנו לבקר תפסה יותר מ

זכרון גדול יותר תוך להשתשמש בבקרים בעלי מתכנת השואף לכתוב קוד יותר מורכב יאלץ

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

מוטבע בקוד ( איזורים אסורים)בפרויקט זה קידוד מבנה הדירה –ממשק נוח לקידוד מבנה הדירה . ג

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

GUIשל באמצעות למ -יותר

Page 32: גוסמ טובור טווינ...The Roomba (Roombot): לועפל לגוסמה קבא באושכ ללכ ךרדב שמשמה iRobot Corporation תרצותמ טובור וניה הבמורה

: בעיות טכניות בהן נתקלנו במהלך הפרויקט

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

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

סה לבקר ל יש להמיר את מתח הכני– V5 ( מתח הבטרייה בה השתמשנו היה- V9)

עבורbaud rate דבר הגורם לעיתים , בקצב הדגימה ~ 3%ישנה שגיאה של ( בו עבדנו) 57600של

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

.בקצבים נמוכים יותר

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

:בבילוגרפיה

1. PIC18F2331/2431/4331/4431 Data Sheet

2. iRobot® Create OPEN INTERFACE

3. Hacking Roomba – Tod E.Kurt

4. Introduction to Microcontrollers – Pic Microcontrollers on – line

18עם בקרים מסדרה מדריך לעבודה .5

6. HT PIC C מדריך לתכנות בקרים -