יוצרים רובוטים יעילים יותר עם מחשוב מסתגל

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

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

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

טכנולוגיות מחשוב עבור יישומי רובוטיקה

מעבדים סקלאריים (CPU)

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

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

מעבדים וקטוריים

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

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

התקני לוגיקה ניתנים לתכנות (FPGA)

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

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

מעגלים משולבים ייחודיים ליישום (ASIC)

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

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

מימוש מחשוב מסתגל ברובוטיקה

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

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

למערכות רובוטיקה יש צורך בכלים ובחומרה מתאימים כדי למנף כהלכה את גמישותם של התקני FGPA בזמן שהם בונים רובוטים ניתנים להתאמה, אשר מציגים התנהגות דטרמניסטית בזמן אמת. מערכת על מודול (SOM) כגון Kria K26 של Xilinx היא דוגמה אחת, שמתוכננת עבור יישומי קצה וממשקים, זיכרון והספק על המעגל, שפועלים במהירות גבוהה. היא כוללת מערכת על שבב (SoC), – Zynq® UltraScale+™ MPSoC – שמספקת תאי לוגיקה ניתנים לתכנות ופיסות DSP בזמן שהיא מטפלת בעומסי עבודה לעיבוד סקלארי ווקטורי בקומפלקס של מעבד יישומים בארבע ליבות, מעבד זמן אמת בשתי ליבות ויחידת GPU לדו ממד/ תלת ממד.

איור 1. מערכת FPGA על מודול מספקת פלטפורמה למערכת רובטיקה דטרמניסטית לזמן אמת (https://www.xilinx.com/products/som/kria/k26i-industrial.html#documentation)

בנוסף למערכת SOM, יש צורך בספריות ובתוכניות שירות מתאימות, כדי לבנות פתרונות רובוטיקה ברמה תעשייתית. המחסנית Kria Robotics Stack (KRS), (איור 2), משולבת באופן מהודק במערכת ההפעלה של הרובוט (ROS), שהיא מסגרת העבודה בפועל עבור פיתוח יישום רובוטי, ומפשטת את השימוש בהאצת חומרה. המערכת SOM מספקת תמיכה פנימית ל- ROS-2, שמעלה את הביצועים במערכת רובוטית וביישומי אוטומציה תעשייתית.

איור 2. ספריות ותוכניות שירות חיוניות עבור מערכות רובוטיקה בהאצת חומרה. (https://www.xilinx.com/an/kria-robotics-stack.html)

המחסנית משתמשת בערכה לפיתוח תוכנה (SDK) – ROS-2 – שפועלת עם המערכת הסביבתית של ROS-2 כדי לבנות מערכות רובוטים עם ביצועים דטרמניסטיים לזמן אמת, תוך כדי שימוש בגישה מודולרית. היא ממנפת טכניקות ידועות כגון מנגנונים לאיכות שירות (QoS) ורישות תלוי לזמן (TSN) וכוללת ליבות האצה ברמת היישום, תוכנת תיווך לתקשורת ROS וכלי לזמן אמת שמקל על פעולות הגומלין עם רכיבי FPGA. תוכנת Hypervisor עוזרת בתמיכה בקריטיות מעורבת בעזרת שימוש במכונות וירטואליות.

מסקנות

מינוף מחשוב מואץ ניתן להתאמה של התקני FPGA יכול לשפר את הביצועים של הרובוטים התעשייתיים, תוך כדי כך שהוא גם משפר את נצילות האנרגיה ומאשר שגמישות ואבטחה יוכלו להתקיים בעתיד. למימוש של הדורות הבאים של מכונות אלו יש צורך בחומרה מתאימה, כגון SOM שמשלבת לוגיקה של התקני FPGA עם מעבדים סקלאריים ויחידות GPU, וכן תוכנה וכלים שיכולים לשמש בקלות עם מסגרת עבודה מוכרת למערכת רובוטיקה, כגון ROS-2.


קרדיט תמונת כותרת: XILINX

ויקטור מיוראל-וילצ'ס [Victor Mayoral-Vilches], AMD

תגובות סגורות