Báo Cáo Thiết Kế Hệ Thống Cơ Điện Tử: Robot Giải Mê Cung và Đấu Trường Sumo

Chuyên khảo phân tích Báo cáo thiết kế hệ thống cơ điện tử đề tài robot giải mê cung và đấu, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu

Người đăng

Ẩn danh
56
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

1. CHƯƠNG I: TỔNG QUAN VỀ CUỘC THI ĐẤU TRƯỜNG ROBOT

1.1. Lợi ích của Robot trong lao động sản xuất

1.2. Giới thiệu về cuộc thi “Đấu trường Robot”

1.3. Cuộc thi giải mã mê cung

1.4. Hình ảnh cuộc thi đấu trường sumo

2. CHƯƠNG II: TỔNG HỢP LƯU ĐỒ GIẢI THUẬT VÀ THIẾT KẾ THUẬT TOÁN CHO ROBOT GIẢI MÊ CUNG VÀ ROBOT SUMO

2.1. Phương án giải thuật để robot có thể thoát khỏi mê cung

2.1.1. Giới thiệu thuật toán tìm kiếm theo chiều rộng (BFS)

2.1.2. Giới thiệu thuật toán tìm kiếm theo chiều sâu (DFS)

2.1.3. Sử dụng DFS và BFS để giải mê cung

2.1.4. Xây dựng lưu đồ giải thuật robot giải mê cung

2.1.4.1. Khai báo mê cung
2.1.4.2. Khai báo Robot

2.1.5. Lưu đồ khám phá mê cung với thuật toán DFS

2.1.6. Lưu đồ tìm đường đi ngắn nhất với thuật toán BFS

2.2. Phương án giải thuật cho đấu trường Sumo

2.2.1. Lưu đồ giải thuật Robot Sumo

2.3. Mô phỏng thuật toán

2.3.1. Phần mềm mô phỏng

2.3.2. Mã chương trình Robot tìm đường đi ngắn nhất

3. CHƯƠNG III: LỰA CHỌN THIẾT BỊ, XÂY DỰNG MÔ HÌNH ĐIỀU KHIỂN

3.1. Tổng quan khối chức năng hệ thống robot giải mê cung và robot sumo

3.2. Chi tiết các khối chức năng

3.2.1. Chức năng

3.2.2. Lựa chọn linh kiện

3.2.2.1. Pin 18650
3.2.2.2. Mạch ổn áp DC 3A LM2596S

3.2.3. Khối điều khiển động cơ

3.2.3.1. Chức năng
3.2.3.2. Lựa chọn linh kiện
3.2.3.2.1. Động cơ DC GA25-370 ecoder giảm tốc 280 rpm
3.2.3.2.2. Mạch điều khiển độn cơ L298N

3.2.4. Chức năng cảm biến

3.2.4.1. Cảm biến siêu âm HR04

Tóm tắt

I. Khám phá hệ thống cơ điện tử Robot giải mê cung sumo

Thiết kế hệ thống cơ điện tử là một môn học nền tảng, cung cấp kiến thức cốt lõi cho kỹ sư tương lai về kết cấu, quy trình và nguyên lý vận hành máy móc. Đồ án này tập trung vào việc ứng dụng lý thuyết vào thực tiễn thông qua việc chế tạo một robot tự hành đa năng, có khả năng thực hiện hai nhiệm vụ phức tạp: giải mê cung và thi đấu sumo. Đây không chỉ là một bài tập kỹ thuật, mà còn là một sân chơi trí tuệ, mô phỏng các cuộc thi robotics chuyên nghiệp như cuộc thi robocon, thúc đẩy sinh viên hệ thống hóa kiến thức từ nhiều môn học liên quan như Chi tiết máy, Sức bền vật liệu, Vi xử lý và Kỹ thuật số.

Dự án chế tạo robot giải mê cung và đấu trường sumo đặt ra một bài toán tổng hợp, đòi hỏi sự kết hợp nhuần nhuyễn giữa ba lĩnh vực chính: cơ khí, điện tử và lập trình. Về cơ khí, robot phải có kết cấu vững chắc, tối ưu về trọng lượng và hình dáng để vừa linh hoạt trong mê cung, vừa vững chãi trên đấu trường. Về điện tử, hệ thống mạch điện tử phải được thiết kế để cung cấp nguồn ổn định, nhận tín hiệu từ cảm biến và điều khiển cơ cấu chấp hành một cách chính xác. Cuối cùng, phần hồn của robot nằm ở thuật toán, nơi các giải pháp lập trình thông minh quyết định khả năng định vị, tìm đường và đưa ra chiến thuật thi đấu. Việc tham gia các cuộc thi như “Đấu trường Robot” là cơ hội để sinh viên tiếp cận, giao lưu và phát huy sức sáng tạo, chuẩn bị hành trang vững chắc cho cuộc cách mạng công nghiệp 4.0, nơi các hệ thống nhúngđiều khiển tự động đóng vai trò trung tâm. Do đó, việc nghiên cứu và hoàn thiện một đồ án cơ điện tử như thế này mang lại giá trị thực tiễn vô cùng to lớn.

1.1. Tổng quan cuộc thi Đấu trường Robot và lợi ích thực tiễn

Cuộc thi “Đấu trường Robot” là một sân chơi học thuật do Trường Đại học Công nghiệp TP.HCM tổ chức, tạo điều kiện cho sinh viên các trường đại học, cao đẳng trên địa bàn thành phố cọ xát và ứng dụng kiến thức. Thể lệ cuộc thi yêu cầu mỗi đội sử dụng một robot duy nhất ở chế độ tự động để vượt qua hai vòng thi: giải mê cung và đấu sumo. Vòng một thử thách khả năng định vị và thuật toán tìm đường của robot. Vòng hai kiểm tra thiết kế cơ khí và chiến thuật thi đấu. Việc tham gia không chỉ giúp sinh viên nâng cao kỹ năng chuyên môn mà còn rèn luyện kỹ năng làm việc nhóm, giải quyết vấn đề và tư duy sáng tạo trong lĩnh vực robotics.

1.2. Phân tích yêu cầu Robot đa năng cho mê cung và sumo

Thách thức lớn nhất của đề tài là thiết kế một robot tự hành duy nhất có thể đáp ứng hai yêu cầu trái ngược nhau. Đối với nhiệm vụ giải mê cung, robot cần nhỏ gọn, linh hoạt, và được trang bị hệ thống cảm biến chính xác để dò đường. Ngược lại, trong đấu trường sumo, robot cần có trọng tâm thấp, kết cấu chắc chắn và công suất động cơ lớn để đẩy được đối thủ. Do đó, bài toán thiết kế phải cân bằng giữa các yếu tố: kích thước, trọng lượng, công suất, và sự phức tạp của hệ thống điều khiển để robot có thể hoàn thành xuất sắc cả hai nhiệm vụ mà không cần thay đổi cấu trúc phần cứng.

II. Bí quyết giải thuật cho robot Giải mê cung và đấu sumo

Linh hồn của một robot tự hành nằm ở thuật toán điều khiển. Để giải quyết bài toán mê cung, việc lựa chọn một giải thuật tìm đường hiệu quả là yếuovo. Hai phương pháp phổ biến được xem xét trong dự án này là Tìm kiếm theo chiều rộng (BFS - Breadth-First Search) và Tìm kiếm theo chiều sâu (DFS - Depth-First Search). DFS có ưu điểm là khám phá sâu vào một nhánh của mê cung, rất phù hợp cho giai đoạn đầu khi robot cần lập bản đồ toàn bộ không gian. Sau khi bản đồ được thiết lập, BFS phát huy thế mạnh của mình trong việc tìm ra đường đi ngắn nhất từ điểm xuất phát đến đích. Báo cáo này đề xuất một giải pháp kết hợp: sử dụng DFS để khám phá và lập bản đồ mê cung, sau đó áp dụng BFS trên bản đồ đã có để tìm ra lộ trình tối ưu. Đối với đấu trường sumo, thuật toán tập trung vào việc phản ứng nhanh. Robot cần liên tục quét đối thủ bằng cảm biến siêu âm hoặc cảm biến hồng ngoại, đồng thời dùng cảm biến vạch để không bị đẩy ra khỏi võ đài. Lưu đồ giải thuật cho robot sumo mini thường bao gồm các trạng thái chính: tìm kiếm đối thủ, tấn công trực diện khi phát hiện, và lùi lại hoặc xoay tròn khi chạm vạch trắng. Việc lập trình robot với các thuật toán này đòi hỏi tư duy logic chặt chẽ và khả năng tối ưu hóa mã nguồn để đảm bảo tốc độ xử lý của vi điều khiển.

2.1. Phương pháp tìm đường đi ngắn nhất Thuật toán DFS BFS

Báo cáo trình bày chi tiết cách hoạt động của hai thuật toán tìm đường là DFS và BFS. DFS hoạt động bằng cách ưu tiên đi sâu vào một nhánh cho đến khi gặp ngõ cụt, sau đó quay lui. Giải thuật này hiệu quả cho việc khám phá toàn bộ mê cung. Ngược lại, BFS duyệt qua các nút theo từng cấp độ, đảm bảo tìm ra đường đi ngắn nhất trong đồ thị không có trọng số. Mô hình đề xuất sử dụng DFS để robot di chuyển và ghi nhớ lại toàn bộ cấu trúc mê cung, sau đó BFS được áp dụng trên dữ liệu bản đồ này để tính toán con đường tối ưu nhất để di chuyển đến đích.

2.2. Xây dựng lưu đồ giải thuật cho robot sumo chiến đấu tự động

Đối với robot sumo mini, lưu đồ giải thuật được xây dựng dựa trên một vòng lặp liên tục kiểm tra trạng thái từ các cảm biến. Luồng hoạt động cơ bản gồm: (1) Quét tìm đối thủ bằng cách quay tròn tại chỗ. (2) Khi cảm biến phát hiện đối thủ, robot sẽ lao thẳng về phía trước với tốc độ tối đa. (3) Đồng thời, các cảm biến vạch đặt ở rìa robot liên tục kiểm tra. Nếu phát hiện vạch trắng của sàn đấu, robot sẽ ngay lập tức lùi lại và xoay hướng để tránh bị loại. Thuật toán này đơn giản nhưng hiệu quả, ưu tiên khả năng phản xạ và tấn công.

2.3. Tầm quan trọng của mô phỏng thuật toán trước khi triển khai

Trước khi nạp chương trình vào vi điều khiển, việc mô phỏng thuật toán trên phần mềm là bước cực kỳ quan trọng. Báo cáo đề cập đến việc sử dụng một phần mềm mô phỏng chuyên dụng, cho phép nạp file mô tả mê cung và file mã chương trình (viết bằng Python cho robot). Việc mô phỏng Proteus hoặc các công cụ tương tự giúp kiểm tra lỗi logic trong thuật toán, quan sát trực quan cách robot di chuyển và tinh chỉnh các tham số mà không cần tốn thời gian và công sức thử nghiệm trên robot thật. Điều này giúp rút ngắn đáng kể thời gian phát triển và tối ưu hóa hiệu suất của robot.

III. Hướng dẫn chọn linh kiện thiết kế hệ thống cơ điện tử

Việc lựa chọn linh kiện phần cứng là nền tảng quyết định đến hiệu suất và độ ổn định của toàn bộ hệ thống. Một thiết kế hệ thống cơ điện tử hoàn chỉnh được chia thành các khối chức năng rõ ràng. Khối nguồn có nhiệm vụ cung cấp năng lượng, đòi hỏi sự ổn định và công suất đủ lớn. Dự án sử dụng hai nguồn riêng biệt: một nguồn cho động cơ DC và một nguồn cho mạch điều khiển để tránh nhiễu. Khối điều khiển trung tâm là bộ não của robot, nơi vi điều khiển ESP32 được lựa chọn nhờ hiệu năng cao, tích hợp Wi-Fi/Bluetooth và có nhiều chân GPIO. Khối cảm biến đóng vai trò là các giác quan, bao gồm cảm biến siêu âm HC-SR04 để phát hiện vật cản và đối thủ, cùng với cảm biến dò line TCRT5000 để nhận biết vạch đen/trắng trong cả hai nhiệm vụ. Khối chấp hành, trái tim của sự chuyển động, sử dụng động cơ DC giảm tốc GA25-370 có tích hợp encoder để điều khiển chính xác tốc độ và quãng đường. Để điều khiển động cơ, driver động cơ L298N được sử dụng, cho phép điều khiển tốc độ và đảo chiều quay một cách dễ dàng. Cuối cùng, khối hiển thị sử dụng màn hình LCD1602 để theo dõi trạng thái hoạt động của robot. Sự phối hợp nhịp nhàng giữa các khối này tạo nên một robot tự hành mạnh mẽ và thông minh.

3.1. Lựa chọn khối điều khiển trung tâm Vi điều khiển ESP32

ESP32 được chọn làm vi điều khiển chính cho dự án. Đây là một lựa chọn mạnh mẽ so với các dòng Arduino truyền thống, với bộ xử lý lõi kép, tốc độ xử lý cao, và số lượng chân I/O dồi dào. Các chân này hỗ trợ nhiều chức năng như ADC, DAC, PWM, I2C, phù hợp để kết nối với tất cả các loại cảm biến và cơ cấu chấp hành cần thiết cho robot. ESP32 là một hệ thống nhúng mạnh mẽ, lý tưởng cho các ứng dụng đòi hỏi xử lý phức tạp như điều khiển tự động trong robotics.

3.2. Hệ thống cảm biến Cảm biến siêu âm và cảm biến vạch

Hệ thống cảm biến là "mắt thần" của robot. Cảm biến siêu âm HC-SR04 được dùng để đo khoảng cách tới các bức tường trong mê cung và phát hiện đối thủ trong trận đấu sumo. Cảm biến này hoạt động bằng cách phát một xung siêu âm và đo thời gian phản xạ lại. Trong khi đó, cảm biến dò line (hay cảm biến vạch) TCRT5000, bao gồm một cặp LED phát và thu hồng ngoại, được sử dụng để robot đi theo vạch (nếu có) hoặc để phát hiện rìa của võ đài sumo, giúp robot không di chuyển ra ngoài khu vực thi đấu.

3.3. Thiết kế khối chấp hành Động cơ DC và driver L298N

Khối chấp hành quyết định khả năng di chuyển của robot. Động cơ DC giảm tốc GA25-370 được lựa chọn vì momen xoắn cao và tốc độ phù hợp. Để điều khiển cặp động cơ DC này, mạch cầu H L298N là một giải pháp kinh tế và hiệu quả. Driver động cơ L298N cho phép vi điều khiển thay đổi chiều quay của động cơ bằng cách đảo cực điện áp và điều chỉnh tốc độ bằng phương pháp điều chế độ rộng xung (PWM). Sự kết hợp này mang lại khả năng kiểm soát chuyển động chính xác và mạnh mẽ cho robot.

IV. Cách xây dựng mô hình robot Từ Solidworks đến Arduino

Quá trình hiện thực hóa robot từ ý tưởng đến sản phẩm hoàn thiện là một chuỗi các công đoạn kỹ thuật đòi hỏi sự chính xác cao. Bước đầu tiên là thiết kế cơ khí robot trên phần mềm CAD 3D như Solidworks. Tại đây, từng chi tiết của khung gầm, vị trí lắp đặt động cơ, cảm biến và bo mạch được mô hình hóa một cách chi tiết. Thiết kế 3D cho phép kiểm tra sự phù hợp của các bộ phận, tối ưu hóa không gian và đảm bảo kết cấu cơ khí vững chắc trước khi tiến hành gia công. Sau khi hoàn thiện thiết kế, các bộ phận được chế tạo và lắp ráp thành một mô hình robot thực tế. Giai đoạn tiếp theo là thiết kế và đấu nối mạch điện tử. Sơ đồ nguyên lý và sơ đồ đi dây có thể được vẽ bằng các phần mềm như mô phỏng Proteus để đảm bảo tất cả các linh kiện được kết nối chính xác và an toàn. Cuối cùng là phần lập trình robot, sử dụng môi trường Arduino IDE. Nền tảng này hỗ trợ mạnh mẽ cho vi điều khiển ESP32 và cung cấp một thư viện phong phú, sử dụng ngôn ngữ lập trình C/C++ cho Arduino thân thiện. Toàn bộ thuật toán điều khiển, từ đọc dữ liệu cảm biến đến xuất tín hiệu PWM, đều được triển khai trong giai đoạn này, biến một mô hình cơ khí tĩnh thành một cỗ máy tự hành thông minh.

4.1. Thiết kế cơ khí robot chi tiết trên phần mềm Solidworks

Việc sử dụng Solidworks để thiết kế cơ khí robot mang lại nhiều lợi ích. Nó cho phép mô hình hóa 3D toàn bộ robot, từ khung xe, bánh xe đến giá đỡ cảm biến. Qua đó, người thiết kế có thể dễ dàng kiểm tra các vấn đề về va chạm cơ khí, phân bố trọng lượng để hạ thấp trọng tâm (quan trọng cho robot sumo), và tối ưu hóa vị trí lắp đặt của các linh kiện điện tử để dễ dàng đi dây và bảo trì. Bản vẽ kỹ thuật chi tiết sau đó được xuất ra để phục vụ cho việc gia công chính xác.

4.2. Lập trình robot với Arduino IDE Ngôn ngữ C C

Arduino IDE là môi trường phát triển tích hợp (IDE) mã nguồn mở, được lựa chọn để lập trình robot do sự đơn giản và cộng đồng hỗ trợ lớn. Mặc dù có thể sử dụng Python cho robot trên các nền tảng như Raspberry Pi, ngôn ngữ lập trình C/C++ cho Arduino vẫn là lựa chọn phổ biến cho các hệ thống nhúng yêu cầu hiệu suất và kiểm soát phần cứng ở mức độ thấp. Các thư viện có sẵn giúp việc giao tiếp với cảm biến và driver động cơ trở nên dễ dàng hơn, cho phép người lập trình tập trung vào việc xây dựng logic và thuật toán điều khiển.

V. Kết quả thiết kế robot tự hành Mô hình và sơ đồ đấu nối

Kết quả cuối cùng của đồ án cơ điện tử là một mô hình robot tự hành hoàn chỉnh, có khả năng thực thi hai nhiệm vụ đã đề ra. Về mặt vật lý, robot được lắp ráp dựa trên bản vẽ Solidworks, tích hợp đầy đủ các khối chức năng từ nguồn, điều khiển, cảm biến đến cơ cấu chấp hành. Hệ thống mạch điện tử được đấu nối gọn gàng, tuân thủ theo sơ đồ nguyên lý đã được thiết kế trên phần mềm mô phỏng Proteus. Sơ đồ đấu nối chi tiết là tài liệu quan trọng, mô tả rõ ràng cách mỗi chân của vi điều khiển ESP32 được kết nối tới các module như driver động cơ L298N, cảm biến siêu âm, và cảm biến dò line. Việc đấu nối chính xác là yếu tố tiên quyết để hệ thống hoạt động ổn định và tránh các sự cố chập cháy. Chương trình điều khiển sau khi được kiểm thử và gỡ lỗi đã được nạp thành công vào vi điều khiển thông qua Arduino IDE. Robot sau khi hoàn thiện đã được kiểm tra thực tế trên sa bàn mê cung và đấu trường sumo, cho thấy khả năng vận hành đúng với các thuật toán đã thiết kế. Quá trình này không chỉ tạo ra một sản phẩm cụ thể mà còn là minh chứng cho việc áp dụng thành công kiến thức lý thuyết vào giải quyết một bài toán kỹ thuật phức tạp trong lĩnh vực robotics.

5.1. Mô hình robot thực tế Tích hợp cơ khí và mạch điện tử

Mô hình robot thực tế là sự kết hợp giữa khung gầm được thiết kế cơ khí robot tối ưu và hệ thống mạch điện tử được bố trí khoa học. Các cảm biến được đặt ở các vị trí chiến lược: cảm biến siêu âm ở phía trước để dò đường và đối thủ, cảm biến vạch ở dưới gầm để phát hiện ranh giới. Khối nguồn pin 18650 và các bo mạch được đặt ở trung tâm và phía dưới để hạ trọng tâm, tăng độ ổn định cho robot.

5.2. Sơ đồ đấu nối chi tiết hệ thống sử dụng phần mềm Proteus

Sơ đồ đấu nối được thiết kế trên Proteus đóng vai trò như một bản thiết kế chi tiết cho phần điện. Nó chỉ rõ từng kết nối: các chân PWM của ESP32 nối vào chân ENA, ENB của L298N; các chân tín hiệu số nối vào chân IN1-IN4 để điều khiển chiều quay; chân Trigger và Echo của cảm biến siêu âm nối vào các chân digital của ESP32; và ngõ ra analog của cảm biến dò line nối vào các chân ADC. Sơ đồ này đảm bảo quá trình lắp ráp diễn ra chính xác và dễ dàng gỡ lỗi khi có sự cố.

10/07/2025
Báo cáo thiết kế hệ thống cơ điện tử đề tài robot giải mê cung và đấu trường sumo

Trích đoạn nội dung tài liệu

CHƯƠNG I Tổng quan về cuộc thi đấu trường robot 1. Lợi ích của Robot trong lao động sản xuất Hiện nay, việc sử dụng robot trong quy trình sản xuất mang lại nhiều lợi ích đối với các doanh nghiệp. Dưới đây là một số lợi ích quan trọng của việc sử dụng robot trong sản xuất: Tăng cường Năng Suất:  Robot có khả năng làm việc liên tục 24/7 quá trình làm việc của robot thường nhanh chóng và chính xác, giảm thời gian sản xuất so với việc thực hiện bằng tay. Chất Lượng Sản Phẩm Tốt Hơn:  Robot có khả năng thực hiện các nhiệm vụ một cách chính xác và đồng nhất, giảm nguy cơ lỗi con người.

 Kiểm soát chất lượng có thể được tăng cường bằng cách sử dụng robot trong các quy trình kiểm tra và đánh giá chất lượng. An Toàn Lao Động:  Việc sử dụng robot giảm đối tượng lao động phải tham gia vào các công việc nguy hiểm và có thể gây nguy cơ cho sức khỏe của họ.  Các nhiệm vụ nguy hiểm, nặng nhọc, hoặc lặp lại có thể được chuyển giao cho robot để bảo vệ sức khỏe và an toàn của nhân viên. Giảm Chi Phí Lao Động:  Mặc dù chi phí đầu tư ban đầu cho robot có thể cao, nhưng trong thời gian dài, chúng có thể giảm chi phí lao động và tăng tính cạnh tranh của doanh nghiệp.

Tăng Cường Khả Năng Đối Phó với Độ Phức Tạp:  Robot có thể xử lý công việc phức tạp, lặp lại, và chi tiết mà con người có thể gặp khó khăn hoặc mệt mỏi khi thực hiện. Để giúp sinh viên dễ dáng tiếp cận hơn trường đã tạo ra CUỘC THI ĐẤU TRƯỜNG ROBOT nhằm tạo sân chơi trí tuệ sáng tạo, là dịp để các bạn trẻ tiếp cận, là nơi giao lưu, học tập, nâng cao kiến thức cũng như phát huy tính sáng tạo trong nghiên cứu, học tập và lao động chuẩn bị hành trang cho cuộc cách mạng công nhiệp lần thứ 4. Giới thiệu về cuộc thi “ Đấu trường Robot ” Tên gọi: Cuộc thi “Đấu trường Robot” năm 2023 Đối tượng tham gia: Là sinh viên đang theo học tại các trường Đại học, Cao đẳng, Học viện trên địa bàn Thành phố Hồ Chí Minh Đơn vị tổ chức: Trường đại học Công Nghiệp thành phố Hồ Chí Minh Tóm tắt thể lệ thi đấu: Các đội tối đa 5 thành viên sẽ thi đấu robot với nhau gồm 2 phần. Phần đầu là thi thoát khỏi mê cung.

Phần 2 là thi đấu Sumo. Một đội chỉ được dùng một Robot ở chế độ tự động cho cả 2 vòng thi.Ở phần thi thoát khỏi mê cung, Robot không thoát khỏi được mê cung sau 2 lần thi sẽ bị loại. Robot thoát được mê cung trong 2 lần thi đấu sẽ được vào vòng 2. Kết quả tốt nhất trong 2 lần sẽ được ghi nhận cho Robot.

Ở phần 2, các Robot thi đấu với nhau dựa trên cuộc thi Sumo của người Nhật. Các Robot không được phép sử dụng vũ khí và không được phép lật đổ lẫn nhau. Nhiệm vụ duy nhất của Robot trong trận đấu là đẩy Robot đội khác ra khỏi vòng tròn của sân thi đấu. Cuộc thi giải mã mê cung Hỉnh ảnh cuộc thi đấu trường sumo CHƯƠNG II Tổng hợp lưu đồ giải thuật và thiết kế thuật toán cho robot giải mê cung và robot sumo 1.

Phương án giải thuật để robot có thể thoát khỏi mê cung 1.1 Giới thiệu thuật toán tím kiếm theo chiều rộng (BFS) 1.1 Giới thiệu Thuật toán tìm kiếm theo chiều rộng (BFS): là một thuật toán tìm kiếm trong đồ thị, được sử dụng để tìm kiếm đường đi từ một đỉnh bắt đầu đến một đỉnh đích trong đồ thị không có trọng số. Cách hoạt động của BFS như sau: (1). Bắt đầu từ đỉnh bắt đầu, đánh dấu đỉnh này là “đã thăm” và thêm nó vào hàng đợi (2). Lặp lại các bước sau đó cho đến khi hàng đợi trống:  Lấy một đỉnh từ đầu hàng đợi  Kiểm tra xem đỉnh này có phải là đỉnh đích hay không.

Nếu có, thuật toán kết thúc và trả về đường đi từ đỉnh bắt đầu đến đỉnh đích.  Nếu không, thêm tất cả các đỉnh kề cận của đỉnh hiện tại mà chưa được thăm vào hàng đợi và đánh dấu chúng là “đã thăm” (3). Nếu thuật toán không tìm thấy đỉnh đích sau khi đã thăm hết tất cả các đỉnh có thể, nghĩa là không có đường đi từ đỉnh bắt đầu đến đỉnh đích. BFS đảm bảo tìm ra đường đi ngắn nhất từ đỉnh bắt đầu đến đỉnh đích trong trường hợp đồ thị không có trọng số.

Nó duyệt qua các đỉnh theo cấp độ, tức là trước tiên duyệt qua các đỉnh cách đỉnh bắt đầu 1 bước, sau đó duyệt qua các đỉnh cách đỉnh bắt đầu 2 bước và tiếp tục cho đến khi tìm thấy đỉnh đích hoặc đã thăm hết tất cả các đỉnh có thể.2 Giới thiệu thuật toán tìm kiếm theo chiều sâu DFS 1.1 Giới thiệu Thuật toán tìm kiếm theo chiều sâu (DFS) là một thuật toán tìm kiếm trong đồ thị, được sử dụng để tìm kiếm đường đi từ một đỉnh bắt đầu đến một đỉnh đích trong một đồ thị không có trọng số. Cách hoạt động của DFS: (1). Bắt đầu từ đỉnh bắt đầu, đánh dấu đỉnh này là “đã thăm” và thực hiện các hành động liên quan đến đỉnh này. Lặp lại các bước sao cho tất cả các đỉnh kề cận của đỉnh kề cận của đỉnh hiện tại mà chưa được thăm:  Chọn một đỉnh kề cận chưa được thăm  Đánh dấu đỉnh này là “đã thăm” và thực hiện các hành động liên quan đến đỉnh này  Tiếp tục thực hiện DFS từ đỉnh này (3).

Nếu không còn đỉnh kề cận nào chưa được thăm, quay lại đỉnh trước đó và tiếp tục lặp lại bước 2 cho các đỉnh kề cận khác chưa được thăm (4). Nếu đã thăm hết tất cả các đỉnh có thể mà không tìm thấy đỉnh đích, thuật toán kết thúc và không có đường đi từ đỉnh bắt đầu đến đỉnh đích DFS thường được thực hiện bằng cách sử dụng đệ quy hoặc stack để lưu trữ các đỉnh cần thăm. Nó khám phá một nhánh của đồ thị càng sâu càng tốt trước khi quay và khám phá các nhánh khác.3 Sử dụng DFS và BFS để giải mê cung 1.2 Xây dựng lưu đồ giải thuật robot giải mê cung 1.1 Khai báo mê cung Khai báo mê cung: a. Walls: Một danh sách bốn phần tử biểu diễn tường xung quanh ô, mỗi phần tử là một giá trị Boolean, nếu True thì có tường và False thì không có tường, thứ tự các phần tử biểu diễn lần lượt là tường phía Bắc, Đông, Nam, Tây của ô.

Position: Một danh sách 2 phần tử biển diễn vị trí của ô trong mê cung, phần tử đầu tiên là tọa độ x (hàng), phần tử thứ hai là tọa độ y (cột). Visited: Một giá trị bool biểu diễn việc ô đó đã được khám phá hay chưa, nếu True thì ô đã được khám phá và ngược lại False thì ô chưa được khám phá b. Phương thức (1). Thiết lập thông tin ô (set_position, set_walls, set_visited) (2).

can_move_to: kiểm tra xem có thể di chuyển tử ô này đến ô khác hay không (hai ô liền kề có liên kề nhau không và không có tường giữa chúng) Khai báo Robot: a. Location: Một đối tượng Location biểu diễn vị trí hiện tại của Robot trong mê cung (2). Parent: Một đối tượng State biểu diễn trạng thái trước đó của RoBot. Điều này giúp ta truy vết ngược lại đường đi từ trạng thái hiện tại đến trạng thái bắt đầu (3).

Action: Một số nguyên biễu diễn hành động mà robot đã thực hiện để di chuyển từ trạng thái parent đến trạng thái hiện tại. Giá trị của Action có thể là 0 (không quay), 1 (quay phải), 2 (quay đầu), 3 (quay trái) hoặc -1 là hành động rỗng. Cur_dir: một số nguyên biểu diễn hướng hiện tại của Robot b. Phương thức (1).

Thiết lập thông tin cho trạng thái (set_loc, set_par, set_act, set_cur_dir) (2). Kiểm tra xem trạng thái hiện tại có phải là trạng thái mục tiêu hay không is goal.2 Lưu đồ khám phá mê cung với thuật toán DFS 1.3 Lưu đồ tìm đường đi ngắn nhất với thuật toán BFS 2. Phương án giải thuật cho đấu trường Sumo 2.1 Lưu đồ giải thuật Robot Sumo 3. Mô phỏng thuật toán 3.1 Phần mềm mô phỏng Giao diện chính phần mềm: 2 3 1 1.

Khu vực quan sát: mô phỏng cách di chuyển của Robot trong mê cung 2. Khu vực điều khiển cơ bản (Controls): - Build: Kiểm tra lỗi của đoạn mã hiện tại được nạp trong phần mềm - Run: chạy mô phỏng - : Thanh điều chỉnh tốc độ của Robot 3. Khu vực nạp chương trình (Config) - Maze: chọn đường dẫn file mô tả mê cung - Mouse: chọn đường dẫn file chứa mã chương trình robot tìm kiếm đường đi trong mê cung 3.2 Mã chương trình Robot tìm đường đi ngắn nhất Lựa chọn ngôn ngữ Python (1). Định nghĩa class Location để lưu trữ thông tin về một ô trong mê cung Mã: class Location: def __init__(self, pos=None): self.visited = False if pos is not None: self.visited = vis def can_move_to(self, loc): return (loc.position[0] and loc.position[1] == +1 and not self.walls[0])\ or (loc.position[1] and loc.position[0] == +1 and not self.walls[1])\ or (loc.position[0] and loc.position[1] == -1 and not self.walls[2])\ or (loc.position[1] and loc.position[0] == -1 and not self.

Đinh nghĩa class State để lưu trữ trạng thái của Robot trong mê cung Mã: import location class State: def __init__(self, loc, parent=None, action=None, cur_dir=None): self.location = loc if parent is None: self.parent = self else: self.parent = parent if action is None: self.action = -1 else: self.action = action if cur_dir is None: self.cur_dir = 0 else: self.cur_dir = cur_dir def set_loc(self, loc): self.location = loc def set_par(self, par): self.parent = par def set_act(self, act): self.action = act def set_cur_dir(self, cur_dir): self.cur_dir = cur_dir def is_goal(self): return self.position == [7, 7] or self.position == [7, 8] \ or self.position == [8, 7] or self. Hàm Main ( hàm chạy chính ) import sys from queue import LifoQueue, Queue import API import location import state MAZE_WIDTH = 16 MAZE_HEIGHT = 16 cur_direction = 0 cur_position = [0, 0] maze = [[location.wallRight() walls[(cur_direction + 2) % 4] = False if cur_position == [0, 0]: walls[2] = True return walls def mark_visited_api(pos=None): if pos is None: pos = cur_position API.setText(pos[0], pos[1], "hit") def mark_solution_api(pos=None): if pos is None: pos = cur_position API.setText(pos[0], pos[1], "Sol") def mark_bfs_api(pos=None): if pos is None: pos = cur_position API.setText(pos[0], pos[1], "dfs") def mark_bktrk_api(pos=None): if pos is None: pos = cur_position API.position[0] == 1: _dir = 3 else: _dir = 1 set_dir(_dir) def dfs_map_maze(): cur_loc = maze[cur_position[0]][cur_position[1]] if not cur_loc.visited: cur_loc.set_visited(True) cur_loc.set_walls(get_walls()) mark_visited_api(cur_position) if not cur_loc.visited: loc_stack.put(maze[cur_position[0]][cur_position[1] + 1]) if not cur_loc.visited: loc_stack.put(maze[cur_position[0] + 1][cur_position[1]]) if not cur_loc.visited: loc_stack.put(maze[cur_position[0]][cur_position[1] - 1]) if not cur_loc.visited: loc_stack.put(maze[cur_position[0] - 1][cur_position[1]]) while True: if loc_stack.empty(): if not cur_position == [0, 0]: set_dir((dir_stack.get() + 2) % 4) move_forward() dfs_map_maze() return next_loc = loc_stack.get() if not next_loc.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Chắc chắn rồi, với vai trò là một chuyên gia SEO, tôi sẽ tóm tắt tài liệu và kết nối các chủ đề một cách tự nhiên để thu hút người đọc và tối ưu hóa trải nghiệm.


Tài liệu "Thiết Kế Hệ Thống Cơ Điện Tử: Robot Giải Mê Cung và Đấu Trường Sumo" là một cẩm nang thực tiễn, chi tiết dành cho những ai đam mê lĩnh vực robot và tự động hóa. Nội dung không chỉ dừng lại ở lý thuyết mà đi sâu vào quá trình thiết kế và chế tạo hoàn chỉnh hai loại robot thông minh, từ việc lựa chọn linh kiện, thiết kế cơ khí, lắp ráp mạch điện tử cho đến xây dựng thuật toán điều khiển phức tạp. Lợi ích lớn nhất mà tài liệu này mang lại là cung cấp một lộ trình học tập qua dự án trực quan, giúp người đọc nắm vững kiến thức nền tảng về cơ điện tử và áp dụng ngay vào việc tạo ra sản phẩm thực tế.

Để mở rộng hiểu biết và khám phá các ứng dụng đa dạng khác trong ngành, việc tham khảo thêm các dự án liên quan là vô cùng cần thiết. Bạn có thể bắt đầu với một ứng dụng kinh điển là Báo cáo đồ án thiết kế hệ thống cơ điện tử đề tài thiết kế chế tạo điều khiển robot dò line, một kỹ năng nền tảng quan trọng cho nhiều loại robot di động. Nếu bạn quan tâm đến các hệ thống robot công nghiệp phức tạp hơn, hãy tìm hiểu sâu hơn về Luận văn thiết kế bộ điều khiển phi tuyến cho robot hàn di động để khám phá các giải thuật điều khiển nâng cao, hoặc nghiên cứu về quy trình tính toán qua Thuyết minh đồ án hệ thống cơ điện tử đề tài tính toán thiết kế robot hàn trr. Mỗi tài liệu này sẽ mở ra một góc nhìn chuyên sâu, giúp bạn xây dựng nền tảng kiến thức vững chắc và toàn diện hơn trong lĩnh vực cơ điện tử.