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

BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)

62 52 0

Đ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 đề Cánh Tay Robot 5 Bậc Tự Do
Tác giả Ngô Quốc Trưởng, Phan Đình Hoài, Lê Văn Huy, Huỳnh Lê Hoàng Thái, Nguyễn Lê Hoàng Huy, Trần Đăng Khoa
Người hướng dẫn Trương Ngọc Bảo
Trường học Trường Đại Học Giao Thông Vận Tải Tp. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Điều Khiển Và Tự Động Hóa
Thể loại báo cáo đồ án
Năm xuất bản 2021
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 62
Dung lượng 2,51 MB

Cấu trúc

  • CHƯƠNG 1. LÊN Ý TƯỞNG THỰC HIỆN ĐỒ ÁN (7)
    • 1.1. Đặt vấn đề (7)
    • 1.2. Mục tiêu và yêu cầu (7)
    • 1.3. Nội dung nghiên cứu (8)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (9)
    • 2.1. Giới thiệu về Robot (9)
      • 2.1.1. Lịch sử ra đời Robot (9)
      • 2.1.2. Phân loại Robot (10)
      • 2.1.3. Cánh tay robot (11)
      • 2.1.4. Giải thuật gắn hệ trục tọa độ cho Robot (14)
    • 2.2. Robot 5 bậc tự do RRRRR (15)
    • 2.3. Arduino (15)
      • 2.3.1. Phần cứng (16)
      • 2.3.2. Arduino Uno R3 (17)
    • 2.4. Động cơ Servo (22)
    • 2.5. Joy stick (Nút nhấn đa hướng) (23)
    • 2.6. Bài toán động học Robot (24)
      • 2.6.1. Một số khái niệm cơ bản (24)
      • 2.6.2. Biểu diễn Danevit – Hartenberg của bài toán động học Robot (29)
      • 2.6.3. Giải thuật gắn hệ trục tọa độ cho Robot (33)
    • 2.7. Động học thuận – nghịch cho mô hình cánh tay robot 5 bậc tự do (34)
      • 2.7.1. Động học thuận (34)
      • 2.7.2. Động học nghịch (36)
  • CHƯƠNG 3. THIẾT KẾ MÔ HÌNH VÀ MÔ PHỎNG CÁNH TAY ROBOT 5 BẬC TỰ DO TRÊN EASY ROB (40)
    • 3.1. Phần mềm EASY ROB (40)
    • 3.2. Mô hình Robot được thiết kế trên EASY ROB (41)
  • CHƯƠNG 4. THIẾT KẾ MÔ HÌNH CÁNH TAY ROBOT 5 BẬC TỰ DO TRÊN SOLIDWORKS VÀ MÔ PHỎNG TRÊN MATLAB SIMULINK (44)
    • 4.1. Phần mềm SolidWorks (44)
    • 4.2. Phần mềm Matlab (44)
    • 4.4. Mô phỏng cánh tay robot với Matlab Simulink (46)
      • 4.4.1. Chuyển mô hình robot từ Solidwork sang Matlab Simulink (46)
      • 4.4.2. Tạo giao diện điều khiển robot (46)
  • CHƯƠNG 5. THI CÔNG MÔ HÌNH ROBOT 5 BẬC TỰ DO VÀ LẬP TRÌNH ĐIỀU KHIỂN ROBOT THEO HAI CHẾ ĐỘ AUTO VÀ MANUAL (49)
    • 5.1. Hình ảnh thi công mô hình (49)
    • 5.2. Chương trình điều khiển (49)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (61)
    • 6.1. Kết luận (61)
    • 6.2. Hướng phát triển (61)
  • TÀI LIỆU THAM KHẢO (62)

Nội dung

LÊN Ý TƯỞNG THỰC HIỆN ĐỒ ÁN

Đặt vấn đề

Thời đại hiện nay được dẫn dắt bởi công nghệ, yêu cầu sự phát triển không ngừng và việc tìm tòi, học hỏi để tiến bộ Các thiết bị công nghệ ngày càng tiên tiến, nâng cao chất lượng, hiệu quả, an toàn và ổn định trong hoạt động Bộ vi điều khiển hiện đại được ứng dụng rộng rãi trong kỹ thuật và đời sống xã hội, đặc biệt trong lĩnh vực tự động hóa và điều khiển từ xa.

Robot là một loại máy đặc biệt được lập trình bởi máy tính, có khả năng thực hiện tự động nhiều hoạt động phức tạp dưới sự điều khiển của các vi mạch điện tử Với cấu trúc bao gồm bộ phận cơ khí và phần mềm, robot hoạt động tự động giống như con người Chúng đóng vai trò quan trọng trong nhiều lĩnh vực của cuộc sống, từ sản xuất công nghiệp, nông nghiệp, đến gia đình, nghiên cứu và giải trí.

Trong ngành sản xuất và công nghệ nghiên cứu, cánh tay robot là trợ thủ đắc lực, được thiết kế dựa trên cấu trúc cánh tay con người Thiết bị này thực hiện các nhiệm vụ thay thế sức lao động như di chuyển vật, sơn, vặn, hàn, gắp và lắp ráp, góp phần nâng cao hiệu quả công việc.

Hiện nay, công nghệ chế tạo robot đang phát triển mạnh mẽ, với nhiều phụ kiện được tích hợp, tạo ra sự đa dạng về mẫu mã, kiểu dáng và kích thước của cánh tay robot, nhằm đáp ứng tốt nhất cho từng hoàn cảnh và điều kiện sử dụng khác nhau.

Tại Việt Nam, nhiều đơn vị nghiên cứu về robot như Trung tâm tự động hóa, Học viện Kỹ thuật quân sự và Viện nghiên cứu cơ học và tin học ứng dụng đang hoạt động tích cực Dựa trên kiến thức và điều kiện thực tế, cùng sự hỗ trợ của thầy Trương Ngọc Bảo, nhóm chúng em thực hiện đề tài “Thiết kế và điều khiển cánh tay Robot 5 bậc tự do” Chúng em nhận thức rằng kinh nghiệm còn hạn chế, vì vậy trong quá trình thực hiện có thể xảy ra sai sót và mong nhận được sự thông cảm cũng như góp ý từ thầy cô để hoàn thiện hơn.

Mục tiêu và yêu cầu

Mục tiêu chính của đề tài này là điều khiển cánh tay Robot để tự động gắp vật và đặt chúng ở vị trí mục tiêu đã định Để đạt được điều này, cần giải quyết một số vấn đề quan trọng trong quá trình điều khiển, bao gồm việc thiết lập giao tiếp giữa mạch điều khiển Arduino và tay cầm, cũng như điều khiển các động cơ một cách chính xác.

Các mục tiêu cần đạt và yêu cầu cụ thể của đề tài như sau:

 Thiết kế phần cứng cho cánh tay Robot 5 bậc tự do.

 Điều khiển cánh tay Robot đến các vị trí cho trước một cách chính xác.

 Lập trình điều khiển Robot bằng phần mềm Arduino.

 Robot vận hành hiệu quả và ổn định.

 Kết cấu vận hành Robot phải chắc chắn, ít rung lắc.

 Khâu cuối (kẹp) phải đủ lực để gắp vật.

Nội dung nghiên cứu

 Nghiên cứu lý thuyết cơ bản về robot

 Thành lập các phương trình động học ngược, động học thuận cho robot

 Sử dụng phần mềm EASY ROB, MATLAB kết hợp SOLID WORDS để mô phỏng robot

 Viết chương trình điều khiển robot cho robot trên Arduino.

CƠ SỞ LÝ THUYẾT

Giới thiệu về Robot

2.1.1 Lịch sử ra đời Robot

Năm 1921, từ "Robot" được Karel Capek, nhà viết kịch người Séc, sử dụng trong vở kịch "Rossum’s Universal Robots", xuất phát từ từ gốc Slavo “Rabota”, chỉ thiết bị lao động do con người tạo ra Isaac Asimov, tác giả khoa học viễn tưởng, được cho là người đầu tiên sử dụng thuật ngữ này trong những năm 1940 và ông cũng đặt tên cho ngành nghiên cứu robot là Robotics Trong tác phẩm của mình, Asimov đã đề xuất ba nguyên tắc hướng dẫn hành vi của robot, được gọi là "Ba luật của Robotics", vẫn còn ảnh hưởng đến ngày nay.

 Robot không được xúc phạm con người và không gây tổn hại cho con người.

 Hoạt động của robot phải tuân theo các quy tắc do con người đặt ra Các quy tắc này không được vi phạm nguyên tắc thứ nhất.

 Một robot cần phải bảo vệ sự sống của mình, nhưng không được vi phạm hai nguyên tắc trước.

Robotics là một ngành khoa học nghiên cứu, thiết kế và chế tạo robot, ứng dụng trong nhiều lĩnh vực như khoa học, kỹ thuật, kinh tế, quốc phòng và dân sinh Đây là một lĩnh vực liên ngành, kết hợp cơ khí, điện tử, kỹ thuật điều khiển và công nghệ thông tin, với robot được xem là sản phẩm của ngành cơ – điện tử (Mechatronics) Mục tiêu của Robotics là hiện thực hóa hoài bão của con người bằng cách tạo ra thiết bị thay thế cho những hoạt động không phù hợp với con người.

 Các công việc lặp đi lặp lại, nhàm chán, nặng nhọc: vận chuyển nguyên vật liệu, lắp ráp, lau cọ nhà…

Trong những môi trường khắc nghiệt và nguy hiểm như không gian vũ trụ, chiến trường, dưới đáy đại dương, trong lòng đất, hay những khu vực có phóng xạ và nhiệt độ cao, con người và công nghệ phải đối mặt với nhiều thách thức.

 Những việc đòi hỏi độ chính xác cao, như thông tắc mạch máu hoặc các ống dẫn trong cơ thể, lắp ráp các cấu tử trong vi mạch…

Hiện nay, robot được ứng dụng rộng rãi và ngày càng phát triển, không chỉ mô phỏng cấu trúc và chức năng của con người mà còn có nhiều hình dạng và khả năng vượt trội Một ví dụ điển hình là drone, cho thấy khả năng của robot trong việc thực hiện những nhiệm vụ mà con người không thể làm được.

Hiện nay, thế giới có nhiều loại robot với các đặc tính và mục đích sử dụng riêng biệt, do đó việc phân loại chúng là một nhiệm vụ không đơn giản Có nhiều quan điểm khác nhau về cách phân loại robot, nhưng có thể tóm gọn thành ba phương pháp cơ bản: phân loại theo kết cấu, theo cách điều khiển và theo phạm vi ứng dụng của robot.

Robot có thể được phân loại theo kết cấu, hay còn gọi là phân loại theo hình học, thành các loại như Descartes, trụ, cầu, SCARA, kiểu tay người và các dạng khác.

Phân loại the phương pháp điều khiển: Có 2 kiểu điều khiển robot: điều khiển hở và điều khiển kín.

Điều khiển hở sử dụng truyền động bước, bao gồm động cơ điện, thủy lực hoặc khí nén, với quãng đường hoặc góc dịch chuyển tỷ lệ thuận với số xung điều khiển Mặc dù kiểu điều khiển này đơn giản, nhưng độ chính xác đạt được lại khá thấp.

Điều khiển kín, hay còn gọi là điều khiển kiểu servo, sử dụng tín hiệu phản hồi vị trí để nâng cao độ chính xác trong quá trình điều khiển Có hai loại điều khiển servo chính: điều khiển điểm.

- điểm và điều khiển theo đường (contour).

Kiểu điều khiển điểm - điểm cho phép di chuyển giữa các điểm theo đường thẳng với tốc độ thấp và chỉ hoạt động tại các điểm dừng Phương pháp này thường được áp dụng trong các robot hàn điểm, vận chuyển, tán đinh và bắn đinh.

Điều khiển contour cho phép phần công tác di chuyển theo quỹ đạo tùy ý với tốc độ linh hoạt Kiểu điều khiển này thường được áp dụng trên các robot hàn hồ quang và robot phun sơn.

Phân loại theo ứng dụng: Cách phân loại này dựa vào mục đích sử dụng của

Ví dụ như: robot công nghiệp, robot dùng trong nghiên cứu khoa học, robot dùng trong kỹ thuật vũ trụ, robot dùng trong quân sự…

Ngoài những kiểu phân loại trên còn có: Phân loại theo hệ thống năng lượng,phân loại theo hệ thống truyền động, phân loại theo độ chính xác…

Cánh tay robot là thiết bị vạn năng có khả năng lập trình lại để thực hiện nhiều nhiệm vụ công nghiệp, như vận chuyển nguyên vật liệu và dụng cụ chuyên dụng Ban đầu, thiết kế tay máy được phỏng tác từ cấu tạo của tay người, nhưng hiện nay, tay máy rất đa dạng và có hình dáng khác biệt Dù vậy, trong kỹ thuật robot, các thuật ngữ như vai, cánh tay, cổ tay, bàn tay và khớp vẫn được sử dụng để chỉ các bộ phận của tay máy.

Hình 2.1 Kết cấu tay máy.

Trong thiết kế và sử dụng tay máy, người ta quan tâm đến các thông số có ảnh hưởng lớn đến khả năng làm việc của chúng, như:

 Sức nâng, độ cứng vững, lực kẹp của tay…

 Tầm với hay vùng làm việc: kích thước và hình dáng vùng mà phần công tác (khâu chấp hành) có thể với tới.

Sự khéo léo trong robot là khả năng định vị và định hướng phần công tác trong không gian làm việc, liên quan đến số bậc tự do của nó Để có thể di chuyển tự do trong không gian ba chiều, robot cần có 6 bậc tự do: 3 bậc để định vị và 3 bậc để định hướng Tuy nhiên, một số công việc như nâng, hạ, hay xếp có thể yêu cầu ít hơn 6 bậc tự do để tăng độ chắc chắn Các robot hàn và sơn thường được thiết kế với 6 bậc tự do, nhưng trong những trường hợp cần sự khéo léo, linh hoạt hoặc tối ưu hóa quỹ đạo, có thể sử dụng robot với số bậc tự do lớn hơn 6.

Các khớp thường được sử dụng trong robot bao gồm khớp trượt và khớp quay Tùy thuộc vào số lượng và cách bố trí các khớp, có thể tạo ra nhiều kiểu tay máy khác nhau như tay máy tọa độ Decac (Cartesian), tọa độ trụ (Cylindrical), tọa độ cầu (Revolute), SCARA, POLAR và kiểu tay người (Anthropomorphic).

Tay máy kiểu tọa độ Descartes, hay còn gọi là tay máy chữ nhật, sử dụng ba khớp trượt để thực hiện các chuyển động thẳng độc lập theo ba trục tọa độ Vùng làm việc của loại tay máy này có hình dạng hộp chữ nhật, mang lại độ cứng vững cao và độ chính xác đồng đều trong toàn bộ khu vực làm việc Tuy nhiên, tay máy kiểu này không linh hoạt như các loại khác Do đó, tay máy kiểu Descartes thường được sử dụng trong các ứng dụng vận chuyển và lắp ráp.

Hình 2.2 Tay máy kiểu toạ độ Decartes.

Tay máy kiểu tọa độ trụ khác biệt với tay máy kiểu Descartes ở chỗ khớp đầu tiên sử dụng khớp quay thay vì khớp trượt Vùng làm việc của tay máy này có hình dạng trụ rỗng, với khớp trượt nằm ngang cho phép tay máy tiếp cận khoang rỗng Mặc dù độ cứng vững cơ học của tay máy trụ rất tốt và phù hợp với tải nặng, nhưng độ chính xác định vị góc trong mặt phẳng nằm ngang lại giảm khi tầm với tăng.

Hình 2.3 Tay máy kiểu toạ độ trụ.

Arduino

Arduino là một board mạch vi xử lý mở, giúp xây dựng các ứng dụng tương tác với môi trường Nó sử dụng nền tảng vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit, với các tính năng như 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số Ra mắt vào năm 2005, Arduino được thiết kế để cung cấp một phương thức dễ dàng và tiết kiệm cho người yêu thích, sinh viên và chuyên gia trong việc tạo ra thiết bị tương tác qua cảm biến và cơ cấu chấp hành Các dự án phổ biến cho người mới bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Arduino đi kèm với một môi trường phát triển tích hợp (IDE), cho phép lập trình bằng ngôn ngữ C hoặc C++ trên máy tính cá nhân.

Arduino được khởi động vào năm 2005 tại trại Interaction Design Institute Ivrea, Italy, như một dự án dành cho sinh viên Trước đó, sinh viên sử dụng "BASIC Stamp" với giá khoảng $100, một mức giá cao đối với họ Massimo Banzi, một trong những người sáng lập Arduino và giảng viên tại Ivrea, đã góp phần quan trọng vào sự phát triển của dự án Tên gọi "Arduino" được lấy từ một quán bar ở Ivrea, nơi các nhà sáng lập thường xuyên gặp gỡ; quán bar này được đặt theo tên của bá tước Arduino, người từng là vua của Italy từ năm 1002 đến 1014.

Lý thuyết phần cứng để xây dựng Arduino được đóng góp bởi một sinh viên người

Colombia, dưới sự dẫn dắt của Hernando Barragan, đã hoàn thành nền tảng Wiring, với mục tiêu làm cho nó nhẹ hơn, rẻ hơn và dễ tiếp cận hơn cho cộng đồng mã nguồn mở Mặc dù trường này cuối cùng đã bị đóng cửa, các nhà nghiên cứu như David Cuarlielles vẫn tiếp tục phổ biến ý tưởng này.

Mạch Arduino bao gồm vi điều khiển AVR và các linh kiện bổ sung, giúp dễ dàng lập trình và mở rộng với các mạch khác Một trong những điểm nổi bật của Arduino là các kết nối tiêu chuẩn cho phép người dùng kết nối với các module mở rộng, gọi là Shield Các Shield này có thể kết nối trực tiếp qua các chân hoặc thông qua bus I2C, cho phép nhiều Shield hoạt động song song Arduino thường sử dụng chip megaAVR như ATmega8, ATmega168, ATmega328, ATmega1280 và ATmega2560, cùng với một số vi xử lý khác Hầu hết các mạch đều có bộ điều chỉnh tuyến tính 5V và thạch anh dao động 16 MHz, mặc dù một số thiết kế như LilyPad hoạt động ở tần số 8 MHz và không có bộ điều chỉnh điện áp do kích thước hạn chế Vi điều khiển Arduino có thể được lập trình sẵn với bootloader, cho phép người dùng dễ dàng upload chương trình vào bộ nhớ flash mà không cần bộ mạch nạp bên ngoài, giúp việc sử dụng trở nên thuận tiện hơn.

Khi sử dụng phần mềm Arduino, các board được lập trình qua kết nối RS-232, nhưng phương pháp thực hiện phụ thuộc vào đời phần cứng Các board Serial Arduino có mạch chuyển đổi RS-232 sang TTL, trong khi các board hiện tại được lập trình qua cổng USB thông qua chip USB-to-serial như FTDI FT232 Một số biến thể như Arduino Mini và Boarduino không chính thức sử dụng board adapter hoặc cáp USB-to-serial tháo rời, Bluetooth, hoặc các phương thức khác Nếu sử dụng công cụ lập trình vi điều khiển truyền thống thay vì Arduino IDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được áp dụng.

Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển cho các mạch ngoài, với board Uno có 14 chân I/O digital, trong đó 6 chân hỗ trợ xung PWM và 6 chân input analog có thể sử dụng như chân I/O số Các chân này được bố trí ở mặt trên của board thông qua các header cái 0.10-inch (2.5 mm) Ngoài ra, các board Arduino Nano, Bare Bones Board và Boarduino cũng trang bị chân header đực ở mặt trên để kết nối với breadboard.

Có nhiều biến thể của Arduino như Arduino-compatible và Arduino-derived, với một số có chức năng tương đương và có thể thay thế cho nhau Việc mở rộng mạch Arduino thường được thực hiện bằng cách thêm driver đầu ra Các board khác thường tương đương về điện nhưng khác nhau về hình dạng, và độ tương thích với các shield cũng có thể thay đổi Một số biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, dẫn đến mức độ tương thích với các shield khác nhau.

Thông số cơ bản của Arduino Uno R3:

Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader

Bảng 1 Thông số cơ bản của Arduino Uno R3

Hình 2.6 Vi điều khiển của Arduino UNO R3.

Arduino UNO sử dụng ba vi điều khiển 8bit AVR: ATmega8, ATmega168 và ATmega328 Bộ vi điều khiển này có khả năng thực hiện các tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, và tạo ra trạm đo nhiệt độ - độ ẩm với hiển thị trên màn hình LCD, cùng nhiều ứng dụng khác.

Arduino UNO tiêu chuẩn sử dụng vi điều khiển ATmega328 với giá khoảng 90.000đ Nếu bạn cần phần cứng đơn giản hơn hoặc có ngân sách hạn chế, có thể chọn các vi điều khiển tương đương nhưng giá rẻ hơn như ATmega8 (bộ nhớ flash 8KB) với giá khoảng 45.000đ hoặc ATmega168 (bộ nhớ flash 16KB).

Arduino UNO có thể nhận nguồn 5V qua cổng USB hoặc nguồn bên ngoài với điện áp khuyên dùng từ 7-12V DC, tối đa là 20V Sử dụng pin vuông 9V là lựa chọn hợp lý khi không có nguồn từ cổng USB Lưu ý, nếu cấp nguồn vượt quá giới hạn này, Arduino UNO có thể bị hỏng.

GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị với nguồn điện riêng biệt, cần phải nối các chân GND này lại với nhau để đảm bảo hoạt động ổn định.

 5V: Cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.

 3.3V: Cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.

 Vin (Voltage Input): Để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.

IOREF trên Arduino UNO cho phép đo điện áp hoạt động của vi điều khiển, luôn duy trì ở mức 5V Tuy nhiên, không nên sử dụng chân này để lấy nguồn 5V, vì chức năng chính của nó không phải là cung cấp điện.

 RESET: Việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.

Arduino UNO không có tính năng bảo vệ chống cắm ngược nguồn, vì vậy bạn cần kiểm tra kỹ các cực âm và dương trước khi cấp nguồn Nếu không, việc chập mạch có thể làm hỏng board mạch, khiến nó trở thành một vật vô dụng Do đó, nên sử dụng nguồn từ cổng USB khi có thể để đảm bảo an toàn cho thiết bị.

Các chân 3.3V và 5V trên Arduino được thiết kế để cung cấp nguồn cho các thiết bị khác, không phải để nhận nguồn vào Cấp nguồn sai vị trí có thể gây hại cho board, điều này không được nhà sản xuất khuyến khích.

Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board.

Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiểnATmega328.

Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển.

Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển.

Cường độ dòng điện tối đa cho phép qua chân Digital hoặc Analog của Arduino UNO là 40mA; nếu vượt quá mức này, vi điều khiển sẽ bị hỏng Vì vậy, khi không sử dụng để truyền nhận dữ liệu, bạn cần mắc một điện trở hạn dòng để bảo vệ thiết bị.

Động cơ Servo

Khi chọn động cơ servo cho robot, việc sử dụng servo ở các khớp và tay gắp thay vì động cơ bước giúp giảm trọng lượng ở đầu robot Động cơ bước thường nặng, do đó, việc thay thế chúng bằng động cơ servo giúp robot hoạt động mượt mà và ít rung lắc hơn Trong mô hình, DC servo được ưa chuộng vì dễ điều khiển, trong khi AC servo thường chỉ phù hợp cho robot công nghiệp và không cần thiết cho yêu cầu của đề tài này.

Loại động cơ DC servo được sử dụng trong đề tài:

Động cơ RC Servo MG996R là một trong những loại servo phổ biến nhất trong thiết kế robot và hệ thống dẫn hướng xe Với lực kéo mạnh mẽ và các khớp, bánh răng được chế tạo hoàn toàn bằng kim loại, MG996R đảm bảo độ bền cao Đặc biệt, động cơ này được trang bị driver điều khiển bên trong, hoạt động theo cơ chế phát xung - quay góc, giúp người dùng dễ dàng sử dụng.

 Servo SG90: Là loại được phổ biến sử dụng hiện nay, kích thước động cơ 23 x

Với kích thước 12 x 29 mm và khối lượng chỉ 9 g, sản phẩm này được trang bị driver điều khiển tích hợp sẵn Nhờ vào trọng lượng nhẹ và khả năng điều khiển dễ dàng, nó thường được lắp đặt tại vị trí tay gắp trong các mô hình.

Joy stick (Nút nhấn đa hướng)

Dùng để điều khiển chuyển động của cánh tay robot.

Hình 2.11 Kết nối Joystick và Arduino UNO R3.

Bài toán động học Robot

Bài toán động học trong Robot bao gồm các vấn đề về vị trí, vận tốc và gia tốc, nhưng bài viết này chỉ tập trung vào bài toán về vị trí Việc xác định vị trí và hướng của điểm cuối Robot tại các thời điểm khác nhau là vấn đề cốt lõi Để giải quyết bài toán này, cần xác định hệ tọa độ gắn với các khớp của Robot, vì Robot là một hệ nhiều vật rắn được kết nối bằng các khớp xoay hoặc khớp tịnh tiến Phần này sẽ trình bày các lý thuyết cơ bản của động học và cách áp dụng chúng để giải quyết bài toán động học.

2.6.1 Một số khái niệm cơ bản

Ma trận xoay đóng vai trò quan trọng trong việc điều hướng Robot, giúp Robot xoay theo hướng xác định Chẳng hạn, trong Robot phun sơn, người điều khiển cần định hướng đầu phun vào vật thể cần sơn, và ma trận xoay sẽ thực hiện nhiệm vụ này Để hiểu rõ cách hình thành ma trận xoay, trước tiên, ta cần nắm bắt khái niệm về vector trong không gian.

Giả sử có một vector V trong không gian tọa độ 2 chiều Hình chiếu của vector V trên trục X được gọi là a, trong khi hình chiếu của vector V trên trục Y được gọi là b.

Hướng của vector V có thể được mô tả qua góc θ tạo bởi nó với trục X Giá trị của góc θ có thể được tính bằng một công thức cụ thể hoặc được biểu diễn một cách tổng quát.

Trong mô hình Robot, chúng ta làm việc với hệ tọa độ không gian ba chiều Để xác định hướng của vector V, chúng ta sẽ chiếu vector này lên các trục tương ứng.

Để tính ma trận góc xoay trong không gian, ta cần xem xét hai hệ tọa độ: 𝑋0, 𝑌0, 𝑍0 và 𝑋1, 𝑌1, 𝑍1 Khi xoay hệ tọa độ 𝑋1𝑌1𝑍1 một góc θ, ta sẽ áp dụng các công thức toán học liên quan đến ma trận xoay để xác định vị trí mới của các trục trong không gian.

Góc xoay của hệ tọa độ 𝑋1𝑌1𝑍1 so với hệ 𝑋0𝑌0𝑍0 có thể được mô tả thông qua việc chiếu các vector như đã trình bày trước đó Việc này giúp làm rõ sự chuyển động và định hướng của hệ 𝑋1𝑌1 trong không gian ba chiều.

Ma trận 3x3 được gọi là ma trận xoay, ký hiệu là 𝑅10, thể hiện sự xoay của hệ tọa độ 𝑋1𝑌1𝑍1 so với hệ 𝑋0𝑌0𝑍0, đồng thời chỉ ra góc xoay hoặc tỉ lệ giữa hai hệ này.

Ma trận tổng quát 𝑋 0 𝑌 0 𝑍 0 thể hiện góc xoay tiếp theo Chúng ta sẽ tiến hành tính toán cụ thể các giá trị của từng thành phần trong ma trận này.

Giả sử độ dài của các trục 𝑋1, 𝑌1, 𝑍1 đều bằng 1, từ hình bên dưới có thể nhận thấy rằng chiều dài đoạn 𝑛𝑥, tức ảnh chiếu của 𝑋1 lên 𝑋0, chính bằng giá trị tương ứng.

Tương tự như vậy ta có vì phần hình chiếu của

𝑌1 lên 𝑋0 nằm ở phần âm của trục 𝑋0,

Vậy ta có ma trận xoay trong trường hợp này như sau

Ma trận trên cho ta biết được hình chiếu của các trục 𝑋 1 , 𝑌 1 , 𝑍 1 lên các trục 𝑋 0 ,

𝑌0, 𝑍0 khi ta xoay góc θ bất kỳ theo cách mà trục 𝑍1 không hề thay đổi, ta gọi đây là ma trận xoay quanh trục Z.

Theo cách như trên ta sẽ tìm được ma trân xoay quanh trục X và trục Y.

Ma trận chuyển, hay còn gọi là ma trận tịnh tiến vị, là một ma trận 3x1 dùng để thể hiện sự thay đổi vị trí của tọa độ điểm so với điểm đầu Ma trận này thường được ký hiệu là với m là hệ tọa độ ban đầu và n là hệ tọa độ mà điểm đang xét chuyển tới.

Với 𝑝𝑥, 𝑝𝑦 và 𝑝𝑧 lần lượt là tọa độ của điểm đang xét khi chiếu lên các trục 𝑋𝑚, 𝑌𝑚 và 𝑍𝑚, chúng ta sẽ xem xét một ví dụ đơn giản để minh họa cho khái niệm này.

Khi chiếu gốc tọa độ của hệ 𝑋1𝑌1𝑍1 lên trục 𝑋0, hệ 𝑋1𝑌1𝑍1 đã dịch chuyển một đoạn d so với trục 𝑋0, trong khi trục 𝑌0 và 𝑍0 không có sự dịch chuyển Ma trận chuyển vị được biểu diễn như sau:

Ma trận biến đổi thuần nhất:

Ma trận biến đổi thuần nhất dùng để tính toán giá trị tọa độ mới cho các khớp trong

Robot còn được gọi là ma trận chuyển vị Dạng ma trận được mô tả trong hình dưới.

Hình 2.12 Ma trận tọa độ tuần nhất

Ma trận xoay biểu thị sự thay đổi hướng của vector từ điểm đầu đến điểm cuối, trong khi vector tịnh tiến cho thấy sự thay đổi về vị trí.

Quy tắc bàn tay phải:

Quy tắc bàn tay phải cho phép xác định hướng của trục thứ ba trong không gian khi đã biết hướng của hai trục còn lại Ví dụ dưới đây sẽ giúp làm rõ hơn về quy tắc này.

Động học thuận – nghịch cho mô hình cánh tay robot 5 bậc tự do

Sau khi đợn giản hóa mô hình robot và gắn hệ trục tọa độ ta thành lập được bảng D-H như sau:

Bảng 2 Bảng DH Robot Arm 5 DOF.

Ta có ma trận chuyển vị dạng tổng quát như sau: Đặt:

Dựa vào bảng D-H trên ta tính được các ma trận chuyển vị sau:

Ma trận chuyển vị cuối:

Với các thông số như:

Tính các góc dựa vào hình ảnh minh họa robot trong không gian như hình bên dưới:

Dựa vào hình vẽ, ta có:

Xét tam giác : Áp dụng định lý cosin trong tam giác, ta có:

Xét tam giác , ta có:

Từ (1) và (2) ta suy ra:

Thay phương trình (4) vào phương trình (1) ta tính được giá trị , từ đó suy ra:

T () Vậy ta tính được góc :

Từ hình vẽ ta tính dược:

Từ (2), (3), (8) và (09) ta tính được , từ giá trị , đã tính được ở trên, ta suy ra giá trị góc

Xét điều kiện ban đầu là , ta suy ra:

THIẾT KẾ MÔ HÌNH VÀ MÔ PHỎNG CÁNH TAY ROBOT 5 BẬC TỰ DO TRÊN EASY ROB

Phần mềm EASY ROB

EASY-ROB là công cụ mô phỏng robot 3D, cho phép người dùng tạo ra các khối hình học cơ bản như khối trụ, khối cầu và khối chữ nhật để thiết kế robot Hệ thống này hỗ trợ việc điều khiển robot bằng chuột, giúp quay và di chuyển đến các tọa độ tùy ý Ngoài ra, EASY-ROB cung cấp chức năng phóng to, thu nhỏ đối tượng vẽ tương tự như nhiều phần mềm thiết kế khác Chương trình cho phép thiết kế robot với tối đa 12 bậc tự do, điều khiển chuyển động qua các biến khớp hoặc tọa độ Đề-cát, và mô tả động học theo kiểu DH hoặc trong hệ tọa độ toàn cục.

EASY-ROB cung cấp sẵn các trình điều khiển động học thuận và ngược cho các cấu hình robot phổ biến, cho phép người dùng chỉ cần khai báo kiểu động học phù hợp trong thiết kế Đối với những robot có cấu trúc đặc biệt hoặc các khâu bị động gắn liền với chuyển động của khớp, cần giải bài toán động học ngược để xác định hàm toán học mô tả sự phụ thuộc của khâu bị động vào khớp quay Người dùng có thể viết chương trình bằng ngôn ngữ C để xác định sự phụ thuộc này và sử dụng tập tin MAKE.EXE để biên dịch thành thư viện liên kết động er_kin.dll Khi chạy chương trình, EASY-ROB sẽ liên kết với thư viện này và thực hiện các kiểu động học đã được khai báo trong chương trình điều khiển.

Hình 3.16 Giao diện thiết làm việc trên EASY ROB.

Mô hình Robot được thiết kế trên EASY ROB

Hình 3.17 Mô hình robot thiết kế trên phần mềm EASY ROB.

Code mô phỏng chương trình:

!prgfln F:\EASY_ROB\EASY_ROB\robot project\prg_tmp.prg PTP_AX 1.5000 -25.5000 27.0000 0.0000 -0.0000

Kết quả sau khi mô phỏng: vị trí vật được dịch chuyển tới vị trí đã được lập trình.

Hình 3.18 Kết quả sau khi mô phỏng.

THIẾT KẾ MÔ HÌNH CÁNH TAY ROBOT 5 BẬC TỰ DO TRÊN SOLIDWORKS VÀ MÔ PHỎNG TRÊN MATLAB SIMULINK

Phần mềm SolidWorks

SOLIDWORKS là phần mềm thiết kế 3D tham số, được phát triển bởi công ty Dassault Systèmes từ năm 1995 và hoạt động trên hệ điều hành Windows Là một thành viên của tập đoàn công nghệ hàng đầu Dassault Systèmes, SOLIDWORKS hiện có gần 6 triệu người dùng bản quyền toàn cầu, bao gồm khoảng 200.000 doanh nghiệp và tập đoàn.

Phần mềm Matlab

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 tính toán số với ma trận, vẽ đồ thị hàm số và biểu đồ thông tin, cũng như thực hiện các thuật toán phức tạp Ngoài ra, MATLAB còn hỗ trợ tạo giao diện người dùng và liên kết với các chương trình viết bằng nhiều ngôn ngữ lập trình khác nhau.

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.

4.3 Mô hình cánh tay robot được thiết kế trên SolidWorks

Hình 4.21 Mô hình cánh tay robot được thiết kế bằng solidworks.

Mô phỏng cánh tay robot với Matlab Simulink

Trong phần này nhóm chúng em sẽ liên kết hai phần mềm Solidworks và Matlab với nhau để mô phỏng robot chuyển động.

Hình 4.22 Phần mềm MATLAB và SOLID WORKS.

4.4.1 Chuyển mô hình robot từ Solidwork sang Matlab Simulink

Nhóm đã sử dụng công cụ Simscape Multibody Link để chuyển mô hình robot từ Solidworks sang Simulink (Matlab).

Hình 4.23 Kết quả sau khi chuyển đổi.

4.4.2 Tạo giao diện điều khiển robot

Nhóm đã lựa chọn thiết kế giao diện bằng công cụ Guide trên Matlab để tạo ra giao diện điều khiển robot.

Hình 4.24 Giao diện bắt đầu mô phỏng.

THI CÔNG MÔ HÌNH ROBOT 5 BẬC TỰ DO VÀ LẬP TRÌNH ĐIỀU KHIỂN ROBOT THEO HAI CHẾ ĐỘ AUTO VÀ MANUAL

Hình ảnh thi công mô hình

Hình 5.25 Các phần của robot và động cơ trước khi lắp ráp.

Hình 5.26 Robot sau khi lắp ráp.

Chương trình điều khiển

The provided code snippet initializes a servo control system with various parameters, including input pins for position tracking (bientroX, bientroY, bientroZ, bientrokep) and several floating-point variables for angles and distances (a1 to a5, d1 to d5) It sets up a boolean mode and calculates trigonometric functions (cos_t3, sin_t3) for motion control The setup function initializes an LCD display, sets the backlight, and displays the current mode while configuring pin 12 as an input with a pull-up resistor The code also includes variables for position coordinates (px, py, pz) and other control variables to manage the servo's operation effectively.

Serial.begin(9600); khop1.attach(5);//0-180 khop2.attach(6);//0-80-150 khop3.attach(9);//0-100 khop4.attach(10);//0-100 khop5.attach(11); khaukep.attach(3); px = 0; py = 6; pz = 26.5; t1p = khop1.read(); t2p = khop2.read(); t3p = khop3.read(); t4p = khop4.read(); t5p = khop5.read(); t1d = 45; t2d = 120; t3d = 90; t5d = 45; runservo();

//////////////////////////////////////// a1 = 0; a2; a3 = 0; a4 = 0; a5 = 4; ap1 = PI/2; ap2 = 0; ap3 = PI/2; ap4=-PI/2;ap5 = 0; d1 = 10.5; d2 = 0; d3 = 0; d4 = 11.8; d5 = 0; mode = digitalRead(12);

Serial.println(mode); if (mode == LOW){ lcd.setCursor(7, 0); lcd.print("AUTO"); lcd.setCursor(0, 1); lcd.print(" "); automation();

} else if (mode == HIGH){ lcd.setCursor(7, 0); lcd.print("MANU"); lcd.setCursor(0, 1); lcd.print("X: "); lcd.setCursor(5, 1); lcd.print("Y: "); lcd.setCursor(10, 1); lcd.print("Z: "); manual();

Hàm điều khiển thủ công đọc giá trị từ các cảm biến trên các trục X, Y và Z, cũng như từ cảm biến kẹp Nếu giá trị của trục X (A) nhỏ hơn 50, biến px sẽ giảm đi một giá trị nhất định (dophangiai) Tuy nhiên, nếu px giảm xuống dưới -27, nó sẽ được giới hạn ở giá trị -27.

} else if (A > 1000){ px = px + dophangiai; if (px > 27){ px = 27;

////////// if (B < 50) { py = py - dophangiai; if (py 1000){ py = py + dophangiai; if (py > 27){ py = 27;

//////// if (C < 50) { pz = pz - dophangiai; if (pz < 0){ pz = 0;

} else if (C > 1000){ pz = pz + dophangiai; if (pz >= 33){ pz = 33;

} if (D < 100) { gockep = gockep - 10; if (gockep 1000){ gockep = gockep + 20; if (gockep > 90){ gockep = 90;

Đoạn mã trên kiểm tra điều kiện vùng làm việc bằng cách tính khoảng cách từ điểm (px, py, pz) và so sánh với các giá trị giới hạn Nếu điều kiện thỏa mãn, nó sẽ tính toán các góc t1, t2, t3, t5 dựa trên các phép toán hình học như atan2 và sqrt Các biến d, r4, z4, s được tính toán để xác định các vị trí và góc cần thiết cho quá trình điều khiển Cuối cùng, các giá trị góc được trả về để phục vụ cho các ứng dụng tiếp theo.

In the provided code, angles t1 to t5 are converted from radians to degrees using the formula (180/PI)*t, with an additional 90 degrees added to t5 These converted angles are then written to corresponding outputs khop1 to khop5 Additionally, the variable gockep is written to khaukep, while the LCD display is configured to show values at specific cursor positions, updating the display with the variables px, py, and pz at designated locations.

} void automation(){ //Hàm tự động int gtcb = digitalRead(cb);

Serial.println(gtcb); if (gtcb == 0){ t3d = 133; t5d = 160; runservo(); t1d = 0; t2d = 40; runservo(); delay(1000); khaukep.write(0); t2d = 90; runservo(); t5d = 180; runservo(); t1d = 180; t2d = 35; t3d = 129; runservo(); delay(1000); khaukep.write(90); delay(1000); t2d = 90; runservo();

} else if (gtcb == 1){ t1d = 45; t2d = 135; t3d = 90; t5d = 45; runservo(); khaukep.write(90);

} void runservo(){ //Hàm giảm tốc độ quay servo if (t1p > t1d) { for ( int j = t1p; j >= t1d; j ) { khop1.write(j); delay(20);

} if (t1p < t1d) { for ( int j = t1p; j t2d) { for ( int j = t2p; j >= t2d; j ) { khop2.write(j); delay(20);

} if (t2p < t2d) { for ( int j = t2p; j t3d) { for ( int j = t3p; j >= t3d; j ) { khop3.write(j); delay(20);

} if (t3p < t3d) { for ( int j = t3p; j t5d) { for ( int j = t5p; j >= t5d; j ) { khop5.write(j); delay(15);

} if (t5p < t5d) { for ( int j = t5p; j

Ngày đăng: 31/05/2022, 10:55

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Kết cấu tay máy. - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 2.1. Kết cấu tay máy (Trang 11)
Hình 2.4. Tay máy kiểu toạ độ cầu. - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 2.4. Tay máy kiểu toạ độ cầu (Trang 13)
2.3.2. Arduino Uno R3 - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
2.3.2. Arduino Uno R3 (Trang 17)
Hình 1 Arduino Uno R3 - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 1 Arduino Uno R3 (Trang 17)
Bảng 1 Thông số cơ bản của Arduino Uno R3 - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Bảng 1 Thông số cơ bản của Arduino Uno R3 (Trang 18)
Hình 2.6. Vi điều khiển của Arduino UNO R3. - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 2.6. Vi điều khiển của Arduino UNO R3 (Trang 18)
Hình 2.7. Các cổng I/O của Arduino UNO R3. - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 2.7. Các cổng I/O của Arduino UNO R3 (Trang 21)
Hình 2.8. Servo MG996R. - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 2.8. Servo MG996R (Trang 23)
Hình 2.10. Nút nhấn Joystick. - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 2.10. Nút nhấn Joystick (Trang 24)
Theo như hình trên ta có thể miêu tả góc xoay của hệ - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
heo như hình trên ta có thể miêu tả góc xoay của hệ (Trang 26)
Tương tự như vậy ta có vì phần hình chiếu của - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
ng tự như vậy ta có vì phần hình chiếu của (Trang 27)
Như hình trên ta thấy được rằng khi chiếu gốc tọa độ của hệ - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
h ư hình trên ta thấy được rằng khi chiếu gốc tọa độ của hệ (Trang 28)
Hình 2.13 Quy tắc bàn tay phải - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
Hình 2.13 Quy tắc bàn tay phải (Trang 29)
D-H) là cách biểu diễn đơn giản mô hình các khâu và khớp của robot và có thể sử dụng cho bất cứ cấu hình robot nào - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
l à cách biểu diễn đơn giản mô hình các khâu và khớp của robot và có thể sử dụng cho bất cứ cấu hình robot nào (Trang 30)
2.7. Động học thuận – nghịch cho mô hình cánh tay robo t5 bậc tự do 2.7.1. Động học thuận - BÁO CÁO ĐỒ ÁN CÁNH TAY ROBOT 5 BẬC TỰ DO (ROBOT ARM 5 DOF)
2.7. Động học thuận – nghịch cho mô hình cánh tay robo t5 bậc tự do 2.7.1. Động học thuận (Trang 34)

TỪ KHÓA LIÊN QUAN

w