Reactive control: điều khiển phản ứng trực tiếp từ cảm biến
Một robot giao hàng trong kho thường có sẵn bản đồ và một đường đi đã được planner tính trước. Trên bản đồ, nó chỉ cần đi từ khu lấy hàng đến khu đóng gói, rẽ qua vài hành lang, tránh các vùng cấm và dừng ở đúng vị trí. Nếu môi trường đứng yên, bài toán có vẻ gọn: lập kế hoạch một lần, rồi điều khiển robot bám theo đường đó.
Nhưng kho thật không đứng yên. Một nhân viên có thể bước ra từ sau kệ hàng. Một xe đẩy có thể chắn ngang lối đi. Một robot khác có thể dừng tạm ở đoạn hẹp. Trong những tình huống này, chờ global planner tính lại toàn bộ đường đi đôi khi quá chậm hoặc quá nặng. Robot cần một lớp điều khiển phản ứng ngay với dữ liệu cảm biến hiện tại: giảm tốc, lệch sang bên, dừng lại, hoặc quay nhẹ để tránh va chạm.
Đó là vùng của reactive control. Thay vì bắt đầu từ một kế hoạch dài hạn đầy đủ, reactive control tạo hành động trực tiếp từ trạng thái cảm nhận hiện tại. Nó không cố trả lời toàn bộ câu hỏi “đường đi tối ưu từ đây đến goal là gì?”. Nó trả lời câu hỏi hẹp hơn nhưng khẩn cấp hơn: “ngay lúc này, với vật cản và sai lệch đang thấy, robot nên tác động như thế nào để vẫn an toàn và tiếp tục tiến về mục tiêu?”.
Bài toán phản ứng tức thời
Trong một hệ robot hoàn chỉnh, ta thường có nhiều tầng. Tầng global planner chọn đường đi trên bản đồ lớn. Tầng local planner hoặc controller biến đường đi đó thành lệnh vận tốc. Tầng safety dừng robot khi có rủi ro. Reactive control thường nằm gần cảm biến và actuator hơn planner dài hạn. Nó đọc trạng thái hiện tại, tính một phản ứng ngắn hạn, rồi gửi lệnh điều khiển hoặc điều chỉnh lệnh từ tầng trên.
Ví dụ robot đang bám theo một đường thẳng trong hành lang. Planner nói robot nên đi tiếp với vận tốc . Lidar phía trước bỗng thấy một vật cản cách 0.6 m. Nếu robot cứ bám reference velocity, nó có thể đến quá gần vật cản trước khi planner kịp cập nhật. Một reactive controller có thể lập tức giảm , tạo vận tốc góc để lệch sang vùng trống, hoặc đưa lệnh dừng nếu khoảng cách dưới ngưỡng an toàn.

Điểm quan trọng là reactive control không cần hiểu toàn bộ nguyên nhân của tình huống. Nó không cần biết vật cản là người, xe đẩy hay thùng hàng. Trong nhiều trường hợp, chỉ cần biết khoảng cách, hướng tương đối và tốc độ thay đổi đã đủ để tạo phản ứng ban đầu. Chính sự tối giản này làm nó nhanh.
Nhưng nhanh không đồng nghĩa với thông minh toàn cục. Một phản ứng tốt ở khoảnh khắc hiện tại có thể dẫn robot vào ngõ cụt. Một hành động tránh vật cản trước mắt có thể làm robot lệch khỏi hành lang chính. Reactive control vì thế không thay thế planning; nó bổ sung cho planning ở lớp thời gian ngắn, nơi phản hồi cảm biến mới nhất quan trọng hơn việc tối ưu toàn bộ đường đi.
State và observation
Reactive control phụ thuộc trực tiếp vào những gì hệ thống đo được ngay lúc này. Thông tin đầu vào có thể là khoảng cách lidar, ảnh depth, contact force, sai lệch so với trajectory, vận tốc hiện tại, hoặc vị trí tương đối của goal cục bộ. Trong nhiều tài liệu, ta phân biệt state và observation. State là trạng thái thật của hệ và môi trường; observation là phần robot cảm nhận được.
Trong kho, state thật bao gồm vị trí của mọi người, mọi xe đẩy, bề mặt sàn, vận tốc của robot khác và những vật bị che sau kệ. Robot không thấy hết state này. Nó chỉ nhận observation từ cảm biến. Reactive control thường hoạt động trên observation hoặc các đại lượng đã xử lý từ observation, chẳng hạn khoảng cách vật cản gần nhất theo từng hướng.
Một dạng rất đơn giản của observation cho tránh vật cản là:
, và là khoảng cách đến vật cản ở trước, trái và phải. là sai lệch ngang so với đường tham chiếu. là sai lệch góc. là vận tốc hiện tại. Từ các đại lượng này, controller có thể tạo lệnh vận tốc tuyến tính và vận tốc góc.
Điều đáng chú ý là observation trong reactive control thường được chọn để phục vụ phản ứng cụ thể. Nếu mục tiêu là tránh va chạm, khoảng cách và tốc độ tiếp cận quan trọng hơn bản đồ toàn cục. Nếu mục tiêu là bám tường, khoảng cách đến tường và góc tương đối với tường quan trọng hơn goal xa. Nếu mục tiêu là điều khiển lực khi chạm bề mặt, force/torque feedback quan trọng hơn vị trí tuyệt đối.
Việc chọn observation vì thế không trung lập. Nó định hình loại phản ứng mà controller có thể tạo ra. Nếu observation không chứa thông tin về hướng trống bên trái, controller khó quyết định nên né sang trái. Nếu observation không chứa vận tốc tương đối của vật cản, controller có thể phản ứng quá muộn với vật đang tiến lại gần. Reactive control nhanh vì nó dùng ít thông tin, nhưng chính sự ít thông tin đó cũng là giới hạn.
Feedback law
Cốt lõi của reactive control là một feedback law: một ánh xạ từ observation hoặc error hiện tại sang action. Ở dạng tổng quát:
là lệnh điều khiển tại thời điểm , chẳng hạn vận tốc bánh xe, vận tốc tuyến tính/góc, lực, torque hoặc gia tốc mong muốn. là luật điều khiển. Nó có thể là công thức thủ công, một bộ điều khiển cổ điển, một mạng neural, hoặc một tổ hợp nhiều luật nhỏ.
Nếu controller bám trajectory, observation thường được chuyển thành error. Với robot di động, một luật đơn giản có thể là:
là vận tốc góc. là sai lệch ngang so với đường tham chiếu, là sai lệch hướng, còn và là hệ số phản hồi. Nếu robot lệch sang phải, term tạo lệnh quay để kéo nó về. Nếu robot đang hướng lệch khỏi đường đi, term chỉnh lại heading.
Luật này là reactive vì nó chỉ nhìn error hiện tại. Nó không cần mô phỏng vài giây tương lai. Nó cũng không cần tối ưu một hàm chi phí dài hạn. Mỗi chu kỳ điều khiển, error mới được đo, action mới được tính, robot phản ứng lại. Nếu sàn trơn làm robot lệch nhiều hơn dự kiến, error tăng và lệnh hiệu chỉnh cũng tăng.
Với tránh vật cản, feedback law có thể thêm một thành phần giảm tốc:
trong đó là một hàm tăng theo khoảng cách. Khi vật cản xa, gần , robot giữ vận tốc tham chiếu. Khi vật cản gần, giảm về , robot chậm lại hoặc dừng. Ta có thể chọn dạng tuyến tính có ngưỡng, sigmoid, hoặc một hàm barrier để phản ứng mạnh khi tiến gần vùng nguy hiểm.
Các công thức trên đơn giản, nhưng chúng thể hiện đúng tinh thần reactive control: action không được lấy từ một lịch trình cố định, mà được tính lại liên tục từ error và cảm biến. Điều này tạo khả năng hồi phục. Nếu robot bị đẩy lệch, feedback kéo nó về. Nếu vật cản xuất hiện, feedback giảm tốc. Nếu vật cản biến mất, lệnh có thể tăng trở lại.

Tuy nhiên, một feedback law đơn lẻ thường chỉ giải quyết một nhu cầu. Bám đường muốn tiến nhanh theo reference. Tránh vật cản muốn đẩy robot ra xa vùng nguy hiểm. Dừng khẩn cấp muốn ưu tiên an toàn tuyệt đối. Khi nhiều nhu cầu cùng tồn tại, reactive control cần một cơ chế phối hợp.
Action composition
Trong hệ robot thật, action cuối cùng hiếm khi đến từ một luật duy nhất. Nó thường là tổng hợp của nhiều phản ứng. Một thành phần kéo robot về đường tham chiếu. Một thành phần đẩy robot khỏi vật cản. Một thành phần giới hạn vận tốc theo khoảng cách an toàn. Một thành phần đảm bảo lệnh không vượt khả năng actuator.
Một cách viết gọn là:
phục vụ bám đường hoặc tiến về goal cục bộ. sinh phản ứng tránh vật cản. giảm dao động hoặc làm mượt lệnh. Cách cộng này xuất hiện trong nhiều biến thể của potential field, impedance control và các controller heuristic.
Với potential field, ta hình dung goal tạo lực hút, còn vật cản tạo lực đẩy. Nếu là vị trí robot, goal tạo một lực:
Một vật cản ở vị trí có thể tạo lực đẩy khi robot ở gần:
khi , và bằng khi vật cản ở xa hơn . Ở đây là khoảng cách đến vật cản, là bán kính ảnh hưởng, còn là hướng tăng khoảng cách. Công thức có thể thay đổi tùy thiết kế, nhưng ý nghĩa chung là giống nhau: càng gần vật cản, lực đẩy càng mạnh.
Action composition làm hệ phản ứng linh hoạt hơn, nhưng nó cũng tạo rủi ro. Nếu lực hút và lực đẩy triệt tiêu nhau, robot có thể dừng ở một điểm không phải goal. Nếu hai thành phần phản ứng thay phiên chiếm ưu thế, robot có thể dao động. Nếu thành phần tránh vật cản quá mạnh, robot có thể bỏ hẳn đường tham chiếu. Nếu quá yếu, nó không đủ an toàn.

Vì vậy, reactive control không chỉ là viết nhiều phản ứng rồi cộng lại. Nó cần thứ tự ưu tiên và giới hạn. Dừng khẩn cấp thường phải thắng mọi lệnh khác. Tránh va chạm phải được ưu tiên hơn bám đường. Bám đường phải nhường cho giới hạn vận tốc và gia tốc. Khi hệ có nhiều luật, kiến trúc arbitration trở nên quan trọng.
Arbitration và safety layer
Arbitration là cơ chế quyết định phản ứng nào được quyền chi phối action cuối cùng. Một hệ đơn giản có thể dùng luật ưu tiên: nếu khoảng cách trước mặt nhỏ hơn ngưỡng dừng, gửi lệnh dừng; nếu chưa nguy hiểm nhưng gần vật cản, giảm tốc; nếu an toàn, bám theo local plan. Cách này dễ hiểu và dễ kiểm chứng.
Một dạng khác là blending, tức trộn nhiều action bằng trọng số phụ thuộc vào tình huống:
tăng khi vật cản gần hoặc rủi ro cao. Khi môi trường trống, gần và robot chủ yếu bám đường. Khi vật cản gần, tăng và phản ứng tránh vật cản chiếm ưu thế. Blending mềm hơn switching cứng, nhưng cũng khó đảm bảo hơn nếu hai action có hướng xung đột.
Trong các hệ cần an toàn cao, reactive control thường đi kèm safety layer. Safety layer không nhất thiết tạo hành vi tối ưu; nó lọc hoặc chặn action nguy hiểm. Ví dụ controller phía trên muốn đi với m/s, nhưng khoảng cách trước mặt chỉ còn 0.5 m. Safety layer giới hạn vận tốc còn 0.2 m/s hoặc đưa về 0. Đây là cách tách vai trò: policy hoặc planner đề xuất hành động, safety layer đảm bảo hành động không vượt vùng an toàn.
Một cách diễn đạt tổng quát là:
là action ban đầu từ planner, policy hoặc controller bám đường. là action sau khi xét observation hiện tại và ràng buộc an toàn. Reactive safety layer không cần thay thế toàn bộ hệ điều khiển; nó có thể nằm như một lớp bảo vệ cuối trước actuator.

Arbitration và safety layer làm reactive control bớt ngây thơ. Chúng thừa nhận rằng phản ứng cục bộ có thể mâu thuẫn, nên hệ cần quy tắc điều phối. Trong robot vận hành thật, phần này thường quan trọng không kém công thức điều khiển, vì bug ở arbitration có thể khiến một phản ứng đúng bị phản ứng khác ghi đè sai thời điểm.
Reactive control và planning
Reactive control thường bị hiểu nhầm là đối lập với planning. Thực ra, hai tầng này giải quyết hai câu hỏi khác nhau. Planning nhìn xa hơn: đường nào dẫn đến goal, tránh vùng cấm, tối ưu chi phí, xử lý cấu trúc bản đồ. Reactive control nhìn gần hơn: với cảm biến hiện tại, action tức thời nào giúp hệ tiếp tục an toàn và ổn định.
Trong robot kho, global planner có thể chọn hành lang chính vì đó là đường ngắn nhất. Local planner tạo một trajectory vài mét phía trước. Reactive control xử lý các biến động nhỏ và nhanh: người đi ngang, sai lệch bám đường, vật cản tạm thời, trượt bánh nhẹ. Nếu vật cản chỉ xuất hiện một lúc rồi biến mất, reactive control có thể xử lý mà không cần global replan. Nếu hành lang bị chặn lâu, planner phải tính đường khác.
Quan hệ này có thể xem như khác biệt về horizon. Planner có horizon dài. Reactive controller có horizon rất ngắn, đôi khi chỉ một chu kỳ điều khiển hoặc vài trăm mili giây. Horizon ngắn giúp phản ứng nhanh, nhưng không nhìn thấy hậu quả xa. Horizon dài giúp tối ưu đường đi, nhưng chậm hơn và phụ thuộc vào mô hình môi trường.
Một hệ tốt thường để mỗi tầng làm đúng việc của nó. Không nên bắt global planner xử lý mọi dao động cảm biến nhỏ. Cũng không nên bắt reactive controller giải bài toán đường đi toàn cục. Khi reactive control phải tự xoay xở trong mê cung, nó dễ kẹt ở local minima. Khi planner phải phản ứng với từng điểm lidar nhiễu, hệ dễ nặng và không ổn định.

Điều này cũng giải thích vì sao nhiều kiến trúc robot có dạng phân tầng: mission planner, global planner, local planner, reactive controller, safety filter, low-level motor control. Reactive control nằm gần đáy không phải vì nó kém quan trọng, mà vì nó cần vòng lặp nhanh và gắn chặt với cảm biến-actuator.
Reactive control và deliberative control
Trong robotics cổ điển, người ta hay phân biệt reactive control và deliberative control. Deliberative control lập luận dựa trên mô hình, bản đồ, mục tiêu và kế hoạch. Nó “suy nghĩ” trước khi hành động. Reactive control nối cảm biến với hành động ngắn hơn. Nó hành động dựa trên tình huống hiện tại.
Deliberative control mạnh khi nhiệm vụ cần chuỗi quyết định có cấu trúc: đi qua nhiều phòng, chọn thứ tự thao tác, tránh vùng không được phép, hoặc tối ưu thời gian giao hàng. Reactive control mạnh khi môi trường thay đổi nhanh, mô hình không đầy đủ, hoặc phản ứng cần độ trễ thấp.
Nếu chỉ dùng deliberative control, robot có thể chậm và giòn trước nhiễu cảm biến mới. Nếu chỉ dùng reactive control, robot có thể thiếu mục tiêu dài hạn. Một robot chỉ phản ứng với vật cản gần nhất có thể né tốt nhưng không biết cách đi đến đích. Một robot chỉ theo plan dài hạn có thể biết đích nhưng va vào vật vừa xuất hiện.
Vì vậy, reactive và deliberative không nên được xem như hai phe loại trừ nhau. Chúng là hai cách xử lý thời gian và thông tin. Deliberative control dùng nhiều thông tin hơn, horizon dài hơn, chi phí tính toán lớn hơn. Reactive control dùng thông tin gần hơn, horizon ngắn hơn, phản ứng nhanh hơn. Hệ robot thực dụng thường cần cả hai.
Behavior-based control
Một hướng liên quan chặt chẽ là behavior-based control. Thay vì xây một planner trung tâm sinh toàn bộ hành vi, hệ được tạo từ nhiều behavior đơn giản: tránh vật cản, đi theo tường, tìm goal, giữ khoảng cách, dừng khi nguy hiểm. Mỗi behavior đọc cảm biến và đề xuất action. Action cuối được chọn hoặc trộn qua arbitration.
Reactive control là thành phần tự nhiên của behavior-based systems, vì mỗi behavior thường là một phản ứng trực tiếp với cảm biến. Behavior “avoid obstacle” không cần biết nhiệm vụ dài hạn. Behavior “wall following” không cần bản đồ đầy đủ. Behavior “go-to-goal” chỉ cần hướng goal cục bộ. Khi kết hợp, chúng tạo ra hành vi tổng thể phong phú hơn từng luật đơn.
Ưu điểm của cách này là tính module. Ta có thể thêm behavior mới mà không viết lại toàn bộ planner. Hệ cũng dễ chạy thời gian thực vì mỗi behavior đơn giản. Nhưng nhược điểm là hành vi tổng thể đôi khi khó dự đoán. Hai behavior đúng riêng lẻ có thể tương tác xấu khi chạy cùng nhau. Một behavior tránh vật cản có thể luôn đẩy robot khỏi hành lang mà behavior go-to-goal muốn đi vào.
Behavior-based control cho thấy reactive control không chỉ là một công thức. Nó là một triết lý thiết kế: xây hành vi từ các vòng cảm biến-hành động nhỏ, rồi phối hợp chúng. Triết lý này phù hợp khi môi trường phức tạp hơn mô hình ta có thể viết ra, nhưng nó đòi hỏi kiểm thử kỹ ở cấp hệ thống.
Learned reactive policies
Reactive control không nhất thiết phải là luật thủ công. Một neural network cũng có thể là reactive controller nếu nó nhận observation hiện tại và trả action trực tiếp:
Trong đó là tham số học được. Policy này có thể được huấn luyện bằng imitation learning, reinforcement learning, hoặc dữ liệu từ một controller tốt hơn. Nếu observation là ảnh camera hoặc lidar scan, neural network có thể học những pattern khó viết bằng tay.
Điểm làm nó “reactive” không phải việc nó có học hay không, mà là cấu trúc phụ thuộc thời gian. Nếu policy chủ yếu dựa trên observation hiện tại hoặc một history ngắn để ra action tức thời, nó vẫn là reactive theo nghĩa điều khiển. Nó có thể không lập kế hoạch rõ ràng, không xây bản đồ dài hạn, không tối ưu trajectory nhiều bước trong lúc chạy.
Learned reactive policies mạnh ở những phản ứng cảm biến phức tạp: đi theo người, tránh đám đông, điều khiển drone qua khe hẹp, hoặc bám lane từ ảnh. Nhưng chúng cũng mang rủi ro riêng. Nếu policy học từ dữ liệu thiếu tình huống hiếm, nó có thể phản ứng sai khi gặp out-of-distribution observation. Nếu không có safety layer, action sai có thể đi thẳng tới actuator.
Vì vậy, khi dùng learned reactive control, cấu trúc hệ thống vẫn quan trọng. Policy học được có thể đề xuất action. Safety filter giới hạn action. Planner cung cấp goal cục bộ. State estimator làm sạch observation. Monitoring phát hiện bất thường. Không nên để chữ “learned” che mất thực tế rằng reactive policy vẫn cần được đặt trong một kiến trúc điều khiển có ràng buộc.
Độ trễ và tần số điều khiển
Reactive control chỉ có ý nghĩa khi phản ứng đủ nhanh so với dynamics của hệ. Nếu robot di chuyển chậm trong hành lang rộng, controller chạy 10 Hz có thể đủ. Nếu drone bay nhanh trong không gian hẹp, độ trễ vài chục mili giây đã đáng kể. Nếu cánh tay robot tiếp xúc với bề mặt cứng, vòng điều khiển lực cần tần số cao hơn nhiều so với vòng planning.
Độ trễ gồm nhiều phần: cảm biến lấy mẫu, xử lý perception, truyền dữ liệu, tính action, gửi lệnh, actuator đáp ứng. Reactive controller có thể đơn giản về toán nhưng vẫn chậm nếu observation đi qua một pipeline perception nặng. Khi độ trễ lớn, action được tính từ trạng thái cũ. Robot phản ứng với thứ đã xảy ra, không phải thứ đang xảy ra.
Một cách nhìn đơn giản là so thời gian phản ứng với thời gian va chạm. Nếu vật cản cách robot một khoảng và robot tiến tới với vận tốc tương đối , thời gian còn lại xấp xỉ:
Tổng độ trễ phản ứng phải nhỏ hơn đáng kể so với thời gian này, nếu không controller biết nguy hiểm nhưng lệnh đến quá muộn. Công thức này không đủ cho mọi trường hợp, nhưng nó nhắc ta rằng reactive control là vấn đề thời gian thật, không chỉ là ánh xạ toán học từ observation sang action.
Tần số điều khiển cũng ảnh hưởng đến độ mượt. Nếu controller cập nhật quá chậm, action thay đổi theo từng bước lớn, gây rung hoặc giật. Nếu cập nhật nhanh nhưng sensor nhiễu, controller có thể phản ứng quá nhạy và tạo dao động. Vì vậy, reactive control thường cần lọc tín hiệu, giới hạn gia tốc, damping và hysteresis để tránh bật tắt liên tục quanh ngưỡng.