TỔNG QUÁT VỀ ROBOT
Sơ lược về phát triển Robot
Nhu cầu nâng cao năng suất và chất lượng sản phẩm đang thúc đẩy việc ứng dụng rộng rãi các phương tiện tự động hóa trong sản xuất Xu hướng hiện nay là phát triển các dây chuyền và thiết bị tự động linh hoạt, thay thế dần các máy móc tự động "cứng" chỉ đáp ứng một chức năng duy nhất Thị trường ngày càng yêu cầu sự đa dạng về chủng loại, kích cỡ và tính năng sản phẩm, dẫn đến sự gia tăng nhanh chóng nhu cầu ứng dụng robot để tạo ra các hệ thống sản xuất tự động linh hoạt.
Thuật ngữ 'robot' lần đầu tiên được giới thiệu vào năm 1922 trong tác phẩm 'Rossum's Universal Robots' của Karel Čapek, trong đó từ 'robot' trong tiếng Séc có nghĩa là người làm tạp dịch Trong câu chuyện, nhân vật Rossum đã chế tạo những cỗ máy giống con người để phục vụ cho nhu cầu của con người.
Hơn 20 năm sau, ước mơ viễn tưởng của Karel Capek bắt đầu hiện thực Ngay sau chiến tranh thế giới thứ 2, ở Hoa Kỳ đã xuất hiện những tay máy chép hình điều khiển từ xa trong các phòng thí nghiệm về vật liệu phóng xạ.
Vào cuối những năm 50, bên cạnh các máy chép hình cơ khí, đã xuất hiện máy chép hình thủy lực và điện từ như tay máy Minitaur I và tay máy Handyman của General Electric Năm 1954, George C Devol thiết kế thiết bị 'cơ cấu bản lề' để chuyển hàng theo chương trình Đến năm 1956, Devol cùng Joseph F Engelber, một kỹ sư trẻ trong ngành hàng không, đã tạo ra robot công nghiệp đầu tiên tại công ty Unimation Đến năm 1975, Unimation bắt đầu thu lợi nhuận từ sản phẩm robot đầu tiên này.
Chiếc robot công nghiệp được đưa vào ứng dụng đầu tiên, năm 1961, ở một nhà máy ô tô của General Motors tại Trenton, New Jersey Hoa Kỳ.
Năm 1967, Nhật Bản lần đầu tiên nhập khẩu robot công nghiệp từ Công ty AMF Đến năm 1990, hơn 40 công ty Nhật Bản, bao gồm các tập đoàn lớn như Hatachi và Mitsubishi, đã giới thiệu nhiều loại robot nổi tiếng ra thị trường quốc tế.
Từ những năm 70, nghiên cứu về việc nâng cao tính năng của robot đã tập trung vào việc lắp đặt các cảm biến ngoại tín hiệu để nhận biết môi trường làm việc Tại trường đại học tổng hợp Ford, các nhà nghiên cứu đã phát triển loại robot lắp ráp tự động được điều khiển bằng máy tính, sử dụng thông tin từ các cảm biến lực và thị giác Cùng thời điểm, Công ty IBM cũng chế tạo robot với cảm biến xúc giác và cảm biến lực, nhằm lắp ráp các máy in bao gồm 20 cụm chi tiết.
Trong giai đoạn này, nhiều quốc gia cũng đang tiến hành các nghiên cứu tương tự, phát triển các loại robot điều khiển bằng máy vi tính Những robot này được trang bị các thiết bị cảm biến và thiết bị ngoại vi để tương tác hiệu quả với con người.
Nhiều phòng thí nghiệm đang nghiên cứu chế tạo robot tự hành, đặc biệt là những mẫu robot mô phỏng chuyển động của chân người và động vật Mặc dù các robot này vẫn chưa được ứng dụng rộng rãi trong ngành công nghiệp, nhưng xe robot (robocar) đã nhanh chóng được triển khai trong các hệ thống sản xuất tự động linh hoạt.
Từ những năm 80 đến 90, sự phát triển của vi xử lý và công nghệ thông tin đã dẫn đến sự gia tăng số lượng robot công nghiệp, giảm giá thành và nâng cao tính năng Nhờ đó, robot công nghiệp đã trở thành một phần quan trọng trong các dây chuyền sản xuất hiện đại.
Ngày nay, chuyên ngành robot học (robotics) đã phát triển thành một lĩnh vực rộng lớn trong khoa học, bao gồm các vấn đề như cấu trúc cơ bản, động học, lập trình quỹ đạo, cảm biến tín hiệu và điều khiển chuyển động.
Robot công nghiệp là thiết bị tự động linh hoạt, có khả năng bắt chước các chức năng lao động của con người Chúng được điều khiển và lập trình để thao tác với nhiều bậc tự do, từ các công việc lao động chân tay đơn giản đến các nhiệm vụ yêu cầu trí khôn nhân tạo Mức độ bắt chước của robot phụ thuộc vào loại công việc cần thực hiện, cho thấy sự linh hoạt và khả năng ứng dụng của chúng trong sản xuất công nghiệp.
Những ứng dụng điển hình của Robot
Ứng dụng trong công nghiệp
Lắp đặt vật liệu, hàn điểm và phun sơn
Phục vụ máy công cụ, làm khuôn trong công nghiệp đồ nhựa,…
Ứng dụng trong phòng thi nghiệm
Dùng để thực hiện các công việc thủ công, thực hiện các công việc lặp đi lặp lại
Ứng dụng robo trong thao tác cần khuyếch đại lực
Dùng trong những khu vực nguy hiểm (nhiễm xạ,….) ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Dùng bốc dỡ hàng hóa, vật liệu, phô có trọng lượng lớn cồng kềnh trong các ngành công nghiệp nặng…
Ứng dụng robot trong nông nghiệp
Robot cát long cừu, mổ xẻ thịt heo,…
Ứng dụng trong không gian
Tay máy chế tạo nhằm tăng cường khả năng bốc dỡ hàng hóa tiếp tế, lắp ghép với các trạm không gian
Các xe tự hành trang thiết bị tay máy linh hoạt, các robot bảo trì vệ tính, xây dựng trong không gian…
Ứng dụng trong tàu lặn
Phát triển các tàu lặn không người lái trong công tác kiểm tra, dò tìm thám hiểm dưới đại dương
Ứng dụng trong giáo dục
Robot được sử dụng là phương tiện giảng dạy trong các chương trình giáo dục
Robot kết hợp được sử dụng với ngôn ngữ LOGO để giảng dạy và nhận thức máy tính.
Phạm vi đề tài
Đề tài nghiên cứu tập trung vào mô hình cánh tay robot 5 bậc tự do được điều khiển bằng mạch Arduino Bài viết tổng quan về cấu tạo và nguyên lý hoạt động của cánh tay robot cùng với mạch điều khiển Ngoài ra, nghiên cứu cũng áp dụng kiến thức để vận hành và lập trình điều khiển cánh tay robot hiệu quả.
Nội dung nghiên cứu
Nghiên cứu cơ sở khoa học và thực tiễn về chế tại và điều khiển robot.
Nghiên cứu về phương trình động học người của robot.
Nghiên cứu và ứng dụng của các phần gia công cơ khí để chế tạo cánh tay robot.
Nghiên cứu và ứng dụng mạch Arduino để điều khiển cánh tay robot ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
CƠ SỞ LÝ THUYẾT
Khái niệm ban đầu
Mỗi robot bao gồm nhiều khâu (links) liên kết qua các khớp (joints), hình thành một hệ thống động học bắt nguồn từ một khâu cơ bản (base) cố định.
Hệ tọa độ gắn với khâu cơ bản gọi là hệ tọa độ cơ bản (hay hệ tọa độ chuẩn)
Hệ tọa độ suy rộng là các hệ tọa độ trung gian liên quan đến các khâu động của robot Trong mỗi thời điểm hoạt động, các tọa độ này xác định cấu hình của robot thông qua các chuyển dịch dài hoặc chuyển dịch góc của các khớp quay Các tọa độ suy rộng còn được gọi là biến khớp.
Hình 2.1 Các tọa độ suy rộng của robot
Xác định các hệ tọa độ gắn với các khâu robot bằng phương pháp bàn tay phải:
Dùng tay phải, nắm hai ngón tay út và áp út vòng lòng bàn tay, xòe
Ba ngón tay: cái, trỏ và giữa được sắp xếp theo ba phương vuông góc với nhau Nếu ngón cái đại diện cho phương và chiều của trục z, thì ngón trỏ chỉ phương và chiều của trục x, trong khi ngón giữa biểu thị phương và chiều của trục y (hình 2.2).
Hình 2.2 Quy tắc bàn tay phải ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
2.1.2 Bậc tự do của robot (DOF: Degree Of Freedom)
Bậc tự do của robot là số lượng khả năng chuyển động mà một cơ cấu có thể thực hiện, bao gồm cả chuyển động quay và tịnh tiến Để tính toán bậc tự do, chúng ta có thể áp dụng một công thức cụ thể.
Trong cơ cấu, n đại diện cho số khâu động, trong khi p i là số khớp loại i (i = 1, 2, ,5, tương ứng với số bậc tự do bị hạn chế) Đối với các cơ cấu có khâu nối bằng khớp quay hoặc tịnh tiến (khớp động loại 5), số bậc tự do sẽ bằng với số khâu động Đối với cơ cấu hở, số bậc tự do được tính bằng tổng số bậc tự do của các khớp động.
2.1.3 Bài toán động học thuận
Để xác định quy luật chuyển động của điểm trên khâu tác động cuối hoặc bất kỳ điểm nào trên khâu của tay máy trong hệ tọa độ vuông góc, cần phải phân tích cơ cấu và quy luật của các yếu tố chuyển động thông qua các tọa độ suy rộng.
2.1.4 Bài toán động học ngược
Để xác định quy luật chuyển động của khâu tác động cuối, cần phân tích cơ cấu và quy luật chuyển động của điểm trên khâu này, bao gồm vị trí và hướng trong hệ trục tọa độ vuông góc Đồng thời, quy luật chuyển động của các khâu thành viên cũng phải được thể hiện thông qua các hệ tọa độ suy rộng q i.
Phương trình động học của robot
Mỗi robot có thể được xem như một tập hợp các khâu (links) và khớp (joints) Để mô tả vị trí và hướng tương đối giữa các khâu, ta gán một hệ tọa độ cho mỗi khâu và sử dụng các phép biến đổi thuần nhất Denavit.J đã định nghĩa biến đổi này giữa hai khâu liên tiếp bằng một ma trận A, thể hiện sự biến đổi bởi phép quay và tịnh tiến Ma trận A1 mô tả vị trí và hướng của khâu đầu tiên, trong khi A2 mô tả vị trí và hướng của khâu thứ hai so với khâu đầu tiên Vị trí và hướng của khâu thứ hai so với hệ tọa độ gốc được biểu diễn qua ma trận này.
T A A ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Cũng như vậy, A 3 mô tả khâu thứ ba so với khâu thứ hai và:
Theo Denavit, tích của các ma trận A được gọi là ma trận T, thường có hai chỉ số: chỉ số trên và chỉ số dưới Chỉ số trên đại diện cho tọa độ tham chiếu, trong khi chỉ số dưới thường chỉ khâu chấp hành cuối Đối với robot có 6 khâu, các chỉ số này rất quan trọng để xác định vị trí và chuyển động của robot.
T 6 mô tả mối quan hệ giữa hướng và vị trí của khâu chấp hành cuối trong hệ tọa độ gốc Robot 6 khâu có khả năng có 6 bậc tự do, cho phép xác định vị trí và định hướng trong phạm vi chuyển động của nó Trong đó, ba bậc tự do đầu tiên xác định vị trí thuần túy, trong khi ba bậc tự do còn lại xác định hướng mong muốn Ma trận T 6 sẽ trình bày cả hướng và vị trí của robot Hình 2.1 minh họa mối quan hệ này với bàn tay máy, trong đó gốc tọa độ được đặt tại điểm giữa các ngón tay và được mô tả bởi vector p, xác định vị trí của bàn tay Ba vector đơn vị sẽ mô tả hướng của bàn tay.
Hình 2.3 Các vector định vị trí và hướng của bàn tay máy
Vector có hướng mà theo đó bàn tay sẽ tiếp cận đến đối tượng, gọi là vector a (approach)
Vector có hướng mà theo đó các ngón tay của bàn tay nắm vào nhau khi cầm nắm đối tượng, gọi là vector o(occupation)
Vector cuối cùng là vector pháp tuyến n (normal), do vậy ta có:
Chuyển vị T 6 như vậy sẽ bao gồm các phần tử: ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Tổng quát, ma trận T 6 có thể biểu diễn gọn hơn như sau:
Ma trận R kích thước 3x3 là ma trận trực giao thể hiện hướng của bàn kẹp (khâu chấp hành cuối) trong hệ tọa độ cơ bản Để xác định hướng của khâu chấp hành cuối, có thể sử dụng phép quay Euler hoặc phép quay Roll, Pitch, Yaw Vector điểm p kích thước 3x1 mô tả mối quan hệ tọa độ vị trí của gốc hệ tọa độ gắn trên khâu chấp hành cuối so với hệ tọa độ cơ bản.
2.2.2 Bộ thông số Denavit – Hartenberg (DH)
Robot được cấu tạo từ nhiều khâu liên kết với nhau qua các khớp động, trong đó khâu gốc (Base) được xem là khâu số 0 và không được tính vào tổng số khâu của robot.
1 nối với khâu chuẩn bởi khớp 1 và không có khớp ở đầu mút của khâu cuối cùng Bất kỳ khâu nào cũng được đặc trưng bởi hai kích thước:
Độ dài pháp tuyến chung: a n
Góc giữa các trục trong mặt phẳng vuông góc với a n : n
Hình 2.4 Chiều dài và góc xoắn của 1 khâu
Chiều dài khâu được ký hiệu là a n và góc xoắn của khâu được ký hiệu là n (Hình 2.5) Thông thường, hai khâu sẽ liên kết với nhau tại chính trục của khớp (Hình 2.5).
Hình 2.5 Các thông số của khâu θ,d,a,α
Mỗi trục trong hệ thống sẽ có hai pháp tuyến, một cho mỗi khâu (trước và sau khớp) Vị trí tương đối giữa hai khâu được xác định bởi khoảng cách d n giữa các pháp tuyến dọc theo trục khớp n và góc θ n giữa các pháp tuyến trong mặt phẳng vuông góc với trục Các thông số d n và θ n thường được gọi là khoảng cách và góc giữa các khâu Để mô tả mối quan hệ giữa các khâu, ta gắn vào mỗi khâu một hệ tọa độ, theo nguyên tắc chung của việc gắn hệ tọa độ lên các khâu.
Gốc của hệ tọa độ được gắn lên khâu thứ n tại giao điểm của pháp tuyến a n với trục 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 Ngược lại, 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ứ n1
Trục x thường được đặt dọc theo pháp tuyến chung và hướng từ khớp n đến
1. n Trong trường hợp các trục khớp cắt nhau thì trục x chọn theo tích vector
Trường hợp khớp quay thì n là các biến khớp, trong trường hợp khớp tịnh tiến thì d n là biến khớp và a n 0
Các thông số a n , n ,d n , n được gọi là thông số bộ DH ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
2.2.3 Ma trận A của các khâu
Dựa trên các hệ tọa độ đã được xác định cho từng khâu liên kết của robot, ta có thể thiết lập mối quan hệ giữa các hệ tọa độ nối tiếp (n-1) và (n) thông qua các phép quay và tịnh tiến.
Tính tiến dọc theo z n 1 một khoảng d n
Tịnh tiến dọc theo x n 1 x n một đoạn a n
Quay quanh x n một góc xoắn n
Bốn phép biến đổi thuần nhất thể hiện mối quan hệ giữa hệ tọa độ thuộc khâu thứ n và hệ tọa độ thuộc khâu thứ n-1 Tích của các phép biến đổi này được gọi là ma trận A.
A n Rot z Trans d Trans a Rot x (2.5) cos sin 0 0 1 0 0 1 0 0 0 sin cos 0 0 0 1 0 0 0 cos sin 0
cos sin cos sin sin cos sin cos cos cos sin sin
(2.6) Đối với khớp tịnh tiến a0, i 0 thì ma trận A có dạng:
Đối với một khâu đi theo một khớp quay thì d a, ,là hằng số Như vậy ma trận
A của khớp quay là một hàm số của biến khớp
Đối với khớp tịnh tiến, hằng số giữ vai trò quan trọng Ma trận A của khớp này được xác định là hàm số của biến số d.
Nếu các biến số được xác định thì giá trị của các ma trận A theo đó cũng được xác định
2.2.4 Xác định ma trận biến đổi
Trong bài viết này, T 6 được mô tả trong hệ tọa độ gốc, tức là hệ tọa độ gắn với khâu cơ bản cố định của robot Khi mô tả T 6 theo các hệ tọa độ trung gian thứ n - 1, chúng ta có thể hiểu rõ hơn về vị trí và chuyển động của robot trong không gian.
Trong trường hợp tổng quát, khi xem xét mối quan hệ giữa robot và các thiết bị khác, nếu hệ tọa độ cơ bản của robot liên hệ với một hệ tọa độ khác thông qua phép biến đổi Z, và khâu chấp hành cuối gắn với một công cụ có mối quan hệ với vật thể qua phép biến đổi E, thì vị trí và hướng của điểm cuối công cụ trong hệ tọa độ tham chiếu X sẽ được xác định.
Hình 2.6 Vật thể và robot
Quan hệ này được thể hiện trên toán đồ sau:
Hình 2.7 Toán đồ vị trí của robot ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Thiết lập hệ phương trình động học của robot
2.3.1 Trình tự thiết lập hệ phương trình Để thiết lập hệ phương trình động học của robot, ta tiến hành theo các bước sau:
Khi chọn hệ tọa độ cơ sở và gắn các hệ tọa độ mở rộng lên các khâu của robot, việc này rất quan trọng trong việc thiết lập hệ phương trình động học Đây thường là bước khó khăn nhất trong quá trình này Nguyên tắc gắn hệ tọa độ đã được trình bày tổng quát trong phần 2.2.2 Thực tế cho thấy, các trục khớp của robot thường song song hoặc vuông góc với nhau, và thông qua các phép biến đổi của ma trận A, chúng ta có thể xác định các hệ tọa độ gắn trên các khâu của robot theo một trình tự nhất định.
Giả định một vị trí ban đầu của robot
Các trục z n phải chọn cùng phương với trục khớp thứ n+1
Chọn trục x n là trục quay của z n thành z n 1 và góc của z n với z n 1 chính là
n Nếu z n và z n 1 song song hoặc trùng nhau thì ta có thể căn cứ nguyên tắc chung hay chọn x n theo x n 1
Các hệ tọa độ Oxyz phải tuân theo quy tắc bàn tay phải
Khi gắn hệ tọa độ lên các khâu, cần tuân thủ các phép biến đổi của ma trận An, bao gồm bốn phép biến đổi cơ bản.
Hệ tọa độ thứ n+1 được xác định là biến đổi của hệ tọa độ thứ n thông qua các phép quay và tịnh tiến trong A n, trong đó các thông số DH cũng được xác định dựa trên các phép biến đổi này Nếu trong quá trình gắn hệ tọa độ lên các khâu, xuất hiện phép quay của trục z n đối với z n-1 quanh trục y n-1, thì vị trí ban đầu của robot cần được xem xét lại và chọn một vị trí ban đầu khác cho robot.
Lập bảng thông số DH (Denavit – Hartenberg)
Dựa vào các thông số DH xác định các ma trận A n
Tính các ma trận T và viết các phương trình động học của robot
2.3.2 Phương trình động học cánh tay robot của đồ án
Mô hình 3D cánh tay robot có dạng như sau: ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Để thiết lập phương trình động học cho robot, chúng ta cần vẽ lại cánh tay robot dưới dạng đơn giản và xác định hệ trục tọa độ phù hợp Hình 2.8 minh họa mô hình 3D của cánh tay robot, giúp dễ dàng hình dung và phân tích các chuyển động của nó.
Hình 2.9 Mô hình đơn giản và đặt hệ trục các khâu của robot
Lập bảng thông số DH:
Bảng 2.1 Bảng DH của robot
3 d 3 0 0 3 ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Ma trận A tổng quát: cos cos sin sin sin cos sin cos cos sin cos sin
Thay các giá trị từ bảng DH và viết gọn ta có:
1 1 cos cos sin sin sin cos sin cos cos sin cos sin
2 2 2 2 2 2 2 2 cos cos sin sin sin cos sin cos cos sin cos sin
0 0 0 1 cos sin 0 cos 0 sin cos 0 sin 0
3 3 3 3 3 3 3 3 cos cos sin sin sin cos sin cos cos sin cos sin
0 0 0 1 cos sin 0 cos 0 sin cos 0 sin 0
Các ma trận biến đổi thuần nhất tổng quát T : ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Vậy hệ phương trình động học của robot là:
ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
2.3.3 Bài toán động học thuận
Bài toán động học thuận là khi biết trước góc quay của các biến khớp
1 2 3 q T , tìm tọa độ của khâu chấp hành cuối p p x p y p z 1 T
Quy ước chiều dương của các trục tọa độ như sau:
Hình 2.10 Quy ước chiều dương tọa độ của khâu chấp hành cuối
Từ hệ phương trình động học ta thu được tọa độ của khâu chấp hành cuối:
Hệ phương trình tọa độ chỉ áp dụng cho mô hình đơn giản hóa (hình 2.7), trong khi đối với robot thực, cần chuẩn hóa tọa độ về điểm cuối thực tế.
(2.8) ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Hình 2.11 Khoảng cách giữa điểm cuối tính toán và thực tế
Phương trình động học ngược
2.4.1 Các điều kiện của bài toán động học ngược
Việc giải bài toán động học ngược của robot cần thỏa mãn các điều kiện sau:
Điều kiện tồn tại nghiệm:
Điều kiện này nhằm khẳng định: có ít nhất một tệp nghiệm 1 , 2 , , 6 , d i sao cho robot có hình thể cho trước
(“Hình thể” là khái niệm mô tả tường minh của vector cuối T 6 cả về vị trí và hướng)
Điều kiện duy nhất của tệp nghiệm Trong khi xác định các tệp nghiệm cần phân biệt rõ hai nghiệm:
Nghiệm toán (Mathematical Solution): các nghiệm này thỏa mãn các phương trình cho trước của T 6
Nghiệm vật lý là các tệp con của nghiệm toán, được xác định dựa trên các giới hạn vật lý như góc quay và kích thước Những giới hạn này giúp xác định tệp nghiệm duy nhất trong quá trình giải quyết các bài toán liên quan.
Việc giải phương trình động học có thể được tiến hành theo hai phương pháp cơ bản sau: ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Phương pháp giải tích là cách tiếp cận nhằm tìm ra các công thức và phương trình toán học thể hiện mối quan hệ giữa các giá trị trong không gian biến trục và các thông số khác của bộ thông số DH.
Phương pháp số (Numberical Method): tìm ra các giá trị của tệp nghiệm bằng kết quả của một quá trình lặp
2.4.2 Bài toán động học ngược
Bài toán động học ngược là khi biết tọa độ của khâu chấp hành cuối
1 T x y z p p p p tìm các góc xoay của các biến khớp 1 2 3 q T
Để chuẩn hóa tọa độ khâu chấp hành cuối thực tế về điểm cuối của mô hình đơn giản hóa, ta áp dụng phương pháp tương tự như bài toán động học thuận Lúc này, ma trận p sẽ được điều chỉnh cho phù hợp với các thông số cần thiết.
Để đơn giản hóa công thức 5 4 1 T x y z pp d p p d , ta quy ước rằng p x p x d p 5 và z p z d 4 (đã được chuẩn hóa) Đối với robot của nhóm, các động cơ chỉ có khả năng quay tối đa 180 độ Khi giải bài toán động học ngược, ta thiết lập giới hạn vật lý lý tưởng cho các khâu mà không xét đến lực và va chạm cơ khí.
Ngoài ra có thể xem hình 2.10 để có thể hiểu được các góc quay lại có giới hạn như vậy
Hình 2.12 Góc quay của các khâu ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Cân bằng ma trận ta được:
ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
3 3 cos , sin arctan 2 , d C d r rC r d C d d S d S r rS d C d r C d S d C d d S S r
2 arctan 2 , x y z x y z x y z p C p S rC C rS S p d rC S rS C p C p S r C p d p C p S p d r S
(2.9) ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
NỘI DUNG NGHIÊN CỨU
Giới thiệu về phần mềm và phần cứng
Khung cánh tay robot EEZY sau khi được lắp ráp hoàn chỉnh (chưa có bộ điều khiển và servo).
Bộ khung được in bằng công nghệ in 3D sử dụng sợi nhựa PLA.
Bộ cánh tay robot điều khiển bằng servo thông qua Arduino.
Dùng để chế tạo các mô hình cánh tay robot mô phỏng cánh tay trong công nghiệp.
Hình 3.2 Động cơ servo SG90 ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Động cơ servo chủ yếu được sử dụng để đạt được góc quay chính xác từ 90 đến 180 độ Ứng dụng của nó rất đa dạng, bao gồm việc điều khiển robot, di chuyển các tay máy lên xuống và quay cảm biến để quét không gian xung quanh.
Thông số kỹ thuật: Điện áp hoạt động: 4.8V(~5V)
Nhiệt độ hoạt động: 0 ºC – 55 ºC
Tốc độ hoạt động: 60 độ trong 0.1 giây
Kết nối dây đỏ với nguồn 5V, dây nâu với mass, và dây cam với chân phát xung của vi điều khiển Tại chân xung, cung cấp tín hiệu xung từ 1ms đến 2ms để điều chỉnh góc quay theo yêu cầu.
Hình 3.3 Nguyên lý hoạt động động cơ servo SG90
Arduino Uno là bảng mạch vi điều khiển nguồn mở, sử dụng vi điều khiển Microchip ATmega328, được phát triển bởi Arduino.cc Bảng mạch này có các chân đầu vào/đầu ra Digital và Analog, cho phép giao tiếp với nhiều bảng mạch mở rộng khác nhau.
3.1.4 Board mở rộng Arduino Nano
Hình 3.5 Board mở rộng Arduino Nano
Board mở rộng Arduino Nano là giải pháp lý tưởng để khắc phục hạn chế phần cứng của Arduino Nano và Pro Mini, giúp đưa tất cả các chân IO ra ngoài và bổ sung thêm nhiều chân nguồn Điều này cho phép Arduino Nano giao tiếp dễ dàng hơn với các module bên ngoài Ngoài ra, board mở rộng này còn tương thích với board Uno R3, tạo điều kiện thuận lợi cho việc kết nối với các thiết bị ngoại vi khác Board mở rộng này tương thích với tất cả các phiên bản của Arduino Nano.
14 chân I/O ( loại cắm hỗ trợ servo cùng VCC và GND).
3.3V Output. ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
8 chân Analog kèm VCC và GND.
Hình 3.6 Mặt sau Shield Mở Rộng Arduino NaNo
Hình 3.8 Mô hình hoàn chỉnh ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Giới thiệu phần mềm
MATLAB là phần mềm do công ty MathWorks phát triển, cung cấp môi trường tính toán số và lập trình Phần mềm này cho phép người dùng thực hiện các phép toán với ma trận, vẽ đồ thị hàm số và biểu đồ thông tin, thực hiện các thuật toán, tạo giao diện người dùng, cũng như kết nối với các chương trình viết bằng nhiều ngôn ngữ lập trình khác.
Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật.
3.2.2 Các tính năng của Matlab
Matlab là ngôn ngữ lập trình cao cấp, cho phép tính toán các con số và phát triển ứng dụng.
Cung cấp một môi trường tương tác lý tưởng cho việc khảo sát, thiết kế và giải quyết vấn đề, Matlab sở hữu thư viện phong phú các hàm toán học phục vụ cho đại số tuyến tính, thống kê, phân tích Fourier, bộ lọc, tối ưu hóa, tích phân và giải các phương trình vi phân bình thường Ngoài ra, Matlab còn cung cấp các đồ thị tích hợp sẵn để hiển thị hình ảnh dữ liệu, cùng với các công cụ mạnh mẽ cho phép người dùng tạo đồ thị tùy chỉnh theo nhu cầu.
Giao diện lập trình của Matlab cung cấp các công cụ phát triển để nâng cao khả năng bảo trì chất lượng mã và tối đa hóa hiệu suất.
Cung cấp các công cụ để xây dựng các ứng dụng với các giao diện đồ họa tùy chỉnh.
Cung cấp các hàm tích hợp thuật toán dựa trên Matlab với ứng dụng bên ngoài và các ngôn ngữ lập trình khác như C, Java, NET và Microsoft Excel.
Matlab là công cụ tính toán quan trọng trong các lĩnh vực khoa học và kỹ thuật, bao gồm vật lý, hóa học, toán học và công nghệ Phần mềm này chủ yếu được sử dụng để thực hiện các phép toán phức tạp và phân tích dữ liệu.
Xử lý tín hiệu và truyền thông.
Xử lý hình ảnh và video.
Hệ thống điều khiển ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Kiểm tra và đo lường.
Hình 3.10 Giao diện làm việc của Matlab và Simulink.
Thi công phần cứng
3.3.1 Sơ đồ đấu nối thực tế
Hình 3.11 Sơ đồ đấu nối thực tế ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo 3.3.2 Phần cứng thực tế
Hình 3.12 Mô hình phần cứng thực tế
3.3.3 Giới hạn phần cứng Điều khiển thử và đo đạc từ robot thực tế, nhóm quyết định giới hạn lại góc điều khiển được của robot trước khi thiết kế phần mềm là như sau: o o
Thiết kế phần mềm
Phần mềm sẽ hoạt động theo lưu đồ như sau: ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Hình 3.13 Lưu đồ giải thuật của phần mềm 3.4.2 Hàm giải bài toán động học thuận
Từ công thức (2.7), ta lập trình hàm giải bài toán động học thuận như sau:
Bảng 3.1 Code hàm giải bài toán động học thuận
The ForwardKinematic function calculates the position of a robotic arm based on three input angles, theta1, theta2, and theta3 It utilizes global variables representing the lengths of the arm segments (d1, d2, d3, d4, d5) measured in millimeters The angles are converted from degrees to radians for computation The function then determines the Cartesian coordinates (px, py, pz) of the end effector by applying trigonometric functions to the arm's geometry, rounding the results to the nearest integer This implementation is essential for industrial robotics applications under the guidance of Th.s Trương Ngọc Bảo.
3.4.3 Hàm giải bài toán động học ngược
Từ công thức (2.8), ta lập trình hàm giải bài toán động học nguợc như sau:
Bảng 3.2 Code hàm giải bài toán động học ngược
The InverseKinematic.m function calculates the joint angles (theta1, theta2, theta3) for a robotic arm based on the desired end-effector position (px, py, pz) It initializes global parameters representing the arm's link lengths (d1, d2, d3, d4, d5) in millimeters The function adjusts the input coordinates by subtracting and adding specific link lengths It computes theta1 using the arctangent of the y and x coordinates, while theta3 is derived from the inverse cosine formula involving the arm's geometry Finally, theta2 is calculated using the arctangent of the modified z-coordinate and the projection of the x and y coordinates, adjusted by the angles of theta3 and d2 The resulting angles are then converted from radians to degrees and rounded to the nearest whole number before being returned.
3.4.4 Kết nối Matlab với Arduino
Phần mềm Matlab có khả năng điều khiển động cơ servo trực tiếp qua cổng Serial Port trên Arduino mà không cần lập trình trên Arduino Để thực hiện điều này, cần khai báo các phần cứng của Arduino để Matlab nhận diện, sử dụng thư viện 'Servo' trong gói 'Arduino' mà Matlab cung cấp.
Bảng 3.3 Code kết nối Arduino với Matlab
To connect Arduino with Matlab for industrial robotics projects, use the command `a = arduino('COM8', 'Uno', 'Libraries', 'Servo');` to establish the connection Next, configure the servo motors by initializing them with the appropriate pins and pulse durations: `dc1 = servo(a, 'D4', 'MinPulseDuration', 500*10^-6, 'MaxPulseDuration', 2500*10^-6);`, `dc2 = servo(a, 'D5', 'MinPulseDuration', 500*10^-6, 'MaxPulseDuration', 2500*10^-6);`, `dc3 = servo(a, 'D6', 'MinPulseDuration', 500*10^-6, 'MaxPulseDuration', 2500*10^-6);`, and `dc4 = servo(a, 'D7', 'MinPulseDuration', 500*10^-6, 'MaxPulseDuration', 2500*10^-6);`.
MinPulseDuration và MaxPulseDuration xác định độ rộng xung tối thiểu và tối đa cho động cơ tại góc quay 0 độ và 180 độ Qua quá trình thử nghiệm, nhóm phát hiện sai số góc quay tương đối lớn Thông số mặc định được thiết lập là 1000µs.
Mặc dù thông số 2000μs là tiêu chuẩn, không phải tất cả các nhà sản xuất đều tuân thủ Dựa trên thông tin từ Arduino.vn và Mathworks.com, nhóm đã quyết định sử dụng thông số 500μs cho dự án của mình.
2500snhận được kết quả khá chính xác Bây giờ sai số chỉ còn phụ thuộc vào độ chắc chắn phần cứng
3.4.5 Điều khiển động cơ Động cơ servo MG90 có góc quay từ 0 đến 180 độ tương ứng như hình sau:
Hình 3.14 Góc quay của trục động cơ
Khi đặt trục động cơ ở trạng thái ban đầu tại 90 độ, sự thay đổi góc quay sẽ làm trục động cơ quay ngược chiều kim đồng hồ và ngược lại Trong ứng dụng cho cánh tay robot, cần xem xét sự khác biệt giữa trục của động cơ và trục Z của khâu, cũng như trạng thái ban đầu của chúng.
Trục của động cơ thứ nhất được căn chỉnh với trục z của khâu 1, với góc ban đầu giống nhau (90 độ cho trục động cơ và 0 độ cho trục z) Do đó, để xoay khâu 1 của robot một góc 1, chỉ cần cộng thêm 90 độ để chuyển từ giới hạn.
thành 0 ; 180 o o và truyền góc ấy cho động cơ
Hình 3.15 So sánh giữa trục động cơ khâu 1 và hệ trục khâu 1 ban đầu
Trục của động cơ thứ hai được lắp đặt ngược chiều với trục z của khâu 2, nhưng lại có cùng một góc khởi đầu là 90 độ Điều này cho phép khi cần xoay khâu 2 của robot một góc 2, ta chỉ cần truyền một góc bù tương ứng với 2 cho động cơ.
Hình 3.16 So sánh giữa trục động cơ khâu 2 và hệ trục khâu 2 ban đầu ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
Trục của động cơ thứ ba được căn chỉnh với trục z của khâu 2, mặc dù góc ban đầu của chúng có vẻ đối ngược, nhưng nhờ cơ cấu truyền động song song, thực chất góc ban đầu của chúng là trùng nhau (90 độ và -90 độ) Do đó, khi cần xoay khâu 3 robot một góc 3, chỉ cần cộng thêm 180 độ để chuyển đổi từ giới hạn [-180; 0 độ] thành [0; 180 độ] và truyền góc đó cho động cơ.
Hình 3.17 So sánh giữa trục động cơ khâu 3 và hệ trục khâu 3 ban đầu
Vậy ta có thể lập trình điều khiển các động cơ từ góc mong muốn như sau:
Bảng 3.4 Code điều khiển động cơ theo góc mong muốn Điều khiển động cơ writePosition(dc1, (theta1 + 90) / 180); writePosition(dc2, (180 - theta2) / 180); writePosition(dc3, (180 + theta3) / 180);
Phần mềm điều khiển robot của nhóm có giao diện như sau:
FORWARD KINEMATIC: giải bài toán động học thuận, có kèm nút Home để đưa Robot về vị trí ban đầu ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
INVERSE KINEMATIC: giải bài toán động học ngược, nút Go để điều khiển Robot đến vị trí đấy
PROGRAMMING: lập trình điều khiển Robot theo các góc đã chọn trước và thêm vào file txt
Hình 3.18 Giao diện phần mềm điều khiển ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo
KẾT QUẢ NGHIÊN CỨU
Kết quả của đồ án
Nhóm đã thành công trong việc điều khiển động cơ theo đúng góc yêu cầu, đồng thời giải quyết các bài toán động học thuận và ngược Ngoài ra, nhóm cũng đã lập trình cho robot di chuyển theo một chuỗi các vị trí mong muốn đã được xác định trước.
Hạn chế của đồ án
Với chất lượng phần cứng không được tốt nên dẫn đến việc còn sai số trong tính toán cũng như điều khiển chưa thể mượt mà được
Trong bài toán giải động học ngược xuất hiện một trường hợp đặc biệt dẫn đến sai kết quả như sau:
Trong bài toán động học thuận, khi khâu thứ nhất quay âm, tọa độ p y sẽ âm, và ngược lại Tuy nhiên, có trường hợp góc quay của khâu thứ nhất âm nhưng tọa độ p y lại dương, và ngược lại, chỉ xảy ra khi robot nghiêng hoàn toàn ra phía sau.
Khi áp dụng tọa độ vào bài toán động học nghịch, nhóm đã mặc định rằng góc θ1 sẽ âm khi tọa độ py âm, nhờ vào hàm arctan 2 biến Tuy nhiên, điều này dẫn đến việc hàm động học ngược tính ra một bộ nghiệm khác, vẫn thỏa mãn điều kiện vật lý nhưng gây sai lệch kết quả Hạn chế này vẫn chưa được nhóm tìm ra cách giải quyết.
Hình 3.19 Trường hợp đặc biệt của động học thuận ĐAMH: Robot công nghiệp GVHD: Th.s Trương Ngọc Bảo