KyThuatRobot.comKỹ Thuật Robot
Hiệu chỉnh & căn chỉnh

Hiệu chỉnh tay–mắt: Quy trình thực hành từng bước khi camera gắn trên cần tay

Cách thực hiện hiệu chỉnh tay–mắt (eye-in-hand) để camera gắn trên cần tay robot có thể điều khiển vị trí chính xác trong không gian làm việc.

Cần tay robot với camera gắn phía trước, hướng vào bảng chuẩn hiệu chỉnh

Khi lắp camera trực tiếp trên cần tay robot (eye-in-hand), việc hiệu chỉnh tay–mắt trở thành khâu then chốt. Không phải để máy nhìn được, mà để robot biết chính xác vị trí vật trong không gian dựa trên hình ảnh camera ghi lại. Bài này trình bày quy trình thực hành, từ khâu chuẩn bị đến lấy kết quả đưa vào mã điều khiển.

Tại sao phải hiệu chỉnh tay–mắt khi camera ở trên cần tay

Camera và khớp là hai hệ quy chiếu khác nhau. Camera nhìn thế giới qua ảnh 2D với đơn vị pixel, robot điều khiển vị trí qua toạ độ 3D mm hoặc cm. Phải có ma trận biến đổi để nối hai hệ này lại.

Sai số tích lũy từ lắp ráp cơ khí. Dù lắp camera cẩn thận, vẫn có độ lệch vài mm, vài độ so với vị trí lý thuyết. Hiệu chỉnh sẽ bắt buộc phải đo thực tế.

Eye-in-hand khác với eye-to-hand. Khi camera cố định trên giá riêng (eye-to-hand), toạ độ camera đã biết. Nhưng camera ở trên cần tay chuyển động cùng khớp, nên phải tính thêm ma trận quan hệ từ khớp đến camera.

Hiệu chỉnh được lặp lại nếu cần. Nếu tháo lắp lại camera hoặc robot va chạm, có thể chạy lại quy trình mà không cần chờ kỹ thuật viên bên ngoài.

Ảnh hưởng trực tiếp đến độ chính xác tác vụ. Lắp linh kiện, hàn, lấy vật nhỏ — mọi tác vụ đều phụ thuộc vào độ chính xác của phép hiệu chỉnh này.

Phần mềm robot thường có công cụ tích hợp. Hầu hết hãng sản xuất robot cung cấp chương trình hiệu chỉnh tay–mắt (calibration wizard), nhưng người dùng phải hiểu quy trình để xử lý khi có lỗi.

Tốc độ và chi phí thấp hơn. Thay vì gọi kỹ thuật viên, bạn có thể tự thực hiện trong vài chục phút với những công cụ cơ bản.

Là kiến thức nền tảng cho robot vision. Hiểu rõ hiệu chỉnh tay–mắt giúp bạn tối ưu hoá các ứng dụng nhận dạng, tracking vật thể trên robot.

Chuẩn bị tâm lý cho các khó khăn phía trước. Nếu hiệu chỉnh không thành công, bạn sẽ biết được là vấn đề ở camera, khớp hay phần mềm.

Chuẩn bị thiết bị và không gian làm việc

Bảng chuẩn hiệu chỉnh (calibration board). Đây là bảng có hình vẽ đặc biệt (thường là ô vuông đen trắng, hoặc tròn, hoặc các dấu chấm), để camera có thể nhận diện các điểm góc với độ chính xác cao. Có thể dùng bảng chuẩn chuyên dụng (giá từ vài triệu đồng) hoặc in ảnh mẫu rồi dán lên bảng nhựa cứng.

Đèn chiếu đủ sáng và đều. Camera cần thấy rõ các chi tiết trên bảng chuẩn, không bóng đổ, không chói. Đèn LED công nghiệp hoặc ánh sáng tự nhiên từ cửa sổ đều được, miễn là không thay đổi trong quá trình hiệu chỉnh.

Điểm tựa cố định cho bảng chuẩn. Bảng chuẩn phải nằm yên ổn định suốt quá trình chụp ảnh. Có thể đặt trên bàn, dán lên tường, hoặc gắn trên vật thể cố định khác. Nếu bảng rung, kết quả hiệu chỉnh sẽ sai.

Máy tính kết nối với robot. Phần mềm hiệu chỉnh thường chạy trên máy tính điều khiển robot. Cần cài đặt sẵn driver camera, thư viện OpenCV hoặc công cụ riêng của hãng sản xuất robot.

Phạm vi chuyển động robot phải an toàn. Đặt bảng chuẩn sao cho camera có thể nhìn thấy từ nhiều vị trí khác nhau mà không va chạm vào bảng hoặc vật xung quanh. Thường cần khoảng không gian rộng khoảng 1m × 1m.

Kết nối mạng ổn định (nếu dùng robot qua Ethernet). Một số robot hiện đại nhận lệnh qua mạng. Đảm bảo kết nối không bị ngắt giữa chừng để quá trình hiệu chỉnh không bị gián đoạn.

Kiểm tra camera hoạt động bình thường. Chạy chương trình test camera trước, xem ảnh có sáng, không bị mờ hoặc méo. Nếu camera bị hư, hiệu chỉnh sẽ thất bại.

Ghi chép lại các thông số sẵn có. Focal length của camera, kích thước sensor, độ phân giải — những dữ liệu này sẽ được nhập vào phần mềm hiệu chỉnh. Nếu không có, chương trình sẽ ước tính, nhưng độ chính xác thấp hơn.

Dọn dẹp không gian quanh robot. Tháo các vật phụ trợ không cần thiết, đảm bảo cần tay robot có thể di chuyển tự do. Nếu có chướng ngại vật, quá trình hiệu chỉnh sẽ bị dừng lại.

Quy trình chụp ảnh từ nhiều vị trí

Xác định số lượng điểm chụp (pose) tối thiểu. Để tính ma trận biến đổi 3D chính xác, cần tối thiểu 5–10 vị trí khác nhau của cần tay. Càng nhiều điểm, kết quả càng ổn định. Thường lấy 15–20 điểm để có dự phòng.

Camera phải nhìn thấy bảng chuẩn từ góc độ khác nhau. Không chỉ nhìn trực diện, mà phải chụp từ các góc nghiêng: trên cao, hơi sang trái, sang phải, hơi thấp. Điều này giúp phần mềm tính toán ma trận 3D chính xác hơn.

Mỗi vị trí phải đứng yên đủ lâu để chụp ảnh. Robot di chuyển đến vị trí, dừng lại (có thể chỉ 1–2 giây), camera chụp ảnh. Nếu robot vẫn đang chuyển động, ảnh sẽ bị mờ.

Phần mềm thường có chế độ tự động hoặc bán tự động. Chế độ tự động: bạn chỉ cần bấm nút bắt đầu, robot tự di chuyển đến các vị trí và chụp liên tục. Chế độ bán tự động: bạn dùng bộ điều khiển (pendant) để đưa robot đến vị trí muốn, sau đó bấm nút chụp.

Kiểm tra từng ảnh ngay khi chụp. Sau khi chụp, xem ảnh trên màn hình có thấy rõ các góc của bảng chuẩn không. Nếu ảnh mờ hoặc bảng chuẩn nằm ngoài khung, cần chụp lại ở vị trí khác.

Tránh ánh sáng thay đổi trong quá trình chụp. Nếu chụp vào lúc mặt trời sáng rồi chuyển sang bóng, hoặc tắt bật đèn, ảnh sẽ có độ sáng khác nhau, gây ảnh hưởng đến nhận diện góc bảng chuẩn.

Ghi lại toạ độ joint của robot ở mỗi vị trí. Ngoài ảnh, phần mềm cũng ghi lại giá trị góc của từng khớp (theta1, theta2, ...). Dữ liệu này được dùng để tính ma trận biến đổi từ khớp đến camera.

Không cần đo thủ công toạ độ không gian 3D của bảng chuẩn. Khác với hiệu chỉnh eye-to-hand, ở đây ta không cần biết vị trí tuyệt đối của bảng chuẩn trong không gian. Robot sẽ tự tính dựa trên ảnh và góc khớp.

Kiểm tra số lượng ảnh có đủ trước khi bắt đầu tính toán. Phần mềm thường yêu cầu tối thiểu số ảnh nhất định (ví dụ 10 ảnh). Nếu chỉ có 5 ảnh, phần mềm sẽ báo lỗi và yêu cầu chụp thêm.

Tính toán ma trận biến đổi và lưu kết quả

Phần mềm tự động nhận diện các góc trên bảng chuẩn. Từ mỗi ảnh, chương trình phát hiện vị trí pixel của các điểm góc (corners) trên bảng chuẩn. Nếu nhận diện sai, kết quả hiệu chỉnh sẽ sai, nên phần mềm thường cho phép bạn xác nhận hoặc sửa lại những góc bị nhận diện sai.

Lựa chọn mô hình camera (camera model). Có hai mô hình phổ biến: mô hình pinhole (đơn giản) và mô hình có hiệu chỉnh biến dạng (distortion). Nếu camera có ống kính rộng (wide angle), cần dùng mô hình có hiệu chỉnh biến dạng để kết quả chính xác.

Chương trình tính ma trận nội tại camera (intrinsic matrix). Đây là ma trận mô tả các tính chất của camera (focal length, center point, distortion coefficients). Nếu bạn đã biết những giá trị này, có thể nhập trước để phần mềm chỉ tính ma trận ngoại tại.

Tính ma trận ngoại tại camera (extrinsic matrix). Đây là ma trận biến đổi từ hệ toạ độ khớp robot đến hệ toạ độ camera. Đó là kết quả chính mà ta cần lưu lại để dùng trong chương trình điều khiển.

Phần mềm tính sai số trung bình (reprojection error). Sau khi tính xong ma trận, phần mềm kiểm tra lại: nếu ta áp dụng ma trận này để chuyển đổi ảnh pixel sang toạ độ robot, rồi dùng ma trận ngược để chuyển lại sang ảnh pixel, khoảng cách pixel ban đầu và cuối cùng là bao nhiêu. Sai số càng nhỏ (thường dưới 1–2 pixel) càng tốt.

Nếu sai số lớn, cần chụp lại hoặc kiểm tra dữ liệu đầu vào. Sai số lớn có thể do: ảnh bị mờ, bảng chuẩn bị rung, hoặc robot không di chuyển chính xác đến vị trí lệnh. Thường phải chụp lại vài bộ ảnh.

Lưu ma trận dưới dạng file (xml, yaml, hoặc json). Phần mềm robot cung cấp tùy chọn xuất kết quả. Thường lưu dưới dạng ma trận 4×4 (rotation + translation) hoặc dạng các tham số riêng biệt.

Sao lưu file kết quả ở nơi an toàn. Nếu tắt máy hoặc reset robot mà không sao lưu, phải hiệu chỉnh lại từ đầu. Tốt nhất là sao lưu ở ổ cứng và trên USB hoặc cloud.

Ghi chú lại ngày giờ và điều kiện hiệu chỉnh. Ví dụ: "Hiệu chỉnh vào 2024-01-15, camera Basler ace2, bảng chuẩn A4 in màn hình, sai số 0.8 pixel". Nếu sau này có sự cố, ghi chú sẽ giúp bạn nhớ lại chi tiết.

Kiểm chứng và tích hợp vào mã điều khiển robot

Test hiệu chỉnh bằng cách di chuyển robot đến một vị trí và so sánh vị trí thực tế. Chọn một điểm trên bảng chuẩn (hoặc một vật nhỏ), camera sẽ tính toạ độ dựa trên ảnh và ma trận hiệu chỉnh. Sau đó, hướng robot đến vị trí đó và kiểm tra xem cần tay có chạm vào điểm đó không. Nếu chạm chính xác, hiệu chỉnh thành công.

Lặp lại test ở nhiều điểm khác nhau để chắc chắn. Đừng chỉ test một điểm. Chọn 5–10 điểm ở các vị trí khác nhau (góc, giữa, cạnh của bảng chuẩn) để đảm bảo ma trận hoạt động tốt toàn bộ phạm vi nhìn thấy của camera.

Đánh giá độ chính xác đạt được (thường ±5–10 mm). Nếu robot cần chính xác cao (ví dụ lắp linh kiện nhỏ), cần sai số dưới 5 mm. Nếu tác vụ yêu cầu thấp hơn (ví dụ nhặt vật lớn), sai số 10–15 mm có thể chấp nhận được. Biết được yêu cầu của tác vụ để quyết định có cần hiệu chỉnh lại hay không.

Nhập ma trận vào file cấu hình robot. Phần mềm điều khiển robot thường có file cấu hình (config) nơi lưu các tham số hệ thống. Nhập ma trận hiệu chỉnh vào đây, robot sẽ sử dụng nó mỗi khi chạy chương trình.

Viết hàm chuyển đổi từ pixel sang toạ độ robot trong mã chính. Mã điều khiển cần có hàm (hoặc thư viện) để: (1) lấy ảnh từ camera, (2) nhận diện vật thể trong ảnh, (3) tính toạ độ pixel của vật, (4) dùng ma trận hiệu chỉnh để chuyển sang toạ độ robot, (5) gửi lệnh di chuyển đến robot. Hầu hết thư viện robot vision đã có sẵn hàm này.

Kiểm tra tính nhất quán giữa nhiều khung hình camera liên tiếp. Nếu camera chụp liên tục (ví dụ 30 fps), toạ độ tính toán từ các khung hình liên tiếp phải gần như nhau (vật đứng yên). Nếu toạ độ nhảy lên nhảy xuống, có thể do nhiễu camera hoặc ma trận hiệu chỉnh chưa đủ ổn định.

Chuẩn bị sẵn phương án fallback nếu camera gặp lỗi. Nếu camera bị lỗi, robot không thể dùng dữ liệu hình ảnh để điều khiển. Cần có chế độ dự phòng, ví dụ: di chuyển đến vị trị mặc định, hoặc chợp từng bước với tốc độ chậm để tránh va chạm.

Ghi log các bước hiệu chỉnh và test để theo dõi lịch sử. Mỗi lần hiệu chỉnh, ghi lại ngày giờ, ma trận kết quả, sai số, điều kiện môi trường. Nếu sau đó robot hoạt động kém hiệu quả, bạn có thể quay lại log để tìm ra nguyên nhân.

Thiết lập chu kỳ re-calibration định kỳ. Theo thời gian, camera hoặc khớp robot có thể bị dịch chuyển do rung động, va chạm. Nên thiết lập lịch hiệu chỉnh lại (ví dụ hàng tuần hoặc hàng tháng) để duy trì độ chính xác.

Câu hỏi thường gặp

Bảng chuẩn hiệu chỉnh cần có những đặc điểm gì để camera nhận diện tốt?

Bảng chuẩn nên có hình vẽ có độ tương phản cao (đen trắng hoặc các màu tương phản), với các góc hoặc các điểm đặc biệt mà camera dễ nhận diện. Kích thước bảng nên vừa với phạm vi nhìn thấy của camera ở khoảng cách làm việc. Bảng cần phẳng, không bị cong hoặc nếp nhăn, vì nếu không camera sẽ nhận diện sai vị trí các góc.

Nếu sai số (reprojection error) sau hiệu chỉnh vẫn lớn (trên 3 pixel), phải làm gì?

Trước tiên, kiểm tra lại ảnh: xem có bị mờ, bảng chuẩn có rơi ra khung hình, hay camera bị bẩn. Nếu ảnh tốt, thử chụp lại bộ ảnh mới từ các vị trí khác nhau. Nếu vẫn không cải thiện, có thể do: (1) robot không di chuyển chính xác đến vị trí lệnh, hoặc (2) camera bị lỏng trên cần tay. Trong trường hợp sau, cần tháo lắp lại camera và chắc chắn nó cố định vững chắc.

Có thể dùng hình ảnh từ một camera khác để hiệu chỉnh camera hiện tại không?

Không. Mỗi camera có các tính chất quang học khác nhau (focal length, distortion, vị trí sensor), nên ma trận hiệu chỉnh chỉ đúng cho camera đó. Nếu thay camera, phải hiệu chỉnh lại từ đầu. Tuy nhiên, nếu hai camera là cùng một mẫu và được lắp ở vị trí giống hệt, có thể thử dùng ma trận của camera thứ nhất cho camera thứ hai, nhưng độ chính xác sẽ giảm.

Bao lâu phải hiệu chỉnh lại một lần?

Tùy vào tác vụ và điều kiện làm việc. Nếu robot hoạt động trong môi trường ổn định, không bị va chạm, có thể chỉ cần hiệu chỉnh lại mỗi vài tháng. Nhưng nếu robot thường xuyên làm việc nặng, có rung động, hoặc được tháo lắp lại camera nhiều lần, nên hiệu chỉnh lại hàng tuần. Dấu hiệu cần hiệu chỉnh lại là robot bắt đầu tấn công sai vị trí mục tiêu liên tục.

Đọc thêm trong Gỡ lỗi & chẩn đoánThiết kế cơ khí.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138