קהילה ושאלות נפוצות של Damiao AGV
שאלות נפוצות על פרוטוקול DBUS, ניווט, פתרון בעיות ומניפולציה ניידת עם OpenArm. קישורי פורום ותמיכה.
שאלות נפוצות
מהן ההגדרות המדויקות של יציאה טורית עבור Damiao AGV?
הקושחה של AGV מאזינה ב-UART5 (pin PD2, RX) ב 100000 באוד עם 8 סיביות נתונים, זוגיות זוגית ו-2 סיביות עצירה (8E2). ב-pyserial, פתח את היציאה עם:
serial.Serial(
port='/dev/ttyUSB0',
baudrate=100000,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_TWO
)
טעות נפוצה מאוד היא שימוש ב-8N1 (ללא זוגיות, ביט סטופ אחד). נראה שה-AGV מתחבר אך יתעלם בשקט או ינתח לא נכון את כל הפריימים. השתמש תמיד PARITY_EVEN ו STOPBITS_TWO.
כיצד מקודדת מסגרת DBUS של 18 בתים?
מסגרת ה-DBUS אורזת ארבעה ערכי ערוץ של 11 סיביות (ch0–ch3) לבייטים 0–5 תוך שימוש ב- little-endian bit-packing. כל ערוץ נע בין 0-2047 עם 1024 כמרכז (ניטרלי/עצירה). מיפוי המהירות הוא: ch3 = 1024 + vx × amp (קָדִימָה), ch2 = 1024 + vy × amp (צְדָדִי), ch0 = 1024 + (−vw) × amp (רוֹטַציָה). בתים 6-15 הם שדות עכבר/מקלדת מאופסים. בתים 16–17 מחזיקים ch4, קבוע ב-1024. ראה מפרט לטבלת מפות הערוצים המלאה.
ה-AGV זז לזמן קצר ואז נעצר - מה קורה?
זוהי תכונת הבטיחות של פסק זמן הפקודה המופעלת. אם לא מתקבלת פקודת תנועה או עצירה בפנים --cmd-timeout-ms (ברירת מחדל 300 ms), הסוכן מאפס אוטומטית את כל ערוצי המהירות וה-AGV עוצר. זה בדרך כלל אומר שהפלטפורמה לא שולחת פקודות מספיק מהר, או שיש השהייה ברשת הגורמת לפערים. פתרונות: (1) להגדיל --cmd-timeout-ms 500 עבור חיבורים בעלי אחזור גבוה, (2) ודא שפאנל הטלאופ של הדפדפן שולח באופן פעיל חוזר move פקודות ב-~10 הרץ כאשר לחצן כיוון מוחזק, (3) בדוק את ה-RTT של הרשת שלך לפלטפורמה.
ה-AGV נע בכיוון הלא נכון - איך אני מתקן את זה?
השתמש בדגלי היפוך הציר בסוכן - אין צורך בשינויי קושחה:
# Flip forward/backward python3 dami_agent.py --session RC-XXXX --serial-port /dev/ttyUSB0 --invert-x # Flip lateral (left/right) python3 dami_agent.py ... --invert-y # Flip rotation direction python3 dami_agent.py ... --invert-z
בדוק כל ציר בנפרד (למשל, שלח רק פקודת X, צפה בתנועה) כדי לקבוע אילו דגלים נחוצים לכיוון ההתקנה הפיזי שלך.
האם אני יכול לבדוק בלי ה-AGV הפיזי?
כֵּן. לַעֲבוֹר --mock בעת ההשקה dami_agent.py. במצב מדומה, היציאה הטורית לעולם לא נפתחת. לולאת הבקרה עדיין מקודדת מסגרות DBUS (מאוחסנות בזיכרון), טלמטריה מועברת לפלטפורמה WebSocket, וכל ניתוח הפקודות פועל באופן זהה. זה מאפשר לך לאמת את צינור WebSocket המלא, לבדוק את ממשק המשתמש של הפלטפורמה ולשלב ב-CI ללא חומרה:
python3 dami_agent.py --session RC-XXXX-XXXX --mock
אני מקבל pyserial.SerialException בעת ההשקה - מה אני בודק?
רֵאשִׁית: ls /dev/ttyUSB* כדי לאשר שהמתאם מופיע. אם לא, ייתכן שמנהל ההתקן של מתאם USB-to-TTL לא נטען (נסה יציאת USB אחרת). אם היציאה מופיעה אך אתה מקבל שגיאת הרשאה, הוסף את המשתמש שלך לקבוצת החיוג:
sudo usermod -aG dialout $USER
# Log out and back in, then retry
אם היציאה מופיעה ברשימת המכשירים אך הסוכן עדיין לא יכול לפתוח אותה, ייתכן שתהליך אחר יפתח אותה (למשל, מופע סוכן קודם או צג טורי). סגור את כל שאר התהליכים באמצעות היציאה.
הסוכן מתחבר אבל הפלטפורמה לא מציגה טלמטריה - מה לא בסדר?
אשר את מזהה ההפעלה שהועבר אליו --session עדיין פעיל בממשק המשתמש של הפלטפורמה. פגישות יכולות לפוג אם הן לא פעילות. בדוק בפלט הטרמינל של הסוכן את תגובת לחיצת היד לרישום - אם הוא מדפיס "לחיצת יד נכשלה" או לא מדפיס "מוכן", ייתכן שההפעלה פג. צור סשן חדש בפלטפורמה והעביר את המזהה החדש לסוכן. וודא גם את זה --backend מצביע על כתובת ה-WebSocket של הפלטפורמה הנכונה.
איך אני מכוון את מהירות ה-AGV?
התאם את --amp פָּרָמֶטֶר. זה מגדיר את היסט הערוץ מהמרכז (1024) המייצג את פקודת התנועה. ברירת המחדל היא 660, מה שמעניק בערך 64% מהמהירות המרבית. לפעולה איטית ומבוקרת יותר במהלך משימות מניפולציה על זרועות, השתמש --amp 400. למהירות מרבית ברצפה פתוחה, השתמש עד --amp 900. שימו לב שגלגלי Mecanum מאבדים מעט יעילות רוחבית במהירויות גבוהות מאוד - שמור --amp מתחת ל-800 עבור תמרונים לרוחב.
טיפים לשילוב עם OpenArm
תכנן את ניתוב הכבלים שלך לפני הרכבת הזרוע
נתב את כבלי ה-CAN/USB של הזרוע דרך ערוץ ניהול הכבלים הפנימי של ה-AGV לפני הברגת הזרוע. ברגע שהזרוע מותקנת קשה לנתב מחדש כבלים מבלי להסיר אותה. השאר 20-30 ס"מ של כבל רפיון נוסף בפרק כף היד - אזור העבודה של הזרוע נמשך לצדדים ומאחור, שם מתח הכבל יכול ליצור התנגדות בלתי צפויה במסלולי מפרקים.
השתמש ב--amp תחתון כאשר הזרוע מותקנת ובתנועה
זרוע רובוט על ה-AGV מעלה את מרכז המסה. האצה צידית מהירה עלולה לגרום לפלטפורמה להתנדנד, מה שיוצר הפרעות במסלול הזרוע - במיוחד במצבים ממושכים. התחל עם --amp 400 לתנועת בסיס במהלך פעולת הזרוע ולהגדיל רק במידת הצורך. לאיסוף נתוני טלפעולה, תנועת בסיס איטית עקבית מייצרת נתוני אימון נקיים יותר מאשר תנועות מהירות ומקפצות.
רשום את שני הסוכנים עם ערכי --node-id ברורים
כאשר מפעילים את סוכן ה-AGV וסוכן הזרוע בו-זמנית באותה הפעלה של פלטפורמה, תנו לכל אחד מהם פרט --node-id. זה מבטיח שהפלטפורמה מציגה זרמי טלמטריה נפרדים והפרק JSONL מציין את הנתונים של כל צומת באופן עצמאי. מוסכמות שמות מומלצת: damiao-base עבור ה-AGV ו openarm-right / openarm-left עבור צמתי זרוע.
תיאום תנועת בסיס ותנועת זרוע בטלאופ
בחלונית Teleop Fearless Platform, שני הצמתים מופיעים בו-זמנית. דפוס טל-פעולה שימושי הוא: עצור את הבסיס, הזיז את הזרוע כדי לאחוז, הזז את הבסיס למיקום מחדש, חזור. ארכיון הפרק JSONL לוכד את כל הטלמטריה של הצמתים באופן סינכרוני לפי חותמת זמן, כך שמדיניות במורד הזרם יכולה ללמוד ממסלול המניפולציה הנייד המלא. שקול להשתמש בסמני ההקלטה של הפלטפורמה כדי לציין היכן תנועת הבסיס עוברת לתנועת זרוע בתוך כל פרק.
הוסף את חיישן Paxini GEN3 לנתוני מניפולציה ניידים עשירים באנשי קשר
הַר Paxini PX-6AX GEN3 חיישני מישוש בקצות האצבעות של OpenArm או אפקטור הקצה. רשום את גשר החיישן כצומת שלישי באותה הפעלה. הפלטפורמה מתעדת זרמים של מישוש, מפרק זרוע ומהירות בסיס באופן סינכרוני - יוצרת מערכי נתונים עשירים של מניפולציה ניידת מודעים למגע עבור שיבוט התנהגות ולמידת חיזוק.
תיעוד וחומרה קשורה
פורום ותמיכה
יש לכם שאלה שלא נענתה כאן? שאל את קהילת SVRC או צור קשר עם תמיכת החומרה.
עבור לפורום → צור קשר עם התמיכה ←