ROBOWORKS Robofleet אלגוריתמים מרובי סוכנים
מפרטים
- שם המוצר: ROBOWORKS
- גרסה: 20240501
- הכינו: וויין ליו וג'נט לין
- תאריך: 1 במאי 2024
מידע על המוצר
ROBOWORKS היא מערכת מרובת סוכנים המאפשרת יישום של אלגוריתמים שונים לתיאום ותקשורת רובוטים.
שאלות נפוצות
ש: מה עלי לעשות אם הרובוט לא יכול להתחבר אוטומטית ל-Wi-Fi?
ת: אם הרובוט לא מצליח להתחבר אוטומטית, נסה לנתק ולחבר את כרטיס הרשת ולנסות להתחבר שוב.
תַקצִיר
מסמך זה מסביר בעיקר את השימוש בחבילת הפונקציות של ריבוי רובוטים בשם wheeltec_multi.
מסמך זה מחולק לארבעה חלקים:
- החלק הראשון עוסק בעיקר בהצגת שיטת היווצרות מרובה רובוטים;
- החלק השני מתאר בעיקר את הגדרות התקשורת הרב-מכונות של ROS, לרבות תקשורת מרובת מכונות בניית ROS ואת הבעיות שעלולות להיתקל בתהליך של תקשורת ROS;
- החלק השלישי מתאר בעיקר את שלבי הפעולה של סנכרון זמן רב-מכונות;
- החלק הרביעי מסביר את השימוש הספציפי בחבילת פונקציות היווצרות מרובות מכונות.
מטרת מסמך זה היא היכרות עם מערכות רובוטיות מרובות סוכנים ומאפשרת למשתמשים להתחיל את פרויקט היווצרות מרובה רובוטים במהירות.
מבוא לאלגוריתמים מרובי סוכנים
אלגוריתמים ליצירת ריבוי סוכנים
חבילת ROS זו מציגה בעיה טיפוסית של ריבוי סוכנים בשליטה שיתופית במהלך נסיעת גיבוש. מדריך זה מניח בסיס לפיתוח עתידי בנושא זה. אלגוריתם בקרת היווצרות מתייחס לאלגוריתם השולט במספר סוכנים כדי ליצור מבנה ספציפי לביצוע משימה. שיתוף פעולה מתייחס לשיתוף פעולה בין סוכנים מרובים המשתמשים ביחסי אילוץ מסוים כדי להשלים משימה. קח את כונן גיבוש רב-רובוט כאקסampשיתוף פעולה פירושו שרובוטים מרובים יוצרים מבנה רצוי ביחד. המהות שלו היא יחס מתמטי מסוים שמתקיים בין עמדותיו של כל רובוט. שיטות היווצרות מחולקות בעיקר לבקרת גיבוש ריכוזית ובקרת גיבוש מבוזרת. שיטות בקרת מבנה מרכזי כוללות בעיקר את שיטת המבנה הווירטואלי, שיטת התיאוריה הגרפית ושיטת חיזוי המודל. שיטות בקרת גיבוש מבוזרות כוללות בעיקר שיטת מנהיג-עוקב, שיטה מבוססת התנהגות ושיטת מבנה וירטואלי.
חבילת ROS זו מיישמת את שיטת המנהיג-העוקב בשיטת בקרת המבנה המבוזר כדי להפעיל את כונן היווצרות מרובה רובוטים. רובוט אחד במערך מוגדר כמנהיג, ורובוטים אחרים מוגדרים כעבדים שילכו בעקבות המנהיג. האלגוריתם משתמש במסלול התנועה של הרובוט המוביל כדי להגדיר את הקואורדינטות למעקב אחר הרובוטים הבאים עם כיוון ומהירות מסוימים. על ידי תיקון סטיות המיקום מקואורדינטות העקיבה, העוקבים בסופו של דבר יצמצמו את הסטייה בין העוקב לקואורדינטות המעקב הצפויות לאפס על מנת להשיג את מטרות תנועת הגיבוש. באופן זה, האלגוריתם יחסית פחות מסובך.
אלגוריתמים למניעת מכשולים
אלגוריתם נפוץ להימנעות ממכשולים הוא שיטת שדה הפוטנציאל המלאכותי. תנועת הרובוט בסביבה פיזית נחשבת כתנועה בשדה כוח מלאכותי וירטואלי. המכשול הקרוב ביותר מזוהה על ידי LiDAR. המכשול מספק שדה כוח דחיה ליצירת דחיה לרובוט ונקודת המטרה מספקת שדה כבידה ליצירת כוח כבידה לרובוט. בדרך זו, הוא שולט בתנועת הרובוט בפעולה משולבת של דחייה ומשיכה.
חבילת ROS זו היא שיפור המבוסס על שיטת שדה הפוטנציאל המלאכותי. ראשית, אלגוריתם ההיווצרות מחשב את המהירות הליניארית והזוויתית של עוקב העבדים. לאחר מכן הוא מגדיל או מקטין את המהירות הליניארית והזוויתית בהתאם לדרישות ההימנעות ממכשולים. כאשר המרחק בין חסיד העבד למכשול קרוב יותר, כוח הדחייה של המכשול לחסיד העבד גדול יותר. בינתיים, השינוי של המהירות הליניארית ושינויי המהירות הזוויתית גדולים יותר. כאשר המכשול קרוב יותר לחזיתו של חסיד העבד, הדחייה של המכשול לחסיד העבדים הופכת לגדולה יותר (הדחייה הקדמית היא הגדולה ביותר והדחייה מהצד היא הקטנה ביותר). כתוצאה מכך, הווריאציות של המהירות הליניארית ושל המהירות הזוויתית גדולות יותר. באמצעות שיטת שדה הפוטנציאל המלאכותי, היא משפרת פתרון כאשר רובוט יכול להפסיק להגיב מול מכשול. זה משרת את המטרה של הימנעות טובה יותר ממכשולים.
הגדרת תקשורת מרובה סוכנים
תקשורת מרובת סוכנים היא אחד השלבים המרכזיים להשלמת גיבוש רב רובוטים. כאשר המיקומים היחסיים של רובוטים מרובים אינם ידועים, הרובוטים צריכים לשתף זה את זה במידע באמצעות תקשורת כדי להקל על יצירת קשרים. ארכיטקטורה מבוזרת ROS ותקשורת רשת הן חזקות מאוד. זה לא נוח רק לתקשורת בין תהליכים אלא גם לתקשורת בין מכשירים שונים. באמצעות תקשורת רשת, כל הצמתים יכולים לפעול בכל מחשב. המשימות העיקריות כגון עיבוד נתונים מתבצעות בצד המארח. מכונות העבדים אחראיות על קבלת נתונים סביבתיים שנאספים על ידי חיישנים שונים. המארח כאן הוא המנהל שמפעיל את הצומת מאסטר ב-ROS. מסגרת התקשורת מרובת הסוכנים הנוכחית היא באמצעות מנהל צומת ומנהל פרמטרים לטיפול בתקשורת בין רובוטים מרובים.
השלבים להגדרת תקשורת מרובת סוכנים
- הגדר ROS Controls באותה רשת
- ישנן 2 דרכים להגדיר פקדי Master/Slave ROS תחת אותה רשת.
אפשרות 1:
המארח מארח יוצר Wifi מקומי על ידי הפעלת מנהל הצומת הראשי. בדרך כלל, אחד הרובוטים שמוגדר כמאסטר יוצר את רשת ה-WiFi הזו. רובוטים אחרים או מכונות וירטואליות מצטרפים לרשת ה-WiFi הזו כעבדים.
אפשרויות 2:
רשת ה-WiFi המקומית מסופקת על ידי נתב של צד שלישי כמרכז ממסר מידע. כל הרובוטים מחוברים לאותו נתב. ניתן להשתמש בנתב גם ללא חיבור לאינטרנט. בחר באחד הרובוטים כמאסטר והפעל את מנהל הצומת הראשי. הרובוטים האחרים מוגדרים כעבדים ומפעילים את מנהל הצומת הראשי מהמאסטר.
ההחלטה באיזו אפשרות לבחור תלויה בדרישות הפרויקט שלך. אם מספר הרובוטים שצריכים לתקשר אינו בכמות גדולה, אפשרות 1 מומלצת מכיוון שהיא חוסכת בעלויות וקלה להגדרה. כאשר מספר הרובוטים בכמות גדולה, מומלצת אפשרות 2. המגבלה על כוח המחשוב של בקרת ה-ROS הראשית ורוחב הפס המוגבל של ה-WiFi המשולב עלולים לגרום בקלות לעיכובים ולשיבושים ברשת. נתב יכול לתקן בקלות את הבעיות הללו. אנא שימו לב כי בעת ביצוע תקשורת מרובת סוכנים, אם המכונה הוירטואלית משמשת כעבד ROS, יש להגדיר את מצב הרשת שלו למצב גשר.
הגדר משתני סביבת מאסטר/עבד
לאחר שכל המאסטרים של ROS נמצאים כולם באותה רשת, יש להגדיר את משתני הסביבה לתקשורת מרובת סוכנים. משתנה סביבה זה מוגדר בקובץ .bashrc בספרייה הראשית. הפעל את הפקודה gedit ~/.bashrc כדי להפעיל אותה. שים לב שיש להגדיר גם את קובצי ה-bashrc של המאסטר וגם של העבד בתקשורת מרובת סוכנים. מה שצריך לשנות הם כתובות ה-IP בסוף הקובץ. שתי השורות של הן ROS_MASTER_URI ו-ROS_HOSTNAME, כפי שמוצג באיור 2-1-4. ROS_MASTER_URI ו-ROS_HOSTNAME של מארח ה-ROS הם שניהם כתובות IP מקומיות. יש לשנות את ROS_MASTER_URI בקובץ ROS slave .bashrc לכתובת ה-IP של המארח בעוד ROS_HOSTNAME נשאר ככתובת IP מקומית.
תקשורת מרובת מכונות ROS אינה מוגבלת על ידי גרסת המהדורה של ROS. בתהליך של תקשורת מרובת מכונות, יש להיות מודעים לדברים הבאים:
- פעולת תוכנית העבד ROS תלויה בתוכנית המאסטר של ה-ROS של התקן המאסטר של ROS. תוכנית המאסטר ROS חייבת להפעיל תחילה במכשיר הראשי לפני הפעלת תוכנית העבד במכשיר העבד.
- כתובות ה-IP של מכונות המאסטר והעבדות בתקשורת מרובת מכונות צריכות להיות באותה רשת. המשמעות היא שכתובת ה-IP ומסיכת רשת המשנה נמצאים תחת אותה רשת.
- ROS_HOSTNAME בקובץ תצורת הסביבה .bashrc לא מומלץ להשתמש ב-localhost. מומלץ להשתמש בכתובת IP ספציפית.
- במקרה שכתובת ה-IP של העבד לא מוגדרת כהלכה, התקן העבד עדיין יכול לגשת ל-ROS המאסטר אך אינו יכול להזין מידע בקרה.
- אם המכונה הוירטואלית משתתפת בתקשורת מרובת סוכנים, יש להגדיר את מצב הרשת שלו למצב גשר. לא ניתן לבחור IP סטטי עבור חיבור הרשת.
- תקשורת מרובת מכונות לא יכולה view או הירשם לנושאים מסוג נתוני הודעה שאינם קיימים באופן מקומי.
- אתה יכול להשתמש בהדגמת סימולציית הצב הקטן כדי לוודא אם התקשורת בין הרובוטים הצליחה:
- a. לברוח מהמאסטר
- rescore #launch שירותי ROS
- צבי tribune turtlesim_node #השקת ממשק צבים
- b. לברוח מהעבד
- הפעל מחדש צבים turtle_teleop_key #הפעל צומת בקרת מקלדת עבור צבים
- a. לברוח מהמאסטר
אם אתה יכול לתפעל את תנועות הצבים מהמקלדת על העבד, זה אומר שתקשורת המאסטר/עבד הוקמה בהצלחה.
חיבור Wifi אוטומטי ב-ROS
ההליכים שלהלן מסבירים כיצד להגדיר את הרובוט להתחבר אוטומטית לרשת המארחת או לרשת הנתב.
הגדרת חיבור Wifi אוטומטי עבור Jetson Nano
- חבר את Jetson Nano באמצעות הכלי המרוחק VNC או ישירות למסך המחשב. לחץ על סמל wifi בפינה השמאלית העליונה ולאחר מכן לחץ על "ערוך חיבורים.."
- לחץ על הלחצן + בחיבורי רשת:
- תחת החלון "בחר סוג חיבור", לחץ על התפריט הנפתח ולחץ על כפתור "צור...":
- בלוח הבקרה, לחץ על אפשרות Wifi. הזן את שם ה-Wifi לחיבור בשדות "שם חיבור" ו-SSID. בחר "לקוח" בתפריט הנפתח "מצב" ובחר "wlan0" בתפריט הנפתח "התקן".
- בלוח הבקרה, לחץ על האפשרות "כללי" וסמן "התחבר אוטומטית לרשת זו...". הגדר את עדיפות החיבור ל-1 באפשרות "עדיפות חיבור להפעלה אוטומטית". סמן את האפשרות "כל המשתמשים רשאים להתחבר לרשת זו". כאשר האפשרות מוגדרת ל-0 ב"עדיפות חיבור להפעלה אוטומטית" עבור wifi אחר, זה אומר שזו רשת ה-wifi המועדפת בעבר.
- לחץ על האפשרות "אבטחת Wi-Fi" בלוח הבקרה. בחר "WPA & WPA2 אישי" בשדה "אבטחה". לאחר מכן הזן את סיסמת ה- Wifi בשדה "סיסמה".
פֶּתֶק: אם הרובוט לא יכול להתחבר אוטומטית לרשת ה-WiFi לאחר האתחול כאשר עדיפות ה-WiFi מוגדרת ל-0, ייתכן שהדבר נגרם מבעיה של אות Wifi חלש. על מנת להימנע מבעיה זו, תוכל לבחור למחוק את כל אפשרויות ה-wifi שהיו מחוברות בעבר. שמור רק את רשת ה-WiFi שנוצרה על ידי המארח או הנתב. לחץ על האפשרות "הגדרות IPv4" בלוח הבקרה של הגדרות הרשת. בחר באפשרות "ידני" בשדה "שיטה". לאחר מכן לחץ על "הוסף", מלא את כתובת ה-IP של מכונת העבדים בשדה "כתובת". מלא "24" בשדה "מסכת רשת". מלא את קטע רשת ה-IP ב"שער". שנה את שלוש הספרות האחרונות של קטע רשת ה-IP ל-"1". המטרה העיקרית של שלב זה היא לתקן את כתובת ה-IP. לאחר השלמת פעולה זו בפעם הראשונה, כתובת ה-IP תישאר ללא שינוי בעת חיבור לאותו WIFI לאחר מכן.
לאחר הגדרת כל ההגדרות, לחץ על "שמור" כדי לשמור את ההגדרות. לאחר שהשמירה תצליח, הרובוט יתחבר אוטומטית לרשת של המארח או הנתב כאשר הוא מופעל.
פֶּתֶק:
- כתובת ה-IP המוגדרת כאן צריכה להיות זהה לכתובת ה-IP שהוגדרה בקובץ .bashrc בסעיף 2.1.
- כתובת ה-IP של המאסטר וכל עבד חייבת להיות ייחודית.
- כתובות ה-IP הראשי והעבדות צריכות להיות באותו פלח רשת.
- עליך לחכות שהמארח או הנתב ישלחו אות WiFi לפני שניתן יהיה להפעיל את הרובוט העבד ולהתחבר אוטומטית לרשת ה-WiFi.
- לאחר קביעת ההגדרה, אם הרובוט אינו יכול להתחבר אוטומטית ל-WiFi כאשר הוא מופעל, אנא חבר ונתק את כרטיס הרשת ונסה להתחבר שוב.
הגדרת חיבור Wifi אוטומטי עבור Raspberry Pi
ההליך עבור Raspberry Pi זהה לזה של Jetson Nano.
הגדרת חיבור Wifi אוטומטי עבור Jetson TX1
ההגדרה ב- Jetson TX1 כמעט זהה ל- Jetson Nano למעט חריג אחד ש- Jetson TX1 צריך לבחור את ההתקן של "wlan1" ב- "Device" בלוח הבקרה של הגדרות הרשת.
הגדרת סנכרון מרובה סוכנים
בפרויקט יצירת ריבוי סוכנים, הגדרת סנכרון זמן רב סוכנים היא שלב מכריע. בתהליך הגיבוש ייגרמו בעיות רבות עקב זמן המערכת האסינכרוני של כל רובוט. סנכרון זמן רב-סוכני מתחלק לשני מצבים, דהיינו, המצב בו הן הרובוטים המאסטר והן העבדים מחוברים לרשת והמצב בו שניהם מנותקים מהרשת.
חיבור רשת מאסטר/עבד מוצלח
לאחר הגדרת התקשורת מרובת הסוכנים, אם המחשבים הראשיים והעבדים יכולים להתחבר בהצלחה לרשת, הם יסנכרנו אוטומטית את זמן הרשת. במקרה זה, לא נדרשות פעולות נוספות כדי להשיג סנכרון זמן.
פתרון בעיות ניתוק רשת
לאחר הגדרת התקשורת מרובת הסוכנים, אם המכשירים הראשיים והעבדים אינם מצליחים להתחבר לרשת, יש צורך לסנכרן באופן ידני את השעה. נשתמש בפקודה תאריך כדי להשלים את הגדרת השעה.
ראשית, התקן את כלי הטרמינטור. מכלי הטרמינטור, השתמשו בכלי פיצול החלונות כדי למקם את מסופי הבקרה של המאסטר והעבד באותו חלון מסוף (לחץ לחיצה ימנית כדי להגדיר חלון מפוצל, והיכנס למכונות המאסטר והעבד באמצעות ssh בחלונות שונים) .
- sudo apt-get install terminator # הורד terminator כדי לפצל את חלון המסוף
לחץ על הכפתור בצד שמאל למעלה, בחר באפשרות [שידור לכולם]/[שדר הכל], והזן את הפקודה הבאה. לאחר מכן השתמש בכלי המחסל כדי להגדיר את אותו הזמן עבור המאסטר והעבד.
- sudo date -s "2022-01-30 15:15:00" # הגדרת זמן ידנית
חבילת ROS רב סוכנית
מבוא חבילת ROS
הגדר שם עבד
בחבילת הפונקציות wheeltec_multi, יש צורך להגדיר שם ייחודי לכל רובוט עבד על מנת למנוע שגיאות. למשלample, מס' 1 עבור slave1 ומס' 2 עבור slave2 וכו'. מטרת הגדרת שמות שונים היא לקבץ צמתים פועלים ולהבדיל ביניהם על ידי מרחבי שמות שונים. למשלample, נושא הרדאר של עבד 1 הוא/slave1/scan, והצומת LiDAR של עבד 1 הוא/slave1/לייזר.
הגדר קואורדינטות עבדים
חבילת wheeltec_multi יכולה ליישם תצורות מותאמות אישית. כאשר נדרשות תצורות שונות, פשוט שנה את הקואורדינטות הרצויות של רובוטי העבדים. Slave_x ו-slave_y הן קואורדינטות x ו-y של העבד עם המאסטר כנקודת הייחוס המקורית. החלק הקדמי של המאסטר הוא הכיוון החיובי של קואורדינטת x, והצד השמאלי הוא הכיוון החיובי של קואורדינטת ה-y. לאחר השלמת ההגדרה, תונפק קואורדינטת TF slave1 כקואורדינטה הצפויה של העבד. אם יש אדון אחד ושני עבדים, ניתן להגדיר את המבנה הבא:
- היווצרות אופקית: ניתן להגדיר את הקואורדינטות של העבד משמאל ל-slave_x:0, slave_y: 0.8, ואת הקואורדינטות של העבד מימין ל-slave_x:0, slave_y:-0.8.
- יצירת עמודות: ניתן להגדיר את הקואורדינטות של עבד אחד ל: slave_x:-0.8, slave_y:0, וניתן להגדיר את הקואורדינטות של העבד השני ל: slave_x:-1.8, slave_y:0.
- היווצרות משולש: ניתן להגדיר את הקואורדינטות של עבד אחד ל: slave_x:-0.8, slave_y: 0.8, ואת הקואורדינטות של העבד השני ניתן להגדיר: slave_x:-0.8, slave_y:-0.8.
ניתן להתאים תצורות אחרות לפי הצורך.
פֶּתֶק:
- המרחק המומלץ בין שני הרובוטים מוגדר ל-0.8, ומומלץ לא להיות נמוך מ-0.6. המרחק בין העבדים לאדון מומלץ להגדיר מתחת ל-2.0. ככל שהוא רחוק יותר מהמאסטר, כך המהירות הליניארית של העבד גדולה יותר כאשר האדון מסתובב. עקב הגבלת המהירות המרבית, מהירות העבד תסטה אם לא תעמוד בדרישות. מבנה הרובוט יהפוך לכאוטי.
אתחול עמדת העבד
- המיקום ההתחלתי של העבד הוא בקואורדינטות הצפויות כברירת מחדל. לפני הפעלת התוכנית, פשוט מקם את רובוט העבד קרוב לקואורדינטות הצפויות שלו כדי להשלים את האתחול. פונקציה זו מיושמת על ידי הצומת pose_setter בקובץ בשם turn_on_wheeltec_robot.launch בחבילת wheeltec_multi, כפי שמוצג באיור 4-1-3.
אם המשתמש רוצה להתאים אישית את המיקום ההתחלתי של העבד, הוא או היא צריכים רק להגדיר את ערכי slave_x ו-slave_y כפי שמוצג באיור 4-1-4 ב-wheeltec_slave.launch. ערכי slave_x ו-slave_y יועברו ל-turn_on_wheeltec_robot.launch ויוקצו לצומת pose_setter. פשוט מקם את הרובוט במיקום מותאם אישית לפני הפעלת התוכנית.
תצורת מיקום
בהרכב רב-סוכנים, הבעיה הראשונה שיש לפתור היא המיקום של האדון והעבד. המאסטר יבנה תחילה מפה דו-ממדית. לאחר יצירת המפה ושמירתה, הפעל את חבילת הניווט הדו-ממדית והשתמש באלגוריתם המיקום האדפטיבי של מונטה קרלו (מיקום amcl) בחבילת הניווט הדו-ממדית כדי להגדיר את המיקום של המאסטר. מכיוון שהמאסטר והעבדים נמצאים באותה רשת וחולקים את אותו מנהל צמתים, המאסטר השיק את המפה מחבילת הניווט הדו-ממדית, כל העבדים יכולים להשתמש באותה המפה תחת אותו מנהל צומת. לכן, העבד לא צריך ליצור מפה. ב-wheeltec_slave.launch, הפעל את מיקום מונטה קרלו (מיקום amcl), העבדים יכולים להגדיר את מיקומם באמצעות המפה שנוצרה על ידי המאסטר.
איך ליצור גיבוש ולשמור על גיבוש
בתהליך תנועת הגיבוש ניתן לשלוט בתנועת המאסטר על ידי Rviz, מקלדת, שלט רחוק ושיטות נוספות. העבד מחשב את מהירותו דרך הצומת slave_tf_listener על מנת לשלוט בתנועתו ולהשיג את מטרת הגיבוש. הצומת slave_tf_listener מגביל את מהירות העבד כדי למנוע מהירות מופרזת על ידי חישוב הצומת, מה שיגרום לסדרה של השפעות. ניתן לשנות את הערך הספציפי ב-wheeltec_slave.launch.
הפרמטרים הרלוונטיים של אלגוריתם היווצרות הם כדלקמן:
מידע על הימנעות ממכשולים
בהרכב ריבוי סוכנים, המאסטר יכול להשתמש בצומת move_base כדי להשלים הימנעות ממכשולים. עם זאת, האתחול של העבד אינו משתמש בצומת move_base. בשלב זה, יש לקרוא לצומת multi_avoidance בתוכנית העבדים. צומת הימנעות ממכשולים מופעל כברירת מחדל בחבילה. במידת הצורך, ניתן להגדיר את ההימנעות כ"שקר" כדי להשבית את צומת הימנעות ממכשולים.
כמה פרמטרים רלוונטיים של צומת הימנעות ממכשול מוצגים באיור שלהלן, כאשר מרחק_בטוח הוא מגבלת המרחק הבטוח למכשול, ומרחק_סכנה הוא מגבלת המרחק המסוכן למכשולים. כאשר המכשול נמצא במרחק בטוח ובמרחק סכנה, העבד מכוון את מיקומו כדי להימנע מהמכשול. כאשר המכשול נמצא בסכנה, העבד יתרחק מהמכשול.
נוהל מבצע
הזן פקודת ביצוע
הכנות לפני תחילת היווצרות ריבוי סוכנים:
- המאסטר והעבד מתחברים לאותה רשת ומגדירים תקשורת ריבוי סוכנים בצורה נכונה
- המאסטר בונה מראש מפה דו-ממדית ושומר אותה
- המאסטר ממוקם בנקודת ההתחלה של המפה, והעבד ממוקם ליד עמדת האתחול (מיקום ברירת המחדל של יצירת העבדים)
- לאחר כניסה ל-Jetson Nano/Raspberry Pi מרחוק, בצע סנכרון זמן.
sudo date -s "2022-04-01 15:15:00"
- שלב 1: פתח מפה דו-ממדית מהמאסטר.
roslaunch turn_on_wheeltec_robot navigation.launch
- שלב 2: הפעל את תוכנית הגיבוש מכל העבדים.
roslaunch wheeltec_multi wheeltec_slave.launch
- שלב 3: פתח את צומת השליטה במקלדת מהמאסטר או השתמש בג'ויסטיק כדי לשלוט מרחוק בתנועת המאסטר.
הפעל מחדש wheeltec_robot_rc keyboard_teleop.launch
- שלב 4: (אופציונלי) התבונן בתנועות הרובוט מ-Rviz.
rviz
פֶּתֶק:
- הקפד להשלים את פעולת סנכרון הזמן לפני הפעלת התוכנית.
- בעת שליטה במאסטר של היווצרות מרובה סוכנים, המהירות הזוויתית לא צריכה להיות מהירה מדי. המהירות הליניארית המומלצת היא 0.2m/s, מהירות זוויתית מתחת ל-0.3rad/s. כאשר המאסטר עושה סיבוב, ככל שהעבד רחוק יותר מהמאסטר, כך נדרשת המהירות הליניארית גדולה יותר. בגלל המגבלה על המהירות הליניארית והמהירות הזוויתית בחבילה, כאשר מכונית העבדים לא יכולה להגיע למהירות הנדרשת, ההיווצרות תהיה כאוטית. בסך הכל, המהירות הליניארית המוגזמת עלולה לפגוע בקלות ברובוט.
- כאשר מספר העבדים הוא יותר מאחד, בשל רוחב הפס המוגבל המובנה של ה-ROS של מארח ה-ROS, קל לגרום לעיכובים משמעותיים ולניתוק של תקשורת רב-סוכנים. שימוש בנתב יכול לפתור בעיה זו היטב.
- עץ ה-TF של המבנה הרב-רובוטי (2 עבדים) הוא: rqt_tf_tree
- דיאגרמת קשרי הצומת של תצורת ריבוי רובוטים (2 עבדים) היא: rqt_graph
מסמכים / משאבים
![]() |
ROBOWORKS Robofleet אלגוריתמים מרובי סוכנים [pdfמדריך למשתמש Robofleet Multi Agent Algorithms, Robofleet, Multi Agent Algorithms, Agent Algorithms, Algorithms |