Bỏ qua tới nội dung
LSLab

Robot mất kết nối thì tự về trạm bằng cách nào?

  • Trung cấp
  • Bài viết
  • Từ 16 tuổi
  • 7 phút đọc
Robot có khăn lau xanh trên sàn terrazzo khô, trạm ở cuối hành lang và router không sáng đèn trên kệ bên cạnh.

Khi mất liên kết với máy tính, robot lau tự về trạm bằng một máy trạng thái chạy ngay trên robot. Robot nhận ra liên kết đã hỏng, ngắt bơm và dừng lau, chỉ đi về khi còn định vị được, có đường về đã lưu và đủ pin; odometry hỗ trợ bám đường, vào trạm theo tín hiệu dẫn hướng rồi nối lại khi mạng trở lại. Đây là một thiết kế minh họa.

Mục lục
Một lần mất liên kết đi qua sáu bước, từ lúc đang lau tới lúc liên kết trở lại.
  • Robot đang lau
  • Liên kết Wi-Fi đứt
  • Bơm ngắt
  • Robot đi về trạm
  • Trạm nạp điện và nước
  • Liên kết trở lại

Bạn sẽ học được gì

  • Kể ra các dấu hiệu cho robot biết liên kết đã mất, và vì sao nên xác nhận trước khi hành động.
  • Theo dõi các trạng thái của robot từ lúc nghi ngờ tới lúc nạp điện và nối lại.
  • Giải thích vì sao vị trí ước lượng trôi dần và cách robot vẫn vào được trạm.

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ề máy tính điều khiển đội robot, nơi nhịp tim và các điểm lỗi của chuỗi đã được giải thích.

Robot nhận ra liên kết đã mất bằng cách nào?

Robot đối chiếu ba loại dấu hiệu thay vì tin một tín hiệu: sự kiện của Wi-Fi, nhịp tim từ máy tính và trạng thái kết nối tới broker.

Tài liệu ESP-IDF về kịch bản trạm nêu rằng khi kết nối Wi-Fi bị gián đoạn, ví dụ điểm truy cập tắt nguồn hoặc tín hiệu RSSI kém, ESP32 sinh sự kiện ngắt kết nối. Cơ chế hết hạn beacon giúp trạm phát hiện điểm truy cập còn hoạt động hay không, và ứng dụng đặt được thời gian không hoạt động của nó. Còn Wi-Fi chưa có nghĩa là máy tính còn sống, nên robot vẫn cần nhịp tim của chương trình điều khiển.

Đặc tả MQTT cho robot và broker mỗi bên một cách. Nếu Keep Alive khác không và broker không nhận được gói điều khiển nào trong một lần rưỡi khoảng Keep Alive, broker phải ngắt kết nối như thể mạng đã hỏng. Nếu robot không nhận được PINGRESP trong một khoảng hợp lý sau khi gửi PINGREQ, robot nên đóng kết nối. Ngoài ra broker phải phát Will Message đã lưu khi kết nối của robot đóng lại, kể cả khi lỗi mạng do chính broker phát hiện, trừ khi broker đã xóa nó sau khi nhận DISCONNECT. Nếu broker và đường tới máy tính còn hoạt động, bản tin này báo mất kết nối; nó không chứng minh robot đã hỏng hay đang ở đâu. Khi bộ phát hoặc chính broker ngừng hoạt động, thông báo có thể chưa tới được máy tính.

Dấu hiệuAi thấyÝ nghĩa
Sự kiện ngắt kết nối Wi-FiRobotMất điểm truy cập; chưa chắc máy tính hỏng
Mất nhịp tim từ máy tínhRobotMáy tính ngủ, chương trình treo hoặc liên kết hỏng
Không có PINGRESPRobotĐường tới broker có vấn đề
Will Message được phátMáy tínhBroker coi robot đã mất liên kết

Mọi dấu hiệu đều có ngưỡng chờ, và ngưỡng đó là lựa chọn thiết kế. Chờ ngắn thì robot báo nhầm mỗi khi Wi-Fi chập chờn. Chờ dài thì robot lau tiếp mà không ai điều khiển. Hướng dẫn PX4 cho một mẫu: failsafe mất liên kết dữ liệu kích hoạt khi mất kết nối với trạm mặt đất MAVLink gần nhất. Với hầu hết failsafe, hành vi mặc định là vào chế độ Hold trong một khoảng cấu hình được rồi mới hành động, để người dùng có thời gian nhận ra sự việc và hủy failsafe. Thiết kế minh họa mượn ý này: nghi ngờ, xác nhận, rồi hành động.

Ba dấu hiệu cùng đưa robot vào trạng thái nghi ngờ, rồi một khoảng chờ quyết định có xác nhận hay không.
  • Sự kiện Wi-Fi bị ngắt
  • Nhịp tim từ máy tính ngừng
  • Gói PINGRESP không về
  • Trạng thái nghi ngờ
  • Khoảng chờ xác nhận

Robot làm gì ngay khi liên kết đã mất?

Robot vào trạng thái an toàn trước khi đi đâu: ngắt bơm và dừng khăn lau rồi mới di chuyển. Thiết kế minh họa làm vậy vì bơm chạy khi robot đứng yên sẽ đổ nước xuống một chỗ. Các trạng thái, theo thứ tự:

  1. Bình thường: robot lau theo lệnh và theo dõi các dấu hiệu.
  2. Nghi ngờ: một dấu hiệu vượt ngưỡng. Robot ngắt bơm, dừng chuyển động, không nhận việc mới và chờ xác nhận; không tiếp tục lau trong lúc chờ.
  3. An toàn: nghi ngờ được xác nhận. Robot ngắt bơm, dừng khăn lau và lưu vị trí ước lượng hiện tại.
  4. Về trạm: robot chỉ đi khi còn định vị, có đường về cục bộ và đủ pin. Thiếu điều kiện thì giữ trạng thái an toàn, lưu lỗi và chờ trợ giúp.
  5. Nạp: robot vào trạm, nạp điện và nạp nước.
  6. Nối lại: từ trạng thái an toàn, robot thử kết nối lại theo chu kỳ. Tài liệu ESP-IDF khuyến nghị khi nhận sự kiện ngắt kết nối thì gọi lại hàm kết nối Wi-Fi, đóng mọi socket rồi tạo lại nếu cần.

Dấu hiệu biến mất lúc đang nghi ngờ thì robot quay về bình thường. Từ trạng thái an toàn trở đi, robot chỉ trở lại bình thường sau khi đã nối lại và được máy tính giao việc.

Một lớp bảo vệ nằm dưới máy trạng thái. Tài liệu watchdog của ESP-IDF mô tả bộ định thời này theo dõi hoạt động của hệ thống và tự khôi phục sau lỗi phần mềm hoặc phần cứng bằng cách khởi động lại khi hệ thống không phản hồi. Sau khi khởi động lại, robot nên bắt đầu ở trạng thái an toàn thay vì tiếp tục lệnh cũ, vì lệnh đó có thể đã lỗi thời.

Chu trình minh họa chỉ đi từ an toàn sang về trạm khi đủ dữ liệu điều hướng; nếu không, robot giữ dừng và ghi lỗi.
  • Bình thường
  • Nghi ngờ
  • An toàn (bơm ngắt)
  • Về trạm
  • Nạp điện và nước
  • Nối lại

Không có máy tính, robot tìm đường về trạm thế nào?

Trong mô hình minh họa, robot giữ một tuyến về trạm đã kiểm tra trên bản đồ cục bộ. Nó dùng odometry để bám tuyến đó rồi chuyển sang tín hiệu dẫn hướng khi đủ gần; tọa độ trạm và odometry riêng lẻ không tạo ra đường tránh vật cản. Odometry ở đây là vị trí ước lượng từ encoder bánh xe và IMU.

Tài liệu ROS về khung tọa độ cho robot di động nêu rằng khung odom thường được tính từ một nguồn odometry như odometry bánh xe, odometry thị giác hoặc IMU. Vị trí ước lượng trong khung đó có thể trôi theo thời gian mà không có giới hạn. Khung này hữu ích làm mốc cục bộ ngắn hạn chính xác, nhưng độ trôi làm nó kém hợp làm mốc dài hạn. Độ trượt bánh xe cũng là yếu tố người ta phải tính tới: bản tóm tắt của NASA mô tả việc áp độ trượt bánh xe do dốc vào bộ ước lượng vị trí của rover trong nhiệm vụ Mars Exploration Rover.

Quãng đường về càng dài thì vùng robot có thể đang ở càng rộng. Vì thế robot nhắm vào điểm chuẩn bị (staging pose) trước trạm chứ không nhắm thẳng vào tiếp điểm sạc. Tài liệu Nav2 về cập trạm mô tả một trình tự tương tự. Nếu robot chưa nằm trong dung sai quanh điểm chuẩn bị của trạm thì nó đi tới điểm đó. Điểm này được chọn đủ gần để phát hiện trạm nhưng đủ xa để có chỗ xoay trở, bù cho việc trạm dịch chuyển hoặc sai số định vị. Robot rời vòng điều khiển bằng thị giác khi phát hiện tiếp xúc hoặc việc sạc đã bắt đầu. Thiết kế minh họa mượn trình tự này, thay thị giác bằng tín hiệu dẫn hướng của trạm.

Đến điểm chuẩn bị mà không thấy tín hiệu dẫn hướng nghĩa là robot đang lạc, và nó bám tường để tìm trạm. Một thiết kế robot lau có chế độ bám tường: robot gặp tường, đi men theo một lúc rồi quay lại chế độ khác, và có thể coi là đã mất tường rồi bỏ chế độ này. Một bài thực hành đại học mô tả robot đi men theo mép vật cản lớn cho tới khi hướng về đích lại được. Thiết kế minh họa đi dọc các bức tường quanh khu vực và dò tín hiệu dẫn hướng. Việc tìm chỉ được phép trong vùng đã biết an toàn, có giới hạn thời gian và năng lượng. Bám tường không bảo đảm gặp trạm; khi hết giới hạn hoặc không xác nhận được sàn và lối đi, robot dừng, chờ và báo lỗi khi nối lại.

Vùng robot có thể đang ở rộng ra theo quãng đường, nên nó nhắm vào điểm chuẩn bị rồi dùng tín hiệu của trạm.
  • Vùng bất định lớn dần theo quãng đường
  • Điểm chuẩn bị trước trạm
  • Trạm và tín hiệu dẫn hướng
  • Tường quanh khu vực

Khi nào robot nối lại, và điều gì có thể hỏng giữa đường?

Robot nối lại khi liên kết đã ổn định, rồi đăng ký lại, báo trạng thái và chờ máy tính giao việc. Các bước:

  1. Kết nối lại Wi-Fi và broker, dựng lại các socket.
  2. Gửi bản tin đăng ký kèm pin, mức nước và vị trí. Chỉ khi đã xác nhận cập đúng trạm, robot mới dùng mốc đó để hiệu chỉnh liên hệ giữa bản đồ và vị trí cục bộ; không đặt lại odometry giữa đường chỉ vì mạng đã hồi phục.
  3. Máy tính đối chiếu khu vực được giao và bản đồ các ô đã lau với trạng thái robot báo, rồi giao lại việc.
  4. Nếu pin hoặc nước chưa đủ, robot nạp thêm trước.

Ổn định nghĩa là nhịp tim đều trong một khoảng chờ, không phải một gói tin đơn lẻ. Khoảng chờ này cũng là đánh đổi giữa nối lại nhanh và nối lại chắc.

Tình huốngRobot làmLý do
Mất liên kết khi đang về trạmTiếp tục nếu tuyến cục bộ và định vị còn dùng được; nếu không thì dừngĐiều hướng cục bộ không cần lệnh mới từ trung tâm
Pin thấp giữa đườngĐi thẳng, bỏ việc phụ; nếu không tới được thì dừng và chờDành pin cho quãng về trạm
Trạm đang bận hoặc không xác nhận được trốngChờ tại chỗ riêng ngoài lối vào; không tự chiếm trạmMất trung tâm không đồng nghĩa được quyền vào trạm
Kẹt dưới đồ đạcLùi ra, thử lại; vẫn kẹt thì dừng và báoTránh đốt pin ở chỗ kẹt

Bảng trên là lập luận thiết kế, chưa phải kết quả thử.

Bốn sự cố giữa đường, mỗi sự cố có một cách xử lý riêng.
  • Mất liên kết khi đang về
  • Pin thấp giữa đường
  • Trạm đang bận
  • Kẹt dưới đồ đạc

Ví dụ trong đời sống

Một văn phòng nhỏ có robot ở khu bàn làm việc đang lau dưới gầm bàn thì bộ phát Wi-Fi tự khởi động lại giữa buổi. Đây là kịch bản thiết kế, chưa phải kết quả thử.

Robot nhận sự kiện ngắt kết nối và mất nhịp tim, nên vào trạng thái nghi ngờ. Hết khoảng chờ mà liên kết chưa về, robot ngắt bơm, dừng khăn lau và lưu vị trí ước lượng. Nó đi về theo tuyến cục bộ đã lưu với định vị còn hợp lệ, tới điểm chuẩn bị thì thấy trạm đang nạp cho robot khác. Robot chờ ở đó, vào trạm khi trạm rảnh rồi nạp điện.

Trong lúc bộ phát còn tắt, máy tính có thể chưa nhận được Will Message; nó cũng theo dõi thời hạn bản tin trạng thái và giữ khu của robot để tránh giao chồng việc. Khi bộ phát Wi-Fi chạy lại, robot nối lại, đăng ký và báo trạng thái. Máy tính đối chiếu các ô đã lau rồi giao nốt phần còn lại.

Hiểu lầm thường gặp

Mất Wi-Fi thì robot dừng hẳn. Robot dừng bơm và lau, còn điều hướng về trạm chỉ chạy khi dữ liệu và năng lượng cục bộ còn đủ.

Có bản đồ chính xác thì khỏi cần điểm chuẩn bị. Vị trí ước lượng bằng odometry có thể trôi theo thời gian mà không có giới hạn, nên robot vẫn cần tín hiệu dẫn hướng gần trạm.

Mất liên kết nghĩa là robot hỏng. Đó là tình huống đã tính trước, và robot có đường đi riêng trong tình huống đó.

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

Robot lau sàn mất Wi-Fi thì làm gì?

Trong thiết kế minh họa, robot ngắt bơm, dừng lau, chỉ về trạm khi còn tuyến cục bộ, định vị và đủ pin, rồi thử nối lại; thiếu điều kiện thì đứng yên và ghi lỗi. Nó chỉ nhận việc mới sau khi đã đăng ký lại với máy tính.

Vì sao robot không về trạm ngay khi vừa mất sóng?

Wi-Fi chập chờn có thể hồi phục sau chốc lát, còn về trạm giữa lúc đang lau làm bỏ dở việc. Vì thế robot xác nhận trước, giống cách PX4 chờ một khoảng trước khi thực hiện failsafe.

Robot có tự tìm được trạm khi bị đẩy đi chỗ khác không?

Có thể, nhưng không bảo đảm. Vị trí ước lượng chỉ đáng tin khi robot tự đi, nên nếu bị bê sang chỗ khác robot có thể tới sai điểm chuẩn bị. Khi không thấy tín hiệu dẫn hướng, nó bám tường để tìm, rồi dừng và báo nếu vẫn không thấy.

Tóm tắt

  • Robot xác nhận mất liên kết từ nhiều dấu hiệu rồi mới hành động, và ngưỡng chờ là một lựa chọn đánh đổi.
  • Robot đi qua các trạng thái an toàn, về trạm, nạp và nối lại; bơm và khăn lau dừng trước khi robot di chuyển.
  • Odometry trôi theo thời gian, nên robot nhắm vào điểm chuẩn bị gần trạm rồi dùng tín hiệu dẫn hướng, và bám tường khi lạc.

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.

Keep Alive
Trong MQTT, nếu Keep Alive khác không và máy chủ không nhận được gói điều khiển nào từ máy khách trong một lần rưỡi khoảng đó, máy chủ phải ngắt kết nối như thể mạng đã hỏng.
Will Message
Bản tin mà broker MQTT lưu cho máy khách và phải phát khi kết nối của máy khách đóng lại sau đó.
hết hạn beaconbeacon timeout
Cơ chế để một trạm ESP32 phát hiện điểm truy cập Wi-Fi còn hoạt động hay không; ứng dụng đặt được thời gian không hoạt động của nó.
failsafe
Hành động an toàn được cấu hình sẵn, kích hoạt khi một sự cố như mất liên kết dữ liệu xảy ra; ở PX4, hầu hết failsafe vào chế độ Hold trước khi hành động.
watchdogwatchdog timer
Bộ định thời theo dõi hoạt động của hệ thống và tự khôi phục sau lỗi phần mềm hoặc phần cứng bằng cách khởi động lại hệ thống khi nó không phản hồi.
odometry
Cách ước lượng vị trí của robot từ một nguồn như encoder bánh xe, thị giác hoặc cảm biến quán tính (IMU); vị trí ước lượng có thể trôi theo thời gian mà không có giới hạn.
điểm chuẩn bịstaging pose
Vị trí trước trạm, đủ gần để phát hiện trạm nhưng đủ xa để có chỗ xoay trở, nơi robot tới trước khi tiến vào trạm.
bám tườngwall following
Hành vi trong đó robot gặp tường rồi đi men theo một lúc trước khi quay lại chế độ khác.

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.

Báo lỗi bài này
Xem tất cả bài của chủ đề

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.