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

EyeRobot - הקנה הלבן הרובוטי: 10 שלבים (עם תמונות)
EyeRobot - הקנה הלבן הרובוטי: 10 שלבים (עם תמונות)

וִידֵאוֹ: EyeRobot - הקנה הלבן הרובוטי: 10 שלבים (עם תמונות)

וִידֵאוֹ: EyeRobot - הקנה הלבן הרובוטי: 10 שלבים (עם תמונות)
וִידֵאוֹ: Robot Eye Expressions For 2 Minute Straight 2024, יולי
Anonim
EyeRobot - הקנה הלבן הרובוטי
EyeRobot - הקנה הלבן הרובוטי

תקציר: באמצעות iRobot Roomba Create, יצרתי אב -טיפוס למכשיר בשם eyeRobot. היא תנחה משתמשים עיוורים ולקויי ראייה בסביבות עמוסות ומאוכלסות על ידי שימוש ברומבה כבסיס להתחתן עם הפשטות של המקל הלבן המסורתי עם האינסטינקטים של כלב עין רואה. המשתמש מציין את תנועתו הרצויה על ידי לחיצה אינטואיטיבית והסובב של הידית. הרובוט לוקח מידע זה ומוצא שביל ברור במסדרון או על פני חדר, באמצעות סונאר כדי לנווט את המשתמש לכיוון מתאים סביב מכשולים סטטיים ודינאמיים. לאחר מכן המשתמש עוקב אחרי הרובוט כשהוא מנחה את המשתמש לכיוון הרצוי על ידי הכוח המורגש המורגש דרך הידית. האפשרות הרובוטית הזו דורשת מעט הכשרה: דחיפה ללכת, משיכה לעצירה, פיתול לסיבוב. ראיית החזון שמסיבי הטווחים מספקים דומה לכלב עיניים רואות, והיא מהווה יתרון ניכר על פני הניסוי והטעייה המתמידים שמסמנים את השימוש במקל הלבן. עם זאת, EyeRobot עדיין מספקת חלופה זולה בהרבה מכלבי נחייה, שעולים יותר מ -12,000 דולר ושימושיים במשך 5 שנים בלבד, בעוד שאב הטיפוס נבנה מתחת ל -400 דולר. היא גם מכונה פשוטה יחסית, הדורשת כמה חיישנים לא יקרים, פוטנציומטרים שונים, קצת חומרה, וכמובן, Roomba Create.

שלב 1: הדגמת וידאו

הדגמת וידאו
הדגמת וידאו

גרסה באיכות גבוהה

שלב 2: סקירת המבצע

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

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

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

שלב 3: חיישני טווח

חיישני טווח
חיישני טווח

אולטרסאונד: EyeRobot נושאת 4 מדדי טווח אולטראסוניים (MaxSonar EZ1). החיישנים האולטראסוניים ממוקמים בקשת בחזית הרובוט כדי לספק מידע על אובייקטים מול הרובוט ולצידיו. הם מודיעים לרובוט על טווח האובייקט ועוזרים לו למצוא מסלול פתוח סביב אותו אובייקט ולחזור לנתיב המקורי שלו.

מד טווח IR: EyeRobot נושא גם שני חיישני IR (GP2Y0A02YK). מדדי הטווח של IR ממוקמים כלפי פנים כלפי מעלה כלפי מעלה 90 מעלות ימינה ושמאלה כדי לסייע לרובוט בקיר העוקב. הם יכולים גם להתריע בפני הרובוט על אובייקטים קרובים מדי לצדיו שהמשתמש עלול להיכנס אליהם.

שלב 4: חיישני מיקום קנים

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

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

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

שלב 5: מעבד

מעבד
מעבד

מעבד: הרובוט נשלט על ידי Zbasic ZX-24a היושב על לוח אם מתקדם של Robodyssey II. המעבד נבחר בשל מהירותו, קלות השימוש שלו, עלות משתלמת ו -8 כניסות אנלוגיות. הוא מחובר ללוח אב טיפוס גדול כדי לאפשר שינויים מהירים וקלים. כל הכוח עבור הרובוט מגיע מספק החשמל בלוח האם. ה- Zbasic מתקשר עם הרומבה דרך נמל תא המטען, ויש לו שליטה מלאה על החיישנים והמנועים של הרומבה.

שלב 6: סקירת קוד

סקירת קוד
סקירת קוד

הימנעות ממכשולים: למניעת מכשולים העין -רובוט משתמשת בשיטה שבה אובייקטים ליד הרובוט מפעילים כוח וירטואלי על הרובוט המרחיק אותו מהאובייקט. במילים אחרות, עצמים מרחיקים את הרובוט מעצמם. ביישום שלי, הכוח הווירטואלי שמפעיל אובייקט הוא ביחס הפוך למרחק בריבוע, כך שעוצמת הדחיפה עולה ככל שהאובייקט מתקרב ויוצר עקומת תגובה לא לינארית: PushForce = ResponseMagnitudeConstant/Distance2הדחיפות המגיעות מכל חיישן מתווספות יחדיו; חיישנים בצד שמאל לוחצים ימינה, ולהיפך, כדי לקבל וקטור לנסיעת הרובוט. לאחר מכן משתנים מהירות הגלגלים כך שהרובוט פונה לכיוון הווקטור הזה. כדי להבטיח שחפצים שמתים מול הרובוט לא יראו "אין תגובה" (מכיוון שהכוחות משני הצדדים מתאזנים), חפצים לחזית המתים דוחפים את הרובוט לצד הפתוח יותר. כשהרובוט עבר את האובייקט, הוא משתמש במקודדים של Roomba כדי לתקן את השינוי ולחזור אל הווקטור המקורי.

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

שלב 7: רשימת חלקים

רשימת חלקים
רשימת חלקים

חלקים דרושים: 1x) Roomba create1x) גיליון גדול של אקריליק 2x) Sharp GP2Y0A02YK IR מד טווח 4x) Maxsonar EZ1 קולי טווח 1x X) ZX-24a מיקרו-מעבד 1x) Robodyssey Advanced Motherboard II1x) Potentiometer1x) סיבוב יחיד) לוח) צירים, דיבלים, ברגים, אגוזים, סוגריים וחוטים

שלב 8: מוטיבציה ושיפור

מוטיבציה ושיפור
מוטיבציה ושיפור

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

שיפור: הכמות שלמדתי בבניית הרובוט הזה הייתה ניכרת וכאן אנסה לפרוש את מה שלמדתי כשאני מנסה לבנות רובוט דור שני: 1) הימנעות ממכשולים - למדתי הרבה על מכשול בזמן אמת. הימנעות. בתהליך בניית הרובוט הזה עברתי שני קודי הימנעות ממכשולים שונים בתכלית, החל ברעיון המקורי של כוח האובייקט, אחר כך עברתי לעקרון מציאת וחיפוש הווקטור הפתוח ביותר ולאחר מכן חזרה לרעיון כוח האובייקט עם ההבנה המרכזית שתגובת האובייקט צריכה להיות לא לינארית. בעתיד אני אתקן את הטעות שלי בכך שלא עשיתי שום מחקר מקוון של שיטות שהיו בשימוש בעבר לפני שהתחלתי בפרויקט שלי, שכן אני לומד שחיפוש מהיר בגוגל היה מניב מאמרים מעולים בנושא 2) עיצוב המקל. חיישנים - החל מהפרויקט הזה חשבתי שהאפשרות היחידה שלי לחיישן ליניארי היא להשתמש בסיר שקופיות ובסוג ליניארי. כעת אני מבין שאופציה הרבה יותר פשוטה הייתה פשוט להצמיד את החלק העליון של המוט לג'ויסטיק, כך שדחיפת המקל קדימה גם תדחוף את הג'ויסטיק קדימה. בנוסף מפרק אוניברסלי פשוט יאפשר לתרגם את טוויסט המקל לציר הטוויסט של ג'ויסטיקים מודרניים רבים. יישום זה היה הרבה יותר פשוט מזה שאני משתמש בו כרגע. רובוט המתגלגל באופן פאסיבי לא ידרוש מנועים וסוללה קטנה יותר וכך יהיה קל יותר. בנוסף, מערכת זו אינה דורשת חיישן ליניארי כדי לזהות את המשתמשים דוחפים, הרובוט פשוט היה מתגלגל במהירות המשתמשים. אפשר לסובב את הרובוט על ידי הגה הגלגלים כמו מכונית, ואם צריך לעצור את המשתמש אפשר היה להוסיף בלמים. עבור הדור הבא eyeRobot אני בהחלט אשתמש בגישה שונה מאוד. להשיג נקודות התייחסות שונות. שני חיישנים עם מרחק ביניהם היו מפשטים מאוד את הקיר הבא. 5) יותר חיישנים - למרות שזה היה עולה יותר כסף היה קשה לנסות לקודד את הרובוט הזה עם כל כך מעט חלונות בעולם מחוץ למעבד. זה היה הופך את קוד הניווט לחזק הרבה יותר עם מערך סונאר שלם יותר (אבל כמובן שחיישנים עולים כסף, שלא היה לי אז).

שלב 9: מסקנה

סיכום
סיכום

מסקנה: ה- iRobot הוכיח פלטפורמת אב טיפוס אידיאלית להתנסות בקונספט של קנה לבן רובוטי. מתוצאות אב טיפוס זה ניכר כי רובוט מסוג זה אכן בר קיימא. אני מקווה לפתח רובוט מהדור השני מהשיעורים שלמדתי משימוש ב- Roomba Create. בגרסאות עתידיות של eyeRobot אני רואה בעיני רוחי מכשיר המסוגל לעשות יותר מאשר רק להנחות אדם במסדרון, דווקא רובוט שניתן לשים בידיו של עיוורים לשימוש בחיי היומיום. עם רובוט זה, המשתמש היה פשוט מדבר את יעדו והרובוט היה מנחה אותם לשם ללא מאמץ מודע של המשתמש. הרובוט הזה יהיה קל וקומפקטי מספיק בכדי שיעלה בקלות במדרגות ויוחבא בארון. רובוט זה יוכל לבצע ניווט גלובלי בנוסף למקומי, ויוכל להדריך את המשתמש מההתחלה ליעד ללא ידע מוקדם או ניסיון של המשתמשים. יכולת זו תחרוג הרבה מעבר לכלב הנחייה, עם GPS וחיישנים מתקדמים יותר המאפשרים לעיוורים לנווט בחופשיות בעולם, נתנאל ברשיי, (נכנס על ידי סטיבן ברשיי) (תודה מיוחדת לג'ק היט על Roomba Create)

שלב 10: בנייה וקוד

בנייה וקוד
בנייה וקוד

כמה מילים זרות על הבנייה: הסיפון עשוי חתיכת אקריליק החתוך במעגל עם פתח מאחור כדי לאפשר גישה אלקטרוניקה, ולאחר מכן הוא מוברג לתוך חורי ההרכבה שליד תא המטען. לוח האב טיפוס מוברג לתוך חור הבורג שבתחתית המפרץ. ה- Zbasic מותקן עם סוגר L עם אותם ברגים כמו הסיפון. כל סונאר מוברג לחתיכת אקריליק, המחוברת בתורו לתושבת L המחוברת לסיפון (סוגריים L כפופים 10 מעלות לאחור כדי לתת מבט טוב יותר). המסלול לחיישן הליניארי מוברג ישר לתוך הסיפון וסיר השקופיות מותקן עם סוגריים L לידו. ניתן למצוא תיאור טכני יותר של בניית החיישן הלינארי ומוט הבקרה בשלב 4.

קוד: צירפתי את הגרסה המלאה של קוד הרובוטים. במהלך שעה ניסיתי לנקות אותו משלושת או ארבעה דורות הקוד שהיו בקובץ, זה אמור להיות קל מספיק לעקוב כעת. אם יש לך את ZBasic IDE זה אמור להיות קל לצפייה, אם לא, השתמש בפנקס הרשימות שמתחיל בקובץ main.bas ועובר דרך קבצי.bas האחרים.

מוּמלָץ: