Máy tính cá nhân điều khiển đội robot lau sàn thế nào?
- Nâng cao
- Bài viết
- Từ 18 tuổi
- 8 phút đọc

Máy tính cá nhân điều khiển đội robot lau sàn bằng cách đứng ở đầu bên kia của liên kết Wi-Fi: robot gửi trạng thái, máy tính lập kế hoạch, giữ bản đồ, phát cảnh báo rồi gửi lệnh xuống qua một broker hoặc agent trung gian. Robot giữ phản xạ an toàn, nhịp tim theo dõi chương trình còn hoạt động, còn giờ chung giúp đối chiếu nhật ký.
Mục lục
- Robot lau
- Wi-Fi và bộ phát
- Broker hoặc agent trung gian
- Máy tính chạy chương trình điều khiển
- Điện thoại nhận cảnh báo
Bạn sẽ học được gì
- Vẽ chuỗi robot, Wi-Fi, broker hoặc agent và chương trình trên máy tính, rồi chia việc cho từng khối.
- So sánh MQTT với micro-ROS khi dùng làm đường nối robot với máy tính, và chọn kiểu giao nhận cho từng loại bản tin.
- Chỉ ra ba điểm lỗi của chuỗi, gồm máy tính ngủ, đổi điểm truy cập Wi-Fi và quá tải, cùng tín hiệu báo từng lỗi.
Cần biết trước
Nên đọc bài so sánh điều khiển tập trung và tự hành và bài về MQTT để nắm mô hình đăng ký và phát bản tin.
Việc nào chạy trên máy tính, việc nào ở robot?
Máy tính giữ những việc cần nhìn cả căn nhà, robot giữ những việc không được chậm. Cách chia này theo kiểu lai đã chọn ở bài so sánh nói trên. Bảng dưới là thiết kế minh họa, chưa phải kết quả thử.
| Việc | Chạy ở | Lý do |
|---|---|---|
| Dừng trước mép bậc, khi va chạm hoặc kẹt; ngắt bơm khi đứng yên | Robot | Phản hồi phải tức thì, không đi qua Wi-Fi |
| Theo dõi nhịp tim của máy tính; chỉ về trạm khi còn định vị và đường về cục bộ | Robot | Phải còn chạy khi liên kết hỏng |
| Chia khu vực và lập đường phủ sàn | Máy tính | Cần cái nhìn toàn căn nhà |
| Bản đồ chung và các ô đã lau | Máy tính | Một nơi gộp dữ liệu của mọi robot |
| Nhận diện vật thể từ ảnh | Máy tính | Cần sức xử lý mà chip trên robot thường không có |
| Giao diện, cảnh báo, nhật ký | Máy tính | Là nơi người tiếp xúc với hệ thống |
| Mô phỏng và thử lệnh mới | Máy tính | Dùng cùng giao thức, không cần robot thật |
Bản tin giữa hai bên rơi vào ba nhóm. Trạng thái nhỏ và đều đặn, nên chỉ mẫu mới nhất có ích. Lệnh cần được báo nhận trước khi trung tâm coi là robot đã tiếp nhận. Ảnh nặng, nên robot chỉ gửi khi trung tâm yêu cầu thay vì phát liên tục. Đây là lập luận thiết kế; kích thước và tần số cụ thể phải đo trên hệ thật. Có thể ước lượng tải bằng kích thước bản tin nhân tần số gửi của từng robot rồi cộng cả đội, cộng thêm ảnh và chi phí giao thức. Đo tốc độ nhận thực tế, tuổi mẫu và thời gian từ gửi lệnh đến báo nhận khi tăng tải; giảm ảnh trước khi làm chậm phản hồi điều khiển. Không suy ra số robot tối đa chỉ từ cấu hình máy tính.
- Robot lau
- Vòng phản xạ ngắn trong thân robot
- Tia cảm biến xuống mép bậc
- Laptop có bản đồ và đường phủ
- Nhận diện vật thể
- Nhật ký
- Lệnh đi xuống robot
- Trạng thái đi lên máy tính
MQTT hay micro-ROS nối robot với máy tính?
MQTT hợp khi cần một đường nối đơn giản; micro-ROS hợp khi phía máy tính đã chạy các nút ROS 2. Cả hai đều có một bên trung gian giữa robot và máy tính, nhưng bên đó làm việc khác nhau.
Theo tài liệu micro-ROS về MQTT, MQTT là giao thức bản tin nhẹ dùng trên TCP. Giao diện của nó là đăng ký và phát bản tin đơn giản. Máy khách nối với một broker MQTT, và broker điều phối việc trao đổi dữ liệu. Máy khách phải biết địa chỉ broker trước lần kết nối đầu tiên. Chuẩn MQTT không quy định cách gắn kiểu dữ liệu với chủ đề, nên việc hiểu bản tin thuộc về phía người dùng. Robot có thể dùng ESP-MQTT của Espressif, một cài đặt máy khách MQTT.
Với micro-ROS, tài liệu Micro XRCE-DDS mô tả XRCE Client là thiết bị ít tài nguyên. Nó nối với một XRCE Agent, agent hành động thay mặt client trong không gian dữ liệu toàn cục DDS. micro-ROS dùng Micro XRCE-DDS làm lớp trung gian mặc định. Khác broker MQTT, XRCE Agent không quản lý việc đăng ký và phát chủ đề. Trạng thái đại diện giao tiếp DDS có thể nằm ở agent; điều này không có nghĩa robot bỏ trạng thái nhiệm vụ hoặc dữ liệu cần cho về trạm.
| Tiêu chí | MQTT | micro-ROS |
|---|---|---|
| Bên trung gian | Broker điều phối bản tin | XRCE Agent đại diện robot trong DDS |
| Kiểu dữ liệu | Người dùng tự hiểu | Định nghĩa bằng IDL |
| Vận chuyển | TCP | Ít nhất TCP và UDP |
| Hợp khi | Phía máy tính viết riêng, cần chạy nhanh | Phía máy tính đã dùng nút ROS 2 |
Về giao nhận, đặc tả MQTT nêu rằng QoS 0 cho bản tin tới bên nhận đúng một lần hoặc không tới, còn QoS 1 bảo đảm tới ít nhất một lần. ROS 2 cũng cho chọn mức tin cậy, nhưng đây không phải ánh xạ hoàn toàn giữa hai giao thức: best effort cố gắng giao nhưng có thể làm mất, reliable bảo đảm giao và có thể thử lại. Thiết kế minh họa chọn như sau:
- Trạng thái dùng QoS 0 hoặc best effort, vì mẫu mới thay mẫu cũ.
- Lệnh dùng QoS 1 hoặc reliable. Vì có thể tới hai lần, mỗi lệnh mang một mã riêng để robot bỏ bản trùng.
- Khu vực đang giao dùng bản tin giữ lại (retained message). Khi máy khách gửi PUBLISH có cờ RETAIN, broker thay bản tin giữ lại cũ của chủ đề bằng bản mới. Nhờ vậy robot đăng ký sau có thể nhận lại khu đã lưu. Trong thiết kế minh họa, đây chỉ là dữ liệu phân vùng, không tự kích hoạt chuyển động: sau khi nối lại, robot phải kiểm phiên điều khiển, thời hạn và chờ trung tâm xác nhận lại.
- Robot
- Broker MQTT với bản tin
- Chương trình trên máy tính
- XRCE Agent
- Bản sao robot do agent giữ
- Vòng dữ liệu DDS có máy tính
- Ranh giới giữa hai cách
Làm sao biết từng khâu còn sống và giờ có khớp?
Trong mô hình minh họa, nhịp tim ứng dụng cho biết vòng xử lý vừa chạy, còn giờ chung giúp đối chiếu sự kiện. Còn kết nối tới broker chưa chứng minh chương trình điều khiển vẫn xử lý được lệnh. Mỗi cơ chế có tín hiệu riêng.
Với MQTT, Keep Alive là khoảng tối đa cho phép trôi qua giữa các gói điều khiển do máy khách gửi. Nếu Keep Alive khác không và broker không nhận được gói nào trong một lần rưỡi khoảng đó, broker phải đóng kết nối. Khi không có gói nào khác để gửi, máy khách phải gửi PINGREQ. Nếu không nhận được PINGRESP trong khoảng hợp lý, máy khách nên đóng kết nối mạng. Khi kết nối đóng bất thường, broker còn hoạt động có thể phát bản tin di chúc (Will Message) theo cấu hình, báo kết nối bị mất; nó không xác định vị trí hay tình trạng vật lý của robot. Nếu broker cũng ngủ hoặc hỏng, không thể trông chờ nó phát cảnh báo.
Với ROS 2, thời hạn lease (lease duration) là thời gian tối đa một bên đăng có để báo còn sống. Quá hạn đó, hệ thống coi nó đã mất liveliness. Nút cũng định kỳ thông báo sự hiện diện và báo khi ngừng hoạt động. Hai nút chỉ nối được khi thiết lập chất lượng dịch vụ tương thích. Cặp cấu hình lệch có thể không nối được dù cả hai nút đang chạy.
Chiều ngược lại cũng cần: robot theo dõi một bản tin nhịp tim do trung tâm phát. Mất bản tin đó có thể do máy tính ngủ, chương trình treo hoặc liên kết hỏng, và robot chuyển sang phản xạ an toàn.
Về giờ, NTP được dùng rộng rãi để đồng bộ đồng hồ máy tính. Offset là độ lệch giờ ước lượng của đồng hồ máy chủ so với đồng hồ hệ thống; delay là độ trễ khứ hồi giữa máy khách và máy chủ. SNTP dành cho máy khách có một máy chủ thượng nguồn duy nhất. Vì vậy mỗi robot có thể trỏ về một nguồn giờ, ví dụ máy tính điều khiển. Trên robot, thư viện SNTP của lwIP trong ESP-IDF đặt giờ khi nhận phản hồi từ máy chủ NTP. Giờ chung giúp trung tâm đối chiếu sự kiện của nhiều robot; sự kiện gần nhau vẫn có thể khó xếp thứ tự vì còn sai số đồng bộ. Trong thiết kế minh họa, thời hạn dừng được đo bằng đồng hồ đếm thời gian cục bộ không lùi, để việc chỉnh giờ không kéo dài lệnh cũ.
Hai thiết lập ROS 2 giúp giới hạn dữ liệu cũ nhưng không tự chẩn đoán được quá tải: keep last chỉ giữ tối đa một số mẫu theo độ sâu hàng đợi, và bản tin quá lifespan bị bỏ lặng lẽ.
- Hai đồng hồ cùng giờ
- Nhịp tim robot gửi
- Nhịp tim không còn
- Nhịp tim tới trung tâm
- Khoảng chờ tính từ nhịp cuối
- Điểm hết hạn
- Bản tin di chúc
Vì sao nên bắt đầu bằng laptop rồi chuyển sang máy chuyên dụng?
Laptop có sẵn và cho phép viết, chạy, mô phỏng trên cùng một máy. Nhưng nó dễ ngủ, đổi mạng và rời nhà, nên chỉ hợp giai đoạn thử. Bảng dưới liệt kê các điểm lỗi và tín hiệu báo chúng.
| Lỗi | Biểu hiện | Cách nhận ra |
|---|---|---|
| Máy tính ngủ | Broker và chương trình dừng, robot mất kết nối | Robot không thấy nhịp tim của máy tính; Keep Alive hết hạn |
| Robot đổi điểm truy cập Wi-Fi và làm rớt kết nối | Trạng thái gián đoạn giữa lúc đang lau | Broker không nhận gói trong một lần rưỡi Keep Alive, đóng kết nối, phát bản tin di chúc |
| Quá tải khi thêm robot | Lệnh tới chậm, trạng thái bị bỏ | Trung tâm đo thời gian từ lệnh đến báo nhận; hàng đợi đầy; bản tin hết hạn |
| Cấu hình lệch giữa hai nút ROS 2 | Nút chạy nhưng không có dữ liệu | Nút có mặt trong danh sách mà chủ đề không có mẫu |
Máy chuyên dụng cần được cấu hình không ngủ, giám sát tiến trình và nguồn điện; chỉ đổi máy không tự tránh được lỗi này. Nối cáp tới bộ phát Wi-Fi bỏ liên kết không dây của chính máy tính, còn lỗi robot đổi điểm truy cập vẫn còn. Địa chỉ cố định còn quan trọng hơn: máy khách MQTT phải biết địa chỉ broker, nên đổi địa chỉ làm cả đội mất đường về. Chuỗi giữ nguyên (robot, Wi-Fi, broker hoặc agent, chương trình), nên việc chuyển chỉ đổi nơi chạy chứ không đổi giao thức.
- Laptop đang ngủ
- Wi-Fi yếu hoặc đứt
- Chuyển nơi chạy
- Máy chuyên dụng chạy liên tục
- Cáp tới bộ phát Wi-Fi
- Địa chỉ cố định
Ví dụ trong đời sống
Một văn phòng nhỏ có ba robot; broker và chương trình điều khiển chạy trên một laptop. Đây là kịch bản thiết kế, chưa phải kết quả thử. Chương trình chọn khu hành lang cho robot thứ ba. Nó phát lệnh giao khu trên chủ đề lệnh của robot đó, mang mã riêng và dùng QoS 1.
Broker chuyển lệnh tới robot. Robot ghi nhận mã, phát trạng thái "đã nhận khu" rồi bắt đầu lau. Trung tâm thấy trạng thái đó nên thôi gửi lại. Nếu hết thời gian chờ mà chưa thấy báo nhận, trung tâm gửi lại cùng mã, và robot bỏ bản trùng.
Giờ nghỉ trưa, laptop gập nắp. Broker dừng, kết nối của cả ba robot đứt, và không còn nhịp tim của máy tính. Robot ngắt bơm rồi chỉ về trạm khi còn định vị được, có đường về đã lưu và đủ pin; nếu không thì dừng và ghi lỗi. Khi laptop thức, robot kết nối lại tới địa chỉ broker đã biết. Trung tâm hỏi trạng thái và vị trí mới, đối chiếu mã nhiệm vụ rồi mới quyết định tiếp tục hay giao lại; thiếu báo nhận không chứng minh lệnh trước chưa chạy.
Chiều đó robot thứ hai rời vùng phủ của một điểm truy cập và nối sang điểm khác. Kết nối cũ rớt, broker đóng nó sau một lần rưỡi Keep Alive rồi phát bản tin di chúc. Trung tâm đánh dấu robot đã mất, chờ một khoảng định trước, nhưng chưa giao chồng khu đó cho robot khác khi chưa biết vị trí robot mất liên lạc. Trong ví dụ này, trung tâm chỉ giao lại sau khi xác nhận robot cũ đã dừng hoặc được tách khỏi vùng làm việc.
Hiểu lầm thường gặp
QoS 1 bảo đảm lệnh chạy đúng một lần. QoS 1 chỉ bảo đảm tới ít nhất một lần, nên một lệnh có thể tới hai lần. Mỗi lệnh cần mã riêng để robot bỏ bản trùng.
Còn nhịp tim nghĩa là robot đang lau đúng. Nhịp tim cho biết máy khách và liên kết còn sống. Bản tin trạng thái phải mang thêm việc robot đang làm.
Máy tính mạnh thì không phải lo Wi-Fi. Wi-Fi nhà có thể mất gói, nên mỗi loại bản tin cần chọn giữa best effort và reliable. Sức mạnh của máy tính không thay được lựa chọn đó.
Câu hỏi thường gặp
Có cần ROS 2 để điều khiển nhiều robot từ máy tính không?
Không bắt buộc. MQTT với một máy khách ESP-MQTT trên robot đã đủ cho trạng thái, lệnh và nhịp tim. micro-ROS có lợi khi phía máy tính đã dùng các nút ROS 2.
Nên đặt broker MQTT ở đâu?
Đặt trên máy chạy liên tục và có địa chỉ cố định. Đặt cùng máy với chương trình điều khiển thì đơn giản, nhưng khi máy đó ngủ, cả hai dừng cùng lúc.
Wi-Fi yếu thì nên dùng chế độ giao nhận nào?
Còn tùy loại bản tin. Trạng thái chịu được mất mẫu nên dùng QoS 0 hoặc best effort; lệnh không được mất nên dùng QoS 1 hoặc reliable, kèm mã để bỏ bản trùng.
Tóm tắt
- Máy tính giữ kế hoạch, bản đồ, nhận diện và cảnh báo; robot giữ phản xạ và nhịp tim, nối nhau qua broker MQTT hoặc XRCE Agent.
- MQTT với QoS 0, QoS 1, bản tin giữ lại, Keep Alive và bản tin di chúc đủ cho một đội nhỏ; micro-ROS hợp khi phía máy tính dùng ROS 2.
- Máy ngủ, đổi điểm truy cập và quá tải mỗi loại có một tín hiệu riêng; bắt đầu bằng laptop rồi chuyển sang máy chuyên dụng có địa chỉ cố định.
Thuật ngữ trong bài
Tên tiếng Việt, tên tiếng Anh và nghĩa dùng trong bài. Di chuột, chạm hoặc dùng phím Tab tới từ có gạch chân chấm để xem giải thích ngay khi đọc.
- broker MQTTMQTT broker
- Máy chủ trung gian trong MQTT: các máy khách nối vào broker, và broker điều phối việc trao đổi dữ liệu giữa chúng.
- QoSQuality of Service (QoS)
- Mức bảo đảm giao bản tin. Trong MQTT, QoS 0 giao tối đa một lần còn QoS 1 giao ít nhất một lần.
- Keep Alive
- Khoảng thời gian tối đa cho phép trôi qua giữa các gói điều khiển MQTT mà một máy khách gửi.
- bản tin di chúcWill Message
- Bản tin ứng dụng mà broker phát sau khi kết nối bị đóng trong trường hợp kết nối không đóng bình thường.
- bản tin giữ lạiretained message
- Bản tin broker lưu lại cho một chủ đề để gửi cho các máy khách đăng ký sau; bản mới thay bản cũ của chủ đề đó.
- XRCE Agent
- Máy chủ trong DDS-XRCE hành động thay mặt các XRCE Client ít tài nguyên trong không gian dữ liệu toàn cục DDS.
- thời hạn leaselease duration
- Khoảng thời gian tối đa một bên đăng trong ROS 2 có để báo còn sống trước khi hệ thống coi nó đã mất liveliness.
- SNTPSimple Network Time Protocol (SNTP)
- Bản rút gọn của NTP, dành cho máy khách có một máy chủ thượng nguồn duy nhất và cho máy chủ sơ cấp có một đồng hồ tham chiếu.
- micro-ROS
- Dự án đưa ROS 2 lên vi điều khiển; nó dùng Micro XRCE-DDS làm lớp trung gian mặc định.
Bài này chưa được đánh dấu là đã xem
Thấy nội dung sai hoặc chưa an toàn?
Báo cho quản trị viên qua email. Thư có sẵn tên bài và đường dẫn.
Có thể bạn cũng quan tâm
Trung cấpRobot lau sàn nhỏ chui gầm giường cần khung gầm thế nào?
Từ khe hở dưới giường đến chiều cao thân: dẫn động vi sai, bánh, bố trí bình nước, bơm và pin, lực cản miếng lau, cách thoát khi kẹt.
Robotics (Robot học)7 phút đọc
Trung cấpCảm biến nào giúp robot lau nhỏ tránh vực và va chạm?
Cảm biến chống rơi, cản va chạm, đo xa ToF, encoder, IMU và đo dòng động cơ: nguyên lý, vị trí đặt, lỗi thường gặp và thứ tự ưu tiên.
Robotics (Robot học)7 phút đọc
Trung cấpRobot lau ẩm làm sạch sàn mà vẫn khô ra sao?
Robot lau ẩm dùng khăn ẩm và bơm định lượng theo tốc độ để sàn sạch mà không ướt; bài nêu cách làm, giới hạn và phần xịt thơm tùy chọn.
Robotics (Robot học)7 phút đọc
Trung cấpTrạm đón robot nạp điện và nước tự động ra sao?
Robot cập trạm theo từng bước, nạp điện qua tiếp điểm rồi nạp nước; bài nêu cách dẫn hướng, kiểm tra tiếp xúc, mức nước và dùng chung trạm.
Robotics (Robot học)7 phút đọc
Nguồn
Các nguồn này viết cho người đọc lớn hơn. Nếu thấy khó, hãy đọc cùng người lớn.
- MQTT Version 5.0(mở trong thẻ mới)
OASISBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- RFC 5905: Network Time Protocol Version 4(mở trong thẻ mới)
IETF / RFC EditorBậc A: cơ quan, tổ chức chuẩn hoặc nghiên cứuĐọc ngày 2 tháng 11, 2026
- Micro XRCE-DDS (micro-ROS)(mở trong thẻ mới)
micro-ROSBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- DDS-XRCE, MQTT & IoT (micro-ROS)(mở trong thẻ mới)
micro-ROSBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- About discovery (ROS 2 Jazzy)(mở trong thẻ mới)
ROS 2 DocumentationBậc A: cơ quan, tổ chức chuẩn hoặc nghiên cứuĐọc ngày 2 tháng 11, 2026
- MQTT Client (ESP-IDF)(mở trong thẻ mới)
EspressifBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- About Quality of Service Settings (ROS 2 Jazzy)(mở trong thẻ mới)
ROS 2 DocumentationBậc A: cơ quan, tổ chức chuẩn hoặc nghiên cứuĐọc ngày 2 tháng 11, 2026
- System Time — ESP-IDF(mở trong thẻ mới)
EspressifBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
