פיתוח ניווט SLAM לרובוטים שירותיים: מערכת AI מהיסוד

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

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

ניווט SLAM של רובוטים שירותיים: היכן נשברת האוטונומיה

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

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

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

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

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

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

מה נותנת ניווט SLAM מוגדר לרובוטים שירותיים

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

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

יציבות הלוקליזציה ודיוק

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

מפת החלל ומחזור החיים שלה

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

סוגי הכשלים שהוסרו

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

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

כיצד אנו מיישמים ניווט: שלבי העבודה ההנדסית

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

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

לאחר מכן העבודה מתנהלת באיטרציות: כוונון SLAM, הרצה על מסלולים אמיתיים, ניתוח פערים, אימון מחדש של המפה. להלן — כיצד זה בנוי אצלנו.

  1. ביקורת תרחיש ההפעלה. אוספים מפת תנועה, מודדים עבירות, מתעדים מקורות הפרעה ודרישות לדיוק המיקום. התוצר — מפרט טכני מוסכם לניווט.
  2. תרשים חיישנים ומחשב. בוחרים את ההרכב: לידארים, מצלמות עומק, מודולים אינרציאליים, אודומטריה של גלגלים. מחשבים אילו מהם נדרשים ליציבות בתרחיש שלכם, ואילו מיותרים.
  3. כוונון SLAM ולוקליזציה. בונים מפה, מגדירים פרמטרים להשוואת סריקות, סינון רעש והתנהגות בעת אובדן לוקליזציה. הרובוט חייב לאתחל מחדש כראוי, ולא "ללכת לאיבוד" באמצע המשמרת.
  4. תכנון מסלולים ועקיפת מכשולים. מגדירים מתכנן גלובלי ומקומי, עדיפויות אזורים, כללי התנהגות ליד אנשים וכלי רכב. בודקים תרחישים עם מכשול שהופיע לפתע.
  5. בדיקת מסלולים באתר. מריצים את הרובוט במסלולים אמיתיים בשעות שונות של היום ובעומסים שונים. מודדים את שיעור המעברים המוצלחים, זמן ההתאוששות לאחר תקלה, דיוק ההתקרבות לנקודה.
  6. מסירת תיעוד והדרכה. מוסרים מפות, קונפיגורציות, תרשימי חיישנים, נוהל תחזוקה והוראות למפעילים. מקיימים הדרכת צוות ונשארים בקשר בתקופת ההפעלה הניסיונית.

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

תארו את תרחיש ההפעלה שלכם — נחזור עם הערכה ותוכנית עבודה.

במה שונה SLAM מניווט קלאסי לפי סמנים?

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

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

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

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

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

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

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

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

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

מקרה בוחן: כיצד הרובוט הפסיק לאבד לוקליזציה באולם המכירות

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

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

מה חשף ניתוח התקלות

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

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

מה שינינו

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

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

מדד לפני אחרי
שיעור מעברים מוצלחים במסלול כ-70% מעל 98%
זמן התאוששות לאחר תקלה דקות, בהשתתפות מפעיל שניות, אוטומטית
התערבויות ידניות במשמרת עשרות בודדות
דיוק ההגעה לנקודה סנטימטרים עם פיזור גדול סנטימטרים יציבים

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

ספקות לפני ההתחלה: תאימות, מיגרציה, נסיגה

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

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

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

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

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

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

האם ניתן לחזור אחורה לאחר מסירת הפרויקט?

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

לאחר המסירה תועבר לידיכם:

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

תארו את הפלטפורמה והסטאק הנוכחי שלכם — נחזור עם הערכת תאימות ותוכנית העברה.