1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng hệ thống robot đánh cờ vua

87 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng hệ thống robot đánh cờ vua
Tác giả Nguyễn Tiến Đạt
Người hướng dẫn PGS.TS Trương Ngọc Sơn
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Hệ thống nhúng và IoT
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 87
Dung lượng 1,84 MB

Cấu trúc

  • 1.1 GIàI THIịU (18)
  • 1.2 MĀC TIÊU ĐÀ TÀI (18)
  • 1.3 GIàI HắN ĐÀ TÀI (18)
  • 1.4 PH¯¡NG PHÁP NGHIÊN CĄU (18)
  • 1.5 ĐịI T¯ỵNG VÀ PHắM VI NGHIấN CĄU (19)
  • 1.6 Bị CĀC QUYÂN BÁO CÁO (19)
  • 2.1 GIàI THIịU VÀ STOCKFISH (20)
    • 2.1.1 Khỏi niòm (20)
    • 2.1.2 BiÃu đá đánh giá quá trình phát triÃn theo thãi gian căa Stockfish (21)
  • 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) (22)
    • 2.2.1 Khỏi niòm m¿ng n ron thÁn kinh cú thà cóp nhót hiòu quÁ (NNUE) (22)
    • 2.2.2 Ki¿n trỳc m¿ng n ron thÁn kinh cú thà cóp nhót hiòu quÁ (NNUE) (23)
      • 2.2.2.1 Ki¿n trúc HalfKP (23)
      • 2.2.2.2 Ki¿n trúc HalfKA (25)
      • 2.2.2.3 BiÃu đá đánh giá quá trình phát triÃn theo thãi gian căa Stockfish khi sĉ dāng m¿ng n ron thÁn kinh cú thà cóp nhót hiòu quÁ (NNUE) (26)
  • 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) (27)
  • 2.4 GIàI THIịU ĐịNG HõC THUÂN VÀ ĐịNG HõC NG¯ỵC (28)
  • 3.1 THIắT Kắ PHÀN CĄNG (31)
    • 3.1.1. SÂ đỏ khòi hò thòng robot đỏnh có vua (31)
    • 3.1.2 Linh kiòn phÁn cąng (32)
    • 3.1.3 S¢ đá nguyên lý (41)
    • 3.1.4 SÂ đỏ k¿t nòi (0)
    • 3.1.5 Thi công phÁn cąng (45)
      • 3.1.5.1 Cỏc bò phón căa mụ hỡnh robot trờn phÁn mÁm 3D view (45)
      • 3.1.5.2 Bò phón robot trong thāc t¿ (46)
      • 3.1.5.3 L¿p rỏp linh kiòn (46)
      • 3.1.5.4 Chu¿n hóa bàn cã vua (47)
  • 3.2 THIắT Kắ PHÀN MÀM (48)
    • 3.2.1 SÂ đỏ hò thòng quỏ trỡnh xĉ lý căa hò thòng (48)
    • 3.2.2 L°u đỏ giÁi thuót ch°Âng trỡnh chớnh căa hò thòng (49)
    • 3.2.3 PhÁn mÁm di chuyÃn robot (51)
      • 3.2.3.1 Khái quát công thąc căa mô hình (51)
      • 3.2.3.2 Áp dāng công thąc vào ch°¢ng trình thāc t¿ căa đÁ tài (52)
    • 3.2.4 PhÁn mÁm nhón diòn n°ỏc có và xỏc đỏnh b°ỏc đi ti¿p theo (56)
      • 3.2.4.1 Khỏi quỏt xĉ lý và hiòu chònh Ánh căa OpenCV (57)
      • 3.2.4.2 Nhón diòn n°ỏc có (vỏ trớ cỏc quõn có) (57)
      • 3.2.4.3 Xác đánh b°ác đi ti¿p theo (58)
      • 3.2.4.4 Cỏc b°ỏc thāc hiòn trong ch°Âng trỡnh thāc t¿ (60)
    • 3.2.5 PhÁn mÁm xĉ lý n°ác cã (61)
  • 4.1 KắT QUÀ THĀC HIịN Mễ HèNH (64)
    • 4.1.1 K¿t quÁ phÁn cąng (64)
    • 4.1.2 K¿t quÁ ho¿t đòng (67)
      • 4.1.2.1 Xỏc đỏnh tóa đò gòc (67)
      • 4.1.2.2 Ng°ói dựng đỏnh có vỏi hò thòng (69)
  • 4.2 ĐÁNH GIÁ MÔ HÌNH (81)
  • 5.1 KắT LUÂN (83)
  • 5.2 H¯àNG PHÁT T RIÂN (83)
  • BÁng 3. 1 Thụng sò kÿ thuót RAMPS 1.4 (0)
  • BÁng 3. 2 Thụng sò kÿ thuót đòng c b°ỏc Nema 17 (0)
  • BÁng 3. 3 Thụng sò kÿ thuót đòng c servo MG90S (0)
  • BÁng 3. 4 Thụng sò kÿ thuót Arduino mega 2560 (0)
  • BÁng 3. 5 Thụng sò kÿ thuót M¿ch ĐiÁu KhiÃn Đòng CÂ B°ỏc A4988 (0)
  • BÁng 3. 6 Thụng sò kÿ thuót Webcam Laptop ICON Q -20 (0)
  • BÁng 3. 7 Chi ti¿t nguỏn tiờu thā căa toàn bò hò thòng (0)
  • BÁng 3. 8 Thụng sò kÿ thuót in 3D căa bò phón robot (0)

Nội dung

Các thuÁt toán này có thá đ°ợc sử dụng đá phát hián và nhÁn d¿ng khuôn mặt, xác định các đái t°ợng, phân lo¿i các hành đßng cÿa con ng°ßi trong video, theo dõi chuyán đßng cÿa máy Ánh, t

GIàI THIịU

Trong thÁ giỏi ngày càng phỏt triỏn vò cụng nghỏ, robot đang ngày càng trỏ nờn quan trọng và đa d¿ng trong āng dụng Robot đ°ợc sử dụng ròng rói trong cỏc quy trỡnh sÁn xuất và lắp ráp Tuy nhiên, chúng cũng có thá đ°ợc āng dụng trong các lĩnh vực khác nh° giáo dục, giÁi trớ và thÁm chớ là chÂi cò vua.

MĀC TIÊU ĐÀ TÀI

Mục tiờu cÿa đò tài là:

● Nghiờn cāu, khÁo sỏt và phõn tớch cỏc thuÁt toỏn và chiÁn l°ợc chÂi cò hiỏn cú

● ThiÁt kÁ và triỏn khai mòt hỏ thỏng robot cú khÁ năng chÂi cò vỏi con ng°òi

● Đỏnh giỏ hiỏu suất và khÁ năng cÿa hỏ thỏng robot trong viỏc chÂi cò.

GIàI HắN ĐÀ TÀI

Những giỏi h¿n vò nòi dung thực hiỏn

● Giỏi h¿n vò thòi gian và tài nguyờn cú sẵn

● Robot chỉ chÂi cò vua

● Khụng xõy dựng hỏ thỏng trớ tuỏ nhõn t¿o (AI) mỏi đỏ đỏnh cò, mà dựa trờn những công nghá có sẵn

PH¯¡NG PHÁP NGHIÊN CĄU

Trong quỏ trỡnh thực hiỏn đò tài, nhúm thực hiỏn s¿ sử dụng cỏc ph°Âng phỏp nghiờn cāu sau đây:

● Tỡm hiỏu và phõn tớch cỏc thuÁt toỏn và chiÁn l°ợc chÂi cò hiỏn cú

● Nghiờn cāu, tỡm hiỏu thuÁt toỏn nhÁn d¿ng hỡnh Ánh đỏ xỏc định vị trớ cỏc quõn cò trờn bàn cò vua Hỏ thỏng s¿ đ°ợc kÁt nỏi vỏi camera đỏ thu thÁp thụng tin vò vị trớ cÿa cỏc quõn cò.

● Phõn tớch cỏc giÁi thuÁt di chuyỏn cỏc quõn cò theo luÁt chÂi cò vua Robot s¿ thực hián các n°ác đi hợp lá và tránh vi ph¿m luÁt ch¢i đồ án

● Phân tích và đánh giá hiáu suất cÿa há tháng.

ĐịI T¯ỵNG VÀ PHắM VI NGHIấN CĄU

Đái t°ợng nghiên cāu bao gãm:

- Cỏc cụng nghỏ và phần mòm đ°ợc sử dụng

- GiÁi thuÁt và ph°Âng phỏp điòu khiỏn mỏy.

Ph¿m vi nghiên cāu là:

Nghiờn cāu và triỏn khai cỏc thuÁt toỏn và chiÁn l°ợc chÂi cò, thiÁt kÁ và triỏn khai hỏ thỏng robot đỏ chÂi cò vỏi con ng°òi.

Bị CĀC QUYÂN BÁO CÁO

Nòi dung chớnh cÿa đò tài đ°ợc trỡnh bày vỏi 5 ch°Âng:

- 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ỡnhnghiờ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. đồ án

Ch°Âng 2 CĂ Sô Lí THUYắT

GIàI THIịU VÀ STOCKFISH

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

Hình 2 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ò. đồ án

• 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 Trong Stockfish 16.1 (2024), các chāc năng đánh giá bÁng cổ đián đã bị lo¿i bò, chỉ cũn l¿i m¿ng l°ỏi thần kinh [17].

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] đồ án

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)

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 đồ án

6 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].

Ki¿n trỳc m¿ng n ron thÁn kinh cú thà cóp nhót hiòu quÁ (NNUE)

M¿ng n¢ ronbao 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]

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.024 = 10.502.144 trọng sỏ [18]

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] đồ án

Hình 2 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 đ°ợcchia cho 64 và cắt/giỏi đồ án

8 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 matrÁ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

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 Mòt cÁi tiÁn khác là sử dụng tám m¿ng con 512x2->16->32->1 phân biát theo (piece_count- 1) div 4 trong ph¿m vi từ 0 đÁn 7 [18] đồ án

Hình 2 4 Kiến trúc HalfKAv2 của Tomasz Sobczyk [18]

2.2.2.3 BiÃu đá đánh giá quá trình phát triÃntheo thãi gian căa Stockfish khi sĉ dāng m¿ng n ron thÁn kinh cú thà cóp nhót hiòu quÁ (NNUE)

Joost VandeVondele đó t¿o ra mòt biỏu đó đỏ cho thấy cỏch Stockfish tăng Elo vỏi NNUE sau mòt năm [18]: đồ án

Hình 2 5 Biểu đồ quá trình tăng Elo của Stockfish khi dùng NNUE [18]

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)

OpenCV (Open Source Computer Vision Library) là mòt th° viỏn phần mòm mó nguón mỏ vò thị giỏc mỏy tớnh và học mỏy OpenCV đ°ợc xõy dựng đỏ cung cấp mòt c sá h¿ tầng chung cho các āng dụng thị giác máy tính và đá tăng tác viác sử dụng nhÁn thāc máy trong các sÁn phẩm th°¢ng m¿i Vái giấy phép Apache 2, OpenCV giúp cho các doanh nghiỏp dò dàng sử dụng và chỉnh sửa mó nguón [5]

Th° viỏn này cú hÂn 2.500 thuÁt toỏn đ°ợc tỏi °u húa, bao góm mòt bò đầy đÿ cỏc thuÁt toỏn thị giỏc mỏy tớnh và học mỏy hiỏn đ¿i cũng nh° truyòn thỏng Cỏc thuÁt toỏn này có thá đ°ợc sử dụng đá phát hián và nhÁn d¿ng khuôn mặt, xác định các đái t°ợng, phân lo¿i cỏc hành đòng cÿa con ng°òi trong video, theo dừi chuyỏn đòng cÿa mỏy Ánh, theo dừi các vÁt thá di chuyán, trích xuất mô hình 3D cÿa các đái t°ợng, t¿o ra đám mây điám 3D từ camera stereo, ghộp Ánh l¿i vỏi nhau đỏ t¿o ra mòt Ánh cú đò phõn giÁi cao cÿa toàn cÁnh, tỡm cỏc Ánh t°Âng tự từ mòt c sỏ dữ liỏu Ánh, lo¿i bò mắt đò trong Ánh đ°ợc chụp bằng đồ án

11 flash, theo dừi chuyỏn đòng cÿa mắt, nhÁn diỏn phụng cÁnh và đặt cỏc điỏm chuẩn đỏ lóng ghộp thực tÁ Áo, v.v OpenCV cú còng đóng ng°òi dựng lờn tỏi hÂn 47.000 ng°òi và °ỏc tớnh sỏ l°ợng tÁi vò v°ợt quỏ 18 triỏu Th° viỏn này đ°ợc sử dụng ròng rói trong cỏc cụng ty, nhóm nghiên cāu và các c¢ quan chính phÿ [5]

Bên c¿nh các công ty lán nh° Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota sử dụng th° viỏn này, cũn cú nhiòu cụng ty khỏi nghiỏp nh° Applied Minds, VideoSurf và Zeitera cũng sử dụng OpenCV ròng rói Cỏc āng dụng triỏn khai cÿa OpenCV bao góm ghộp Ánh đ°òng phỏ, phỏt hiỏn xõm nhÁp trong video giỏm sỏt t¿i Israel, giỏm sỏt thiÁt bị khai thỏc mò t¿i Trung Quỏc, hỗ trợ robot điòu h°ỏng và nhặt cỏc vÁt thỏ t¿i Willow Garage, phát hián tai n¿n đuái n°ác trong hã b¢i á Châu Âu, ch¿y các tác phẩm nghá thuÁt t°Âng tỏc ỏ Tõy Ban Nha và New York, kiỏm tra đ°òng băng đỏ phỏt hiỏn mÁnh vỡ t¿i Thổ Nhĩ Kỳ, kiám tra nhãn mác trên sÁn phẩm trong các nhà máy trên toàn thÁ giái, và phát hián khuôn mặt nhanh chóng t¿i NhÁt BÁn [5]

OpenCV có giao dián C++, Python, Java và MATLAB, hỗ trợ Windows, Linux, Android và Mac OS OpenCV chÿ yÁu h°ỏng tỏi cỏc āng dụng thị giỏc thòi gian thực và tÁn dụng cỏc h°ỏng d¿n MMX và SSE khicú sẵn Hiỏn đang đ°ợc phỏt triỏn mòt giao diỏn CUDA và OpenCL đầy đÿ tính năng Có h¢n 500 thuÁt toán và khoÁng 10 lần sá l°ợng hàm đá t¿o thành hoặc hỗ trợ các thuÁt toán đó OpenCV đ°ợc viÁt bằng C++ nguyên thÿy và cú mòt giao diỏn d¿ng m¿u làm viỏc mòt cỏch tự nhiờn vỏi cỏc bò chāa STL [5].

GIàI THIịU ĐịNG HõC THUÂN VÀ ĐịNG HõC NG¯ỵC

Đòng học (kinematics) là nghiờn cāu vò chuyỏn đòng mà khụng xem xột đÁn nguyờn nhõn gõy ra chuyỏn đòng, vớ dụ nh° lực và mụ-men Đòng học ng°ợc (inverse kinematics) là viỏc sử dụng cỏc ph°Âng trỡnh đòng học đỏ xỏc định chuyỏn đòng cÿa mòt robot đỏ đ¿t đÁn vị trớ mong muỏn Vớ dụ, đỏ thực hiỏn viỏc lấy tự đòng cỏc vÁt từ trong thựng, mòt cỏnh tay robot sử dụng trong dõy chuyòn sÁn xuất cần cú chuyỏn đòng chớnh xỏc từ vị trớban đầu đÁn vị trí mong muán giữa các thùng và các máy móc sÁn xuất Phần cuái cùng cÿa cánh tay robot đ°ợc gọi là bò định vị (end-effector) Cấu hỡnh cÿa robot là mòt danh sỏch cỏc vị đồ án

12 trớ khỏp nằm trong giỏi h¿n vị trớ cÿa mụ hỡnh robot và khụng vi ph¿m bất kỳ ràng buòc nào mà robot có [6][9]

Vỏi vị trớ mong muỏn cÿa bò định vị robot, đòng học ng°ợc (IK) cú thỏ xỏc định cấu hỡnh khỏp thớch hợp mà bò định vị s¿ di chuyỏn đÁn vị trớ mục tiờu [6]

Sau khi cỏc gúc khỏp cÿa robot đ°ợc tớnh toỏn bằng cỏch sử dụng đòng học ng°ợc, mòt hó s chuyỏn đòng cú thỏ đ°ợc t¿o ra bằng cỏch sử dụng ma trÁn Jacobian đỏ di chuyỏn bò định vị từ vị trớ ban đầu đÁn vị trớ mục tiờu Ma trÁn Jacobian giỳp xỏc định mỏi quan hỏ giữa cỏc thụng sỏ khỏp cÿa robot và tỏc đò cÿa bò định vị [6]

Ng°ợc l¿i vỏi đòng học thuÁn (Forward Kinematics), cỏc robot cú nhiòu khỏp quay th°òng cú nhiòu giÁi phỏp cho đòng học ng°ợc, và nhiòu ph°Âng phỏp khỏc nhau đó đ°ợc đò xuất tựy theo mục đớch Nhỡn chung, chỳng đ°ợc phõn lo¿i thành hai ph°Âng phỏp, mòt ph°¢ng pháp thu đ°ợc theo cách phân tích (tāc là giÁi tích) và ph°¢ng pháp khác sử dụng tính toán sá[6]

GiÁi phỏp đòng hóc ng°ÿcsò hóc (Numerical Inverse Kinematic Solutions) [6][7]: Đỏ xấp xỉ cấu hỡnh robot đ¿t đ°ợc cỏc mục tiờu và ràng buòc đ°ợc chỉ định cho robot, các giÁi pháp sá có thá đ°ợc sử dụng Mỗi góc kháp đ°ợc tính toán lặp đi lặp l¿i bằng cách sử dụng các thuÁt toán đá tái °u hóa, chẳng h¿n nh° các ph°¢ng pháp dựa trên gradient [6][7]

Cỏc trỡnh giÁi IK sỏ linh ho¿t hÂn nh°ng yờu cầu nhiòu b°ỏc hòi tụ theo h°ỏng cÿa há tháng phi tuyÁn, trong khi các trình giÁi IK phân tích thích hợp h¢n cho các bài toán IK đÂn giÁn IK sỏ linh ho¿t hÂn ỏ chỗ cỏc ràng buòc đòng học robot cú thỏ đ°ợc chỉ định và cỏc ràng buòc bờn ngoài, chẳng h¿n nh° mòt ràng buòc nhắm mục tiờu cho cỏnh tay camera đỏ chỉ vò mòt vị trớ mục tiờu, cú thỏ đ°ợc thiÁt lÁp cho cỏc trỡnh giÁi IK Viỏc xỏc định trỡnh giÁi IK nào đỏ ỏp dụng chÿ yÁu phụ thuòc vào cỏc āng dụng robot, chẳng h¿n nh° cỏc āng dụng t°Âng tỏc thòi gian thực, và vào mòt sỏ tiờu chớ vò hiỏu suất, chẳng h¿n nh° đò m°ợt mà cÿa t° thÁ cuỏi cựng và khÁ năng mỏ ròng cho cỏc hỏ thỏng robot d° thừa[6][7] đồ án

13 GiÁi phỏp đòng hóc ng°ÿc giÁi tớch (Analytical Inverse Kinematic Solutions) [6]

Mỗi gúc khỏp đ°ợc tớnh toỏn từ t° thÁ cÿa bò định vị dựa trờn mòt cụng thāc toỏn học Bằng cỏch định nghĩa cỏc thụng sỏ khỏp và t° thÁ cÿa bò định vị mòt cỏch biỏu t°ợng, đòng học ng°ợc cú thỏ tỡm tất cÁ cỏc giÁi phỏp khÁ dĩ cÿa cỏc gúc khỏp d°ỏi d¿ng giÁi tớch nh° mòt hàm cÿa đò dài cỏc liờn kÁt, t° thÁ ban đầu cÿa nú và cỏc ràng buòc quay [6][8] Đòng học ng°ợc giÁi tớch chÿ yÁu đ°ợc sử dụng cho cỏc robot cú đò tự do (DoF) thấp do tớnh phi tuyÁn cÿa cỏc ph°Âng trỡnh đòng học và thiÁu khÁ năng mỏ ròng cho cỏc cấu hình robot d° thừa [6][8] đồ án

Ch°Âng 3 THIắT Kắ Hị THịNG ROBOT ĐÁNH

THIắT Kắ PHÀN CĄNG

SÂ đỏ khòi hò thòng robot đỏnh có vua

Hỏ thỏng robot đỏnh cò vua đ°ợc xõy dựng dựa trờn mòt kiÁn trỳc tớch hợp nhiòu thành phần cụng nghỏ, bao góm camera USB, laptop, vi điòu khiỏn Arduino Mega 2560 và m¿ch điòu khiỏn RAMPS 1.4 Mụ hỡnh gọn nhẹ khoÁng 2 kớ lụ gram cú thỏ di đòng, cỏnh tay robot đÿ dài và bao quỏt hÁt bàn cò 28 cm nhõn 28 cm, cụng suất ổn định, cú tÁn nhiỏt, đỏ hỏ thỏng cú thỏ ho¿t đòng liờn tục trong 4 đÁn 5 giò

Quỏ trỡnh ho¿t đòng hỏ thỏng bắt đầu bằng viỏc lấy dữ liỏu Ánh từ camera USB và gửi sang laptop đá xử lý Trên laptop, các thuÁt toán xử lý Ánh và hiáu chuẩn Ánh đ°ợc viÁt bằng ngụn ngữ Python đỏ phõn tớch tỡnh huỏng trờn bàn cò, xỏc định vị trớ cỏc quõn cò và tính toán n°ác đi tiÁp theo

Sau khi xử lý trờn laptop, lỏnh điòu khiỏn robot đ°ợc gửi đÁn vi điòu khiỏn Arduino Mega 2560 Arduino Mega 2560 s¿ tiÁp nhÁn lánh từ laptop thông qua cổng giao tiÁp đá xử lý lỏnh và điòu khiỏn m¿ch RAMPS 1.4

M¿ch RAMPS 1.4 đ°ợc cấp nguón 12V và cú 3 driver A4988 đỏ điòu khiỏn 3 đòng c b°ỏc Nema 17 Cỏc đòng c này s¿ thực hiỏn di chuyỏn cỏnh tay robot đÁn vị trớ đỳng trờn bàn cò đỏ thực hiỏn n°ỏc đi mỏi Đóng thòi, nguón 5V cũng đ°ợc cấp cho đòng c servo MG90S đỏ điòu khiỏn cỏc khỏp nỏi cÿa cỏnh tay robot

Vỏi kiÁn trỳc này, hỏ thỏng robot đỏnh cò vua cú thỏ tự đòng lấy dữ liỏu từ camera, xử lý Ánh trờn laptop, và điòu khiỏn robot thực hiỏn n°ỏc đi mòt cỏch chớnh xỏc và linh ho¿t Sự kÁt hợp giữa laptop, Arduino Mega 2560 và m¿ch RAMPS 1.4 cùng vái các thành phần phần cāng khỏc mang l¿i mòt giÁi phỏp hoàn chỉnh cho hỏ thỏng robot này đồ án

Hình 3 1 Sơ đồ khối hệ thống robot đánh cờ vua

Linh kiòn phÁn cąng

RAMPS 1.4 là board mỏ ròng cắm trờn Arduino Mega 2560, đ°ợc thiÁt kÁ đặc biỏt đỏ điòu khiỏn cỏc hỏ thỏng robot Vỏi khÁ năng t°Âng thớch cao vỏi nhiòu lo¿i bò điòu khiỏn và đòng cÂ, RAMPS 1.4 mang l¿i sự linh ho¿t tỏi đa cho cỏc nhà phỏt triỏn robot

Mòt trong những °u điỏm nổi bÁt cÿa RAMPS 1.4 chớnh là khÁ năng điòu khiỏn nhiỏt đò và cÁm biÁn nhiỏt đò tiờn tiÁn Điòu này đặc biỏt quan trọng trong cỏc āng dụng robot đũi hòi sự chớnh xỏc và ổn định cao vò nhiỏt đò, nh° cỏc hỏ thỏng robot cụng nghiỏp hoặc robot y tÁ Viỏc kiỏm soỏt nhiỏt đò chớnh xỏc giỳp nõng cao đò tin cÁy và hiỏu suất cÿa cỏc há tháng robot. đồ án

Hình 3 2 Ành mặt trên ramp 1.4 [10]

BÁng 3 1 Thông số kỹ thuật RAMPS 1.4 [10]

Bò vi xử lý ATmega2560

Tỏc đò xung nhịp 16 MHz

Sá chân I/O 54 (trong đó 15 chân PWM)

Giao tiÁp USB, SPI, I2C, UART

Dòng đián tái đa 4A/trục

Kích th°ác 100mm x 80mm

Hỗ trợ Stepper motors, Servo motors, Endstops, Temperature sensors Phần mòm t°Âng thớch Marlin, Repetier, Sprinter, grbl Āng dụng 3D printing, CNC machines, Laser cutters, Robotics đồ án

Hỡnh bờn d°ỏi là s đó cỏc chõn cÿa Arduino mega 2560 nỏi vỏi RAMPS 1-4, điòu này là quan trọng khi tiÁn hành kiỏm thử hỏ thỏng cú ho¿t đòng cú tỏt hay khụng, cỏc chõn có xuất tín hiáu ổn định hay không

Hình 3 3 Sơ đồ các chân của Arduino mega 2560 nối với RAMPS 1.4 [10]

Hình bên d°ái là s¢ đã che chắn chân cÁ hai bên cÿa RAMPS 1.4

Hình 3 4 Sơ đồ che chắn chân cÁ hai bên của RAMPS 1.4 [10] đồ án

18 Đòng c b°ỏc Nema 17 (Nema 17 Stepper motor) Đòng c b°ỏc Nema 17 là mòt trong những thành phần cỏt lừi trongnhiòu āng dụng robot hiỏn đ¿i Vỏi kớch th°ỏc nhò gọn, mụ-men xoắn m¿nh m¿ và khÁ năng điòu khiỏn chớnh xỏc, đòng c Nema 17 đúng vai trũ quan trọng trong viỏc cung cấp sāc m¿nh và đò chính xác cần thiÁt cho các robot công nghiáp, robot phục vụ và robot gia dụng.

Trong cỏc hỏ thỏng robot, đòng c Nema 17 th°òng đ°ợc sử dụng đỏ điòu khiỏn cỏc trục chuyỏn đòng, cỏnh tay robot hoặc cỏc c cấu định vị Vỏi cấp b°ỏc 1,8 đò/b°ỏc, đòng c cú thỏ cung cấp đò phõn giÁi cao, cho phộp robot thực hiỏn cỏc thao tỏc chớnh xỏc và lặp l¿i Mụ-men xoắn từ 0,4 N.m đÁn 1,5 N.m giỳp đòng c Nema 17 cú thỏ di chuyỏn cỏc tÁi trọng đỏng kỏ, đỏp āng yờu cầu cÿa nhiòu āng dụng robot khỏc nhau.

Hình 3 5 Ành minh họa kèm kích thước của động cơ bước Nema 17 [11][12] BÁng 3 2 Thông số kỹ thuật động cơ bước Nema 17 [11] [12]

Kích th°ác (NEMA) 17 Điỏn ỏp ho¿t đòng 12V - 24V DC

Cấp b°ác 1.8°/b°ác (200 b°ác/vòng)

Mô-men xoắn 0.4 N.m - 1.5 N.m đồ án

Kích th°ác (D x R x C) 42mm x 42mm x 40mm

Nguãn gác Trung Quác Āng dụng 3D printing, CNC machines, Robotics, Automation Đòng c servo MG90S Đòng c servo MG90S là mòt trong những thành phần quan trọng trong nhiòu āng dụng robot hiỏn đ¿i Vỏi kớch th°ỏc nhò gọn, thiÁt kÁ gọn nhẹ và khÁ năng điòu khiỏn chớnh xỏc, đòng c servo MG90S đúng vai trũ quan trọng trong viỏc cung cấp sāc m¿nh và đò chính xác cần thiÁt cho các robot công nghiáp, robot phục vụ và robot gia dụng

Trong cỏc hỏ thỏng robot, đòng c servo MG90S th°òng đ°ợc sử dụng đỏ điòu khiỏn cỏc bò cÁm biÁn, cỏnh tay robot hoặc cỏc c cấu định vị Vỏi tỏc đò phÁn hói nhanh, đò chớnh xỏc cao và mụ-men xoắn ổn định, đòng c servo MG90S cho phộp robot thực hiỏn cỏc thao tỏc chớnh xỏc và lặp l¿i mòt cỏch hiỏu quÁ.

Hình 3 6 Động cơ Servo MG90S [13] đồ án

BÁng 3 3 Thông số kỹ thuật động cơ servo MG90S [13]

Trọng l°ợng 13,4 g Điỏn ỏp ho¿t đòng 4,8 V - 6 V

Tỏc đò quay 0,1 sec/60° (4,8 V) 0,08 sec/60° (6 V)

Mô-men xoắn 1,8 kg.cm (4,8 V) 2,2 kg.cm (6 V) Đò phõn giÁi gúc 0,5°

Tớn hiỏu điòu khiỏn Xung PWM, 50 Hz, 0,5-2,5 ms

Nhiỏt đò ho¿t đòng -20°C ~ 60°C Đò ón < 45 dB

KÁt nỏi 3 dõy (nõu, đò, cam) Āng dụng Robot, mỏy bay khụng ng°òi lỏi, cỏc thiÁt bị điòu khiỏn

Vi điÁu khiÃn Arduino mega 2560

Vi điòu khiỏn Arduino Mega 2560 sỏ hữu 54 chõn digital I/O, 16 chõn analog input và 4 kênh UART, cung cấp đầy đÿ các cổng kÁt nái cần thiÁt đá tích hợp các cÁm biÁn, đòng c và cỏc thành phần khỏc cÿa hỏ thỏng robot Bò vi xử lý Atmel ATmega2560 cú tỏc đò xung nhịp lờn đÁn 16 MHz, cung cấp khÁ năng xử lý dữ liỏu và điòu khiỏn ỏ māc đò cao

Mòt điỏm nổi bÁt cÿa Arduino Mega 2560 là khÁ năng mỏ ròng và tớnh linh ho¿t Vỏi

256 KB flash memory, 8 KB SRAM và 4 KB EEPROM, vi điòu khiỏn này cú thỏ l°u trữ và xử lý l°ợng dữ liáu lán, phù hợp vái các āng dụngrobot phāc t¿p Ngoài ra, các chân GPIO và cổng kÁt nỏi đa d¿ng giỳp ng°òi dựng cú thỏ dò dàng mỏ ròng hỏ thỏng, kÁt nỏi vái các mô-đun bổ sung nh° các cÁm biÁn, mô-t¢, màn hình hián thị và các thiÁt bị khác đồ án

Hình 3 7 Vi điều khiển Arduino Mega 2560 [14]

BÁng 3 4 Thông số kỹ thuật Arduino mega 2560 [14]

Vi xử lý Atmel ATmega2560

Tỏc đò xung nhịp 16 MHz

Chân digital I/O 54 (15 có khÁ năng PWM)

Kênh SPI 1 Điỏn ỏp ho¿t đòng 5V Đián áp cấp vào 7-12V

C°òng đò dũng DC cho chõn I/O 20 mA

C°òng đò dũng DC cho chõn 3.3V 50 mA

Kích th°ác 101,52 mm x 53,3 mm

Trọng l°ợng 37 g Āng dụng Robot, tự đòng húa, thiÁt bị nhỳng đồ án

22 M¿ch ĐiÁu KhiÃn Đòng CÂ B°ỏc A4988

M¿ch điòu khiỏn đòng c b°ỏc A4988 là mòt trong những linh kiỏn quan trọng đ°ợc sử dụng ròng rói trong cỏc āng dụng robot M¿ch này cú khÁ năng điòu khiỏn cỏc đòng c b°ỏc vỏi đò chớnh xỏc và đò phõn giÁi cao, đóng thòi tiờu thụ cụng suất thấp

M¿ch A4988 cú thỏ cung cấp tỏi 2A dũng điỏn cực đ¿i cho mỗi pha đòng cÂ, cú khÁ năng điòu chỉnh đò phõn giÁi từ full-step đÁn 1/16 micro-step, giỳp đ¿t đ°ợc đò chớnh xỏc cao trong vÁn hành M¿ch cũn đ°ợc trang bị cỏc chāc năng bÁo vỏ nh° ngắt nhiỏt đò, ngắt quỏ dũng, giỳp bÁo vỏ đòng c và linh kiỏn khòi cỏc tỡnh huỏng sự cỏ

Hình 3 8 M¿ch Điều Khiển Động Cơ Bước A4988 BÁng 3 5 Thông số kỹ thuật M¿ch Điều Khiển Động Cơ Bước A4988 [15]

Thụng sò Mụ tÁ Đián áp vÁn hành 8V - 35V

Dòng đián cực đ¿i mỗi pha 2A Đò phõn giÁi Full-step, 1/2, 1/4, 1/8, 1/16 micro-step

Chāc năng bÁo vỏ Ngắt quỏ dũng, ngắt nhiỏt đò

Kích th°ác bo m¿ch 43mm x 33mm

Giao tiÁp Step/Dir Āng dụng Robot, máy in 3D, máy CNC, máy in, v.v

Trong thòi đ¿i cụng nghỏ sỏ phỏt triỏn nhanh chúng, viỏc lựa chọn camera cú chất l°ợng hình Ánh tát trá nên vô cùng quan trọng đái vái các āng dụng robot Webcam Laptop ICON Q-20 là mòt lựa chọn đỏng chỳ ý nhò vào khÁ năng ghi hỡnh ỏ đò phõn giÁi 2K (2560 x 1440 pixels) sắc nét

Vỏi đò phõn giÁi cao, Webcam ICON Q-20 cú thỏ ghi l¿i cỏc chi tiÁt quan trọng mòt cỏch rừ ràng, giỳp robot cú thỏ thu thÁp và xử lý thụng tin hỡnh Ánh mòt cỏch chớnh xỏc hÂn Điòu này đặc biỏt hữu ớch trong cỏc āng dụng yờu cầu nhÁn d¿ng vÁt thỏ, theo dừi chuyỏn đòng hoặc định vị chớnh xỏc

BÁng 3 6 Thông số kỹ thuật Webcam Laptop ICON Q-20

Thụng sò Mụ tÁ Đò phõn giÁi 2K (2560 x 1440 pixels)

Gúc nhỡn 120 đò đồ án

Mic Mòt mic thu õm

Hỏ điòu hành t°Âng thớch Windows, macOS, Linux Āng dụng Họp video, stream, āng dụng robot

Chāc năng đặc biỏt Tự đòng lấy nột, điòu chỉnh đò sỏng và đò t°Âng phÁn tự đòng, chỏng rung

S¢ đá nguyên lý

Hình bên d°ái là s¢ đã nguyên lý tổng quan há tháng đồ án

Hình 3 10 Sơ đồ nguyên lý tổng quan hệ thống đồ án

BÁng 3 7 Chi tiết nguồn tiêu thụ của toàn bộ hệ thống

STT Tên thiÁt bị Sá l°ợng

Tổng dòng tiêu thụ I dòng*sá l°ợng (Ampe)

Tổng công suất P=U*I (Wat) Đián áp (Vôn)

3 M¿ch điòu khiỏn đòng c b°ác A4988

Dựa theo tớnh toỏn cÿa bÁng, nguón tỏi thiỏu cho cỏc thiÁt bị ho¿t đòng đ°ợc là từ 5V đÁn 12V, dòng là 4.8A, công suất là 62.75W Đỏ cho rụ bỏt ho¿t đòng ổn định và lõu dài, nhúm tiÁn hành chia nguón nh° sau:

• Đỏi vỏi thiÁt bị Arduino Mega 2560, RAMPS 1.4, M¿ch điòu khiỏn đòng c b°ỏc A4988, Đòng c b°ỏc Nema 17 Nhúm s¿ cấp nguón 12V 5A, vỏi cụng suất P= U*I

= 12*5 = 60W đá RAMPS 1.4 phân phái và h¿ nguãn hợp lý cho từng thiÁt bị đ°ợc mắc trên nó

• Đỏi vỏi thiÁt bị Servo MG90S, Webcam Laptop ICON Q-20 Đò Phõn GiÁi 2K Nhóm s¿ cấp nguãn riêng khác là 5V 2A, vái công suất P= U*I = 5*2 = 10W nhằm mục đớch cho cỏc thiÁt bị ho¿t đòng ổn định hÂn

VÁy là táng công suất s¿ đáp āng tát vái 60W+10W = 70W > 62.75W so vái theo thiÁt kÁ đồ án

Hình bên d°ái là s¢ đã kÁt nái các linh kián tronghá tháng

Hình 3 11 Sơ đồ kết nối các linh kiện trong hệ thống

Hỡnh d°ỏi làsÂđó kÁt nỏi thực tÁ cÿa RAMPS 1.4 vỏi cỏc bò phÁn trong hỏ thỏng

Hình 3 12 Sơ đồ kết nối thực tế của RAMPS 1.4 với các bộ phận trong hệ thống đồ án

3.1.5.1 Cỏc bò phóncăa mụ hỡnh robot trờn phÁn mÁm 3D view

Hỡnh bờn d°ỏi là cỏc bò phÁn cÿa mụ hỡnh robot đ°ợc hiỏn thị trờn phần mòm 3D view

Hình 3 13 Bộ phận của mô hình robot BÁng 3 8 Thông số kỹ thuật in 3D của bộ phận robot

Thụng sò Mụ tÁ Đò đặc bờn trong (Infill) 25% Đò mòng từng lỏp nhựa (Resolution) Dày 0.22

T¿o vùng hỗ trợ (Support) Có

Chất liáu sợi t¢ nhựa PLA, PLA+, PETG, ABS

Th°¢ng hiáu lo¿i t¢ nhựa Bất kỳ th°¢ng hiáu nào có chất l°ợng t¢ tát đồ án

L°uý khi in đái vái mô hình 3D cÿa rôbát

• Khi in, cần hỗ trợ vùng (Support) cho các chi tiÁt bánh răng.Vì yÁu tá chính xác đá ăn khỏp cỏc dõy đai, cũng nh° là nguón chớnh là truyòn lực Đõy là chi tiÁt quan trọng nhất nên yêu cầu chÁm và chính xác

• Khi in, do sợi quỏ núng, đò dày cÿa lỏp s¿ tăng lờn và sai sút cÿa cỏc bò phÁn khỏc nhau có thá bị Ánh h°áng Chính vì vÁy, cần gọt s¿ch s¿ các cấu trúc nhựa thừa bám xung quanh mô hình 3D, đá có thá mang đÁn tính thẩm mỹ, giÁm thiáu khái l°ợng mụ hỡnh, khụng v°ỏng hay Ánh h°ỏng đÁn ho¿t đòng rụ bỏt

3.1.5.2 Bò phón robot trong thāc t¿

Hỡnh bờn d°ỏi là cỏc bò phÁn robot trong thực tÁ sau khi đó tiÁn hành in 3D

Hình 3 14 Các bộ phận robot trong thực tế

Hình bên d°ái là quá trình lắp ráp các linh kián vái nhau đồ án

Hình 3 15 Quá trình lắp ráp các linh kiện

Trong đò tài này, hỏ thỏng sử dụng bàn cò vua vỏi kớch th°ỏc là 28 cm nhõn 28 cm, vỏi mỗi ụ vuụng là 3.4 cm Cỏc quõn cò khỏc nhau đ°ợc sử dụng, cú chiòu cao thấp nhất là từ 2.7 cm và cao nhất là 5.3 cm

Mục đích thiÁt kÁ này nhằm đáp āng vái ch°¢ng trình khai báo khi ch¿y há tháng, cỏnh tay rụ bỏt đ°ợc thiÁt kÁ tinh gọn, đÿ đỏ gắp cỏc quõn cò nhò nhẹ Khi ch°a chuẩn húa bàn cò, khai bỏo khụng đóng bò d¿n đÁn làm Ánh h°ỏng đÁn chớnh xỏc toàn bò hỏ thỏng đồ án

Thi công phÁn cąng

3.1.5.1 Cỏc bò phóncăa mụ hỡnh robot trờn phÁn mÁm 3D view

Hỡnh bờn d°ỏi là cỏc bò phÁn cÿa mụ hỡnh robot đ°ợc hiỏn thị trờn phần mòm 3D view

Hình 3 13 Bộ phận của mô hình robot BÁng 3 8 Thông số kỹ thuật in 3D của bộ phận robot

Thụng sò Mụ tÁ Đò đặc bờn trong (Infill) 25% Đò mòng từng lỏp nhựa (Resolution) Dày 0.22

T¿o vùng hỗ trợ (Support) Có

Chất liáu sợi t¢ nhựa PLA, PLA+, PETG, ABS

Th°¢ng hiáu lo¿i t¢ nhựa Bất kỳ th°¢ng hiáu nào có chất l°ợng t¢ tát đồ án

L°uý khi in đái vái mô hình 3D cÿa rôbát

• Khi in, cần hỗ trợ vùng (Support) cho các chi tiÁt bánh răng.Vì yÁu tá chính xác đá ăn khỏp cỏc dõy đai, cũng nh° là nguón chớnh là truyòn lực Đõy là chi tiÁt quan trọng nhất nên yêu cầu chÁm và chính xác

• Khi in, do sợi quỏ núng, đò dày cÿa lỏp s¿ tăng lờn và sai sút cÿa cỏc bò phÁn khỏc nhau có thá bị Ánh h°áng Chính vì vÁy, cần gọt s¿ch s¿ các cấu trúc nhựa thừa bám xung quanh mô hình 3D, đá có thá mang đÁn tính thẩm mỹ, giÁm thiáu khái l°ợng mụ hỡnh, khụng v°ỏng hay Ánh h°ỏng đÁn ho¿t đòng rụ bỏt

3.1.5.2 Bò phón robot trong thāc t¿

Hỡnh bờn d°ỏi là cỏc bò phÁn robot trong thực tÁ sau khi đó tiÁn hành in 3D

Hình 3 14 Các bộ phận robot trong thực tế

Hình bên d°ái là quá trình lắp ráp các linh kián vái nhau đồ án

Hình 3 15 Quá trình lắp ráp các linh kiện

Trong đò tài này, hỏ thỏng sử dụng bàn cò vua vỏi kớch th°ỏc là 28 cm nhõn 28 cm, vỏi mỗi ụ vuụng là 3.4 cm Cỏc quõn cò khỏc nhau đ°ợc sử dụng, cú chiòu cao thấp nhất là từ 2.7 cm và cao nhất là 5.3 cm

Mục đích thiÁt kÁ này nhằm đáp āng vái ch°¢ng trình khai báo khi ch¿y há tháng, cỏnh tay rụ bỏt đ°ợc thiÁt kÁ tinh gọn, đÿ đỏ gắp cỏc quõn cò nhò nhẹ Khi ch°a chuẩn húa bàn cò, khai bỏo khụng đóng bò d¿n đÁn làm Ánh h°ỏng đÁn chớnh xỏc toàn bò hỏ thỏng đồ án

Hình 3 16 Ành và thông số kỹ thuật bàn cờ vua được sử dụng trong hệ thống

THIắT Kắ PHÀN MÀM

SÂ đỏ hò thòng quỏ trỡnh xĉ lý căa hò thòng

Hỏ thỏng robot đỏnh cò vua đ°ợc thiÁt kÁ dựa trờn viỏc tớch hợp cỏc cụng nghỏ xử lý Ánh, nhÁn diỏn m¿u và điòu khiỏn cỏnh tay robot Quỏ trỡnh xử lý bắt đầu bằng viỏc lấy dữ liỏu từ camera USB, sau đú gửi dữ liỏu Ánh này sang mòt chiÁc laptop đỏ tiÁn hành xử lý

Trên laptop, các thuÁt toán xử lý Ánh và nhÁn dián m¿u s¿ đ°ợc áp dụng đá phân tích bàn cò, nhÁn diỏn vị trớ cỏc quõn cò và xỏc định n°ỏc đi hợp lỏ tiÁp theo KÁt quÁ cÿa quỏ trỡnh này đ°ợc gửi sang vi điòu khiỏn Arduino Mega 2560 đỏ điòu khiỏn cỏnh tay robot thực hián n°ác đi

Mụ-đun Arduino Mega 2560 s¿ tiÁn hành phõn tớch và tớnh toỏn đòng học ng°ợc đỏ điòu khiỏn cỏc khỏp nỏi cÿa cỏnh tay robot thực hiỏn n°ỏc đi mỏi trờn bàn cò Cuỏi cựng, chuỗi cỏc mÁnh ghộp cÿa cỏnh tay robot s¿ đ°ợc phõn tớch và điòu khiỏn đỏ hoàn thành n°ác đi đồ án

Vỏi kiÁn trỳc hỏ thỏng nh° vÁy, hỏ thỏng robot đỏnh cò vua cú thỏ tự đòng lấy dữ liỏu từ camera, phõn tớch tỡnh huỏng cò, và điòu khiỏn cỏnh tay robot thực hiỏn n°ỏc đi mỏi mòt cỏch chớnh xỏc và liờn tục Viỏc sử dụng vi điòu khiỏn Arduino Mega 2560 cũng mang l¿i tớnh linh ho¿t, mỏ ròng và tin cÁy cao cho hỏ thỏng

Hình 3 17 Sơ đồ khối quá trình xử lý của hệ thống

L°u đỏ giÁi thuót ch°Âng trỡnh chớnh căa hò thòng

Sau khi ng°òi chÂi đó di chuyỏn quõn cò, mỏy Ánh s¿ chụp Ánh Ch°Âng trỡnh s¿ cắt và xoay Ánh đỏ bàn cò vừa khớt vỏi Ánh sau đú Vỡ hỏ thỏng biÁt vị trớ cÿa tất cÁ quõn cò sau khi mỏy đi, nờn chỉ cần mó code nhÁn biÁt đ°ợc ba tr°òng hợp sau sau khi ng°òi chÂi di chuyỏn: NÁu ụ trỏng, quõn cò đen bất kỳ, hoặc quõn cò trắng bất kỳ

Hỏ thỏng s¿ kiỏm tra xem di chuyỏn cÿa ng°òi chÂi cú hợp lỏ khụng và thụng bỏo nÁu khụng hợp lỏ Tr°òng hợp duy nhất khụng đ°ợc bao góm là khi ng°òi chÂi thăng quõn tỏt thành quõn khỏc ngoài quõn HÁu, lỳc này ng°òi chÂi phÁi thụng bỏo cho robot biÁt quõn nào đ°ợc thăng.Bằng cỏch phõn tớch cỏc giỏ trị RGB và đò lỏch chuẩn,ch°Âng trỡnh cú thỏ xỏc định đ°ợc cỏc ụ trỏng và màu cÿa cỏc quõn cò đặt trờn bàn Ngoài ra ch°Âng trỡnh cũng bao gãm các chāc năng đá định chuẩn camera và robot đồ án

Hình 3 18 Lưu đồ giÁi thuật chương trình chính của hệ thống đồ án

PhÁn mÁm di chuyÃn robot

3.2.3.1 Khái quát công thąccăa mô hình

Robot SCARA (Selective Compliance Assembly Robot Arm) là lo¿i robot th°òng đ°ợc dùng trong các āng dụng gắp, đặt, và lắp ráp D°ái đây là các thông sá, công thāc liờn quan đÁn mụ hỡnh và điòu khiỏn robot SCARA:

Cỏc thụng sò căa robot:

Robot có cấu trúc nh° sau:

• Theta1 (�㔃1): Góc xoay cÿa kháp đầu tiên (shoulder joint)

• Theta2 (�㔃 2 ): Góc xoay cÿa kháp thā hai (elbow joint)

• Ă 3 : Đò dài thay đổi cÿa khỏp tr°ợt (prismatic joint).

• Theta4 (�㔃4): Góc xoay cÿa kháp cuái cùng (wrist joint)

Mô Hình Hình Học (Kinematic Model): Mô hình hình học cÿa robot bao gãm mô hình thuÁn và mô hình nghịch.

Mô hình hình hãc thuãn (Forward Kinematics):

Mụ hỡnh này dựng đỏ xỏc định vị trớ và h°ỏng cÿa bò tỏc đòng cuỏi (end effector) từ cỏc gúc và đò dài cÿa cỏc khỏp

{ þ = �㕙1cos(�㔃1) + �㕙2cos(�㔃1+ �㔃2) ÿ = �㕙 1 sin(�㔃 1 ) + �㕙 2 sin(�㔃 1 + �㔃 2 ) Ā = Ă 1 2 Ă 3

∅ = �㔃 1 + �㔃 2 + �㔃 4 Trong đó:

• �㕙 1 , �㕙 2 : Chiòu dài cỏc đo¿n liờn kÁt

• Ă 1 : Chiòu dài trục z cÿa base.

• �㔃1, �㔃2, �㔃4 : Các góc xoay cÿa các kháp

Mô hình hình hãc nghách (Inverse Kinematics)

Mụ hỡnh này dựng đỏ xỏc định cỏc gúc và đò dài cÿa cỏc khỏp từ vị trớ và h°ỏng cÿa bò tỏc đòng cuỏi

Công thāc nghịch: đồ án

�㔃 1 = arctan 2(ÿ, þ) 2 arctan 2( �㕙 2 sin(�㔃 2 ) , �㕙 1 + �㕙 2 cos(�㔃 2 )) Ă 3 = Ă 1 2 Ā

�㔃 4 = ∅ 2 �㔃 1 2 �㔃 2 Trong đó:

• �㕙 1 , �㕙 2 : Chiòu dài cỏc đo¿n liờn kÁt

• Ă 1 : Chiòu dài trục z cÿa base.

• �㔃1, �㔃2, �㔃4 : Các góc xoay cÿa các kháp

3.2.3.2 Áp dāng công thąc vào ch°¢ng trình thāc t¿ căa đÁ tài

Các bi¿n và hàm chính Đòng học ng°ợc là quỏ trỡnh tớnh toỏn cỏc gúc khỏp cần thiÁt đỏ đặt mòt điỏm cuỏi cÿa robot t¿i vị trí mong muán trong không gian

Hình 3 19 Áp dụng phương pháp hình học cho robot SCARA

• �㔿 1 : Chiòu dài cÿa cỏnh tay thā nhất.

• �㔿2: Chiòu dài cÿa cỏnh tay thā hai

• ỵ �㕚�㕚 : Tọa đò x cÿa điỏm cuỏi cỏnh tay trong hỏ tọa đò Descartes (Tọa đò đớch trong khụng gian ba chiòu (đÂn vị: mm))

• ÿ�㕚�㕚: Tọa đò y cÿa điỏm cuỏi cỏnh tay trong hỏ tọa đò Descartes

• Ā �㕚�㕚 : Tọa đò z cÿa điỏm cuỏi cỏnh tay trong hỏ tọa đò Descartes

• �㔃 1 : Góc xoay cÿa kháp đầu tiên (góc kháp tính bằng radian). đồ án

• �㔃 2 : Góc xoay cÿa kháp thā hai (góc kháp tính bằng radian)

• �㔃 �㕧 : Gúc xoay cÿa còt dọc trục z(gúc khỏp tớnh bằng radian).

• LEAD (lead screw pitch) = 8mm là khoÁng cỏch di chuyỏn dọc trục z trong mòt vòng quay hoàn chỉnh cÿa vít d¿n h°áng

• Ā 1 : gúc từ gỏc tọa đò đÁn điỏm đớch

• Ā 2 : góc t¿o bái đo¿n thẳng từ gác đÁn điám đích và cánh tay thā nhất

• ÿ�㕜ā (rotation): sá vòng quay cần thiÁt cÿa vít d¿n h°áng đá đ¿t đ°ợc vị trí Ā�㕚�㕚

• ĂÿĀā : khoÁng cỏch từ gỏc tọa đò đÁn điỏm đớch (ỵ�㕚�㕚, ÿ�㕚�㕚) trong mặt phẳng Hàm Chính:

• lawOfCosines(float a, float b, float c): Sử dụng định lý cosin đá tính góc giữa các c¿nh trong tam giác

• calculateGrad(): Tớnh toỏn cỏc gúc khỏp dựa trờn tọa đò đớch Đánh lý Cosin Định lý cosin đ°ợc sử dụng đỏ tớnh cỏc gúc cÿa tam giỏc khi biÁt đò dài cÿa ba c¿nh Công thāc đ°ợc sử dụng nh° sau:

Hình 3 20 Định lý cosin trong robot SCARA

Các b°ác tính toán nh° sau:

_ Tính khoÁng cách (dist): ĂÿĀā = Ă = √þ �㕚�㕚 2 + ÿ �㕚�㕚 2 _ Điòu kiỏn kiỏm tra giỏi h¿n:

NÁu dist > �㔿 1 + �㔿 2 thì: ĂÿĀā = (�㔿1+ �㔿2) 2 0.001 _ Đặt biÁn elbow:

• NÁu xmm > 0 và ymm

Ngày đăng: 26/09/2024, 16:19

HÌNH ẢNH LIÊN QUAN

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 - xây dựng hệ thống robot đánh cờ vua
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 (Trang 21)
Hình 2. 3  Các lớp NNUE trong ho¿t động [18] - xây dựng hệ thống robot đánh cờ vua
Hình 2. 3 Các lớp NNUE trong ho¿t động [18] (Trang 24)
Hình 2. 4   Kiến trúc HalfKAv2 của Tomasz Sobczyk [18] - xây dựng hệ thống robot đánh cờ vua
Hình 2. 4 Kiến trúc HalfKAv2 của Tomasz Sobczyk [18] (Trang 26)
Hình 2. 5 Biểu đồ quá trình tăng Elo của Stockfish khi dùng NNUE [18] - xây dựng hệ thống robot đánh cờ vua
Hình 2. 5 Biểu đồ quá trình tăng Elo của Stockfish khi dùng NNUE [18] (Trang 27)
Hình 3. 1  Sơ đồ khối hệ thống  robot  đánh cờ vua - xây dựng hệ thống robot đánh cờ vua
Hình 3. 1 Sơ đồ khối hệ thống robot đánh cờ vua (Trang 32)
Hình 3. 10 Sơ đồ nguyên lý tổng quan hệ thống - xây dựng hệ thống robot đánh cờ vua
Hình 3. 10 Sơ đồ nguyên lý tổng quan hệ thống (Trang 42)
Hình 3. 11 Sơ đồ kết nối các linh kiện trong hệ thống - xây dựng hệ thống robot đánh cờ vua
Hình 3. 11 Sơ đồ kết nối các linh kiện trong hệ thống (Trang 44)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w