Xây Dựng Hệ Thống Robot Đánh Cờ Vua

Khám phá đồ án tốt nghiệp về hệ thống robot đánh cờ vua, ứng dụng công nghệ AI trong việc phát triển trí tuệ nhân tạo và tự động hóa.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2024

87
14
1

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

TÓM TẮT

MỤC LỤC

1. CHƯƠNG 1: TỔNG QUAN

1.1. GIỚI THIỆU

1.2. MỤC TIÊU ĐỀ TÀI

1.3. GIỚI HẠN ĐỀ TÀI

1.4. PHƯƠNG PHÁP NGHIÊN CỨU

1.5. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

1.6. BỐ CỤC QUYỂN BÁO CÁO

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. GIỚI THIỆU VỀ STOCKFISH

2.2. GIỚI THIỆU MẠNG NƠ RON THẦN KINH CÓ THỂ CẬP NHẬT HIỆU QUẢ (EFFICIENTLY UPDATABLE NEURAL NETWORKS - NNUE)

2.2.1. Khái niệm mạng nơ ron thần kinh có thể cập nhật hiệu quả (NNUE)

2.2.2. Kiến trúc mạng nơ ron thần kinh có thể cập nhật hiệu quả (NNUE)

2.2.2.1. Kiến trúc HalfKP
2.2.2.2. Kiến trúc HalfKA

2.2.3. Các lớp NNUE trong hoạt động

2.3. THƯ VIỆN PHẦN MỀM NGUỒN MỞ VỀ THỊ GIÁC MÁY TÍNH VÀ HỌC MÁY (OPEN SOURCE COMPUTER VISION LIBRARY-OPENCV)

2.4. GIỚI THIỆU ĐỘNG HỌC THUẬN VÀ ĐỘNG HỌC NGƯỢC

3. CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ROBOT ĐÁNH CỜ VUA

3.1. THIẾT KẾ PHẦN CỨNG

3.1.1. Sơ đồ khối hệ thống robot đánh cờ vua

3.1.2. Linh kiện phần cứng

3.1.3. Thi công phần cứng

3.1.3.1. Các bộ phận của mô hình robot trên phần mềm 3D view
3.1.3.2. Bộ phận robot trong thực tế
3.1.3.3. Lắp ráp linh kiện
3.1.3.4. Chuẩn hóa bàn cờ vua

3.2. THIẾT KẾ PHẦN MỀM

3.2.1. Sơ đồ hệ thống quá trình xử lý của hệ thống

3.2.2. Lưu đồ giải thuật chương trình chính của hệ thống

3.2.3. Phần mềm di chuyển robot

3.2.3.1. Khái quát công thức của mô hình
3.2.3.2. Áp dụng công thức vào chương trình thực tế của đề tài

3.2.4. Phần mềm nhận diện nước cờ và xác định bước đi tiếp theo

3.2.4.1. Khái quát xử lý và hiệu chỉnh ảnh của OpenCV
3.2.4.2. Nhận diện nước cờ (vị trí các quân cờ)
3.2.4.3. Xác định bước đi tiếp theo
3.2.4.4. Các bước thực hiện trong chương trình thực tế

3.2.5. Phần mềm xử lý nước cờ

4. CHƯƠNG 4: KẾT QUẢ

4.1. KẾT QUẢ THỰC HIỆN MÔ HÌNH

4.1.1. Kết quả phần cứng

4.1.2. Kết quả hoạt động

4.1.2.1. Xác định tọa độ gốc
4.1.2.2. Người dùng đánh cờ với hệ thống

4.2. ĐÁNH GIÁ MÔ HÌNH

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. KẾT LUẬN

5.2. HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Hệ Thống Robot Đánh Cờ Vua

Hệ thống robot đánh cờ vua đang trở thành một trong những ứng dụng thú vị nhất của công nghệ hiện đại. Với sự phát triển của robot đánh cờ vua, việc tạo ra một hệ thống có khả năng chơi cờ vua không chỉ giúp nâng cao trải nghiệm giải trí mà còn là một thách thức trong lĩnh vực hệ thống nhúngIoT. Đề tài này sẽ khám phá các khía cạnh quan trọng trong việc xây dựng một robot có khả năng chơi cờ vua với độ chính xác cao.

1.1. Lịch Sử Phát Triển Robot Đánh Cờ Vua

Robot đánh cờ vua đã có một lịch sử dài, từ những mô hình đơn giản đến những hệ thống phức tạp hiện nay. Các công nghệ như trí tuệ nhân tạocác thuật toán chơi cờ đã được áp dụng để cải thiện khả năng của robot.

1.2. Tầm Quan Trọng Của Robot Trong Giáo Dục

Việc sử dụng robot đánh cờ vua trong giáo dục không chỉ giúp học sinh phát triển tư duy logic mà còn khuyến khích sự sáng tạo. Hệ thống này có thể được sử dụng như một công cụ giảng dạy hiệu quả trong các lớp học.

II. Thách Thức Trong Việc Xây Dựng Hệ Thống Robot Đánh Cờ Vua

Xây dựng một hệ thống robot đánh cờ vua không phải là điều dễ dàng. Có nhiều thách thức cần phải vượt qua, từ việc thiết kế phần cứng đến phát triển phần mềm điều khiển. Các vấn đề như công nghệ cảm biếnthuật toán chơi cờ là những yếu tố quan trọng cần được xem xét.

2.1. Thiết Kế Phần Cứng Cho Robot

Phần cứng của robot cần được thiết kế sao cho có thể thực hiện các động tác chính xác. Các linh kiện như động cơ bước và cảm biến là rất quan trọng trong việc đảm bảo robot có thể di chuyển và thực hiện các nước đi một cách chính xác.

2.2. Phát Triển Phần Mềm Điều Khiển

Phần mềm điều khiển là bộ não của robot. Việc phát triển phần mềm này bao gồm việc tích hợp các thuật toán chơi cờ và xử lý hình ảnh để nhận diện vị trí quân cờ trên bàn cờ.

III. Phương Pháp Thiết Kế Hệ Thống Robot Đánh Cờ Vua

Để xây dựng một hệ thống robot đánh cờ vua hiệu quả, cần áp dụng các phương pháp thiết kế hiện đại. Việc sử dụng IoT trong robot giúp kết nối và điều khiển robot từ xa, mang lại sự tiện lợi cho người dùng.

3.1. Sử Dụng Công Nghệ IoT Trong Robot

Công nghệ IoT cho phép robot kết nối với internet, từ đó có thể nhận lệnh và gửi dữ liệu về trạng thái hoạt động. Điều này giúp người dùng có thể theo dõi và điều khiển robot từ xa.

3.2. Tích Hợp Trí Tuệ Nhân Tạo Vào Robot

Việc tích hợp trí tuệ nhân tạo vào robot giúp cải thiện khả năng phân tích và đưa ra quyết định trong các nước đi. Các thuật toán như Alpha-Beta PruningMinimax Search được sử dụng để tối ưu hóa quá trình chơi cờ.

IV. Ứng Dụng Thực Tiễn Của Hệ Thống Robot Đánh Cờ Vua

Hệ thống robot đánh cờ vua không chỉ có giá trị trong lĩnh vực giải trí mà còn có nhiều ứng dụng thực tiễn khác. Nó có thể được sử dụng trong các cuộc thi cờ vua, trong giáo dục, và thậm chí trong nghiên cứu về trí tuệ nhân tạo.

4.1. Ứng Dụng Trong Giáo Dục

Robot đánh cờ vua có thể được sử dụng như một công cụ giảng dạy trong các lớp học, giúp học sinh phát triển tư duy chiến lược và kỹ năng giải quyết vấn đề.

4.2. Ứng Dụng Trong Nghiên Cứu

Hệ thống này cũng có thể được sử dụng trong nghiên cứu về trí tuệ nhân tạocác thuật toán chơi cờ, giúp các nhà nghiên cứu phát triển các phương pháp mới trong lĩnh vực này.

V. Kết Luận Và Hướng Phát Triển Tương Lai Của Hệ Thống Robot Đánh Cờ Vua

Hệ thống robot đánh cờ vua có tiềm năng lớn trong việc phát triển công nghệ và ứng dụng trong nhiều lĩnh vực khác nhau. Tương lai của hệ thống này hứa hẹn sẽ mang lại nhiều cải tiến và ứng dụng mới.

5.1. Tiềm Năng Phát Triển Công Nghệ

Với sự phát triển không ngừng của công nghệ, hệ thống robot đánh cờ vua có thể được cải tiến để trở nên thông minh hơn và có khả năng chơi cờ với độ chính xác cao hơn.

5.2. Hướng Nghiên Cứu Mới

Các nghiên cứu mới về trí tuệ nhân tạocác thuật toán chơi cờ sẽ mở ra nhiều cơ hội cho việc phát triển hệ thống robot đánh cờ vua trong tương lai.

10/07/2025
Đồ án tốt nghiệp xây dựng hệ thống robot đánh cờ vua

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

Chương 1 GIỚI THIỆU: giới thiệu chung về đề tài, mục tiêu nghiên cứu, giới hạn đề tài, phương pháp nghiên cứu, đối tượng và phạm vi nghiên cứu. - Chương 2 CƠ SỞ LÝ THUYẾT: giới thiệu về tình hình nghiên cứu, hướng nghiên cứu, các công nghệ đang được sử dụng liên quan đến chơi cờ. - Chương 3 THIẾT KẾ HỆ THỐNG: trình bày mô hình tổng quan của hệ thống, các khối của hệ thống, thiết kế chi tiết từng khối và các thiết bị được sử dụng trong từng khối, các phần mềm sử dụng trong hệ thống. - Chương 4 KẾT QUẢ: trình bày kết quả thực hiện của mô hình hệ thống, bao gồm cả việc chơi cờ và đánh giá hiệu suất của robot.

- Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: rút ra các kết luận từ nghiên cứu, và đề xuất các hướng phát triển tiếp theo. 2 Chương 2 CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ STOCKFISH 2.1 Khái niệm Stockfish là một chương trình cờ vua mạnh nhất thế giới, được phát triển bởi một nhóm lập trình viên tình nguyện từ khắp nơi trên thế giới. Nó được coi là một trong những hệ thống trí tuệ nhân tạo mạnh nhất hiện nay, luôn đứng đầu các giải đấu cờ vua máy tính. 1 Logo chương trình cờ vua Stockfish [16] Stockfish sử dụng một số thuật toán chính để đạt được sức mạnh cờ vua phi thường của mình: • Thuật toán Alpha-Beta Pruning: Đây là một thuật toán tìm kiếm cây, cho phép Stockfish xem xét một không gian tìm kiếm lớn một cách hiệu quả hơn so với các thuật toán tìm kiếm cổ điển khác.

• Quản lý bộ nhớ và cache: Stockfish sử dụng các kỹ thuật quản lý bộ nhớ tinh vi để tối ưu hóa tốc độ truy xuất dữ liệu, giúp nó có thể phân tích vị thế cờ nhanh chóng. • Đánh giá vị thế (Position Evaluation): Stockfish sử dụng một hàm đánh giá vị thế cực kỳ phức tạp, bao gồm hàng trăm tham số được tinh chỉnh thông qua huấn luyện trên dữ liệu ván cờ. 3 • Quản lý cây tìm kiếm (Minimax Search): Stockfish sử dụng các kỹ thuật như transposition tables, history heuristics và killer moves để quản lý và tối ưu hóa cây tìm kiếm, giúp tăng tốc độ tính toán. Bắt đầu với Stockfish 12 (2020), chức năng đánh giá bảng mạng thần kinh đã được tích hợp.2 Biểu đồ đánh giá quá trình phát triển theo thời gian của Stockfish Chương trình cờ vua Stockfish chiếm lĩnh top 1 trong nhiều năm do sự cải tiến thuật toán và áp dụng mô hình nơ ron mới dành riêng cho đánh cờ vua.

Sự tiến bộ Elo của Stockfish trong hành trình 10 năm đầu được thể hiển qua hình sau: Hình 2. 2 Sơ đồ thể hiện sự tiến bộ điểm Elo của Stockfish theo thời gian trong hơn 10 năm qua [18] 4 2.2 GIỚI THIỆU MẠNG NƠ RON THẦN KINH CÓ THỂ CẬP NHẬT HIỆU QUẢ (EFFICIENTLY UPDATABLE NEURAL NETWORKS - NNUE) 2.1 Khái niệm mạng nơ ron thần kinh có thể cập nhật hiệu quả (NNUE) Mạng nơ ron thần kinh có thể cập nhật hiệu quả (NNUE) là một kiến trúc mạng nơ- ron tận dụng sự thay đổi tối thiểu trong các đầu vào của mạng giữa các lần đánh giá liên tiếp. Nó được phát minh cho Shogi bởi Yu Nasu, được tích hợp vào YaneuraOu do Motohiro Isozaki phát triển vào tháng 5 năm 2018, và sau đó được đưa vào cờ vua cho Stockfish bởi Hisayori Noda vào tháng 6 năm 2019, nhưng có thể áp dụng cho nhiều trò chơi ván bài khác và thậm chí là trong các lĩnh vực khác. NNUE hoạt động dựa trên các nguyên tắc sau: [1][3] ● Mạng nên có số lượng đầu vào không phải 0 tương đối thấp.

● Các đầu vào nên thay đổi càng ít càng tốt giữa các lần đánh giá liên tiếp. ● Mạng nên đơn giản đủ để hỗ trợ suy luận độ chính xác thấp trong miền số nguyên. Tuân theo nguyên tắc 1 có nghĩa là khi mạng được mở rộng quy mô, đầu vào phải trở nên thưa thớt. Các kiến trúc tốt nhất hiện tại có mức độ thưa thớt đầu vào khoảng 0,1%.

Số lượng đầu vào không phải 0 nhỏ đặt ra một giới hạn trên thời gian cần thiết để đánh giá mạng trong trường hợp phải đánh giá toàn bộ. Đây là lý do chính khiến các mạng NNUE có thể lớn nhưng vẫn rất nhanh để đánh giá [1]. Tuân theo nguyên tắc 2 (với giả định rằng nguyên tắc 1 được tuân thủ) tạo ra một cách để hiệu quả cập nhật mạng (hoặc ít nhất là một phần tốn kém của nó) thay vì phải đánh giá lại toàn bộ. Điều này tận dụng việc một nước đi duy nhất chỉ thay đổi trạng thái bàn cờ một chút.

Điều này kém quan trọng hơn nguyên tắc thứ nhất và hoàn toàn không bắt buộc đối với các cài đặt để tận dụng, nhưng tuy nhiên vẫn mang lại một sự cải thiện đáng kể trong các cài đặt quan tâm đến việc sử dụng điều này [1]. Tuân theo nguyên tắc 3 cho phép đạt được hiệu suất tối đa trên phần cứng phổ biến và khiến mô hình đặc biệt phù hợp với suy luận CPU thời gian thực, điều này cần thiết cho các máy chơi cờ truyền thống [1]. Nhìn chung, các nguyên tắc NNUE cũng có thể áp dụng cho các mạng sâu tốn kém, nhưng chúng thể hiện rõ ràng trong các mạng nông nhanh, phù hợp với suy luận CPU thời 5 gian thực mà không cần batching và gia tốc. Hiệu suất mục tiêu là hàng triệu lần đánh giá mỗi giây mỗi luồng.

Đây là một trường hợp sử dụng cực đoan yêu cầu các giải pháp cực đoan, và quan trọng nhất là việc định lượng [1][2].2 Kiến trúc mạng nơ ron thần kinh có thể cập nhật hiệu quả (NNUE) Mạng nơ ron bao gồm bốn lớp. Lớp đầu vào được tham số hóa quá mức, nhận vào biểu diễn bàn cờ cho tất cả các vị trí quân vua của mỗi bên [18].1 Kiến trúc HalfKP Cấu trúc HalfKP bao gồm hai nửa, mỗi nửa tương ứng với một trong hai quân vua, giao thoa với nữa lớp ẩn đầu tiên về di chuyển hoặc không di chuyển. Với mỗi vị trí quân vua đen hoặc trắng, 10 quân không phải vua trên ô tương ứng là các đầu vào boolean {0,1}, cùng với một phần dư từ cờ Shogi (BONA_PIECE_ZERO), tổng cộng 64 x (64 x 10 + 1) = 41.024 đầu vào cho mỗi nửa, được nhân với một véc-tơ trọng số 16 bit để tạo ra 256 đầu ra cho mỗi nửa, tổng cộng 256 x 41. Như Ronald de Man đã nhấn mạnh trong một cuộc thảo luận trên diễn đàn CCC, các trọng số đầu vào được sắp xếp theo cách mà cấu hình quân cờ đảo ngược màu trong cả hai nửa chia sẻ cùng một chỉ số.

Tuy nhiên, và điều này cũng có vẻ là một phần dư từ cờ Shogi với đối xứng quay 180 độ trên bàn cờ 9x9, thay vì lật đứng (xor 56), việc xoay (xor 63) được áp dụng [18]. Hiệu quả của NNUE là do việc cập nhật dần đầu ra của lớp đầu vào trong các bước di chuyển, nơi chỉ một phần nhỏ các neuron cần được xem xét trong trường hợp di chuyển không phải vua. Ba lớp còn lại với 2x256x32, 32x32 và 32x1 trọng số thì tính toán ít tốn kém hơn, các lớp ẩn áp dụng kích hoạt ReLu, được tính toán tốt nhất bằng cách sử dụng các hướng dẫn SIMD phù hợp thực hiện tính toán véc-tơ số nguyên 8 bit/16 bit nhanh chóng, như MMX, SSE2 hoặc AVX2 trên x86/x86-64, hoặc, nếu có sẵn, AVX-512 [18]. 3 Các lớp NNUE trong hoạt động [18] Theo giải thích của Ronald de Man, người đã thực hiện việc port NNUE của Stockfish sang CFish [18]: • Bộ tích lũy (accumulator) có một nửa "vua trắng" và một nửa "vua đen", trong đó mỗi nửa là một vector 256 phần tử của các số nguyên 16-bit, tương đương với tổng của các trọng số của các đặc trưng "hoạt động" (pt, sq, ksq) cộng với một vector 256 phần tử của các độ lệch 16-bit.

• Bước "biến đổi" (transform) của việc đánh giá NNUE tạo ra một vector 512 phần tử của các số nguyên 8-bit, trong đó nửa đầu được tạo ra từ vector 256 phần tử của phía đi và nửa sau được tạo ra từ vector 256 phần tử của phía kia. Trong bước này, các phần tử 16-bit được cắt/giới hạn (clip/clamp) về một giá trị từ 0 đến 127. Đây là đầu ra của lớp đầu vào. • Vector 512 phần tử 8-bit này sau đó được nhân với một ma trận 32x512 các trọng số 8-bit để thu được một vector 32 phần tử các số nguyên 32-bit, và sau đó cộng thêm một vector các độ lệch 32-bit.

Các giá trị tổng này được chia cho 64 và cắt/giới 7 hạn về một vector 32 phần tử các số nguyên 8-bit từ 0 đến 127. Đây là đầu ra của lớp ẩn thứ nhất. • Vector 32 phần tử 8-bit thu được này được nhân với một ma trận 32x32 các trọng số 8-bit để thu được một vector 32 phần tử các số nguyên 32-bit, và sau đó cộng thêm một vector các độ lệch 32-bit khác. Các giá trị nguyên này lại được chia cho 64 và cắt/giới hạn về 32 số nguyên 8-bit từ 0 đến 127.

Đây là đầu ra của lớp ẩn thứ hai. • Vector 32 phần tử 8-bit này sau đó được nhân với một ma trận 1x32 các trọng số 8- bit (tức là thực hiện phép nhân vô hướng của hai vector). Điều này tạo ra một giá trị 32-bit, và một độ lệch 32-bit được cộng vào. Đây là đầu ra của lớp đầu ra.

• Đầu ra của lớp đầu ra được chia cho FV_SCALE = 16 để tạo ra đánh giá NNUE. Đánh giá của Stockfish sau đó thực hiện một số bước tiếp theo như cộng thêm một điểm thưởng Tempo (mặc dù đánh giá NNUE đã bao gồm thông tin về phía đi trong bước "biến đổi") và thu hẹp đánh giá về không khi rule50_count() tiến gần đến 50 nước.2 Kiến trúc HalfKA Trong các phiên bản Stockfish tiếp theo, kiến trúc mạng lưới đã được cải thiện thêm bởi Tomasz Sobczyk và cộng sự. Kiến trúc HalfKA sử dụng 12x64x64 = 45056 đầu vào cho mỗi trong 12 loại quân cờ, nhân với 64 ô vuông cho mỗi trong 64 ô của vua của mình, nhân với 2 vì cả hai phía đi và phía đối thủ, sử dụng lật dọc thay vì xoay HalfKP. HalfKAv2 được áp dụng trong Stockfish 14 tiết kiệm một số không gian khi xem xét sự dư thừa của ô vua bằng cách sử dụng 11x64x64 = 45056 đầu vào mỗi bên, được ánh xạ vào bộ chuyển đổi đặc trưng tuyến tính 2x520, sau đó trực tiếp cấp vào 8x2 đầu ra của bộ chuyển đổi đặc trưng này để học tốt hơn các cấu hình vật liệu không cân bằng.

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

Tài liệu "Xây Dựng Hệ Thống Robot Đánh Cờ Vua: Đồ Án Tốt Nghiệp Ngành Hệ Thống Nhúng và IoT" mang đến cái nhìn sâu sắc về việc phát triển một hệ thống robot có khả năng chơi cờ vua, kết hợp giữa công nghệ hệ thống nhúng và Internet of Things (IoT). Tài liệu không chỉ trình bày quy trình thiết kế và triển khai hệ thống mà còn nhấn mạnh những thách thức và giải pháp trong việc lập trình và điều khiển robot. Độc giả sẽ được khám phá cách mà công nghệ hiện đại có thể được áp dụng để tạo ra những sản phẩm thông minh, từ đó mở rộng khả năng sáng tạo trong lĩnh vực robot và tự động hóa.

Để tìm hiểu thêm về các ứng dụng IoT trong giám sát và điều khiển, bạn có thể tham khảo tài liệu Sử dụng simatic iot2050 điều khiển và giám sát trạm mps. Ngoài ra, tài liệu Luận văn thạc sĩ nghiên cứu một số phương pháp giao tiếp giữa các cảm biến và ứng dụng iot trong giám sát thiết bị điện phòng học sẽ cung cấp thêm thông tin về các phương pháp giao tiếp trong IoT. Cuối cùng, bạn cũng có thể tìm hiểu về việc Xây dựng hệ thống robot đánh cờ vua, một tài liệu liên quan trực tiếp đến chủ đề này. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và hiểu rõ hơn về các ứng dụng của công nghệ trong lĩnh vực robot và IoT.