Bỏ qua tới nội dung
LSLab

Mô phỏng chuyển động robot lau trong căn nhà ảo thế nào?

  • Nâng cao
  • Bài viết
  • Từ 18 tuổi
  • 8 phút đọc
Màn hình hiển thị căn hộ ảo với các robot và tuyến màu, cạnh một robot lau nhỏ trên bàn gỗ sáng.

Mô phỏng chuyển động đặt robot lau sàn vào một căn nhà ảo có vật lý. Bạn dựng nhà, mô hình robot và cảm biến giả, nối với ROS 2 và bộ điều khiển thật, rồi chạy nhiều lần xem robot phủ sàn, tránh rơi và về trạm ra sao, kể cả khi liên kết bị cắt. Mô phỏng không cho biết sàn có khô.

Mục lục
Căn nhà ảo có gầm giường, ngưỡng cửa, chân bàn, vật nằm sàn và trạm, đủ để thử robot lau.
  • Giường với khoảng trống dưới gầm
  • Ngưỡng cửa
  • Bàn có bốn chân
  • Vật nằm trên sàn
  • Trạm có một robot

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

  • So sánh các trình mô phỏng theo điều một robot nhỏ chạy trong nhà cần.
  • Dựng căn nhà ảo, robot và cảm biến giả rồi nối chúng với ROS 2 và bộ điều khiển thật.
  • Đặt tiêu chí nghiệm thu cho nhiều lần chạy và hiểu một lần đạt chứng minh được gì.

Cần biết trước

Nên đọc bài về các tầng mô phỏng của robot lau sàn và bài về đường phủ kín một phòng. Bài về mô phỏng lệnh cho drone nói về máy bay, nên bài này không lặp lại.

Nên chọn trình mô phỏng nào cho robot lau sàn nhỏ?

Chọn trình có vật lý, cảm biến mô phỏng, cầu nối tới ROS 2 và chạy được nhiều robot trong một thế giới. Theo tài liệu ROS 2, nhiều trình mô phỏng nâng cao dùng được với ROS 2, ví dụ Gazebo và Webots, và chúng cho kết quả khá thực tế nhờ mô hình vật lý của robot, cảm biến, bộ chấp hành và vật thể.

Bảng dưới ghi điều tài liệu của từng trình nói. Cột cuối là suy luận thiết kế, chưa phải kết quả đã thử.

TrìnhĐiều tài liệu nóiHợp với robot lau sàn nhỏ
GazeboCó cầu nối ros_gz_bridge giữa ROS 2 và Gazebo TransportCó sẵn đường nối với bộ điều khiển
WebotsMôi trường phát triển để dựng mô hình, lập trình và mô phỏng robotHợp khi cần môi trường trọn gói
MuJoCoĐộng cơ vật lý đa dụng cho nghiên cứu robot họcMạnh về vật lý, cần dựng thêm phần nhà và cảm biến
Isaac SimKiểm chứng phần mềm robot với ROS 2Hợp khi cần cảnh phức tạp
CoppeliaSimThử và kiểm chứng hệ robot phức tạp qua thử thuật toán và bản sao sốHợp khi cần thử nhanh thuật toán

Với robot dẫn động vi sai trong nhà, Gazebo đủ các mảnh cần cho đội robot: bộ điều khiển vi sai gắn được vào mô hình có số bánh trái và phải bất kỳ, cảm biến mô phỏng và cầu nối ROS 2. Đây là lý do chọn để minh họa, không phải kết luận cho mọi dự án.

Nhiều trình mô phỏng đi qua vài bộ lọc, và chỉ trình hợp với yêu cầu mới ở lại.
  • Các trình mô phỏng ứng viên
  • Ba bộ lọc yêu cầu
  • Trình được chọn

Dựng căn nhà ảo, robot và cảm biến giả thế nào?

Dựng một thế giới mô tả bằng SDF, đặt vào đó nhà, robot và các cảm biến. Một thế giới mô tả bằng SDF có thể chứa nhiều mô hình robot, nên đội robot nằm chung một cảnh.

Căn nhà ảo nên có đúng những thứ làm robot lau sàn khó: gầm giường với khe hở đã đo, ngưỡng cửa, chân bàn ghế và vài vật nằm trên sàn như dây hay giày. Cầu thang hay mép bậc cũng cần có, vì robot phải không rơi.

Robot là một mô hình thấp với hai bánh dẫn động vi sai. Cảm biến lấy theo hướng dẫn cảm biến của Gazebo, thêm IMU, cảm biến tiếp xúc và lidar vào robot. Trong thiết kế minh họa, cảm biến đo xa phía trước là một lidar mô phỏng cho vài tia, còn cảm biến chống rơi là một tia hướng xuống sàn. Bánh có thể trượt so với sàn; encoder vẫn đo vòng bánh, còn IMU có nhiễu. Trong mô hình, thêm trượt ở tiếp xúc bánh–sàn thay vì coi encoder tự trượt.

Nhiễu cần thêm có chủ ý. Một khảo sát về khoảng cách thực tế cho biết mô phỏng cảm biến độ sâu thường giả định phép chiếu lý tưởng và hay bỏ qua nhiễu thật như nhiễu lượng tử hóa và bóng độ sâu. Cảm biến giả quá sạch làm bài thử dễ hơn thực tế.

Tia trước và tia xuống mô phỏng vật cản và mép bậc; bánh trượt trên sàn, còn encoder và IMU có sai số đo.
  • Tia đo xa phía trước tới vật cản
  • Tia chống rơi tại mép bậc
  • IMU trong thân
  • Bánh có encoder và vệt trượt

Nối trình mô phỏng với ROS 2 và bộ điều khiển thật ra sao?

Nối qua cầu nối, để chương trình điều khiển thật chạy mà không biết nó đang nói chuyện với mô phỏng. Cầu nối ros_gz_bridge trao đổi bản tin giữa ROS 2 và Gazebo Transport, nên cảm biến giả đi vào ROS 2 và lệnh bánh đi ngược lại.

Với đội robot, mỗi robot ảo có tên và kênh bản tin riêng; đồng hồ mô phỏng phải được dùng thống nhất ở bộ điều khiển và bộ kiểm thử để tạm dừng hay chạy nhanh không làm sai thời hạn. Trong mô hình này, và bộ điều khiển trung tâm thấy chúng như thấy robot thật. Liên kết Wi-Fi giữa máy tính và robot được thay bằng một kênh trong mô phỏng. Nhờ đó có thể chèn một lần cắt liên kết vào đúng giây mong muốn.

Lau ẩm không nằm trong mô phỏng này. Bài này không dựng vật lý khăn ẩm; thay vào đó mô phỏng ghi lại những ô sàn robot đã đi qua thành một bản đồ ô đã được khăn đi qua theo mô hình, cùng độ bất định vị trí. Đây là phủ hình học, không xác nhận ô đã sạch. Độ ướt, độ khô và độ bám của khăn chỉ đo được trên mẫu thật.

Cảnh ảo đi qua cầu nối vào ROS 2 rồi tới bộ điều khiển thật, và liên kết cuối có thể bị cắt trong bài thử.
  • Thế giới ảo có ba robot
  • Cầu nối
  • Mạng nút ROS 2
  • Chương trình điều khiển thật
  • Chỗ cắt liên kết

Khoảng cách với thực tế lớn cỡ nào và nghiệm thu thế nào?

Khoảng cách luôn còn, nên mô phỏng chỉ dùng để loại lỗi sớm. Tài liệu ROS 2 kỳ vọng điều quan sát trong mô phỏng rất gần với điều thu được khi chuyển bộ điều khiển sang robot thật. Khảo sát nói trên định nghĩa khoảng cách thực tế là sự khác nhau giữa môi trường mô phỏng và môi trường thật về động lực học, nhận biết và cảm biến, truyền động và điều khiển, và thiết kế hệ thống. Cả hai đều đúng ở mức khác nhau: gần ở chỗ phần mềm điều khiển, còn xa ở sàn, bánh và cảm biến thật.

Nghiệm thu bằng nhiều lần chạy với điều kiện đặt trước, mỗi lần đo cùng các chỉ số. Đây là đề xuất thiết kế:

Chỉ sốĐiều kiện đạt
Phủ sànTỷ lệ phủ hình học đạt mức đặt trước trên vùng đích chốt từ đầu; báo riêng diện tích bị chặn, không xóa khỏi mẫu số
RơiKhông lần chạy nào có robot vượt mép bậc
Vào trạmMọi robot vào trạm thành công, nhiều lần chạy liên tiếp
Cắt liên kếtRobot dừng bơm và bánh; chỉ về khi còn tuyến, định vị và pin, nếu không thì chờ an toàn; đối chiếu trạng thái khi nối lại

Một lần chạy đạt chỉ cho biết kịch bản đó qua được. Cần nhiều lần với vị trí xuất phát và vật cản thay đổi, và cần nhìn cả những lần hỏng. Chạy đạt trong mô phỏng cho phép làm mẫu; nó chưa cho biết sàn thật có khô.

Nhiều lần chạy cho thấy tỷ lệ đạt, cả những lần hỏng và những lần có cắt liên kết.
  • Lần chạy đạt
  • Lần chạy hỏng
  • Lần chạy có cắt liên kết

Ví dụ trong đời sống

Đây là kịch bản thiết kế. Một robot ảo xuất phát ở trạm, đi tới giường và chui vào khe gầm để lau. Cảm biến đo xa giả báo chân giường, tia hướng xuống báo sàn còn đủ.

Giữa chừng, bài thử cắt liên kết giữa bộ điều khiển và robot. Robot ngừng nhận lệnh, dừng bơm, chuyển sang trạng thái an toàn rồi quay ra khỏi gầm, qua ngưỡng cửa và về trạm theo tuyến cục bộ và định vị còn hợp lệ. Một lượt thử khác xóa dữ liệu định vị và yêu cầu robot dừng tại chỗ thay vì vẫn đi về. Bộ ghi lại ô đã lau trước khi cắt, và sau khi liên kết trở lại, bộ điều khiển giao phần còn lại. Lần chạy ghi nhận robot vào trạm, không rơi và phủ đủ ô. Lần chạy khác, cùng cảnh nhưng dây đặt chặn lối vào gầm, kết thúc với một ô bị chặn mà robot báo.

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

Mô phỏng đạt nghĩa là robot thật đạt. Mô phỏng và thật khác nhau về động lực học, cảm biến và truyền động, nên đạt trong mô phỏng chỉ loại được lỗi sớm.

Cảm biến giả cho số đo giống cảm biến thật. Mô phỏng thường bỏ qua nhiễu thật; phải thêm nhiễu và độ trượt có chủ ý.

Mô phỏng chuyển động cho biết sàn có khô. Vật lý khăn ẩm không được dựng ở đây, nên độ khô chỉ đo trên mẫu thật.

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

Nên dùng Gazebo hay Webots để mô phỏng robot lau sàn?

Cả hai đều được tài liệu ROS 2 nêu là dùng được với ROS 2. Bài này chọn Gazebo để minh họa vì có cầu nối ROS 2, bộ điều khiển vi sai và cảm biến. Nếu bạn đã quen Webots, nó vẫn là lựa chọn hợp lệ.

Mô phỏng nhiều robot cùng lúc có được không?

Được, vì một thế giới Gazebo có thể chứa nhiều mô hình robot. Số robot chạy mượt phụ thuộc máy tính, nên cần thử trên máy của bạn.

Cần chạy bao nhiêu lần để coi là đạt?

Không có con số chung. Đặt số lần và tỷ lệ đạt theo rủi ro bạn chấp nhận, rồi thay vị trí xuất phát và vật cản giữa các lần.

Tóm tắt

  • Chọn trình mô phỏng có vật lý, cảm biến, cầu nối ROS 2 và nhiều robot; Gazebo đủ các mảnh đó.
  • Dựng nhà ảo có gầm, ngưỡng, mép bậc và vật cản, thêm nhiễu cho cảm biến giả, và nối bộ điều khiển thật qua cầu nối.
  • Nghiệm thu bằng nhiều lần chạy, kể cả cắt liên kết; lau ẩm và độ khô chỉ đo được trên mẫu thật.

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.

Trình mô phỏngSimulator
Phần mềm dựng một thế giới ảo có mô hình vật lý của robot, cảm biến và vật thể để chạy thử bộ điều khiển.
Khoảng cách thực tếReality gap
Sự khác nhau giữa môi trường mô phỏng và môi trường thật về động lực học, cảm biến, truyền động và thiết kế hệ thống.
Dẫn động vi saiDifferential drive
Cách lái robot bằng hai bánh bên trái và bên phải quay với tốc độ khác nhau, dùng được trong mô phỏng như một bộ điều khiển gắn vào mô hình.
Cầu nốiBridge
Thành phần chuyển bản tin qua lại giữa hai hệ, ở đây giữa ROS 2 và Gazebo Transport.
SDF
Định dạng mô tả một thế giới mô phỏng, có thể chứa nhiều mô hình robot.
Động cơ vật lýPhysics engine
Phần mềm tính chuyển động và va chạm của các vật trong mô phỏng.

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.