כיצד לשלב מערכת ראייה ממוחשבת עם רובוט תעשייתי — סוגי מצלמות, אסטרטגיית תאורה, תקשורת רובוט-ראייה ודוגמת אינטגרציה HikRobot + FANUC צעד אחר צעד.
ראייה ממוחשבת הופכת רובוט מכלי עיוור למערכת חכמה שיכולה לאתר חלקים, לבדוק איכות, לקרוא ברקודים ולהסתגל לשונות. האינטגרציה היא החלק הקשה — המצלמה, התאורה, בקר הרובוט וה-PLC חייבים כולם לדבר אותה שפה בזמן הנכון.
ראו איך אנחנו משלבים ראייה ממוחשבת בקווי ייצור בעמוד ראייה ממוחשבת, או עיינו במצלמות תעשייתיות של HikRobot.
בחירת מצלמה
סוגי מצלמות לפי יישום:
- סריקת שטח (2D) — איסוף, בדיקות, קריאת ברקוד. הנפוצה ביותר. סדרת CA ו-SC של HikRobot
- אור מובנה 3D — איסוף מתיבה, מדידת נפח, גיאומטריה מורכבת. איטי יותר אך בלתי-תלוי מיקום
- סריקת קו — בדיקת רצף רציף, משטחי צמיגים, פח פלדה. דורש תנועת מסוע
- מצלמה חכמה (עיבוד מובנה) — סדרת SC6000. מצלמה + מעבד ראייה ביחידה אחת, ללא מחשב נפרד
תאורה: המשתנה החשוב ביותר
תאורה חשובה יותר מרזולוציית המצלמה. תמונה טובה עם מצלמה זולה עדיפה על תמונה רועשת עם מצלמה יקרה. עקרונות מרכזיים: השתמש בתאורה כיוונית ליצירת ניגודיות (תאורת רקע לצלליות, תאורת טבעת לפגמי שטח, תאורה קואקסיאלית למשטחים שטוחים מחזירי אור). תמיד סגור את התאורה למניעת שונות סביבתית.
תקשורת רובוט-ראייה: FANUC + HikRobot
תבנית האינטגרציה הסטנדרטית: הרובוט שולח פולס טריגר דיגיטלי למצלמה, ממתין ל-DI "תוצאה מוכנה", ואז קורא לתוכנית Karel שקוראת את הסט ה-XY משקע TCP. תוכנית Karel כותבת ערכי ההיסט לרגיסטרים מספריים, שתוכנית TP מחילה אותם על עמדת האיסוף.
חשוב: TP לא יכולה לפתוח שקעי TCP ישירות. תקשורת שקע דורשת תוכנית Karel (למשל VIS_READ.PC) מקומפלת וטעונה על הבקר. תוכנית TP קוראת ל-Karel, שמבצעת קריאת השקע וכותבת תוצאות לרגיסטרים.
! === חלק 1: טריגר מצלמה ===
1: DO[10:CAM_TRIG]=ON ; ! פתח טריגר למצלמה
2: WAIT .02(sec) ; ! החזק 20ms — פולס טריגר מינימלי
3: DO[10:CAM_TRIG]=OFF ; ! שחרר טריגר
! === חלק 2: המתן לתוצאת ראייה ===
4: WAIT DI[11:VIS_RDY]=ON,TIMEOUT,LBL[99] ;
! שים לב: פסיק לפני TIMEOUT — חובה בתחביר TP
! === חלק 3: קרא היסט דרך Karel ===
5: CALL VIS_READ ; ! Karel קורא שקע TCP: XOffset→R[20], YOffset→R[21]
6: IF DI[12:VIS_FAIL]=ON,JMP LBL[98] ; ! המצלמה לא מצאה חלק
! === חלק 4: החל היסט על עמדת האיסוף הבסיסית ===
7: PR[5]=P[3:PICK_BASE] ; ! טען עמדת איסוף מלומדת ל-PR[5]
8: R[30]=PR[5,1] ; ! קרא X הנוכחי של PR[5]
9: R[30]=R[30]+R[20] ; ! הוסף היסט X מהראייה
10: PR[5,1]=R[30] ; ! כתוב חזרה לאלמנט X של PR[5]
11: R[31]=PR[5,2] ; ! קרא Y הנוכחי של PR[5]
12: R[31]=R[31]+R[21] ; ! הוסף היסט Y מהראייה
13: PR[5,2]=R[31] ; ! כתוב חזרה לאלמנט Y של PR[5]
! === חלק 5: נוע לעמדה המתוקנת ===
14: J PR[5] 60% CNT50 ; ! התקרב מעל עמדת האיסוף המתוקנת
15: L PR[5] 150mm/sec FINE ; ! גישה מדויקת לעמדה
16: JMP LBL[100] ;
LBL[98:NO_PART] :
17: DO[14:NO_PART_ALM]=ON ; ! הפעל אזעקת חסר-חלק
18: PAUSE ;
19: JMP LBL[100] ;
LBL[99:VIS_TIMEOUT] :
20: DO[14:NO_PART_ALM]=ON ;
21: PAUSE ;
LBL[100:END] :הערות תחביר מרכזיות: (1) TIMEOUT בפקודת WAIT דורש פסיק לפני LBL — "WAIT DI[x]=ON,TIMEOUT,LBL[n]". (2) TP לא יכולה לעשות PR[5,1] = PR[5,1] + R[20] בצעד אחד — חייב לקרוא ל-R[], להוסיף, ואז לכתוב חזרה. (3) תמיד השתמש בתוכנית Karel לקריאות שקע — לעולם אל תנסה TCP ב-TP ישירות.
כיול: כיול יד-עין
לפני שהרובוט יכול להשתמש בעמדות ראייה, עליך לכייל את מערכת הקואורדינטות של המצלמה למערכת הקואורדינטות של הרובוט. למצלמה קבועה (עין-ליד), למד את הרובוט לגעת ב-9+ נקודות על רשת כיול תוך רישום קואורדינטות פיקסל המצלמה לכל אחת. מטריצת הכיול ממירה XY פיקסל ל-XY רובוט.
Xpert Robotics שילבה מערכות ראייה של HikRobot עם רובוטי FANUC ו-Shibaura לבדיקת איכות ואיסוף מתיבה. צור קשר להערכת היתכנות ראייה ממוחשבת.


