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

זרוע רובוטית: ג'נסן: 4 שלבים
זרוע רובוטית: ג'נסן: 4 שלבים

וִידֵאוֹ: זרוע רובוטית: ג'נסן: 4 שלבים

וִידֵאוֹ: זרוע רובוטית: ג'נסן: 4 שלבים
וִידֵאוֹ: זרוע רובוטית - הדמיה תלת מימדית 2024, נוֹבֶמבֶּר
Anonim
זרוע רובוטית: ג'נסן
זרוע רובוטית: ג'נסן

ג'נסן היא זרוע רובוטית הבנויה על פלטפורמת ארדואינו עם דגש על תכנון תנועה אינטואיטיבי, שנעשית כפרויקט עצמאי באשראי אחד בהדרכת צ'ארלס ב 'מאלוך, דוקטורט. הוא יכול לשכפל סדרה של תנועות המתוכנתות על ידי הזזה ידנית ידנית. קיבלתי את ההשראה לבנות אותו ממראה זרועות רובוטיות אחרות שנבנו במרחב יצרני UMass Amherst M5. יתר על כן, רציתי ללמוד כיצד להשתמש בתוכנת CAD ורציתי ליצור פרויקט מתקדם של Arduino. ראיתי בזה הזדמנות לעשות את כל הדברים האלה.

שלב 1: עיצוב והיקף מקורי

עיצוב והיקף מקורי
עיצוב והיקף מקורי

תוכנת ה- CAD שבחרתי ללמוד לפרויקט זה הייתה OnShape, והדבר הראשון שדגמתי היה סרוו אנלוגי HiTec HS-422. בחרתי בסרוו כי הוא היה זמין לי מקומית וזה היה מחיר סביר. זה שימש גם כנוהג טוב ללימוד OnShape לפני שעברתי לעצב חלקים משלי. בשלב מוקדם זה של הפרויקט, היה לי מושג כללי למה אני רוצה שהזרוע תוכל להיות מסוגלת. רציתי שיהיה לו טווח תנועה ראוי ותופס אחיזה לאסוף דברים. מפרטים כלליים אלה הודיעו לעיצוב כאשר המשכתי לדגמן אותו ב- CAD. אילוץ עיצובי נוסף שהיה לי בשלב זה היה גודל מיטת ההדפסה במדפסת התלת מימד שלי. לכן הבסיס שאתה רואה בתמונה למעלה הוא ריבוע פרימיטיבי יחסית.

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

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

שלב 2: שליטה

לִשְׁלוֹט
לִשְׁלוֹט

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

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

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

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

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

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

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

שלב 3: רעש

רַעַשׁ
רַעַשׁ

בתמונה למעלה

באדום: אות קלט מקורי

בכחול: אות קלט לאחר העיבוד

השלב הראשון בהפחתת הרעש באות הכניסה היה הבנת הסיבה שלו. בחינת האות באוסילוסקופ גילתה כי קפיצות המתח מתרחשות בקצב של 50 הרץ. במקרה ידעתי שאות ה- PWM שנשלח לסרוווס הוא גם בקצב של 50 הרץ, אז ניחשתי שלקירות המתח יש קשר לזה. שיערתי שתנועת הסרוווס גורמת איכשהו לזינקים במתח על סיכת V+ של הפוטנציומטרים, שבתורם סיבך את הקריאה בסיכה האמצעית.

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

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

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

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

שלב 4: עוטף דברים

עוטף דברים
עוטף דברים

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

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

מסמך CAD:

cad.onshape.com/documents/818ea878dda7ca2f…

מוּמלָץ: