איך שגלגל מסתובב (לא)

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

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

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

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

הדמיית ה-PCB בתוכנת העריכה KiCAD
הדמיית ה-PCB בתוכנת העריכה KiCAD (לחצו לתמונה גדולה)

הרובוט החדש, כמו אבותיו, נוסע ופונה באמצעות שליטה דיפרנציאלית במהירות הסיבוב של שני גלגלים עיקריים גדולים, ושומר על יציבות באמצעות גלגל שלישי, קטן וחופשי, שתומך במשקל הרובוט בצדו האחורי ומתאים את עצמו לכיוון הנסיעה. כיוון שהרכבתי את מכלולי המנועים בצורה שונה מאשר ברובוטים המקוריים, הדפסתי בתלת-ממד הגבהה לגלגל החופשי, כך שהרובוט יהיה מאוזן. במקום שתי סוללות ה-AAA הצנועות ברובוטים המקוריים שמתי סוללת 18650, פלוס מודול קנוי לטעינה נוחה והגנה, ואת הטרנזיסטורים הפרימיטיביים והמגושמים ששלטו פעם בזרם למנועים החלפתי ברכיב DRV8210DRLR – דרייבר פצפון (1.6×1.2 מילימטרים) ונוח מאוד למנוע DC.

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

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

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

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

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

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

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

בעיית הציר של הגלגל הישן
בעיית הציר של הגלגל הישן (לחצו לתמונה גדולה)

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

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

הכדור החדש מותקן במקומו
הכדור החדש מותקן במקומו (לחצו לתמונה גדולה)

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

להרשמה
הודע לי על
4 תגובות
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

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

מדליק! תוכל בבקשה לשלוח קישור לסרטון? תודה!