Mọi robot đều dựa trên một ý tưởng đơn giản tới mức dễ bị xem nhẹ: liên tục đo mình đang ở đâu, so với chỗ muốn tới, rồi sửa. Hiểu kỹ vòng lặp này là hiểu phần lớn những gì xảy ra bên trong.
Vòng hở và vòng kín
Vòng hở. Ra lệnh rồi hy vọng. Bảo động cơ quay ba giây, giả định nó quay đúng lượng cần thiết. Không đo lại.
Khi nào vòng hở đủ. Khi hệ thống rất ổn định và không có nhiễu — động cơ bước trong máy in ba chiều là ví dụ. Rẻ và đơn giản.
Vì sao thường không đủ. Tải thay đổi, ma sát thay đổi, điện áp thay đổi. Cùng một lệnh cho ra kết quả khác nhau. Và sai lệch không được sửa nên tích luỹ.
Vòng kín. Đo vị trí thật, tính sai lệch so với mục tiêu, điều chỉnh theo sai lệch đó. Lặp lại rất nhanh — với robot thường là hàng trăm tới hàng nghìn lần mỗi giây.
Cái giá. Cần cảm biến, cần tính toán, và cần chỉnh cho đúng — vì vòng kín chỉnh sai còn tệ hơn vòng hở, nó có thể dao động hoặc mất ổn định hoàn toàn.
Điều then chốt. Vòng phản hồi không cần biết vì sao có sai lệch. Nó chỉ cần biết có sai lệch và sửa. Đây là lý do nó bền trước những nhiễu loạn không lường trước, và là lý do nó có mặt khắp nơi.
Ba thành phần của bộ điều khiển kinh điển
Bộ điều khiển phổ biến nhất trong kỹ thuật, và giải thích được không cần công thức.
Thành phần tỷ lệ. Sửa theo mức sai lệch hiện tại. Lệch nhiều thì đẩy mạnh, lệch ít thì đẩy nhẹ. Trực giác và là phần chính.
Vấn đề nếu chỉ có tỷ lệ. Khi gần tới đích, sai lệch nhỏ nên lực đẩy nhỏ, có thể không thắng nổi ma sát. Hệ thống dừng lại gần đúng mà không tới đúng — gọi là sai lệch tĩnh.
Thành phần tích phân. Cộng dồn sai lệch theo thời gian. Nếu cứ lệch mãi một chút, tổng dồn lớn dần và cuối cùng đủ mạnh để đẩy tới đích. Đây là thành phần xoá sai lệch tĩnh.
Vấn đề của tích phân. Nó tích luỹ, nên phản ứng chậm và dễ vọt quá. Khi hệ thống bị chặn cơ khí, tổng dồn lên rất lớn rồi bung ra đột ngột — hiện tượng phải xử lý riêng.
Thành phần vi phân. Nhìn tốc độ thay đổi của sai lệch. Nếu đang lao tới đích rất nhanh thì phanh bớt. Có tác dụng giảm vọt quá và giảm dao động.
Vấn đề của vi phân. Nó khuếch đại nhiễu. Tín hiệu cảm biến nhiễu thì thành phần này nhảy loạn. Thường phải lọc trước, và nhiều hệ thống thực tế chỉ dùng hai thành phần đầu vì lý do này.
Chỉnh hệ số trong thực tế
Phần công việc thật, và có quy trình chứ không phải mò.
Bắt đầu chỉ với thành phần tỷ lệ. Đặt hai thành phần kia bằng không. Tăng hệ số tỷ lệ dần cho tới khi hệ thống bắt đầu dao động, rồi giảm còn khoảng một nửa.
Thêm vi phân nếu vọt quá nhiều. Tăng dần cho tới khi vọt quá giảm còn chấp nhận được. Tăng quá thì hệ thống trở nên chậm và nhạy nhiễu.
Thêm tích phân cuối cùng, và ít thôi. Chỉ để xoá sai lệch tĩnh. Đây là thành phần dễ gây mất ổn định nhất.
Chỉnh ở điều kiện thật. Hệ số tốt cho tải nhẹ có thể tệ cho tải nặng. Chỉnh ở điều kiện xấu nhất mà hệ thống sẽ gặp.
Quan sát dạng đáp ứng. Cho một lệnh nhảy bậc rồi ghi lại. Dao động chậm dần là thiếu vi phân. Không tới được đích là thiếu tích phân. Rung tần số cao là hệ số tỷ lệ quá lớn hoặc nhiễu cảm biến.
Sai lầm thường gặp. Chỉnh trong mô phỏng rồi mang sang máy thật. Độ trễ và ma sát thật làm hệ số tốt trong mô phỏng thành tệ ngoài đời.
Điều khiển vị trí, tốc độ và lực
Ba chế độ khác nhau, dùng cho việc khác nhau.
Điều khiển vị trí. Đưa khớp tới góc chỉ định và giữ ở đó. Phổ biến nhất. Vấn đề là nó cứng — gặp vật cản thì đẩy mạnh hơn thay vì nhường.
Điều khiển tốc độ. Giữ khớp quay ở tốc độ chỉ định. Dùng cho robot di động và cho các chuyển động liên tục.
Điều khiển lực. Giữ lực tiếp xúc ở mức chỉ định thay vì giữ vị trí. Bắt buộc cho mọi việc có chạm — mài, lắp chi tiết khít, chạm vào người.
Vì sao điều khiển vị trí nguy hiểm khi tiếp xúc. Robot đang giữ vị trí gặp vật cản sẽ tăng lực để đạt vị trí đó. Nó sẽ đẩy cho tới khi vỡ vật hoặc hỏng khớp.
Điều khiển trở kháng. Kết hợp — robot hành xử như có lò xo và giảm chấn ảo. Bị đẩy thì nhường một chút rồi quay lại. Đây là nền tảng của robot làm việc an toàn cạnh người.
Yêu cầu phần cứng. Điều khiển lực cần đo được lực, bằng cảm biến chuyên dụng hoặc bằng dòng điện động cơ. Không có phép đo lực thì không có điều khiển lực, và đây là lý do nhiều robot rẻ không làm được việc cần tiếp xúc.
Vì sao lý thuyết vẫn quan trọng khi đã có học máy
Câu hỏi hợp lý và đáng trả lời rõ.
Điều khiển cổ điển chứng minh được. Có thể chứng minh hệ thống ổn định trong một miền xác định. Chính sách học được thì không.
Nó chạy nhanh và nhẹ. Vòng điều khiển ở tần số cao chạy trên vi điều khiển nhỏ. Mạng nơ-ron không chạy được ở đó.
Nó cần rất ít dữ liệu. Chỉnh vài hệ số thay vì thu hàng nghìn ví dụ.
Nó là tầng an toàn. Kiến trúc thực dụng phổ biến nhất hiện nay là học máy ở tầng trên ra quyết định, điều khiển cổ điển ở tầng dưới thực thi và bảo vệ giới hạn.
Nó giúp hiểu vì sao hệ thống hỏng. Robot rung ở một tần số cụ thể là hiện tượng có giải thích trong lý thuyết điều khiển. Không biết lý thuyết thì chỉ có thể thử mò.
Kết luận thực dụng. Học máy mở rộng phạm vi việc robot làm được. Nó không thay thế tầng điều khiển, và người làm robot cần cả hai — thiếu nền điều khiển thì không gỡ được những lỗi nằm ở tầng dưới.
Câu hỏi thường gặp
Vòng kín khác vòng hở ở chỗ nào?
Vòng hở ra lệnh rồi không đo lại; vòng kín liên tục đo vị trí thật, tính sai lệch và điều chỉnh. Vòng kín bền trước nhiễu loạn không lường trước nhưng cần cảm biến và phải chỉnh đúng.
Ba thành phần của bộ điều khiển kinh điển làm gì?
Tỷ lệ sửa theo sai lệch hiện tại, tích phân cộng dồn sai lệch để xoá sai lệch tĩnh, vi phân nhìn tốc độ thay đổi để phanh bớt và giảm vọt quá.
Vì sao điều khiển vị trí nguy hiểm khi có tiếp xúc?
Vì robot giữ vị trí gặp vật cản sẽ tăng lực để đạt vị trí đó, đẩy cho tới khi vỡ vật hoặc hỏng khớp. Việc có tiếp xúc cần điều khiển lực hoặc điều khiển trở kháng.
Vì sao lý thuyết điều khiển vẫn quan trọng khi đã có học máy?
Vì nó chứng minh được tính ổn định, chạy nhanh và nhẹ trên vi điều khiển, cần rất ít dữ liệu, và là tầng an toàn bảo vệ giới hạn dưới chính sách học được.
Đọc thêm trong Từ lab ra thực tế và Học tăng cường cho robot.