AI-POWERED DOCS
What do you want to know?
Nhiều Góc Nhìn Trong Một Recipe Duy Nhất
Hướng dẫn này chỉ cho bạn cách thiết lập một recipe duy nhất có thể kiểm tra các bộ phận, góc độ hoặc góc nhìn khác nhau mà không cần chuyển sang các recipe khác. Có nhiều lý do để làm điều này, nhưng hai trường hợp sử dụng chính là:
- khi không đủ thời gian giữa các lần chụp để thay đổi recipe,
- khi thực hiện cùng một inspection trên nhiều bộ phận hoặc nhiều góc của một bộ phận (ví dụ: kiểm tra sự hiện diện/vắng mặt của các đinh tán ở năm vị trí khác nhau trên thân xe). Trong trường hợp này, phương pháp này tránh việc phải train cùng một model (hiện diện/vắng mặt của đinh tán) nhiều lần qua các recipe khác nhau.
Ví dụ dưới đây là phiên bản đơn giản với hai góc nhìn và một loại inspection, nhưng bạn có thể sử dụng cùng kỹ thuật này cho số lượng loại inspection và góc nhìn không giới hạn. Trong inspection này, chúng ta sẽ kiểm tra sự hiện diện/vắng mặt của các mũi khoan trên hai mặt của hộp đựng mũi khoan. Một mặt có năm mũi khoan ở phía dưới, và mặt còn lại có tám mũi khoan ở cả phía trên và phía dưới. Chúng ta sẽ gọi mặt có 16 mũi khoan là mặt A, và mặt có 5 mũi khoan là mặt B.
![]() | ![]() |
|---|---|
| Mặt A (16 mũi khoan) | Mặt B (5 mũi khoan) |
Tạo và Train Một Recipe Mới
Thay vì một recipe cho mỗi mặt, do bố cục khác nhau, chúng ta sẽ kết hợp cả hai mặt thành một recipe để không cần train cùng một model hiện diện/vắng mặt hai lần.
-
Tạo một recipe mới. Trong trường hợp này, đây là recipe classification nhưng nguyên tắc tương tự có thể được sử dụng với segmentation.
-
Thiết lập Template Image và Alignment cho góc nhìn đầu tiên:
Aligner không khả dụng khi kiểm tra nhiều hơn một góc nhìn trên cùng một recipe. Template Image và Aligner chỉ được sử dụng để đặt hình ảnh nền cho Inspection Setup.

- Vẽ các ROI cho mặt A. Đặt tên cho chúng sao cho dễ nhận biết chúng thuộc về mặt nào. Trong trường hợp này, chúng ta đặt tên các ROI là A1-A16.

- Quay lại Template Image và Alignment để thay thế hình ảnh bằng mặt B, từ một lần chụp mới hoặc từ thư viện.

- Sử dụng biểu tượng khóa bên cạnh mỗi ROI để tránh di chuyển bất kỳ ROI nào của mặt A, sau đó vẽ và đặt tên cho các ROI của mặt B.

Đối với các recipe phức tạp hơn, lặp lại quy trình này cho số lượng góc nhìn khác nhau mà bạn muốn kiểm tra.
- Gán nhãn và train model classification bằng cách sử dụng hình ảnh từ cả mặt A và mặt B. Khi chụp và gán nhãn mặt A, không gán nhãn các ROI của mặt B và ngược lại.
![]() | ![]() |
|---|---|
| Gán nhãn mặt A (Pass) | Gán nhãn mặt A (Fail) |
![]() | ![]() |
| Gán nhãn mặt B (Pass) | Gán nhãn mặt B (Fail) |
Cấu Hình Logic Node-RED
-
Điều hướng đến IO Block (Configure IO từ Recipe Editor) để mở flow Node-RED của bạn.
-
Tạo một nguồn để thông báo cho OV20i biết mặt nào đang được kiểm tra.
Đây có thể là dữ liệu vị trí robot, thông tin từ PLC, hoặc bất kỳ thứ gì khác bạn muốn sử dụng. Trong ví dụ dưới đây, chúng ta sẽ mô phỏng điều này bằng hai Inject node, một node gửi chuỗi "A" và một node gửi chuỗi "B".
- Vì dữ liệu mặt đến có thể chỉ là tạm thời, nhưng chúng ta muốn kiểm tra xem mặt nào đang hoạt động, chúng ta sẽ lưu trữ dữ liệu trạng thái bằng Flow variable, biến này sẽ tồn tại cho đến khi thông tin mặt tiếp theo được nhận. Kết nối nguồn dữ liệu của bạn với function block chứa đoạn code sau:
flow.set('side',msg.payload);
return msg;

- Bạn có thể kiểm tra xem dữ liệu mặt có được lưu trữ đúng cách hay không bằng cách mở sidebar dữ liệu context, gửi một thông điệp, và sau đó nhấn refresh trên ngăn Flow variable. Ngăn dữ liệu flow sẽ chỉ cập nhật khi được làm mới thủ công bằng nút refresh nhỏ.

- Khi dữ liệu mặt đã được lưu trữ đúng cách trong Flow variable, thêm một switch node được kết nối với All Block Outputs. Đây sẽ là block định tuyến thông điệp với dữ liệu inspection tùy theo mặt nào đang hoạt động trong Flow variable. Cấu hình nó để xem Flow variable và định tuyến thông điệp đến port 1 nếu A đang hoạt động và port 2 nếu B đang hoạt động.

Đối với các recipe phức tạp hơn, lặp lại quy trình này cho số lượng góc nhìn khác nhau mà bạn muốn kiểm tra.
- Kết nối mỗi output port của switch với một Classification Block Logic block, và cấu hình từng block theo các quy tắc bạn muốn kiểm tra cho mặt đó. Switch node sẽ chỉ định tuyến thông điệp đến một trong các node tại một thời điểm. Hình ảnh dưới đây cho thấy cấu hình cho port mặt B của switch. Lưu ý rằng nó không tham chiếu đến bất kỳ ROI nào của A, vì vậy logic sẽ bỏ qua kết quả của mặt đó khi inspection được định tuyến qua node này.

- Cuối cùng, kết nối các logic block với Inspection Pass/Fail block. Điều này cho phép kết quả hiển thị trên HMI, cũng như được truyền đến bất kỳ PLC nào được kết nối hoặc các thành phần flow khác.

Kiểm Tra Recipe
Bây giờ khi flow Node-RED đã được cấu hình, đã đến lúc kiểm tra recipe từ đầu đến cuối.
- Đầu tiên, chúng ta sẽ gửi lệnh mặt A bằng inject node của Node-RED. Sau đó chúng ta sẽ sử dụng HMI để kiểm tra một bộ phận tốt. Lưu ý rằng, mặc dù một trong các vùng mặt B bị fail, nhưng toàn bộ inspection vẫn pass.

- Bây giờ khi chúng ta tháo một mũi khoan ở mặt A và kiểm tra lại, chúng ta nhận được kết quả fail như mong muốn.

- Chuyển sang mặt B, chúng ta gửi tín hiệu B bằng inject của Node-RED và refresh mục Flow variable trong ngăn dữ liệu context để đảm bảo rằng nó đã được lưu trữ.

- Bây giờ khi chúng ta lật sang mặt B của một bộ phận tốt, chúng ta thấy rằng inspection pass mặc dù tất cả các vùng mặt A đều fail.

Chúc mừng! Bây giờ bạn đã biết cách sử dụng một recipe và model duy nhất cho nhiều góc nhìn của một bộ phận. Điều này sẽ cho phép thực hiện các inspection phức tạp ở tốc độ cao và tích hợp chặt chẽ với robot. Nó cũng sẽ tiết kiệm cho bạn đáng kể thời gian vốn sẽ được dành để train nhiều model thực hiện cùng một inspection, chỉ khác ở các góc nhìn khác nhau





