KyThuatRobot.comKỹ Thuật Robot
ROS 2 thực hành

Hệ toạ độ và cây biến đổi trong robot

Khái niệm gây nhầm lẫn nhất với người mới, và cũng là khái niệm dùng nhiều nhất hàng ngày.

Sơ đồ các trục toạ độ trong không gian

Camera nói vật ở cách nó ba mươi centimet. Robot cần biết vật ở đâu so với gốc của nó. Chuyển đổi giữa hai cách nói đó là việc robot làm liên tục, và cách tổ chức việc đó gọi là cây biến đổi.

Khung tham chiếu là gì

Định nghĩa. Một điểm gốc và ba trục. Mọi toạ độ chỉ có nghĩa khi nói rõ nó thuộc khung nào.

Sai lầm cơ bản. Nói vật ở toạ độ này mà không nói theo khung nào. Con số đó vô nghĩa.

Các khung điển hình trên robot. Khung bản đồ cố định trong toà nhà. Khung odometry trôi theo thời gian nhưng liên tục. Khung thân robot. Khung của từng cảm biến. Khung của từng khớp. Khung của công cụ ở đầu tay.

Vì sao có cả khung bản đồ lẫn khung odometry. Khung odometry mượt và liên tục nhưng trôi dần. Khung bản đồ đúng nhưng nhảy khi định vị hiệu chỉnh lại. Việc điều khiển cần mượt nên dùng odometry; việc lập kế hoạch cần đúng nên dùng bản đồ.

Đây là thiết kế quan trọng. Nó cho phép robot vừa đi mượt vừa định vị đúng, và hiểu nó giải thích được nhiều hành vi trông kỳ lạ.

Quy ước trục. Cần thống nhất trục nào là trước, trái, lên. Nhầm quy ước là nguồn lỗi hay gặp khi tích hợp thiết bị từ nhiều nguồn.

Phép biến đổi

Nội dung. Một phép biến đổi gồm dịch chuyển và xoay, mô tả quan hệ giữa hai khung.

Đọc theo hướng nào. Nguồn nhầm lẫn lớn nhất. Phép biến đổi từ khung A sang khung B và từ B sang A là hai thứ ngược nhau. Luôn kiểm hướng trước khi dùng.

Ghép chuỗi. Biết quan hệ A với B và B với C thì suy ra được A với C. Đây là điều làm cây biến đổi hữu ích.

Biểu diễn phép xoay. Có nhiều cách — góc theo ba trục, ma trận, và quaternion. Quaternion khó hình dung nhưng tránh được vấn đề mất bậc tự do ở một số góc.

Vấn đề với góc theo ba trục. Ở một số tư thế, hai trục trùng nhau và mất một bậc tự do biểu diễn. Gây hành vi kỳ lạ khi nội suy góc.

Lời khuyên. Dùng thư viện, đừng tự viết phép nhân ma trận xoay. Và khi cần hiển thị cho người thì đổi sang góc dễ đọc, nhưng tính toán bên trong thì để nguyên dạng gốc.

Cây biến đổi

Cấu trúc. Mỗi khung có đúng một khung cha. Tạo thành cây, không có vòng.

Vì sao là cây. Đảm bảo có đúng một đường đi giữa hai khung bất kỳ, nên phép biến đổi giữa chúng là duy nhất.

Ai công bố cái gì. Bộ định vị công bố quan hệ giữa bản đồ và odometry. Bộ đọc odometry công bố quan hệ giữa odometry và thân robot. Bộ đọc trạng thái khớp công bố quan hệ giữa các khâu.

Biến đổi tĩnh. Quan hệ không đổi — vị trí camera trên thân robot. Công bố một lần.

Biến đổi động. Thay đổi liên tục — vị trí robot trong bản đồ. Công bố liên tục kèm dấu thời gian.

Tra cứu theo thời điểm. Hệ thống lưu lịch sử nên tra được quan hệ tại một thời điểm trong quá khứ. Rất quan trọng — dữ liệu camera được xử lý sau khi chụp vài trăm mili giây, và phải dùng quan hệ tại thời điểm chụp chứ không phải hiện tại.

Đây là chi tiết hay bị bỏ qua và nó gây sai số có hệ thống khi robot đang di chuyển.

Lỗi thường gặp và cách chẩn đoán

Cây bị đứt. Không tra được quan hệ giữa hai khung vì thiếu một mắt xích. Công cụ vẽ cây cho thấy ngay chỗ đứt.

Hai nguồn cùng công bố một quan hệ. Cây có nhiều cha cho một khung. Gây nhảy qua lại. Xảy ra khi chạy hai bộ định vị cùng lúc.

Dữ liệu quá cũ. Tra cứu tại thời điểm nằm ngoài lịch sử được lưu. Cần tăng thời gian lưu hoặc sửa vấn đề chậm ở nguồn.

Dữ liệu tương lai. Đồng hồ giữa các máy không đồng bộ nên dấu thời gian ở tương lai. Đồng bộ thời gian là điều kiện bắt buộc trong hệ nhiều máy.

Quan hệ tĩnh sai. Vị trí camera khai báo sai vài centimet. Robot với lệch một cách nhất quán. Đây là lỗi khó phát hiện vì hệ thống chạy bình thường, chỉ sai.

Công cụ chẩn đoán. Vẽ cây biến đổi ra tệp, xem có đủ nhánh và tần số cập nhật có hợp lý không. Hiển thị các khung trong công cụ ba chiều và xem chúng có ở đúng chỗ trực quan không.

Cách kiểm tốt nhất. Đặt vật ở vị trí đo được bằng thước, xem robot báo toạ độ nào. Đối chiếu với thực tế là cách duy nhất bắt được sai số hệ thống.

Thực hành tốt

Đặt tên khung nhất quán. Theo quy ước chung, không tự đặt tên lạ. Người khác đọc mã sẽ hiểu ngay.

Ghi rõ khung trong mọi dữ liệu. Mọi thông điệp có toạ độ nên kèm tên khung. Bỏ trống là mời gọi lỗi.

Đo quan hệ tĩnh cho cẩn thận. Vị trí cảm biến trên robot nên đo bằng thước hoặc lấy từ mô hình thiết kế, không ước lượng bằng mắt.

Kiểm lại sau khi lắp ráp. Vị trí thực tế có thể khác bản vẽ. Với ứng dụng chính xác thì cần hiệu chỉnh thay vì tin bản vẽ.

Đừng biến đổi thủ công. Dùng thư viện tra cứu. Tự nhân ma trận trong mã ứng dụng là cách chắc chắn để nhầm hướng.

Kiểm tần số công bố. Quan hệ động công bố quá chậm làm nội suy sai. Với robot di chuyển nhanh thì tần số phải đủ cao.

Và luôn nghĩ về thời điểm. Dữ liệu này chụp lúc nào, robot ở đâu lúc đó. Câu hỏi này giải quyết được phần lớn sai số bí ẩn trong hệ thống có chuyển động.

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

Vì sao cần cả khung bản đồ lẫn khung odometry?

Khung odometry mượt và liên tục nhưng trôi dần; khung bản đồ đúng nhưng nhảy khi định vị hiệu chỉnh lại. Điều khiển cần mượt, lập kế hoạch cần đúng.

Nguồn nhầm lẫn lớn nhất với phép biến đổi là gì?

Hướng của phép biến đổi. Từ khung A sang B và từ B sang A là hai thứ ngược nhau, và nhầm hướng cho kết quả sai mà không có báo lỗi.

Vì sao phải tra cứu quan hệ theo thời điểm trong quá khứ?

Vì dữ liệu camera được xử lý sau khi chụp vài trăm mili giây, và phải dùng quan hệ tại thời điểm chụp chứ không phải hiện tại — nếu không sẽ sai có hệ thống khi robot di chuyển.

Cách kiểm tra cây biến đổi có đúng không?

Đặt vật ở vị trí đo được bằng thước và xem robot báo toạ độ nào. Đối chiếu với thực tế là cách duy nhất bắt được sai số hệ thống.

Đọc thêm trong Điện & đấu nốiDự án tự làm.

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