TỔNG QUAN
Đặt vấn đề
Robot hiện nay đang trở nên phổ biến và được ứng dụng rộng rãi trong nhiều ngành công nghiệp Hệ thống robot rất đa dạng, với nhiều loại hình và mức độ khác nhau về kết cấu cơ khí, khả năng tự hành, độ thông minh và khả năng di chuyển Tùy thuộc vào mức độ phát triển, các robot có khả năng thu thập dữ liệu, xử lý thông tin, thực hiện chuyển động và phản ứng với môi trường xung quanh.
Ngày nay hệ thống Robot được phân loại và tổng quát thành 2 nh m chính:
Robot c gốc 1 vị trí cố định (Manipulation robotics).
Robot di động (Mobile robotics).
Robot di động, hay còn gọi là robot tự hành, là loại robot có khả năng hoạt động độc lập mà không cần sự can thiệp của con người Nhờ vào các cảm biến, chúng có khả năng nhận biết môi trường xung quanh và ngày càng trở nên quan trọng trong các ngành công nghiệp, thương mại, y tế, cũng như các ứng dụng khoa học và phục vụ đời sống con người Với sự phát triển của ngành robot học, robot tự hành có khả năng hoạt động trong nhiều môi trường khác nhau, dẫn đến sự xuất hiện của nhiều loại robot như robot sơn, robot hàn, robot cắt cỏ, robot thám hiểm đại dương, và robot làm việc ngoài vũ trụ Đồng thời, sự phát triển của nhu cầu thực tế cũng tạo ra những thách thức mới cho các nhà nghiên cứu trong lĩnh vực này.
Robot di động là robot c thể di chuyển xung quanh một môi trường nhất định Robot này không bị ràng buộc b i một gốc tọa độ nhất định:
Robot di chuyển bằng bánh xe ( Wheeled Robots )
Robot bám đường ( Tracked Robots )
Robot di chuyển bằng chân ( Legged Robots )
Robot hiện nay có nhiều loại, bao gồm robot 2 chân (Bipeds) giống con người, robot 4 chân (Quadrupeds) như động vật có vú và bò sát, robot 6 chân (Hexapod) như côn trùng, cùng với robot 10 chân (Octopods) Ngoài ra, còn có mô hình robot với một chân (Raibert hopper, 1986) Tuy nhiên, bài viết này sẽ tập trung nghiên cứu về robot 4 chân (Quadrupeds), đặc biệt là phương pháp tính toán và các kiểu dáng đi, thứ tự bước chân và vị trí đặt chân.
Mục tiêu đề tài
Trong bối cảnh công nghiệp hiện đại, đặc biệt trong lĩnh vực quân sự, nhiều công việc độc hại và nguy hiểm cho con người đã thúc đẩy sự phát triển của robot như một giải pháp thay thế Để đáp ứng các yêu cầu của con người, việc nghiên cứu, phát triển và hoàn thiện robot là vô cùng cần thiết Do đó, nhóm đã chọn đề tài “Thiết kế thi công và lập trình điều khiển Robot 4 chân” để tiến hành nghiên cứu.
Với đề tài này nh m nghiên cứu sẽ tìm hiểu Robot 4 chân về :
Nghiên cứu phương pháp tính động học thuận động học nghịch của robot.
Nghiên cứu thiết kế quỹ đạo chuyển động của cánh tay robot.
Nghiên cứu các dáng đi của robot vi trí đặt chân phương pháp chuyển hướng.
Nghiên cứu về vi điều khiển để lập trình robot.
Nghiên cứu lập trình ứng dụng trên Android để điều khiển robot.
S dụng deep learning để nhận dạng khuôn mặt
Giới hạn đề tài
Với đề tài này, chúng tôi đã thiết kế một robot 4 chân sử dụng 3 động cơ RC servo cho mỗi chân Do động cơ có khả năng quay 180 độ, nên robot gặp một số giới hạn trong hành trình di chuyển Vì vậy, quá trình điều khiển robot này sẽ có những hạn chế nhất định.
G c xoay của chân c bị giới hạn nên ta chi xét các dáng đi mà robot bốn chân c khả n ng di chuyển được
Robot ch di chuyển mà không ràng buộc với mặt phẳng nằm ngang.
Điều khiển robot theo v ng h mà không điều khiển theo v ng kín.
Tuy c d ng deep learning để nhận dạng khuôn mặt nhưng robot chưa thể tracking theo đối tượng
Nội dung đề tài
Đề tài “Thiết kế thi công và lập trình điều khiển Robot 4 chân” bao gồm các chương sau:
Chương I: Tổng quan: Chương này trình bày tổng quan sơ bộ về các yêu cầu của cuốn báo cáo như đặt vấn đề mục tiêu giới hạn và nội dung đề tài.
Chương II: Cơ sở lý thuyết:Chương này trình bày phương pháp tính động học thuận động học nghịch cánh tay máy Bên cạnh đ là lí thuyết về các phương pháp di chuyển robot c ng như deep learning.
Chương III: Thiết kế và lựa chọn thiết bị: Chương này trình bày về thiết kế và lựa chọn thiết bị phần cứng cho robot
Chương IV: Thi công và kết quả: Chương này nh m sẽ tiến hành thi công theo mô hình đã được thiết kế và kết quả đạt được.
Chương V: Kết luận và hướng phát triển: Kết luận chung về ưu điểm và hạn chế của đề tài khẳng định những kết quả đ ng g p đạt được đề xuất kiến để cải thiện khuyết điểm và định hướng phát triển đề tài.
CƠ SỞ LÝ THUYẾT
Động học robot
Nghiên cứu động học của robot là yếu tố then chốt trong việc điều khiển chuyển động của chúng Mỗi robot có thể được coi là tập hợp các khâu (links) liên kết với nhau qua các khớp (joints) Để mô tả vị trí và hướng tương đối giữa các khâu, ta sử dụng hệ tọa độ và các phép biến đổi thuần nhất Bài toán động học được chia thành động học thuận và động học nghịch Động học thuận cho phép tính toán vị trí của robot từ các góc quay của các khâu, trong khi động học nghịch giúp xác định góc quay của các khớp dựa trên vị trí cuối cùng của robot.
2.1.2 Bộ thông số Denavit-Hartenberg (DH)
Một robot bao gồm nhiều khâu được kết nối với nhau qua các khớp động Gốc chuẩn (Base) của robot được xem là khâu số 0, không được tính vào tổng số khâu Khâu 1 kết nối với gốc chuẩn thông qua khớp 1, và không có khớp đầu mút ở khâu cuối cùng Mỗi khâu được đặc trưng bởi hai kích thước riêng biệt.
Độ dài pháp tuyến chung: an.
G c giữa các trục trong mặt phẳng vuông g c với an: αn.
Thông thường người ta gọi anlà chiều dài và αnlà g c xo n của khâu ( hình 2.1). Phổ biến là hai khâu liên với nhau chính trục của khớp ( hình 2.2).
Hình 2.1: Chiều dài và góc xoắn của một khâu
Mỗi trục sẽ có hai pháp tuyến vuông góc với nhau cho mỗi khâu, cả trước và sau một khớp Vị trí tương đối giữa hai khâu liên tiếp được xác định bởi khoảng cách giữa các pháp tuyến đo dọc theo trục khớp và góc giữa các pháp tuyến trong mặt phẳng vuông góc với trục Khoảng cách và góc giữa các khâu thường được gọi là dn và θn.
Để mô tả mối quan hệ giữa các khâu trong một hệ thống, ta cần gán cho mỗi khâu một hệ tọa độ Các thông số quan trọng của khâu bao gồm θ, d, a và α Nguyên tắc chung để gán hệ tọa độ lên các khâu được xác định rõ ràng.
Gốc của hệ tọa độ g n được xác định tại giao điểm của pháp tuyến với khớp thứ n+1 Nếu hai trục khớp cắt nhau, gốc tọa độ sẽ nằm tại điểm cắt Trong trường hợp các trục khớp song song, gốc tọa độ sẽ được chọn trên trục khớp của khâu kế tiếp tại một điểm thích hợp.
Trục z của hệ tọa độ g n lên khâu thứ n đặt dọc theo trục khớp thứ n+1.
Trục x thường được đặt dọc theo pháp tuyến chung và hướng từ khớp n đến n+1.Các thông số an αn dnvà θnđược gọi là bộ thông số DH
Hình 2.3: Tay máy có hai khâu phẳng (vị trí bất kỳ)
Ta g n các hệ tọa độ lên các khâu như hình vẽ: trục z0 z1và z2vuông g c với tờ giấy.
Hệ tọa độ cơ sở O0x0y0z0 được xác định với chiều x0 hướng từ O0 đến O1 Sau khi thiết lập, hệ tọa độ O1 x1 y1 z1 được đặt tại tâm trục khớp 2, như hình vẽ minh họa.
O2x2y2z2c gốc O2đặt điểm cuối của khâu 2.
Bảng 2.1: Bảng thông số Denavit-Hartenbert của tay máy
Trong đ θilà các biến khớp (d ng dấu * để k hiệu các biến khớp).
2.1.3 Bài toán động học thuận robot Để giải phương trình động học thuận chúng ta s dụng phương pháp biến đổi ma trận theo bảng thông số D-H được Denavit – Hartenberg công bố n m 1955 Đây là một phương pháp hiệu quả để giải phương trình động học.
Quy t c đặt hệ tọa độ được xây dựng cho mô hình robot 4 chân được thể hiện trong hình 2.4.
Hình 2.4: Thông số động học cho 4 chân robot
Chúng ta xem một chân của robot là một cánh tay 3 bậc tự do Bảng thông số D-H cho các phép biến đổi:
Bảng 2.2: Bảng thông số D-H cho từng chân robot
Để mô tả mối quan hệ về hướng và vị trí của hệ tọa độ g n giữa hai khâu liền kề (khâu thứ I và khâu i-1), ta sử dụng ma trận An Ma trận này thể hiện mối quan hệ tọa độ của các khâu nối tiếp nhau thông qua các phép quay và tịnh tiến.
Tịnh tiến theo trục zn-1một khoảng dn
Tịnh tiến dọc theo xn-1một đoạn an
Bốn phép biến đổi thuần nhất thể hiện mối quan hệ giữa hệ tọa độ của khâu n và khâu n-1, và tích của chúng được gọi là ma trận An.
Ta kí hiệu ma trận chuyển đổi từ khâu n-1 sang n như sau :
Thay các thông số trong bảng thông số D-H vào ma trận Anta c :
Ma trận chuyển đổi từ gốc tọa độ tới điểm cuối của chân robot : hh
Từ hệ phương trình động học thuận ta tìm được vị trí của điểm cuối robot :
2.1.4 Bài toán động học nghịch robot Để giải bài toán động học nghịch ta áp dụng phương pháp hình học đây là một phương pháp trực quan đơn giản dễ dàng áp dụng cho các trường hợp robot ít bậc tự do mà v n đảm bảo đô chính xác.
Với hệ tọa độ như trong hình 2.5:
Hình 2.5: Hệ tọa độ cho chân robot
Ta thực hiện phép chiếu lên mặt phẳng Oxy giống hình 2.6 như vậy ta sẽ tìm được g c θ1bằng định l Pythagore trong tam giác.
Hình 2.6: Phép chiếu trên mặt phẳng Oxy
Tiếp tục thực hiện phép chiếu lên mặt phẳng Oxz như hình 2.7 để c thể tìm được g c θ2và g c θ3.
Hình 2.7: Phép chiếu trên mặt phẳng Oxz
Dựa vào định lí trong tam giác ta c : 懲 h
Để xác định chính xác góc phần tư của góc θ3 trong trường hợp có hai cách sắp xếp khâu 2 và khâu 3, ta cần sử dụng hàm atan2 Điều này là cần thiết vì góc θ2 phụ thuộc vào giá trị của θ3, dẫn đến việc mỗi cách sắp xếp khâu sẽ tương ứng với hai giá trị khác nhau của θ3 Trong trường hợp robot của chúng ta, giá trị sẽ được xác định bằng dấu âm.
Các giá trị là các g c xoay tương ứng với các khâu.
2.1.5 Phương pháp điều khiển thân giữa của robot
Để lập trình chuyển động cho chân robot thông qua việc giải bài toán động học thuận và nghịch, chúng ta cần nghiên cứu các dáng di chuyển của robot trong môi trường thực tế Việc này đòi hỏi sự phối hợp nhịp nhàng giữa chuyển động của thân robot và các bộ phận khác để đảm bảo hiệu quả di chuyển.
Với chuyển động xoay ta c 3 hướng xoay theo từng trục x y z được gọi lần lượt là roll pitchvàyawnhư hình 2.8 :
Hình 2.8: Chuyển động xoay theo trục
G c roll và pitch sẽ c phương pháp tính giống nhau và được thể hiện như hình 2.9:
Hình 2.9: Phép xoay thân giữa robot Áp dụng ma trận xoay trong mặt phẳng Oxz:
Tọa độ mới của chân khi thực hiện phép xoay
Pz Pz b Tương tự với các chân c n lại khi 4 chân được cập nhật vị trí với thì sẽ tạo ra chuyển động xoay.
Khi robot xoay theo g cyaw:
Khi sử dụng g, cả bốn chân sẽ đồng thời được nhân với một ma trận xoay quanh trục Z của thân giữa, từ đó cập nhật vị trí mới để tạo ra chuyển động xoay.
Tọa độ mới của chân khi thực hiện phép xoay:
Py y Phép tịnh tiến cho thân giữa robot:
Hình 2.10 dưới dây biểu thị rõ hệ tọa độ của 4 chân trên robot:
Hình 2.10: Phép tịnh tiến cho thân giữa robot
Giả s tịnh tiến theo trục Y0 một đoạn a:
Tọa độ mới của các chân:
P x4 Px4 aTương tư với việc tịnh tiến theo trục X0và Z0.
Kiểu dáng di chuyển cho robot
Lựa chọn dáng đi của động vật là một vấn đề phức tạp, phụ thuộc vào nhiều yếu tố như điều kiện địa hình, độ ổn định, yêu cầu điều khiển tốc độ và tính linh động Đối với động vật có vú, côn trùng và sâu bọ, khi di chuyển trên địa hình bằng phẳng, thường có dáng di chuyển liên tục Dáng di chuyển này đặc trưng bởi sự chuyển động đồng thời của thân và các chân, nghĩa là thân sẽ đẩy tới hoặc kéo lui cùng lúc với sự di chuyển của các chân.
2.2.1 Di chuyển liên tục Ưu điểm của dáng di chuyển liên tục này là robot c thể đi nhanh vì thân chuyển động c ng với chân chính vì thế thời gian trong một chu kỳ được giảm đi thế nhưng do hệ số s dụng của chân nhỏ nên robot không đạt được độ ổn định cao Hình 2.11 cho ta thấy thân robot luôn chuyển động c ng với chân nên tâm của thân robot kh c thể đi trên quỹ đạo thẳng mặc d các chân robot đã đi trên quỹ đạo thẳng.
Trình tự di chuyển của các chân: Chân 4 Chân 3 Chân 1 Chân 2
Bảng 2.3 Sơ đồ vị trí đặt chân của robot dáng di chuyển liên tục
Hình 2.11: Đồ thị của dáng di chuyển liên tục
Hình 2.12: Sơ đồ bước chân của dáng di chuyển liên tục
2.2.2 Di chuyển không liên tục
Dáng di chuyển không liên tục là kiểu di chuyển trong đó một chân di chuyển trong khi các chân khác vẫn tiếp xúc với mặt đất Khi chân di chuyển, thân thể cũng được đẩy tới, tạo ra sự không đồng bộ giữa chân và thân Kiểu di chuyển này thường được các loài động vật sử dụng trên địa hình phức tạp, mang lại ưu điểm là độ ổn định cao nhờ vào việc có bốn chân tiếp xúc với mặt đất trong quá trình di chuyển.
Trình tự di chuyển của chân robot sẽ theo chu kỳ tuần hoàn, cho phép liên kết nhiều chu kỳ dáng đi thành một đường đi liên tục Nhờ đó, chúng ta có thể kết hợp các dáng di chuyển của robot để tạo ra một dáng đi mềm mại, đồng thời đảm bảo tính ổn định.
Trong dáng di chuyển không liên tục cho robot 4 chân ta c dạng di chuyển 2 pha không liên tục và dáng di chuyển 4 pha không liên tục.
2.2.2.1 Dáng di chuyển 2 pha không liên tục
Trong dáng di chuyển 2 pha không liên tục, trong mỗi chu kỳ, thân robot sẽ di chuyển hai lần, với chân phía sau được di chuyển trước và sau đó là chân phía trước Sau khi các chân di chuyển, thân robot sẽ được đẩy về phía trước Vào cuối mỗi pha, các chân không di chuyển sẽ được đặt ở vị trí giới hạn động học phía sau Ưu điểm của phương pháp này là khi hai chân đã hoàn toàn tiếp xúc với mặt đất, thân robot sẽ di chuyển, mang lại độ ổn định cao Tuy nhiên, chu kỳ di chuyển của dáng di chuyển 2 pha không liên tục dài hơn so với dáng di chuyển liên tục, dẫn đến tốc độ di chuyển chậm hơn Để hiểu rõ hơn về dáng di chuyển này, cần xem xét trình tự di chuyển của robot, đồ thị dáng di chuyển và sơ đồ bước của chân.
Trình tự di chuyển: Chân 4 Chân 3 Thân Chân 1 Chân 2 Thân.
Bảng 2.4 Sơ đồ vị trí đặt chân robot của dáng di chuyển 2 pha không liên tục
Hình 2.14: Sơ đồ bước chân của dáng di chuyển 2 pha không liên tục (pha 1)
Để đạt hiệu quả trong dáng di chuyển 4 pha không liên tục, cần đặt chân ở vị trí giới hạn động học phía sau trước khi bắt đầu giai đoạn di chuyển Trong giai đoạn 2 pha, trước khi thân robot di chuyển, hai chân sẽ được đặt cạnh nhau tại vị trí giới hạn động học Tuy nhiên, có thể tạo ra dáng di chuyển chỉ với một chân ở vị trí giới hạn động học khi một pha kết thúc, yêu cầu bốn sự di chuyển của thân robot trong quá trình này.
Trong mỗi chu kỳ di chuyển, robot sẽ đạt đến một chân giới hạn động học sau mỗi lần di chuyển Đối với kiểu di chuyển 4 pha không liên tục, trong một chu kỳ, robot sẽ thực hiện tổng cộng 4 lần dịch chuyển.
Chân 4 Thân Chân 3 Thân Chân 1 Thân Chân 2 Thân. Điều đ c ngh a là chân phía sau sẽ được di chuyển trước tiên và sau đ là chân phía trước di chuyển Sau khi các chân di chuyển trong m i pha thì thân Robot sẽ được đẩy tới phía trước 1 4 hành trình Ưu điểm của dáng di chuyển này là độ ổn định cao với.Điều này c được thể hiện qua hệ số s dụng chân Nhưng xét về thời gian di chuyển của một chu kỳ thì dáng di chuyển 4 pha không liên tục này c chu kỳ nhất do đ tốc độ di chuyển là chậm nhất Ta xét sơ đồ của dáng di chuyển và sơ đồ bước của chân để hiểu rõ điều này.
Bảng 2.5 Sơ đồ vị trí đặt chân robot của dáng di chuyển 4 pha không liên tục
Hình 2.16: Đồ thị dáng di chuyển 4 pha không liên tục
Hình 2.17: Sơ đồ bước chân của dáng di chuyển 4 pha không liên tục (1 pha)
Hình 2.18: Sơ đồ bước chân của dáng di chuyển 4 pha không liên tục (pha 2)
Hình 2.19: Sơ đồ bước chân của dáng di chuyển 4 pha không liên tục (pha 3)
Hình 2.20: Sơ đồ bước chân của dáng di chuyển 4 pha không liên tục (pha 4)
Phương pháp điều khiển tốc độ chuyển động
Điều khiển tốc độ chuyển động của chân robot là yếu tố quan trọng giúp robot di chuyển mượt mà và ổn định Khi robot di chuyển, các chân thực chất đang tạo ra một quỹ đạo chuyển động, và để đơn giản hóa, ta có thể chia quỹ đạo này thành những đoạn thẳng nhỏ Sau mỗi chu kỳ tự chọn, chân robot sẽ được nhích lên một đoạn, từ đó cho phép chúng ta kiểm soát tốc độ chuyển động một cách hiệu quả.
Hình 2.21: Quỹ đạo chuyển động của từng chân robot
Xét điểm Pi trước tiên ta sẽ tìm khoảng cách L1từ tâm O đến Pi:
Gọi sx sy szlà t lệ của xi yi ziso với Li:
Từ các tỉ lệ này, ta có thể kết luận rằng mỗi đoạn nhỏ m i sẽ tương ứng với một đoạn trên các trục X, Y, Z Do đó, vị trí mới của chân robot sau mỗi m i chu kỳ cập nhật vị trí sẽ được xác định rõ ràng.
Trong đ kx ky kzlà hệ số bước của mỗi chu kỳ cập nhật vị trí Để điều chỉnh tốc độ, có hai phương pháp chính: thay đổi tần suất cập nhật vị trí hoặc điều chỉnh hệ số bước.
Tổng quan về Deep Learning
Deep learning là một công nghệ quan trọng mà các nhà phát triển và lãnh đạo doanh nghiệp cần nắm vững để hiểu rõ về khả năng của máy móc Thuật toán này đã đạt được những thành tựu vượt trội trong việc phân loại hình ảnh, văn bản và giọng nói Học sâu được xem là một nhánh cụ thể của Machine Learning, đồng thời cũng là một phần trong trí tuệ nhân tạo (AI).
Theo định ngh a cá nhân về 3 l nh vực AI Machine Learning Deep Learning như sau:
Trí tuệ nhân tạo: là nhiệm vụ rộng lớn của việc tạo ra các máy m c c thể suy ngh thông minh
Học máy: là một cách để làm điều đ bằng cách s dụng các thuật toán để lượm lặt hiểu biết sâu s c từ dữ liệu
Học sâu: là học máy và s dụng thuật toán cụ thể đ là mạng thần kinh nhân tạo.
Mạng neural networks được xây dựng dựa trên cấu trúc của vỏ não, với perceptron là đại diện toán học cho tế bào thần kinh sinh học Trong mạng, có thể có nhiều lớp perceptrons liên kết, nơi dữ liệu đầu vào được truyền qua các lớp ẩn cho đến khi đến lớp đầu ra Lớp đầu ra cung cấp dự đoán, có thể là một nút cho bài toán hồi quy hoặc nhiều nút cho bài toán phân loại Các lớp ẩn thực hiện việc điều chỉnh trọng số trên dữ liệu đầu vào, giúp nhận diện mối quan hệ giữa các biến và biến mục tiêu Mỗi nút trong mạng có trọng số, nhân giá trị đầu vào với trọng số tương ứng, cho phép mạng neural networks chuyển đổi dữ liệu thành thông tin có ý nghĩa.
Deep Learning là một thuật toán mạnh mẽ, đặc biệt hiệu quả trong việc dự đoán và giải quyết nhiều bài toán Mặc dù Machine Learning đã được sử dụng trong phân loại hình ảnh và văn bản từ lâu, nhưng nó gặp khó khăn trong việc đạt được độ chính xác cao Deep Learning đã giúp vượt qua những giới hạn này, mở ra khả năng mới cho các ứng dụng thực tế trong kinh doanh, đặc biệt trong lĩnh vực tầm nhìn máy tính Sử dụng Deep Learning không chỉ vượt trội hơn các thuật toán truyền thống mà còn có khả năng vượt qua hiệu suất của con người trong nhiều ngành công nghiệp.
Hình 2.22: So sánh giữa DL và các thuật toán học tập khác
Mạng nơ ron (NEURAL NETWORK)
Mạng noron nhân tạo (Artificial Neural Networks) là một mô hình mô phỏng mạng noron sinh học, bao gồm các đơn vị tính toán đơn giản được liên kết chặt chẽ Các liên kết giữa các noron này quyết định chức năng và khả năng hoạt động của mạng.
Các đặc trưng cơ bản của mạng nơ ron:
Gồm một tập các đơn vị x l (các noron nhân tạo)
Trạng thái kích hoạt hay đầu ra của đơn vị x l
Liên kết giữa các đơn vị được xác định bởi trọng số W jk, cho thấy hiệu ứng mà tín hiệu từ đơn vị j tác động lên đơn vị k.
Một luật lan truyền quyết định cách tính tín hiệu ra của từng đơn vị từ đầu vào.
Một hàm kích hoạt hay hàm chuyển (activation function transfer function) xác định mức độ kích hoạt khác dựa trên mức độ kích hoạt hiện tại.
Một đơn vị điều ch nh (độ lệch) (bias offset) của m i đơn vị.
Phương pháp thu thập thông tin (luật học - learning rule).
2.5.2 Các thành phần cơ bản của mạng nơ ron Đơn vị x l : c n được gọi là một nơron hay một nút (node) thực hiện một công việc rất đơn giản: n nhận tín hiệu vào từ các đơn vị phía trước hay một nguồn bên ngoài và s dụng chúng để tính tín hiệu ra sẽ được lan truyền sang các đơn vị khác M i đơn vị j c thể c một hoặc nhiều đầu vào: x0 x1 x2 … xn nhưng ch c một đầu ra zj Một đầu vào tới một đơn vị c thể là dữ liệu từ bên ngoài mạng.
Hình 2.23 Đơn vị xử lý (Processing Unit)
wji : các trọng số tương ứng với các đầu vào
aj : đầu vào mạng (net-input)
zj : đầu ra của nơron g(x): hàm chuyển (hàm kích hoạt).
Trong một mạng nơron c ba kiểu đơn vị:
Các đơn vị đầu vào (Input units) nhận tín hiệu từ bên ngoài
Các đơn vị đầu ra (Output units) g i dữ liệu ra bên ngoài
Các đơn vị ẩn (Hidden units) tín hiệu vào (input) và ra (output) của n trong mạng.
Hàm kết hợp trong mạng nơron là một đơn vị tiếp nhận n giá trị đầu vào thông qua các liên kết với các đơn vị khác, tạo ra giá trị net input Hàm này được xác định bởi một luật lan truyền cụ thể và thường giả định rằng mỗi đơn vị cung cấp một bộ cộng cho đơn vị mà nó kết nối Tổng đầu vào của đơn vị j được tính bằng tổng trọng số của các đầu ra từ các đơn vị kết nối cộng với ngưỡng hay độ lệch θj.
Khi wji > 0, nơron được xem là trong trạng thái kích thích, trong khi nếu wji < 0, nơron ở trạng thái kiềm chế Các đơn vị này được gọi là sigma units, và trong một số trường hợp, có thể áp dụng các luật lan truyền phức tạp hơn Nhiều hàm kết hợp sử dụng "độ lệch" hay "ngưỡng" để tính toán đầu vào ròng tới đơn vị Đối với một đơn vị đầu ra tuyến tính thông thường, θj được chọn là hằng số, và trong bài toán xấp x đa thức, θj = 1.
Hàm kích hoạt là một thành phần quan trọng trong mạng nơron, chuyển đổi đầu vào thành mức độ kích hoạt của đơn vị thông qua các hàm vô hướng Giá trị kích hoạt này có thể được đưa vào các đơn vị khác trong mạng Các hàm kích hoạt thường bị giới hạn trong một khoảng giá trị nhất định, vì vậy chúng được gọi là các hàm bẹp Một số hàm kích hoạt phổ biến bao gồm hàm đồng nhất (hàm tuyến tính), hàm bước nhị phân và hàm sigmoid.
Các hàm chuyển của các đơn vị ẩn là yếu tố quan trọng để đưa tính phi tuyến vào mạng nơ-ron Mặc dù là hợp thành của các hàm đồng nhất, nhưng tính phi tuyến cho phép các mạng nhiều tầng biểu diễn hiệu quả các ánh xạ phi tuyến Đối với thuật toán lan truyền ngược, hàm cần phải khả vi và việc giới hạn hàm trong một khoảng nhất định là cần thiết Vì lý do này, hàm sigmoid trở thành lựa chọn phổ biến.
Hàm mục tiêu là yếu tố quan trọng trong việc huấn luyện mạng, giúp đánh giá hiệu suất của hệ thống một cách rõ ràng Việc lựa chọn hàm mục tiêu không chỉ phản ánh các mục tiêu thiết kế mà còn quyết định thuật toán huấn luyện phù hợp Phát triển một hàm mục tiêu chính xác là thách thức, và hàm tổng bình phương lỗi (sum of squares error function) là một trong những hàm phổ biến được sử dụng Trong thực tế, có thể điều chỉnh hàm mục tiêu bằng cách thêm các yếu tố khác để quản lý độ phức tạp của mô hình.
p: số thứ tự m u trong tập huấn luyện
i : số thứ tự của đơn vị đầu ra
tpi và ypi : tương ứng là đầu ra mong muốn và đầu ra thực tế của mạng cho đơn vị đầu ra thứ i trên m u thứ p.
Mạng nơ ron tích chập (CNN)
Mạng nơ ron tích chập (CNN) là mô hình học sâu hàng đầu trong lĩnh vực thị giác máy tính, hiện đang vượt qua con người trong một số nhiệm vụ nhất định CNN hoạt động bằng cách đánh giá đầu vào thông qua các phép tích chập với bộ lọc, giúp phát hiện các cạnh và đặc trưng ở các lớp nông, đồng thời nhận diện các đặc trưng phức tạp ở các lớp sâu hơn Ngoài ra, CNN thường được kết hợp với các lớp gộp và các lớp kết nối đầy đủ ở cuối Quá trình huấn luyện CNN bao gồm việc chạy lan truyền về phía trước giống như mạng nơ ron truyền thống và giảm thiểu hàm loss thông qua quá trình truyền ngược.
Phân loại hình ảnh là quá trình nhận diện và gán tên cho các đối tượng trong hình ảnh, ví dụ như "mèo" Đối với con người, khả năng nhận diện hình ảnh là một kỹ năng tự nhiên phát triển từ khi chúng ta sinh ra, cho phép chúng ta nhanh chóng hiểu và mô tả môi trường xung quanh mà không cần suy nghĩ nhiều Khi nhìn vào một hình ảnh, chúng ta có thể ngay lập tức đặt tên cho các đối tượng mà không nhận ra Kỹ năng này cho phép chúng ta nhận diện các mẫu hình và thích nghi với những môi trường hình ảnh khác nhau, điều mà các thiết bị máy móc hiện tại vẫn chưa đạt được.
Hình 2.24 Máy tính nhìn thấy một mảng pixel giá trị của một tấm ảnh
Khi máy tính tiếp nhận một hình ảnh, nó sẽ phân tích thành một mảng các giá trị pixel, thường có kích thước 32 x 32 x 3, trong đó số 3 đại diện cho các kênh màu RGB Mỗi giá trị pixel được gán một số từ 0 đến 255, thể hiện cường độ màu tại từng điểm ảnh Mặc dù những con số này có vẻ vô nghĩa với con người, nhưng chúng là đầu vào duy nhất mà máy tính có thể hiểu để thực hiện phân loại hình ảnh Khi nhận được mảng số này, máy tính sẽ xuất ra các xác suất cho các nhãn hình ảnh, ví dụ như 0.8 cho một con chó và 0.05 cho một con chim.
Máy tính cần phân biệt giữa các hình ảnh và xác định các đặc trưng độc nhất để phân loại chúng, giống như cách con người nhận diện một con chó hay một con mèo Khi nhìn vào hình ảnh, chúng ta phân loại dựa trên các đặc điểm nhận dạng như lông và số chân Tương tự, máy tính thực hiện phân loại hình ảnh bằng cách tìm kiếm các đặc trưng cấp thấp như cạnh và đường cong, từ đó xây dựng các khái niệm trừu tượng hơn thông qua các lớp tích chập Đây là quá trình cơ bản mà một mạng nơ-ron tích chập (CNN) thực hiện.
2.6.2 Cấu trúc của mạng nơ rơn tích chập
Tất cả các mô hình CNN đều có kiến trúc tương tự nhau Để đạt được tính năng n, mạng CNN thực hiện quá trình chuyển đổi và xử lý hình ảnh thông qua nhiều lớp khác nhau, như được minh họa trong hình 2.25.
Hình 2.25 Cấu trúc của mạng CNN nhiều lớp
(http: enews.agu.edu.vn index.php?option=com_content&view=article&id577&Itemid8)
Lớp tích chập (Convolutional Layer): được d ng để phát hiện các đặc trưng ảnh.
Lớp phi tuyến tính (Non-Linearity Layer): tính phi tuyến cho hệ thống.
Lớp tổng hợp (Pooling-lấy m u xuống): để giảm thiểu số lượng trọng số và kiểm soát vượt lố (overfiting).
Lớp làm phẳng (Flattening Layer): chuẩn bị dữ liêu cho mạng thần kinh nơ ron cổ điển.
Lớp kết nối đầy đủ (Fully-Connected Layer): mạng nơ ron tiêu chuẩn được d ng để phân loại.
2.6.3 Lớp tích chập (Convolutional Layer)
Trong hình 2.26, bên trái là đầu vào của lớp chập, ví dụ hình ảnh đầu vào, và bên phải là bộ lọc tích chập, hay còn gọi là kernel hoặc mặt nạ tích chập Bộ lọc này có kích thước 3x3, được xem là khối xây dựng chính của mạng nơ-ron tích chập (CNN) Tích chập là phép toán hợp nhất hai bộ thông tin, trong đó bộ lọc tích chập được áp dụng lên dữ liệu đầu vào để tạo ra bản đồ đặc trưng, như thể hiện trong Hình 2.27 và Hình 2.28.
Hình 2.26 Ngõ vào và mặt nạ của CNN (a) Ngõ vào 7x7 (b) Bộ lọc tích chập 3x3
Hình 2.27 Phép nhân tích chập của CNN
Hình 2.28 Kết quả của phép tích chập (a) Bức ảnh ngõ vào
(b) Feature map của ảnh sau khi tích chập
Công thức toán học của phép tích chập được biểu diễn trong công thức (2.3) hࡵ כ כ ࡵ ঈ (2.3)
Trong đ : I là ngõ vào input K là kích thước của bộ tích chập (h x w)
Chúng ta thực hiện thao tác tích chập bằng cách trượt bộ lọc 3x3 qua bức ảnh đầu vào, tại mỗi vị trí, phép nhân ma trận được thực hiện và tổng kết quả được đưa vào bản đồ đặc điểm (feature map) Khu vực màu đỏ, nơi tích chập diễn ra, được gọi là trường tiếp nhận Một điểm quan trọng là chúng ta thực hiện nhiều phép tích chập trên cùng một đầu vào với các bộ lọc khác nhau, dẫn đến các bản đồ đặc điểm riêng biệt Cuối cùng, tất cả các bản đồ này được kết hợp để tạo ra đầu ra cuối cùng của lớp tích chập, với chiều sâu của đầu ra tương ứng với số lượng bộ lọc và số lượng bản đồ đặc điểm.
Sử dụng 10 bộ lọc khác nhau, chúng ta sẽ có 10 bản đồ đặc trưng kích thước 32x32x1, được xếp dọc theo chiều sâu, tạo ra đầu ra cuối cùng của lớp chập với thể tích 32x32x10, hiển thị dưới dạng hộp lớn màu xanh Chiều cao và chiều rộng của bản đồ đặc trưng không thay đổi, vẫn là 32, nhờ vào phần đệm (padding) mà chúng tôi sẽ giải thích sau Hai bản đồ đặc trưng được xếp chồng lên nhau theo chiều sâu, và phép tích chập được thực hiện độc lập, dẫn đến các bản đồ đặc trưng rời rạc.
Hình 2.29 Thực hiện phép nhân tích chập ở ngõ vào
Hình 2.30 Phép tích chập cho ra 2 feature map ở 2 lớp độc lập
2.6.4 Phần đệm và mức trượt (Padding and Stride) muốn ít sự chồng chéo giữa các trường tiếp nhận Điều này làm cho bản đồ đặc điểm nhỏ hơn do chúng ta đã bỏ qua các vị trí tiềm n ng (potential locations) trên ảnh Theo hình 2.31 ta thấy bản đồ đặc trưng đã nhỏ hơn nếu ta chọn mức trượt (stride) bằng 2.
Hình 2.31 Kết quả của fearture map khi trượt mặt nạ 3x3 với mức trượt bằng 2
(a) Ảnh ngõ vào 7x7 (b) Bản đồ đặc điểm 3x3
Kích thước của bản đồ đặc trưng thường nhỏ hơn kích thước đầu vào do yêu cầu của bộ lọc tích chập Để duy trì kích thước đầu ra không đổi, chúng ta có thể sử dụng phần đệm (Padding) bao quanh đầu vào bằng các số 0 Nhờ đó, khi bộ lọc trượt vào, kích thước của bản đồ đặc trưng sẽ được giữ nguyên.
Hình 2.32 Thêm phần đệm 0 vào ngõ vào input
2.6.5 Lớp kích hoạt phi tuyến tính (Non-linearity Layers)
Mạng thần kinh hoạt động như một nhận thức duy nhất, với tổng của tất cả các lớp là một hàm tuyến tính, dẫn đến đầu ra là sự kết hợp tuyến tính của các đầu ra Sau mỗi lớp chập, thường có một lớp phi tuyến tính được gọi là lớp kích hoạt, sử dụng các chức năng kích hoạt như ReLU hoặc Sigmoid Nếu không có lớp kích hoạt, mạng chỉ là sự kết hợp của các hàm tuyến tính, khiến hàm hợp của nhiều hàm tuyến tính vẫn là hàm tuyến tính, tương đương với một phép biến đổi tuyến tính Điều này làm cho việc ánh xạ giữa đầu vào và đầu ra trở nên phi tuyến.
T m lại cần d ng activation layer để c được một ánh xạ phi tuyến.
Hàm ReLU (Rectifier function) đã trở thành lựa chọn ưu việt trong việc huấn luyện mạng thần kinh, thay thế các hàm phi tuyến như sigmoid và tanh nhờ vào hiệu suất cao hơn Hàm này hoạt động bằng cách loại bỏ tính tuyến tính, cụ thể là đặt các giá trị nhỏ hơn 0 về 0, được biểu diễn dưới dạng f(x) = max(0, x) Hình 2.33 minh họa ứng dụng của hàm ReLU trong bản đồ đặc điểm, trong đó các giá trị màu đen biểu thị cho các giá trị âm, và sau khi áp dụng hàm ReLU, những giá trị này sẽ bị xóa khỏi ảnh.
Hình 2.33 Feature map sau khi qua lớp kích hoạt
2.6.6 Lớp tổng hợp (Pooling Layers)
Sau khi tích chập, việc gộp là cần thiết để giảm kích thước và số lượng tham số, từ đó rút ngắn thời gian huấn luyện và ngăn ngừa hiện tượng vượt lố (overfitting) Lớp Pooling hoạt động độc lập với từng Feature map, giúp giảm độ dài và độ rộng nhưng vẫn giữ nguyên độ sâu Max pooling là lớp Pooling phổ biến nhất, lấy giá trị lớn nhất trong cửa sổ gộp Khác với lớp tích chập, lớp Pooling không có tham số; nó trượt qua đầu vào và chọn giá trị lớn nhất Tương tự như lớp tích chập, chúng ta có thể điều chỉnh kích thước của cửa sổ (kernel size) và sải bước (stride).
(b) Feature map của ảnh sau khi qua max pooling
Trong hình 2.34, bộ lọc maxpooling kích thước 2x2 được áp dụng trên ảnh 4x4 với bước nhảy 2, giúp chọn giá trị lớn nhất từ vùng ảnh mà nó bao phủ Kết quả là một feature map nhỏ hơn, nhưng vẫn chứa đầy đủ thông tin cần thiết để mạng thần kinh đưa ra quyết định chính xác.
Trong cấu trúc mạng CNN thông thường max pooling được chọn c kích thước 2x2 sải bước 2 và không c phần đệm.Trong khi lớp tích chập thì c kích thước 3x3 sải bước
1 với phần đệm để giữa nguyên kích thước feature map.
2.6.7.Lớp làm phẳng (Flattening Layers) Đây là một lớp đơn giản được s dụng để chuẩn bị dữ liệu đầu vào cuối c ng Thông thường các mạng thần kinh cổ điển nhận dữ liệu theo một chiều dưới dạng một mảng các giá trị lớp này s dụng dữ liệu được truyền từ lớp tích chập hoặc lớp max pooling và chuyển đổi làm phẳng các ma trận thành các mảng Sau đ các giá trị này được s dụng làm đầu vào cho mạng nơ ron lớp cuối c ng Hình 2.35 biểu diễn trực quan của quá trình làm phẳng.
Hình 2.35 Quá trình làm phẳng
2.6.8.Lớp kết nối đầy đủ (Fully-Connected Layer)
Model nhận dạng khuôn mặt
Nhận dạng đối tượng đã thu hút sự chú ý của các nhà nghiên cứu nhờ vào mối quan hệ chặt chẽ với phân tích video và hình ảnh Phương pháp truyền thống thường dựa vào các tính năng thủ công và cấu trúc huấn luyện đơn giản Tuy nhiên, với sự phát triển của deep learning, chúng ta có thêm những công cụ mạnh mẽ để học các tính năng ngữ nghĩa cao cấp và đặc điểm sâu hơn, giúp giải quyết các vấn đề tồn đọng trong cấu trúc huấn luyện truyền thống Mỗi mô hình nhận dạng đối tượng bao gồm hai phần: feature extractor, sử dụng mạng CNN để trích xuất đặc điểm của đối tượng, và detection framework, phần thực hiện việc nhận dạng đối tượng.
Howard (2017) đã phát triển các mô hình MobileNets dành cho ứng dụng tầm nhìn trên điện thoại Mục tiêu của họ là tối ưu hóa độ chính xác và tốc độ huấn luyện để phục vụ cho nhiều mục đích khác nhau Kiến trúc MobileNets sử dụng phương pháp tính tích chập gọi là "depth separable convolution", giúp giảm kích thước mô hình và độ phức tạp.
Tích chập phân tách theo chiều sâu (depthwise separable convolution) là một kỹ thuật hữu ích cho việc chạy các ứng dụng trên di động và thiết bị nhúng Kỹ thuật này bắt đầu bằng việc áp dụng tích chập cổ điển với bộ lọc kích thước cố định (như 3x3) cho tất cả các ngõ vào, tạo ra các Feature Map thông qua tích chập theo chiều sâu Sau đó, các bộ lọc 1x1 được sử dụng trên các Feature Map này, thực hiện tích chập điểm Phương pháp này giúp giảm đáng kể số lượng thông số sau khi qua lớp chập điểm, mang lại hiệu quả cao hơn cho các mô hình.
(https: dlapplications.github.io 2018-07-06-CNN)
Depthwise convolution là một loại tích chập không gian theo từng kênh, với kích thước D k x D k Nếu có n kênh đầu vào, chúng ta sẽ thực hiện n phép tích chập không gian D k x D k Như minh họa trong hình 2.37, với 5 kênh đầu vào, quá trình bao gồm 5 bước: đầu tiên là 5 khối hộp, sau đó phân tách thành ma trận [m x n], tiếp theo là thực hiện tích chập không gian kích thước [n x n], sau đó là kết quả tích chập, và cuối cùng là kết hợp 5 kết quả này lại Do đó, ta có 5 phép tích chập không gian D k x D k tương ứng với 5 kênh đầu vào.
Pointwise convolution: đơn giản là một tích chập c kích thước 1x1
Với M là số lượng kênh đầu vào, N là số lượng kênh đầu ra, Dk là kích thước kernel và Df là kích thước bản đồ đặc trưng, chúng ta có thể tính toán các thông số cần thiết Đối với tập dữ liệu ImageNet, kích thước đầu vào c là 224, do đó kích thước bản đồ đặc trưng ban đầu Df cũng là 224.
Chi phí tính toán của Depthwise convolution là :
(2.4) Chi phí tính toán của Pointwise convolution là :
(2.5) Tổng chi phí tính toán của Depthwise Separable Convolution là:
Nếu chúng ta không s dụng Depthwise Separable Convolution mà s dụng phép tích chập như bình thường chi phí tính toán là:
Do đ chi phí tính toán sẽ giảm:
Khi chọn kích thước kernel là 3, chúng ta có thể giảm số phép tính nhân từ 8 đến 9 lần, giúp giảm thiểu đáng kể khối lượng tính toán, mặc dù độ chính xác có thể giảm một chút.
Chúng ta thấy rằng mô hình c 30 lớp với các đặc điểm:
Lớp 1: Convolution layer với stride bằng 2
Lớp 4: Depthwise layer với stride bằng 2 (khác với lớp 2 c stride bằng 1)
Lớp 30: Softmax d ng để phân lớp.
So sánh kết quả giữa Depthwise Separable Convolution và phép tích chập tiêu chuẩn trên tập dữ liệu ImageNet cho thấy MobileNet giảm 1% độ chính xác Tuy nhiên, mô hình này lại giảm đáng kể số lượng tham số và phép tính toán, gần xấp xỉ 90%.
Bảng 2.6 So sánh kết quả giữa Depthwise Separable Convolution và phép tích chập
Model Độ chính xác ImageNet Số lượng tham số (tr)
Cấu trúc của MobileNet-v1 được thể hiện hình 2.33.
Hình 2.38 Cấu trúc của MobileNet-v1
2.7.2 Single Shot Detector (SSD) (Detector)
Mô hình SSD, được phát triển bởi W Liu vào năm 2016, sử dụng cấu trúc mạng CNN end-to-end để dự đoán tất cả các bounding box trong một lần duy nhất cùng với xác suất của đối tượng Mô hình này xử lý ảnh đầu vào thông qua nhiều lớp tích chập với các kích thước bộ lọc khác nhau như 10x10, 5x5 và 3x3.
Các feature map từ các lớp tích chập trong mạng được sử dụng để dự đoán các bounding box Những feature map này được xử lý qua các lớp chập với bộ lọc 3x3, được gọi là lớp bổ sung đặc tính (extra feature layer), nhằm tạo ra một bộ các bounding box tương tự như các anchor box của Fast R-CNN Hình 2.39 minh họa cấu trúc của SSD.
Hình 2.39 Cấu trúc của model SSD
Tương tự như anchor box, mỗi box đều có 4 tham số: tọa độ trung điểm, chiều dài và chiều rộng Ngoài ra, nó cũng tạo ra một véc tơ xác suất phản ánh độ tin cậy của từng lớp đối tượng Thuật toán Non-Maximum Suppression được áp dụng ở giai đoạn cuối của mô hình SSD để gộp các box liên quan của cùng một đối tượng thành một box duy nhất.
Thuật toán Hard Negative Mining (HNM) được áp dụng để xử lý số lượng lớn box bị âm trong quá trình dự đoán Quá trình này bao gồm việc chọn lựa các phần phụ của box trong suốt quá trình huấn luyện, với các box được sắp xếp theo độ tin cậy Phần box trên cùng sẽ được chọn dựa trên tỷ lệ giữa box dương và âm, thường là 1:3.
W Liu (2016) phân biệt SSD300 và SSD512 là SSD300 c thêm lớp chập để cải thiện hiệu suất dự đoán Các model SSD tốt nhất được huấn luyện với các tập dữ liệu PASCAL VOC và COCO 2015 nhằm t ng cường dữ liệu N đã đạt được 83.2% mAP trên PASCAL VOC 2007 và 82.2% trên PASCAL VOC 2012 Trong cuộc thi của COCO 2015 n đã đạt được 48.5% mAP cho IoU = 0.5 30.3% mAP cho IoU = 0.75 và 31.5% mAP cho số liệu chính thức Hình 2.40 thể hiện framework của SSD.
THIẾT KẾ MÔ HÌNH ROBOT
Thiết kế phần cứng
3.3.1 Thiết kế mô phỏng phần cứng
Nhà thiết kế đã sử dụng phần mềm SolidWorks 2015 để tạo ra cánh tay máy Vật liệu chính được sử dụng là mica, mang lại độ cứng cáp và tính thẩm mỹ cao Các chi tiết của cánh tay máy được kết nối bằng ốc vít bulông và bạc đạn, giúp việc lắp ráp và sửa chữa trở nên thuận tiện hơn.
Hình 3.1: Mô hình Robot 4 chân trên SolidWorks 2015
Sau khoảng thời gian nghiên cứu và thiết kế Nh m đã hoàn tất công việc thi công robot Dưới đây là một số hình ảnh robot khi hoàn thành :
Bảng 3.1 Thông số kỹ thuật của Module Bluetooth HC-05
Chiều dài cẳng chân 110 mm
Lựa chọn thiết bị
3.2.1 Bộ điều khiển board arduino mega 2560
Arduino Mega 2560 ( hình 3.4 ) là một vi điều khiển dựa trên nền ATmega 2560 C
Arduino Mega có 54 chân vào/ra số, trong đó 15 chân có thể được sử dụng làm đầu ra PWM, 16 chân vào analog, và 4 cổng UART (cổng nối tiếp phần cứng) Nó được trang bị một dao động tinh thể 16 MHz, cổng USB, jack cắm điện, một đầu ICSP và nút reset Thiết bị này cung cấp tất cả các tính năng cần thiết để hỗ trợ các vi điều khiển kết nối với máy tính qua cáp USB hoặc sử dụng với bộ chuyển đổi AC-DC hoặc pin Arduino Mega tương thích với hầu hết các shield được thiết kế cho Arduino Duemilanove hoặc Diecimila.
Bảng 3.2 Tóm tắt thông số Arduino Mega 2560
Digital I O Pins 54 (of which 15 provide PWM output)
DC Current per I O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used by bootloader
Arduino Mega Sensor Shield cho phép người dùng tương tác thông qua giao tiếp với cổng COM và I2C, đồng thời hỗ trợ kết nối thẻ SD, giúp việc kết nối các module trở nên đơn giản và linh hoạt Shield này cung cấp nguồn cấp riêng biệt, dễ dàng điều khiển các thiết bị như RC Servo và các cảm biến, cũng như các thiết bị giao tiếp ngoại vi như Bluetooth và Wifi.
Hình 3.4: Arduino Mega Sensor Shield
Hình 3.5: Sơ đồ chức năng các chân của Mega Sensor Shield
C 3 loại động cơ thường được d ng để làm các mô hình robot là động cơ DC Servo
Động cơ RC Servo và động cơ bước (Step motor) là hai loại động cơ phổ biến trong điều khiển Robot Động cơ RC Servo có khả năng phản hồi trạng thái nhờ biến trở tích hợp bên trong, giúp đơn giản hóa quá trình điều khiển chỉ với một chân phát tín hiệu PWM Mô hình này tương tự như việc sử dụng động cơ Servo trong công nghiệp, cho phép ứng dụng dễ dàng các thuật toán phát triển trong lĩnh vực công nghiệp.
Động cơ DC Servo và Step Motor không được sử dụng phổ biến như động cơ RC Servo do sự khác biệt về vị trí Home Đối với động cơ RC Servo, vị trí Home được xác định bởi một mức điện áp cố định nhờ vào việc sử dụng biến trở, điều này tạo ra sự chính xác và ổn định trong quá trình điều khiển.
DC Servo và Step Motor sẽ xác định vị trí Home ngay khi được cấp nguồn, do đó, để kiểm soát tọa độ của cánh tay robot, cần sử dụng thêm các cảm biến công tắc hành trình Việc này dẫn đến việc phải sử dụng nhiều chân vi điều khiển hơn, làm cho thiết kế trở nên cồng kềnh.
DC Servo thường sử dụng encoder làm phần hồi tiếp trạng thái, nhưng khi số lượng động cơ lớn, vi điều khiển cần có sức mạnh và tốc độ xử lý cao Nếu không đáp ứng đủ yêu cầu về hiệu suất và số lượng vector ngược lớn, vi điều khiển có thể gặp tình trạng treo.
Motor bước có momen yếu hơn so với servo DC và servo RC, đồng thời thiết kế của nó thường lớn và cồng kềnh Ngoài ra, motor bước dễ gặp tình trạng mất bước và không tích hợp phần hồi tiếp, dẫn đến sai số trong quá trình điều khiển.
Cho nên RC Servo là ph hợp nhất với các mô hình robot di chuyển không bánh xe cấu tạo bên trong của động cơ RC Servo như hình 3.6:
Hình 3.6: Cấu tọa bên trong RC Servo
3 Positive Power Wire (Red) (Dây nguồn màu đỏ)
4 Signal Wire (Yellow or White) (Dây tín hiệu thường là màu vàng hoặc màu tr ng)
5 Negative or Ground Wire (Black) (Dây GND đen)
7 Output Shaft Gear (Trục Bánh r ng đầu ra)
8 Servo Attachment Horn Wheel Arm
10 Integrated Control Chip (Chip điều khiển)
Trong hệ thống servo, hoạt động của nó phụ thuộc vào một chuỗi các xung số ổn định, với mạch điều khiển nhận tín hiệu số c có độ dài xung từ 1ms đến 2ms, được gửi đi 50 lần mỗi giây Điều quan trọng là số lượng xung không phải là yếu tố chính, mà là chiều dài của các xung Servo yêu cầu khoảng 30 đến 60 xung mỗi giây; nếu thấp hơn, độ chính xác và công suất sẽ giảm Khi độ dài xung là 1ms, servo quay theo chiều kim đồng hồ, trong khi với 2ms, nó quay ngược lại Việc điều khiển vị trí của trục ra của động cơ được thực hiện thông qua việc điều chế độ rộng xung.
Đề tài lựa chọn động cơ RC Servo TowerPro MG946R để điều khiển vị trí trục ra của động cơ thông qua việc điều chế độ rộng xung, nhằm đáp ứng yêu cầu cho cánh tay Robot Hình ảnh của động cơ RC Servo TowerPro MG946R được thể hiện trong hình 3.8.
Hình 3.8: RC Servo 946R Bảng 3.3 Thông số hoạt động của RC Servo TowerPro MG946R.
Stall torque 10.5kg cm(4.8V) – 13kg cm(6V)
Operating speed (Tốc độ hoạt động) 0.20sec 60degree(4.8V) – 0.17s 60d(6V) Operating voltage (Điện áp hoạt động) 4.8V – 7.2V
Temperature range (Khoảng nhiệt độ) 0oC – 55oC
Mạch thu phát Bluetooth HC-05 đã hoàn thiện các chân kết nối, giúp việc kết nối với các bộ điều khiển hoặc module khác trở nên dễ dàng hơn để truyền phát tín hiệu hiệu quả.
Hình 3.8:Module Bluetooth HC-05 Bảng 3.5 Thông số kỹ thuật của Module Bluetooth HC-05 Điện áp hoạt động 3.3 – 5V
Dải tần s ng hoạt động 2.4Ghz
D ng điện 30mA khi kết nối 8mA khi truyền nhận
Với một số thông cần thiết như sau:
Điện áp đầu vào: 100-240V 50 60Hz
Bảng 3.6 Thông số kĩ thuật của Camera Logitech C270
Microphone Built-in Noise Suppression
Lens and Sensor Type Plastic
Image Capture (4:3 SD) 320x240 640x480 1.2 MP 3.0 MP
Indicator Lights (LED) Activity Power
Clip Size (max) 0 to infinity
Cable Length 5 Feet or 1.5 Meters
Ta s C270 để ph hợp về giá thành kích thước c ng như là tốc độ frame hình.
Các động rc được kết nối vào micro controller và được cấp nguồn từ adepter Tổng cộng c 12 động cơ rc và 1 module bluetooth HC-05 kết nối với arduino.
Hình 3.10 Sơ đồ nối dây
3.4.1 Thuật toán điều khiển robot
Để điều khiển 12 động cơ RC Servo, cần lựa chọn vi điều khiển có khả năng cung cấp đủ 12 ngõ ra PWM Arduino Mega 2560, với nền tảng chip Atmega 2560, là sự lựa chọn lý tưởng cho việc điều khiển mô hình này.
Mô hình điều khiển robot
Hình 3.11 Mô hình điều khiển robot
Hình 3.12 Lưu đồ điều khiển robot
3.4.2 Huấn luyện model nhận dạng người
Nhóm huấn luyện đã chọn mô hình phát hiện đối tượng MobileNet-SSD, sử dụng bộ dữ liệu gồm 100 bức ảnh về người Mô hình được huấn luyện trong vòng 3 giờ trên máy tính có cấu hình core-i5 2.4GHz và RAM 4GB Cấu trúc của mô hình MobileNet-SSD được trình bày trong chương 2 Do số lượng dữ liệu hạn chế, nhóm nghiên cứu quyết định không tiến hành đánh giá quá trình huấn luyện.
THỰC NGHIỆM VÀ KẾT QUẢ
Kết quả điều khiển
Sau khi kiểm tra động học thuận nghịch, chúng tôi tiến hành điều khiển robot thông qua module Bluetooth bằng ứng dụng điện thoại (hình 4.1) Robot hoạt động hiệu quả và có khả năng di chuyển linh hoạt.
2 cách và đứng vững không cần tác động bên ngoài.
Hình 4.2 Hình ảnh robot lúc hoạt động
Kết quả nhận dạng người
Mặc dù có hạn chế về dữ liệu, mô hình sau khi được huấn luyện đã hoạt động hiệu quả, có khả năng nhận dạng con người trong môi trường xung quanh Điều này tạo nền tảng vững chắc cho việc phát triển thuật toán theo dõi đối tượng trong tương lai.