פיתוח מערכות אוטונומיות: המורכבות, הבינה המלאכותית ומה שבניהם

המסע מתכנון למימוש של מערכות אוטונומיות רצוף באתגרים והזדמנויות בתעשייה המתרחבת כיום.
בפוסט זה, אנו דנים בהבדלים המהותיים בין אוטונומיה ואוטומציה, האתגרים העיקריים בפיתוח מערכות חכמות אלו, כגון התכנון והמידול המורכב, המורכבויות של קבלת החלטות העצמאיות, שימוש בבינה מלאכותית (AI) ועוד. אך עם גישה וכלים נכונים, יכול להיות פשוט יותר. בעזרת MATLAB ו-Simulink, מפתחים יכולים להתמודד עם האתגרים הללו ראש-בראש, לייעל את תהליך הפיתוח והתכן וליצור פתרונות חדשניים ונועזים.
רקע
פיתוח מערכות אוטונומיות נהיה לאחד הנושאים החמים בשוק בשנים האחרונות עם התפתחות ה-AI, כדוגמת הרכבים האוטונומיים, וסוקר ברמות שונות על ידנו על פני מספר בלוגים (ראו קישורים בסוף). הייתי מעוניין לדבר על תהליך הפיתוח בזווית רחבה בבלוג זה.
אז כמו כל תיאוריה טובה נתחיל בהגדרה, מהי מערכת אוטונומית ומה היא שונה ממערכות אחרות?
למונח מערכת אוטונומית קיימים כיום מספר הגדרות ואין אחת אחידה [1]. אך במובן הרחב (תרגום חופשי) ההגדרה מתייחסת למערכת אשר יכולה לפעול באופן עצמאי מלא או חלקי, לקבל החלטות, לתכנן פעולות ולבצען ללא התערבות אנושית ישירה. אוקי, נשמע דומה עד מאד למערכת אוטומטית. אז מה השוני?
"המוח". ובאופן קצת יותר מדויק, דרך קבלת ההחלטות של המערכת. בדרך כלל, מערכות אוטומטיות פועלות בתוך קבוצה מוגדרת היטב של פרמטרים והינן מוגבלות במשימותיהם. מערכות אלו משתמשות בהיוריסטיקה מתכוננת מראש על מנת לקבוע אילו פעולות עליהן לנקוט.
המערכת האוטונומית, לעומת זאת, לומדת ומסתגלת לסביבה הדינאמית אשר פועלת בתוכה ומתפתחת ככל שהסביבה משתנה. הנתונים שהיא לומדת מהם ומסתגלת אליהם עשויים להיות שונים ממה שהיא תוכננה ואומנה [2].

הדוגמה הקלאסית להבדל בין שתי המערכות היא של מדיח כלים, שפעולותיו מתוכננות מראש, מול רכב אוטונומי, שחוץ מלהגיע ליעד בבטחה, מבצע את כל שאר התהליכים באופן עצמאי.
דוגמה נוספת, אם כי פחות ברורה, הינה של טיל מונחה. למרות שבמבט ראשוני נראה שמדובר במערכת אוטונומית, זוהי למעשה מערכת דינמית עם אלגוריתמיקה, תכן לוגי (הכולל לעתים מכונות מצבים) מורכב. כדי לקבוע אם זו אכן מערכת אוטונומית, יש לבחון את תכן האלגוריתמיקה והלוגיקה. בין אם פרמטרי התכן מוגדרים מראש ודטרמיניסטיים, למשל אופן חישוב הנתיב, ושלבי הפעולה השונים, נוכל לתאר את הטיל כמערכת אוטומטית מתקדמת. עם זאת, הטיל עשוי להיחשב אוטונומי, אם מתאפשר לטיל לבחור מטרות משלו, לקבוע את הנתיב הרצוי או להימנע ממכשולים באופן עצמאי.
אז איך מערכת אוטונומית (או אוטומטית) עובדת? את תהליך התנהגות המערכת ניתן לחלק ל 4 חלקים עיקריים:
1. חישה (Sensing): המערכת משתמשת בחיישנים כדי לאסוף מידע על הסביבה ועל מצבה הנוכחי, כולל מידע על מיקום, מהירות, תנודות, מרחקים, תנאי מזג אוויר, מכשולים ועוד.
2. שיערוך ועיבוד מידע (Estimation & Perception): המידע שנאסף על ידי החיישנים מעובד על ידי המערכת על מנת להפיק מהם תובנות. לדוגמא, קטלוג ומעקב אחר אובייקטים שזוהו, למשל הולכי רגל, כלי רכב, או מכשולים. דוגמא נוספת הינה היתוך המידע ממספר חיישנים לשערוך המצב הנוכחי של המערכת.
3. תכנון וקבלת החלטות (Planning): בהתבסס על התובנות שהופקו והיסטוריית המערכת, המערכת תתכנן את הפעולות הבאות או תמשיך את הפעולות הנוכחיות תוך התחשבות ביעדים העיקריים שתוכננו ובאילוצים השונים שנקרים בדרך. ברכב אוטונומי, למשל, מערכת הבקרה עשויה לקבוע כיצד יש לבצע פנייה על סמך חישוב נתיב עם כמות מינימלית של בלמים וגז תוך הימנעות מהתנגשויות עם כלי רכב אחרים.
4. בקרה וביצוע (Control): לאחר שההחלטות נקבעו, המערכת מבצעת ומבקרת את הפעולות בהתאם. זה יכול לכלול ניווט תכנון נתיב, שינויים במהירות ובכיוון, תגובה למצבים לא צפויים בסביבה וכד'.
לאחר ביצוע הפעולות המערכת מתעדכנת ומקבלת משוב על מצבה ועל איכות הביצועים מהחישה, והתהליך חוזר חלילה.

אתגרים ואיך MATLAB ו-Simulink עוזרים?
בתהליך של פיתוח מוצר נפרשים מספר רב של אתגרים, ובפרט בשלב התכן והפיתוח לאחר הגדרת המוצר ויצירת המפרט. כשבוחנים את תהליך פיתוח של מערכת אוטונומית, רואים שהוא אינו שונה מרוב פיתוחי מוצר. אך ברוב המקרים נהפך למורכב יותר. מפירוט של תהליך ההתנהגות ניתן לחלק את האתגרים השונים ל – 3 קטגוריות עיקריות שניצבות בפנינו:
- מידול החיישנים והפלטפורמות (חלקי המערכת – רחפנים, רובוטים, מכוניות וכד'): מידול ושילוב של חיישנים כדי לתפוס ולפרש את הסביבה בצורה מדויקת ככל הניתן הינו אתגר לא פשוט. כל חיישן מספק זרמי נתונים ייחודיים שיש למזג יחד על מנת ליצור תובנות למערכת. אלו נעים למשל בין מצלמות, לידאר (LIDAR), מכ"מ (RADAR), GPS, מדי תאוצה, ועוד.
- תכן האלגוריתמיקה: אתגר משמעותי נוסף הינו עיצוב אלגוריתמים חזקים של תפיסה וקבלת החלטות אשר יכולים להתמודד עם אי ודאויות גדולות וסביבות דינמיות משתנות. אלגוריתמים אלו חייבים להיות מסוגלים לעבוד בזמן אמת תוך עיבוד כמויות גדולות של מידע, לזהות אובייקטים רלוונטיים, לחזות את התנהגותם העתידית ולקבל החלטות מתאימות להשגת יעדי המערכת תוך הבטחת בטיחות. תנאים אלו מכוונים לעיתים קרובות לשימוש באלגוריתמיקה מבוססת בינה מלאכותית כדוגמת בקר מבוסס למידה עמוקה (Reinforced Learning Controller) או סיווג אוטונומי של מכשולים וציוני דרך ע"י רשת נוירונים (Deep Learning). ישנם כמובן גם אלגוריתמים שאינם מבוססים לחלוטין על AI, כגון לוגיקה עמומה (Fuzzy Logic), בקרים מבוססי מודלים (Model Predictive Control), ועצי חיפוש מונטה קרלו (MCTS) שנותנים מענה טוב לדרישות הגבוהות של מערכות אוטונומיות.
- פיתוח סביבת בדיקות מהימנה וסנתוז/שילוב של מידע אמיתי לאימון ובדיקות המערכת: אימות (Verification) ובדיקות של מערכות אוטונומיות מציבים אתגרים מהותיים. שיטות בדיקה מסורתיות לרוב אינן מספיקות בשל המורכבות והשונות של תרחישים בעולם האמיתי. מערכות אוטונומיות חייבות לעבור בדיקות סימולציה מקיפות בסביבות מגוונות עם תנאי קיצון כדי להבטיח את מהימנותן ובטיחותן לפני ההטמעה לחומרה.

כלי MathWorks פותחו במטרה לענות על אתגרים אלו ולהקל על תהליך הפיתוח של מערכות אוטונומיות. קיימים מגוון פתרונות ואלגוריתמים מוכנים מראש לעיבוד נתוני חיישנים, תכן של למידת מכונה וראייה ממוחשבת, המאפשרים למפתחים לעבד מראש את נתוני החיישנים, לחלץ מידע משמעותי ולפתח אלגוריתמי תפיסה מתקדמים.
Simulink, הינה סביבה גרפית מבוססת בלוקים המיועדת למידול, הדמיה וניתוח מערכות דינמיות, יתרון למי שמתכנן ובודק אלגוריתמים למערכות אוטונומיות. בעזרת Simulink, מפתחים יכולים לבנות ולהיעזר במודלים ברמות שונות של נאמנות ודיוק על מנת לספק את צרכי הפיתוח. ממודלים מפורטים לסימולציות המערכתיות עד למודלים מורכבים פחות המותאמים לתכן הבקרה למשל. זאת על מנת לשלב את המאפיינים העיקריים והתנהגות של המערכות כדוגמת, כלי רכב, רחפנים, או אפילו בני אדם כמו מידול ריאות (ראו קישור בסוף).
בפן של פיתוח סביבת בדיקות, קיימים מגוון אפשרויות ליצירת סביבות דינמיים אשר ניתן לבדוק את המערכת וכמו כן לסנתז מידע עבור החיישנים והאלגוריתמים. פתרונות אלו מאפשרים ליצור תרחישים מציאותיים, תנאי מזג אוויר משתנים ומידע מדויק, תוך שימוש בכלים גרפים אינטראקטיביים ומנועים ויזואליים מתקדמים.
להלן כמה מהפתרונות הבולטים והנפוצים:
- כלים גרפים אינטראקטיביים: כגון Roadrunner & Roadrunner Scenario, המאפשרים ליצור תרחישי נהיגה מציאותיים עבור תעשיית הרכב. כלים אלו מאפשרים לבחון התנהגות של רכבים אוטונומיים ומערכות מתקדמות לנהיגה (ADAS) בתנאים שונים, תוך התחשבות במגוון גורמים כמו מזג אוויר, תנועה וטופוגרפיה. עבור התעשיות האחרות ניתן להיעזר ב – Tracking Scenario Designer אשר מיועד לסנתז מידע עבור אלגוריתמי היתוך הנתונים בצורה קלה ומהירה.
- מנועים ויזואליים תלת-ממדיים: אלו ממשקים בין Simulink למנועים ויזואליים כדוגמת ®FlightGear ו-®Unreal, המאפשרים ליצור סביבות דינמיות ותלת-ממדיות לבדיקות וניתוח הסימולציות. סביבות אלו הותאמו במיוחד לבדיקות של מערכות אוטונומיות, כגון כלי טיס ללא טיס (UAV) ורובוטים.
- חיבור לפלטפורמות חיצוניות: ניתן לחבר את המודלים והסימולציות למגוון רחב של פלטפורמות, המפורסמות ביניהן הינן Robotic Operating System (ROS) ו-Functional Mock-up Interface (FMI). חיבור זה מאפשר שיתוף פעולה בין הכלים השונים ויצירת סביבת עבודה אחידה לבדיקות ולסימולציות.

לסיכום,
כיום פיתוח מערכות אוטונומיות נמצא בחזית החדשנות עם פוטנציאל עצום לשנות את ענף התעשייה, מתחבורה ולוגיסטיקה ועד שירותי בריאות וייצור. עם זאת, המסע הזה אינו חף מאתגרים, אשר כולל שילוב חיישנים מגוונים, עיצוב אלגוריתמים מסובכים ואימות המידע בסביבה מורכבת ודינמית.
כלים כמו MATLAB ו-Simulink מציעים פתרונות מקיפים להתמודדות עם אתגרים אלו, ומאפשרים למפתחים לתכנן, לדמות ולבדוק מערכות אוטונומיות בצורה יעילה ואפקטיבית. על ידי מינוף היכולות של MATLAB ו- Simulink, מפתחים יכולים להאיץ את מחזורי הפיתוח, לשפר את אמינות המערכות האוטונומיות, ובסופו של דבר להביא פתרונות חדשניים לשוק מהר יותר. ראו דוגמא של פיתוח צוללת אוטונומית. ולמתעניינים, "במידע נוסף" מופיע קישור למאגר הקבצים של הפרויקט להתנסותכם החופשית.
איור 5 – דמו לפיתוח צוללת אוטונומית בעזרת MATLAB. ©MathWorks
ונושא אחרון, כשמסתכלים לעתיד של המערכות האוטונומיות, שיתוף פעולה בין התעשייה, האקדמיה וספקי הטכנולוגיה יהיה גורם מכריע בהנעת התקדמות ובניצול מלוא הפוטנציאל שלהן. עם המשך חדשנות ושיתוף פעולה הדוק, מערכות אוטונומיות ימשיכו לחולל מהפכה בעולם, אשר יוביל לעידן מרגש.
למידע נוסף
- מה חדש במערכות אוטונומיות בגרסה R2022a
- מה דרוש לבניית אלגוריתמי Perception לנהיגה אוטונומית?
- סימולציה של מערכות נהיגה אוטונומית עם RoadRunner Scenario!
- בלוגים של MahWorks בנושא מערכות אוטונומיות.
- מאגר Git לדמו AUV
- Simulink 3D Animation
- Tracking Scenario Designer
- Medical Ventilator with Lung Model
- Müller, M., Müller, T., Ashtari Talkhestani, B., Marks, P., Jazdi, N., & Weyrich, M. (2021). Industrial autonomous systems: a survey on definitions, characteristics and abilities. at-Automatisierungstechnik, 69(1), 3-13. https://www.degruyter.com/document/doi/10.1515/auto-2020-0131/html
- Matteson, S. (2019, June 7). Autonomous versus automated: What each means and why it matters. TechRepublic. https://www.techrepublic.com/article/autonomous-versus-automated-what-each-means-and-why-it-matters/