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ô 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
- 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ói | Hợp với robot lau sàn nhỏ |
|---|---|---|
| Gazebo | Có cầu nối ros_gz_bridge giữa ROS 2 và Gazebo Transport | Có sẵn đường nối với bộ điều khiển |
| Webots | Môi trường phát triển để dựng mô hình, lập trình và mô phỏng robot | Hợ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ọc | Mạnh về vật lý, cần dựng thêm phần nhà và cảm biến |
| Isaac Sim | Kiểm chứng phần mềm robot với ROS 2 | Hợp khi cần cảnh phức tạp |
| CoppeliaSim | Thử 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.
- 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 đ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.
- 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àn | Tỷ 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ơi | Không lần chạy nào có robot vượt mép bậc |
| Vào trạm | Mọ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ết | Robot 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ô.
- 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.
Có thể bạn cũng quan tâm
Trung cấpMô phỏng mạch điện robot lau sàn bằng công cụ nào?
Mô phỏng mạch điện cho robot lau sàn: công cụ SPICE, mạch nào đáng thử, cách đọc kết quả đạt hay không và điều nó chưa thay được.
Robotics (Robot học)7 phút đọc
Trung cấpMô phỏng robot lau sàn cần kiểm những tầng nào?
Bốn tầng mô phỏng cho robot lau sàn: mạch điện, firmware, chuyển động và cả đội; mỗi tầng kiểm được gì, tiêu chí đạt và khi nào nên làm mẫu.
Robotics (Robot học)7 phút đọc
Nâng caoNhiều robot lau chia khu vực và dùng chung trạm thế nào?
Cách một đội robot lau chia sàn thành khu vực, giao khu cho từng robot, xếp hàng dùng chung trạm và giao lại khu khi một robot hỏng.
Robotics (Robot học)8 phút đọc
Trung cấpLàm sao robot lau nhận ra khu vực bừa bộn để báo người?
Cách robot lau gộp va chạm, kẹt, ô không tới được và ảnh chụp thành điểm bừa bộn của từng khu vực, rồi báo người đúng lúc, ít báo nhầm.
Trí tuệ nhân tạo (AI)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.
- Simulators (ROS 2 Jazzy documentation)(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
- Use ROS 2 to interact with Gazebo(mở trong thẻ mới)
GazeboBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- Sensors (Gazebo documentation)(mở trong thẻ mới)
GazeboBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- DiffDrive class reference (Gazebo Sim)(mở trong thẻ mới)
GazeboBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- Spawn URDF (Gazebo documentation)(mở trong thẻ mới)
GazeboBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- MuJoCo overview(mở trong thẻ mới)
MuJoCo DocumentationBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- What Is Isaac Sim?(mở trong thẻ mới)
NVIDIABậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- CoppeliaSim robot simulator(mở trong thẻ mới)
Coppelia RoboticsBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- Webots: open-source robot simulator(mở trong thẻ mới)
Cyberbotics (GitHub)Bậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
- The Reality Gap in Robotics: Challenges, Solutions, and Best Practices(mở trong thẻ mới)
arXivBậc C: nguồn khácĐọc ngày 2 tháng 11, 2026
