למה נהיגה אוטונומית נשברת בתרחישים נדירים
הזנב הארוך של תרחישים נדירים אינו אקזוטיקה אלא שגרת יומיום: מטען שאבד מלפנים, עקיפה על שול הדרך, סימון כביש מתחת לשלג, רוכב אופניים שמזנק מאחורי ואן חונה.
נהיגה אוטונומית נשענת על סטטיסטיקה של נתוני אימון, ומצבים כאלה כמעט אינם נכנסים אליה — ומסוע התפיסה והתכנון מאבד יציבות בדיוק בהם.
מכאן מתחילים כשלי תפיסה. מיזוג נתוני חיישנים מחבר פריימים ממצלמה, ענן נקודות וקריאות מדדי מרחק לתמונה אחת, ודי בכך שחותמות זמן יתפצלו או שהכיול יזוז — והאובייקט מוכפל. אספלט רטוב, סנוור משמש נמוכה, השתקפות בחלון ראווה יוצרים הפרעה שבמציאות אין לה קיום על הכביש.
חיזוי מסלולים מוסיף שכבה שנייה של שגיאה. המודל אומד את כוונות השכנים בתנועה, ובתרחיש נדיר פיזור ההשערות מתרחב עד כדי כך שהמתכנן או קופא בחוסר החלטיות, או בוחר בתמרון שבתוך שנייה מפסיק להיות בטוח.
המחיר על הכביש אינו אחיד, ושתי הקצוות גרועים. התראת שווא — בלימה חדה בקטע ריק, שמי שמאחור לא ציפה לה נכנס בה. אובייקט שהוחמץ — מגע. האמינות כאן נקבעת לא באיכות הממוצעת של המודל, אלא בהתנהגות בזנב ההתפלגות.
לכן אנחנו מתחילים במרשם תרחישים ובמדדים לכל שכבה — מבדיקות משוחזרות של סצנות נדירות ועד לוגיקת תכנון שמרנית; ומפרקים איך זה נסגר במסלול הספציפי של הלקוח.
אפקט מדיד מארכיטקטורת תפיסה מודולרית
מעגל מונוליטי מציג רק את התוצאה: המערכת נסעה טוב יותר או גרוע יותר, אבל איזה חלק תרם לכך — לא ידוע. ארכיטקטורה מודולרית מסירה את השאלה הזו: לתפיסה, לתכנון ולבקרה יש מדדי איכות משלהם, ולכן התיקון נראה במספר קונקרטי ולא בהתרשמות כללית מהנסיעה.
את התפיסה מודדים בנפרד — שלמות הגילוי, יציבות המעקב בחפיפות, חלק התראות השווא בדמדומים ובכביש רטוב. תכנון — לפי חלק התמרונים עם כיסוי ביטחון ולפי הסטייה מהמסלול היעד. רגרסיה נתפסת לפי בלוק קונקרטי ואינה נמרחת על כל המעגל.
מחלקת הכשלים הופכת לניתנת לניהול. בעבר תקלת תכנון נראתה כמו שגיאת תפיסה, והאבחון עבר על כל המערכת. עכשיו לכשל יש כתובת, ולכן גם רשימת בדיקות ברורה שסוגרת אותו.
מכאן גם עמידות המודל: עדכון של בלוק אחד אינו דורש אימון מחדש של האחרים ובדיקה מלאה של המעגל. כשהמודול מאבד ביטחון בסצנה לא מוכרת, הוא עובר למצב שמרני ולא גורר אחריו את כל התנהגות הרכב.
זמן האבחון של תקרית מתקצר הודות ליומן מקצה לקצה: ההקלטה מסומנת בגרסאות של המודולים, והסיבה נמצאת לפי קטע ולא לפי שחזור נסיעה שלמה. בפועל אלה שעות עבודה במקום ימים, והתיקון נוגע בבלוק אחד ולא בכל המעגל.
גישות לבנייה: מודולרית, מקצה לקצה, היברידית
בחירת הסכמה נקבעת לפי מסלול ההפעלה והרכב החיישנים, ולא לפי העדפות הצוות. מסוע מודולרי מפריד את התפיסה, התכנון והבקרה לבלוקים בלתי תלויים: הכשל ממוקם בצומת קונקרטי, ואפשר להחליף בלוק בלי להרכיב את המערכת מחדש.
מודל מקצה לקצה נלמד על וידאו וטלמטריה בבת אחת — בטוח יותר בסצנות מורכבות, אך דורש נפח סימון גדול ומסביר את החלטותיו באופן חלש.
סכמה היברידית מחברת תפיסה נלמדת עם תכנון פורמלי: ההתנהגות נשארת ניתנת לבדיקה, ואיכות הזיהוי עולה. אימון המשך של סטאק קיים עבור מערך החיישנים שלכם נותן תוצאה מהירה מהאחרות, אך נשאר בגבולות הארכיטקטורה המקורית.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| מסוע מודולרי | מסלול מוגדר, אבחון תקלות לפי צמתים, הכנסה מדורגת של יכולות | שגיאות מצטברות במפגשי הבלוקים, סצנות חדשות דורשות כיול ידני |
| מודל מקצה לקצה נלמד | סביבה מגוונת, יש זרם נתונים וסימון | נדרשים אימונים חוזרים תקופתיים, ההחלטות כמעט אינן ניתנות לפרשנות |
| סכמה היברידית | דרושים גם התנהגות נשלטת וגם זיהוי מדויק | מורכבת לתחזוקה: שתי תת-מערכות וכללים לתיאום ביניהן |
| אימון המשך של סטאק קיים | התחלה מהירה על מערך החיישנים שלכם | נתקל בגבולות המודל הבסיסי ובעדכונים שלו |
את האבחון מתחילים בשלוש שאלות: אילו חיישנים כבר מותקנים, עד כמה המסלול צפוי, ומי יאבחן תקלות לאחר ההשקה. התשובות להן הן שקובעות איזו אפשרות עומדת בתנאי ההפעלה שלכם.
שלבי הפיתוח: מביקורת תרחישים ועד קבלה
פיתוח מערכת נהיגה אוטונומית אינו ספרינט ארוך אחד, אלא רצף שלבים שלכל אחד מהם תוצאה ניתנת לבדיקה. את התהליך בונים כך שמצבם של מודולי התפיסה, התכנון והבקרה נראה במדדים על מערכי תרחישים מסומנים, ולא במצגות.
- ביקורת תרחישים. מקבעים את תנאי ההפעלה, מחלקות האובייקטים והתמרונים שהמערכת מחויבת לבצע, ואת מה שאנחנו מודעים לכך שנשאיר מחוץ להיקף. התוצאה — מטריצת תרחישים עם עדיפויות ורשימת מגבלות.
- הכנת נתונים. אוספים הקלטות חיישנים, מסמנים ומאזנים את המערך לפי מצבים נדירים, ובונים בנפרד מדגי בדיקה שאינם חופפים למדגי האימון.
- כיוונון מודולים. את התפיסה, התכנון והבקרה מכווננים בנפרד, ולכל אחד מדדים משלו: שלמות הגילוי, חלק האובייקטים שהוחמצו, חלקות המסלול. למעגל המשותף מרכיבים רק לאחר מעבר של סף בכל מודול.
- ניסויים. תחילה ריצה וירטואלית בסימולטור על אלפי תרחישים, לאחר מכן מגרש סגור וכבישים ציבוריים עם נהג-בוחן. כל תקרית נאבחנת עד הסיבה, ולא עד הסימפטום.
- כיול ורגרסיה. כל שינוי עובר רגרסיה מלאה על מערך מקובע: המערכת אינה אמורה לנצח בתרחיש חדש תוך הפסד בישן.
- קבלת המערכת. מוסרים לפי פרוטוקול מוסכם: מדדי בטיחות, חלק התערבויות הנהג, זמן ההתאוששות לאחר כשל חיישן, דוח כיסוי תרחישים ותיעוד.
נקודת בקרה של כל שלב — ריצה משוחזרת שאפשר לחזור עליה אצלכם. מקומות שנויים במחלוקת סוגרים לפני תחילת השלב הבא, ולא לאחר המסירה.
אספקה בנהיגה אוטונומית: מודלים ותקנות
תוצאת הפרויקט אינה תצוגה במגרש, אלא ערכה שאיתה הצוות שלכם ממשיך לעבוד בלעדינו. כל ארטיפקט מנוהל בגרסאות במאגר שלכם, נבדק בקבלה ונשאר אצלכם יחד עם זכויות השימוש.
- משקלות של מודלים מאומנים לתפיסה, תכנון ובקרה בפורמט ניתן לייצוא, עם מדדי איכות בקרה על מדגם מוחזק.
- קונפיגורציות וסקריפטים לשחזור האימון — מהכנת הנתונים ועד ייצוא המודל, כך שריצה חוזרת תיתן תוצאה דומה.
- תרשימי ארכיטקטורה: זרימת הנתונים מהחיישנים ועד פעולות הבקרה, גבולות המודולים, מצבי דגרדציה בעת אובדן אות.
- תקנות ניסוי: מערכי תרחישים, קריטריוני מעבר, סדר ריצות על סטנד ובמגרש סגור, כללי אבחון פערים.
- תיעוד: ממשקים בין המודולים, פורמטי נתונים, דרישות לסימון, הוראות פריסה של המעגל על החומרה שלכם.
- הכשרת מהנדסי הלקוח — מפגשים על הנתונים שלכם ועל הסטנד שלכם, כדי שהצוות בעצמו יתקן מערכים, יאמן מודלים בהמשך ויקרא דוחות ריצה.
- פרוטוקולי קבלה, מגבלות ידועות ויומן החלטות בתרחישים שנויים במחלוקת כבסיס לאיטרציות הבאות.
הקבלה מתבצעת לפי קריטריונים מוסכמים: תרחיש סגור כאשר הוא משוחזר על הסטנד שלכם ומאושר בפרוטוקול. מה שלא עובר — נשאר בעבודה, ולא מועבר ל"מגבלות ידועות".
מקרה בוחן: צמצום כשלים בתנועה צפופה
לקוח הגיע עם אב-טיפוס עובד: הרכב עבר מסלול עירוני, אבל בתנועה צפופה היה צריך לקטוע את המצב האוטומטי לעתים קרובות מדי — בסדר גודל של 12 התערבויות נהג בכל 100 ק"מ. יותר ממחצית המקרים — התמזגויות של זרמי תנועה, נתיבים צרים ותמרוני השתלבות של שכנים. כל נסיעה כזו אופסה ולא אפשרה לצבור סטטיסטיקה כדי להוציא את המערכת להפעלה.
היכן אבדה האמינות
ניתוח ההקלטות הראה שהסיבה אינה במודל בודד, אלא במפגש בין החוליות. התפיסה עדכנה את הסצנה בתדירות נמוכה מזו שהמתכנן נדרש לה, ומעקבי האובייקטים נקרעו בחפיפה קצרה — אוטובוס הסתיר מכונית, והיא הופיעה מחדש כבר בקרבה מסוכנת. המתכנן עבד לפי אפשרות מסלול אחת בלבד בלי אומדן סיכון, ולכן במקום עקיפה חלקה בחר בבלימה חדה.
מה שינינו ומה קיבלנו
עיבדנו מחדש את מסוע התפיסה והתכנון: קישרנו מעקבים לפי היסטוריית תנועה, הוספנו חיזוי תמרונים של השכנים והעברנו את המתכנן להשוואה בין כמה מסלולים עם אומדן סיכון לכל אחד. את התרחישים הרצנו בסימולטור CARLA ובמגרש סגור, ואחר כך — באותו מסלול עירוני.
ההתערבויות ל-100 ק"מ ירדו מ-12 ל-3, בלימות השווא — כמעט פי שלושה פחות, וחלק הנסיעות בלי קטיעה אחת עלה מ-18% ל-64%. צי הבדיקות התחיל לעבור את המסלול פי שלושה מהר יותר, כי הפסיק לאפס נסיעות.
במה נבדל מסוע מודולרי ממודל מקצה לקצה?
ההבדל הוא היכן עוברים גבולות האחריות. במסוע מודולרי התפיסה, חיזוי ההתנהגות של שאר המשתתפים, תכנון המסלול ובקרת המנועים — בלוקים נפרדים עם חוזים מפורשים לכניסה ולפלט.
מודל מקצה לקצה נלמד מהחיישנים ישירות לפקודות הבקרה, והייצוגים הביניים בו אינם מתוארים בידי אדם אלא נוצרים כתוצר לוואי של האימון.
יכולת האבחון של שגיאות היא קו פרשת המים המרכזי. במסוע הכשל ממוקם: מההקלטה ומהארטיפקטים הביניים רואים שהאובייקט אבד בשלב התפיסה ולא הוסר בידי המתכנן, ואפשר להחליף בלוק אחד או להחמיר אותו בכללים בלי לאמן מחדש את האחרים.
למודל מקצה לקצה אין עיגון כזה: הסיבה לכישלון מתבקשת בסטטיסטיקה על מדגמים גדולים, והתשובה "הרשת לא זיהתה" אינה תשובה.
גם דרישות הנתונים נפרדות. למודולים מספיקים המערכים שלהם: זיהוי — סימון מסגרות, חיזוי — מעקבים, ותכנון אפשר לחדד על סימולציה וגיאומטריה. מודל מקצה לקצה זקוק לסדרות ארוכות ומתואמות, שבהן תוויות המצבים ואותות הבקרה מסונכרנים, אחרת האימון גולש לארטיפקטים. תרחישים נדירים אך קריטיים צריך לאסוף בנפרד — אחרת המודל פשוט לא יראה אותם בתוך המסה הכללית.
התחזוקה נובעת מכך. המסוע יוצא לגרסה בחלקים, מנהל גרסאות של הממשקים בין המודולים ובודק רגרסיה לפי מדדי המפגשים — עדכון של בלוק אחד אינו שובר את האחרים. מודל מקצה לקצה, בתיקון של כל קטע, מאומן מחדש בשלמותו, ואת כל המסלול צריך לבדוק מחדש.
לכן בפועל בונים לרוב היברידי: בלוקים מקצה לקצה בתוך מסגרת מודולרית, שבה המהנדס שומר על שליטה במפגשים ועל היכולת להסביר כל כשל.
שאלות טכניות נפוצות על הטמעה וניסויים
לפני תחילת העבודה הלקוח בודק לא את הארכיטקטורה אלא את הסיכונים: איך המערכת תתנהג בגשם ובשלג, מי אחראי לתקרית, אפשר לאמן אותה בהמשך על הנתונים שלו, ומה לעשות עם מערך חיישנים שכבר מותקן. להלן תשובות קצרות לכל ספק; בדיון על המשימה נעבור עליהן בתצורה ובמסלולים שלכם.
איך עוברים ניסויים במזג אוויר מורכב?
תרחישים עם גשם, שלג, ערפל, שמש נמוכה ולכלוך על החיישנים מוציאים למערך בדיקות נפרד ומריצים באופן קבוע, ולא פעם אחת לפני המסירה. בנפרד בודקים דגרדציה: אם ערוץ מאבד נתונים, המערכת מפחיתה את מהירות הנסיעה ומעבירה את השליטה למפעיל במקום לנוע על תמונת עולם חלקית. דווקא בדיקות כאלה חושפות לרוב נקודות תורפה שאינן נראות על אספלט יבש.
מי אחראי לתקרית?
אזורי האחריות נקבעים בחוזה ובתקנות ההפעלה — הם אינם מובנים מאליהם אלא מתוארים. אנחנו אחראים לרכיבים שאנחנו מספקים ולבסיס הראייתי: יומני אירועים רציפים, הקלטות חיישנים ויכולת לשחזר את תמונת האירוע שלב אחר שלב. בלי עקבה כזו אין אבחון אפשרי, ולכן ההקלטה מתנהלת מהיום הראשון של הניסויים.
אפשר לאמן את המערכת בהמשך על הנתונים שלנו?
אימון המשך על נתוני הלקוח הוא חלק שגרתי בעבודה, ולא פרויקט נפרד. אוספים הקלטות מהמסלולים שלכם, מסמנים מקרים מורכבים, מאמנים בהמשך ובודקים על מדגם מוחזק ועל מערך תרחישים סגור, כדי לא לאבד איכות שכבר הושגה. כל מחזור עדכון עובר בדיקות רגרסיה, אחרת תיקון עבור כביש אחד שובר את ההתנהגות בכביש אחר.
יש לנו מערך חיישנים מותקן חלקית — נצטרך להחליף הכול?
מערך מותקן חלקית הוא התחלה תקינה. תחילה מתארים מה כבר מותקן ואילו קטעי מסלול מכוסים, ואחר כך משלימים רק את החסרים: אזורים מתים, זוויות חסרות, חוסר בחפיפה. חיישנים קיימים נבדקים לכיול ולסנכרון — לעתים קרובות הם מספיקים, והחלפה נדרשת רק במקום שבו הכיסוי אינו נסגר פיזית.
מה שנשאר מחוץ להיקף — לוחות זמנים למסלול שלכם והיקף עבודה לחומרה הקיימת. תארו את המשימה: נחזור עם אומדן ותוכנית.בואו נדון במשימה: אילו נתונים נדרשים לאומדן
אומדן של משימת נהיגה אוטונומית מתחיל לא בבחירת המודל, אלא במלאי של מה שכבר קיים: בלי נתוני מקור כל מספר לגבי לוחות זמנים הוא ניחוש. להלן המינימום שאחריו אנחנו חוזרים עם תוכנית עבודה ופירוק לשלבים.
- תרחישי הפעלה — היכן נעה הפלטפורמה: שטח סגור, עיר, כביש מהיר; אילו תמרונים הכרחיים ואילו אסורים.
- הקלטות חיישנים — נתוני גלם ממצלמות, לידארים ומכ"מים עם חותמות זמן, סנכרון וכיול בין החיישנים.
- סימון ואיכותו — האם קיימות אנוטציות של אובייקטים, נתיבים ומרחב פנוי, מי הכין אותן ולפי איזו הוראה.
- דרישות להתנהגות — כללי קדימות, מרחקים, תגובה להולכי רגל ולמצבי חירום, המתוארים בטקסט ולא "בעל פה".
- פלטפורמה ומגבלות — מודול חישוב, זיכרון זמין, זמן תגובה מותר של מעגל הבקרה, ממשקים למנועים ולבלמים.
- מדדי קבלה — לפיהם מקבלים את התוצאה: חלק התרחישים שעברו, מספר התערבויות המפעיל, רשימת כשלים אסורים.
- תשתית — היכן מאמנים ומשחזרים ניסויים: אשכול, אחסון, ניהול גרסאות של מערכי נתונים ומשקלות מודלים.
דיון הדרישות מתנהל במקביל לאיסוף: אנחנו מקבעים מה נכנס להיקף ומה מוציאים מסוגריים, והיכן גבול האחריות בין מודולי התפיסה, התכנון והבקרה. אם חלק מהנתונים חסר — זו אינה עצירה, אלא שלב הכנה נפרד בתוכנית, עם עלות מוגדרת לפי לוחות זמנים וסיכון. שלחו את מה שיש: נחזור עם אומדן, סדר עבודה ורשימה של מה שצריך להשלים לפני ההתחלה.







