Cho robot chạy chậm thì chỉ cần biết hình học: khớp quay bao nhiêu độ thì tay tới đâu. Tăng tốc độ lên gấp năm thì mọi thứ đổi — và nguyên nhân là các lực mà ở tốc độ thấp có thể bỏ qua.
Những lực xuất hiện khi chuyển động
Quán tính. Muốn tăng tốc một khối lượng thì cần mô-men. Khối lượng càng xa trục quay thì mô-men cần càng lớn — và với cánh tay robot duỗi ra, khối lượng ở rất xa.
Quán tính thay đổi theo tư thế. Đây là điểm làm robot khó hơn nhiều hệ thống khác. Cánh tay duỗi thẳng có quán tính lớn hơn nhiều so với khi co lại. Cùng một lệnh cho ra kết quả khác nhau tuỳ tư thế.
Lực ly tâm và lực Coriolis. Xuất hiện khi nhiều khớp quay cùng lúc. Khớp này quay sinh ra lực tác động lên khớp kia. Các khớp không độc lập với nhau.
Trọng lực. Luôn có, và mô-men do trọng lực gây ra thay đổi theo tư thế. Cánh tay duỗi ngang chịu mô-men trọng lực lớn nhất.
Ma sát. Trong hộp số và ổ trục. Phi tuyến và khó mô hình hoá chính xác, đặc biệt ở tốc độ rất thấp.
Ở tốc độ thấp, chỉ trọng lực và ma sát đáng kể. Ở tốc độ cao, quán tính và các lực do chuyển động chi phối — và bộ điều khiển chỉnh cho tốc độ thấp sẽ hoạt động kém.
Bù trọng lực — cải thiện rẻ nhất
Bước đầu tiên nên làm và cho hiệu quả rõ nhất.
Ý tưởng. Tính trước mô-men cần để giữ cánh tay đứng yên ở tư thế hiện tại, rồi cộng thẳng vào lệnh động cơ. Bộ điều khiển phản hồi chỉ còn lo phần sai lệch chuyển động.
Vì sao hiệu quả. Không có bù trọng lực, bộ điều khiển phải liên tục sinh ra sai lệch mới có lực chống trọng lực. Kết quả là luôn lệch một chút và luôn phải làm việc.
Cần gì để tính. Khối lượng và vị trí trọng tâm của từng đoạn. Lấy từ bản vẽ hoặc đo bằng thực nghiệm.
Đừng quên tải. Robot cầm vật thì trọng tâm đổi. Bù trọng lực phải tính cả vật đang cầm, và nhiều hệ thống bỏ sót điều này rồi thắc mắc vì sao độ chính xác giảm khi mang tải.
Hiệu quả thấy được. Robot giữ tư thế ổn định hơn, ít lệch hơn, và có thể dùng hệ số phản hồi thấp hơn — nghĩa là mềm hơn và an toàn hơn khi có người xung quanh.
Đây cũng là nền của chế độ dắt tay. Bù trọng lực hoàn hảo thì cánh tay như không trọng lượng, người đẩy nhẹ là nó đi theo. Rất hữu ích cho việc dạy robot bằng trình diễn.
Điều khiển tính mô-men
Bước tiếp theo khi cần tốc độ và độ chính xác cao.
Ý tưởng. Dùng mô hình động lực học đầy đủ để tính chính xác mô-men cần cho chuyển động mong muốn, rồi phản hồi chỉ sửa phần sai lệch do mô hình không hoàn hảo.
Vì sao tốt hơn. Bộ điều khiển phản hồi thuần tuý luôn phản ứng sau khi sai lệch đã xảy ra. Tính trước thì lực đã có mặt đúng lúc cần.
Điều kiện. Cần mô hình động lực học đủ chính xác, cần biết quỹ đạo mong muốn kèm vận tốc và gia tốc, và cần điều khiển được mô-men động cơ trực tiếp.
Điều kiện cuối là rào cản thực tế. Nhiều robot chỉ nhận lệnh vị trí, bộ điều khiển bên trong đóng kín. Không truy cập được tầng mô-men thì không áp dụng được phương pháp này.
Nhạy với sai số mô hình. Mô hình sai thì lực tính trước sai, và ở tốc độ cao thì sai số lớn. Cần hiệu chỉnh tham số động lực học bằng thực nghiệm.
Khi nào đáng làm. Khi tốc độ cao, khi tải thay đổi nhiều, hoặc khi cần độ chính xác quỹ đạo cao. Robot dịch vụ chạy chậm thì bù trọng lực là đủ.
Xác định tham số động lực học
Bước thực nghiệm cần thiết vì bản vẽ không đủ.
Vì sao bản vẽ không đủ. Khối lượng thật khác bản vẽ do dung sai và do dây điện, ốc vít, vỏ che không có trong mô hình. Ma sát thì hoàn toàn không có trên bản vẽ.
Cách làm. Cho robot chạy một tập quỹ đạo được thiết kế để kích thích đủ các thành phần động lực học, ghi lại lệnh mô-men và chuyển động thật, rồi giải bài toán ước lượng tham số.
Thiết kế quỹ đạo kích thích là phần khó. Quỹ đạo phải làm mọi tham số biểu hiện rõ. Chạy đơn giản một khớp thì không suy ra được các tham số liên quan tới tương tác giữa các khớp.
Ma sát cần xử lý riêng. Thường mô hình hoá bằng thành phần tỷ lệ tốc độ cộng thành phần không đổi. Ở tốc độ rất thấp có hiện tượng dính trượt khó mô hình hoá.
Tham số thay đổi theo thời gian. Ma sát tăng khi hộp số mòn, giảm khi máy nóng. Nên đo lại định kỳ với ứng dụng đòi hỏi cao.
Giá trị thực tế. Với robot chạy nhanh, hiệu chỉnh động lực học tốt có thể cải thiện độ chính xác quỹ đạo vài lần — nhiều hơn hầu hết thay đổi khác ở tầng phần mềm.
Đánh đổi tốc độ, độ chính xác và an toàn
Ba thứ không thể tối đa cùng lúc, và biết mình đang đổi gì là quan trọng.
Tăng tốc độ. Năng suất cao hơn, nhưng sai lệch quỹ đạo lớn hơn, rung nhiều hơn, và va chạm nếu xảy ra thì nghiêm trọng hơn.
Tăng độ cứng của bộ điều khiển. Bám quỹ đạo tốt hơn, nhưng phản ứng mạnh hơn khi gặp vật cản — nguy hiểm cho người và cho vật.
Giảm độ cứng để an toàn. Robot mềm hơn, an toàn hơn khi tiếp xúc, nhưng độ chính xác vị trí giảm.
Cách thực dụng — đổi chế độ theo giai đoạn. Di chuyển nhanh và cứng ở vùng trống, chuyển sang chậm và mềm khi tới gần vật hoặc gần người. Đây là cách hầu hết hệ thống thực tế giải quyết.
Giới hạn năng lượng thay vì giới hạn tốc độ. Cách nhìn hiện đại về an toàn tập trung vào năng lượng va chạm — kết hợp khối lượng và tốc độ. Robot nhẹ đi nhanh có thể an toàn hơn robot nặng đi chậm.
Và điều nên nhớ khi thiết kế. Giảm khối lượng phần chuyển động cải thiện đồng thời cả ba: nhanh hơn, chính xác hơn và an toàn hơn. Đây là hướng tối ưu hiếm hoi không phải đánh đổi, và nó là lý do vật liệu nhẹ quan trọng với robot hơn với hầu hết máy móc khác.
Câu hỏi thường gặp
Vì sao quán tính của cánh tay robot phức tạp hơn hệ thống thông thường?
Vì nó thay đổi theo tư thế — cánh tay duỗi thẳng có quán tính lớn hơn nhiều khi co lại, nên cùng một lệnh cho ra kết quả khác nhau tuỳ tư thế.
Bù trọng lực mang lại gì?
Robot giữ tư thế ổn định hơn, ít lệch hơn và cho phép dùng hệ số phản hồi thấp hơn nên mềm và an toàn hơn. Nó cũng là nền của chế độ dắt tay để dạy robot.
Rào cản thực tế của điều khiển tính mô-men là gì?
Nhiều robot chỉ nhận lệnh vị trí với bộ điều khiển bên trong đóng kín. Không truy cập được tầng mô-men thì không áp dụng được phương pháp này.
Hướng tối ưu nào không phải đánh đổi?
Giảm khối lượng phần chuyển động — nó cải thiện đồng thời tốc độ, độ chính xác và an toàn, nên vật liệu nhẹ quan trọng với robot hơn hầu hết máy móc khác.
Đọc thêm trong SLAM & định vị và Lập kế hoạch chuyển động.