1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Đại học Bách Khoa Tp.HCM Ứng dụng mạng CNN cho cánh tay robot

138 31 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 đề Ứng Dụng Mạng Nơ-Ron Tích Chập Vào Kỹ Thuật Xử Lí Ảnh Để Thực Hiện Tác Vụ Gắp Đặt
Tác giả Hồng Đức Linh
Người hướng dẫn PGS.TS. Ngụ Hà Quang Thịnh
Trường học Đại học Bách Khoa Tp.HCM
Chuyên ngành Cơ Điện Tử
Thể loại đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 138
Dung lượng 3,79 MB
File đính kèm ĐATN.zip (3 MB)

Cấu trúc

  • 1.1 Đặt vấn đề (15)
  • 1.2 Kỹ thuật mô phỏng robot (16)
    • 1.2.1 Ứng dụng các phương pháp mô phỏng robot (16)
    • 1.2.2 Lợi ích của việc sử dụng phần mềm mô phỏng (17)
  • 1.3 Ứng dụng của robot công nghiệp trong sản xuất (17)
  • 1.4 Tổng quan về robot gripper (18)
    • 1.4.1 Một số khái niệm về robot gripper (18)
    • 1.4.3 Ứng dụng của robot gripper trong sản xuất (0)
  • 1.5 Mạng nơ-ron tích chập (19)
    • 1.5.1 Định nghĩa mạng nơ-tron tích chập (19)
    • 1.5.2 Convolution( tích chập) (20)
    • 1.5.3 Mô hình mạng nơ-tron tích chập (21)
    • 1.5.4 Mô hình 6-DoF pose estimation (23)
  • 1.6 Mục đích của đề tài (24)
  • 1.7 Nhiệm vụ của đề tài và giới hạn của đề tài (25)
    • 1.7.1 Nhiệm vụ của đề tài (0)
    • 1.7.2 Giới hạn của đề tài (25)
  • 1.8 Tổ chức luận văn (26)
  • CHƯƠNG 2: LỰA CHỌN PHƯƠNG ÁN (27)
    • 2.1 Phân tích lựa chọn robot (27)
      • 2.1.1 Mua robot mới (27)
      • 2.1.2 Thiết kế và chế tạo robot (27)
      • 2.1.3 Sử dụng robot có sẵn (27)
    • 2.2 Phân tích lựa chọn cơ cấu tác động (28)
      • 2.2.1 Phương án thiết kế loại tay gắp (28)
      • 2.2.3 Phân tích lựa chọn động cơ điện cho tay gắp (29)
      • 2.2.4 Phương án thiết kế cơ khí cho tay gắp (0)
      • 2.2.5 Phương án chọn cảm biến lực (31)
    • 2.3. Phân tích lựa chọn camera (33)
      • 2.3.1 Stereo Camera (33)
      • 2.3.2 Structure light camera (34)
      • 2.3.3 LiDAR (34)
    • 2.4 Phân tích lựa chọn hệ thống điện (35)
      • 2.4.1 Lựa chọn màn hình cảm ứng cho Teach Pendant (35)
      • 2.4.2 Lựa chọn phương thức giao tiếp vi điều khiển với máy tính (36)
      • 2.4.3 Lựa chọn vi điều khiển (36)
    • 2.5 Phân tích lựa chọn giải thuật xử lý ảnh (37)
      • 2.5.1 PoseCNN (37)
      • 2.5.2 Deep Object Pose Estimation (38)
  • CHƯƠNG 3 THIẾT KẾ CƠ KHÍ (41)
    • 3.1 Tính toán và thiết kế tay gắp (41)
      • 3.1.1 Yêu cầu đặt ra (41)
      • 3.1.2 Tính toán lực kẹp cho tay gắp (41)
        • 3.1.2.1 Tính lực kẹp (41)
        • 3.1.2.2 Moment động cơ R/C cần thiết để cung cấp lực kẹp (42)
      • 3.1.3 Thiết kế khung gripper (44)
    • 3.2 Robot VC 6353E (46)
      • 3.2.1 Thông số Robot (46)
      • 3.2.2 Thông số động cơ các trục của robot (47)
      • 3.2.3 Kích thước và không gian làm việc của robot (47)
  • CHƯƠNG 4: ĐỘNG HỌC ROBOT (48)
    • 4.1 Quy tắc Denavit-Hartenberg (48)
    • 4.2 Thiết lập bảng DH (48)
    • 4.3 Động học thuận (49)
    • 4.4 Góc Roll-Pitch-Yaw (51)
    • 4.5 Động học nghịch (52)
      • 4.5.1 Tính 𝜃 1 (52)
      • 4.5.2 Tính 𝜃 3 (53)
      • 4.5.3 Tính 𝜃 2 (55)
      • 4.5.4 Tính 𝜃 4 , 𝜃 5 , 𝜃 6 (0)
    • 4.6 Ma trận Jacobi (56)
  • CHƯƠNG 5: THIẾT KẾ ĐIỆN (60)
    • 5.1 Thiết kế hệ thống điện cho Teach Pendant (60)
      • 5.1.1 Thiết kế giao diện trên màn hình HMI (60)
      • 5.1.2 Sơ đồ đấu dây với màn hình HMI (62)
      • 5.1.3 Sơ đồ đấu dây với mạch chuyển USB (62)
      • 5.1.4 Sơ đồ đấu dây với nút nhấn 4 x 4, nút điều hướng và nút Start, Stop (62)
      • 5.1.5 Sơ đồ chân STM32F103C8T6 cho Teach Pendant (63)
    • 5.2 Thiết kế hệ thống điện cho tay gắp robot và băng tải (63)
      • 5.2.1 Cảm biến khối lượng Loadcell (63)
      • 5.2.2 Mạch chuyển đổi HX711 (64)
      • 5.2.3 Hiệu chỉnh cảm biến Loadcell (65)
      • 5.2.4 Sơ đồ nối dây với module HC-05 (67)
      • 5.2.5 Sơ đồ nối dây với module Hx711 (68)
      • 5.2.6 Sơ đồ nối dây với động cơ MG-996R (68)
      • 5.2.7 Sơ đồ nối dây với động cơ DC và relay 5V (68)
      • 5.2.8 Sơ đồ nối dây với mạch hạ áp LM2596 (69)
      • 5.2.9 Sơ đồ chân STM32F103C8T6 điều khiển tay gắp và băng tải (69)
    • 5.3 Hệ thống điện của tủ điện (69)
      • 5.3.1 Các thiết bị cho tủ điện (69)
      • 5.3.2 Sơ đồ khối hệ thống điện (71)
      • 5.3.3 Sơ đồ mạch điều khiển động lực (72)
      • 5.3.4 Sơ đồ mạch động lực (72)
  • CHƯƠNG 6 THIẾT KẾ PHẦN MỀM (73)
    • 6.1 Thiết kế phần mềm mô phỏng cánh tay Robot công nghiệp (73)
      • 6.1.1 Robot Project (73)
      • 6.1.2 Giao diện của phần mềm mô phỏng (74)
        • 6.1.2.1 Tab Control (74)
        • 6.1.2.2 Tab Program (75)
        • 6.1.2.3 Tab Gripper (78)
        • 6.1.2.4 Tab Position (79)
        • 6.1.2.4 Tab TCP/IP (80)
        • 6.1.2.4 Tab Com Serial (82)
      • 6.1.3 Giải thuật điều khiển (83)
        • 6.1.3.1 Lưu đồ nút Single Axis Move (83)
        • 6.1.3.2 Lưu đồ nút Multi Axis Move (83)
        • 6.1.3.3 Giải thuật MoveP (84)
        • 6.1.3.4 Giải thuật gắp vật của tay gắp (84)
        • 6.1.3.5 Giải thuật chương trình gắp/ đặt vật (84)
    • 6.2 Thiết kế phần mềm điều khiển Robot trên máy tính nhúng (85)
      • 6.2.1 TCP/ IP (85)
      • 6.2.2 Giao diện phần mềm điều khiển robot trên máy tính nhúng (86)
  • CHƯƠNG 7 GIẢI THUẬT XỬ LÝ ẢNH NHẬN DIỆN VẬT (88)
    • 7.1 Mạng nơ-tron tích chập Deep Object Pose Estimation (88)
      • 7.1.1 Mô hình VGG19 (88)
      • 7.1.2 Cấu trúc mạng Deep Object Pose Estimation (DOPE) (89)
      • 7.1.3 Dữ liệu đào tạo (90)
        • 7.1.3.1 Dữ liệu vật thể ảo Domain randomization (DR) (90)
        • 7.1.3.1 Dữ liệu vật thể thực (91)
      • 7.1.4 Huấn luyện mô hình (92)
    • 7.2 Ảo hóa vật thể (93)
      • 7.2.1 Đo khoảng cách bằng Camera Zed (93)
        • 7.2.1.1 Nguyên lý hoạt động của Camera Zed (93)
        • 7.2.1.2 Đo khoảng cách tới tâm vật thể (94)
      • 7.2.2 Chuyển hệ tọa độ (96)
      • 7.2.3 Calibration ma trận nội (97)
      • 7.2.4 Calibration ma trận ngoại (0)
      • 7.2.5 Giao diện xử lý ảnh (0)
  • CHƯƠNG 8: THỰC NGHIỆM (101)
    • 8.1 Mô hình thực tế và giao diện chương trình (101)
      • 8.1.1 Mô hình tay gắp (101)
      • 8.1.2 Mô hình Teach Pendant (102)
      • 8.1.3 Giao diện chương trình mô phỏng (103)
        • 8.1.3.1 Tab Control và Tab Position (103)
        • 8.1.3.2 Tab Program và Tab TCP/IP (104)
      • 8.1.4 Giao diện chương trình xử lý ảnh (105)
      • 8.1.5 Giao diện Teach Pendant (106)
        • 8.1.5.1 Giao diện khi khởi động (106)
        • 8.1.5.2 Giao diện chọn chức năng (106)
        • 8.1.5.3 Giao diện điều khiển từng trục (106)
        • 8.1.5.4 Giao diện điều khiển phối hợp nhiều trục (107)
        • 8.1.5.5 Giao diện các chức năng khác (107)
        • 8.1.5.6 Giao diện kết nối TCP/IP (108)
      • 8.1.6 Giao diện điều khiển robot trên máy tính nhúng (108)
    • 8.2 Đánh giá hiệu suất mô hình DOPE (109)
      • 8.2.1 Hiệu suất dự đoán khung 1 vật thể với các stage tăng từ 1 đến 6 (109)
      • 8.2.2 Hiệu suất dự đoán khung nhiều vật thể với các stage tăng từ 1 đến 6 (110)
      • 8.2.3 Nhận xét (112)
    • 8.3 Sai số góc Euler dự đoán từ mô hình DOPE (112)
      • 8.3.1 Bố trí thực nghiệm (112)
      • 8.3.2 Sai số góc Alpha (116)
      • 8.3.3 Sai số góc Beta (116)
      • 8.3.4 Sai số góc Gama (117)
      • 8.3.5 Nhận xét (117)
    • 8.4 Kết quả kết nối và điều khiển tay gắp (117)
      • 8.4.1 Kết nối tay gắp (117)
      • 8.4.2 Đáp ứng của tay gắp với giá trị lực cài đặt (119)
    • 8.5 Kết quả kết nối và sử dụng Teach Pendant (120)
      • 8.5.1 Kết nối Teach Pendant (120)
      • 8.5.2 Sử dụng Teach Pendant điều khiển robot (122)
    • 8.6 Đánh giá sai số lặp lại của Robot (123)
      • 8.6.1 Bố trí thực nghiệm (123)
      • 8.6.2 Sai số lặp lại theo phương Z (123)
      • 8.6.3 Sai số lặp lại theo phương X (124)
      • 8.6.4 Sai số lặp lại theo phương Y (125)
    • 8.7 Kết quả nhận diện và gắp đặt vật (126)
      • 8.7.1 Bố trí thực nghiệm (126)
      • 8.7.2 Nhận diện và gắp đặt 1 vật thể (127)
        • 8.7.2.1 Vật thể thẳng đứng (127)
        • 8.7.2.2 Vật thể nằm ngang, nắp nghiêng bên trái (128)
        • 8.7.2.3 Vật thể nằm ngang, nắp nghiêng bên phải (129)
      • 8.7.3 Nhận diện và gắp đặt nhiều vật thể (130)
  • CHƯƠNG 9 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (132)
    • 9.1 Các kết quả đạt được (132)
    • 9.2 Hạn chế của luận văn (132)
    • 9.3 Hướng phát triển của đề tài (132)
  • TÀI LIỆU THAM KHẢO (133)

Nội dung

Đề tài tập trung vào các nội dung sau: 1. Lập trình phần mềm điều khiển, mô phỏng 3D đồng thời cánh tay robot ảo và thực. 2. Thiết kế tay gắp robot đo lực kẹp. 3. Thiết kế Teachpendant sử dụng STM32 để điều khiển robot thực hiện các tác vụ thủ công, calib... 4. Ứng dụng mạng CNN để robot thực hiện tác vụ gắp và đặt vật ở hướng và vị trí bất kì lên băng tải.

Kỹ thuật mô phỏng robot

Ứng dụng các phương pháp mô phỏng robot

Mô phỏng là một kỹ thuật hiện đại, được ứng dụng rộng rãi trong nghiên cứu và sản xuất Trong lĩnh vực điều khiển robot, có hai phương pháp chính là điều khiển trực tiếp và điều khiển mô phỏng Điều khiển mô phỏng sử dụng các mô hình tính toán động học và động lực học của robot, kết hợp với các phương pháp đồ họa trên máy tính để mô tả cấu trúc và hoạt động của cánh tay robot.

Nghiên cứu mô phỏng hoạt động của robot trên máy tính hỗ trợ các nhà thiết kế trong việc nhanh chóng lựa chọn phương án hình và động học tối ưu cho robot.

Việc kiểm tra hoạt động của robot trên màn hình và sự phối hợp của chúng với các thiết bị khác trong dây chuyền sản xuất là rất quan trọng trong thiết kế và chế tạo robot mới Qua mô phỏng, nhà thiết kế có thể đánh giá khả năng làm việc của phương án thiết kế mà không cần chế thử, đồng thời cũng là công cụ để điều chỉnh thiết kế theo yêu cầu đa dạng của người sử dụng.

Phương pháp lập trình mô phỏng hỗ trợ người thiết kế xác định quỹ đạo công nghệ tối ưu cho robot khi làm việc với các đối tượng cụ thể, cũng như khi phối hợp với các thiết bị khác trong quy trình sản xuất tự động hóa.

Lợi ích của việc sử dụng phần mềm mô phỏng

Giảm chi tiêu và quản lý tài chính chặt chẽ là điều cần thiết; một mô phỏng có thể tiết kiệm hàng trăm lần chi phí ban đầu nhờ vào việc hoàn vốn ngay lập tức Điều này giúp loại bỏ nhu cầu thiết kế lại, sản xuất mẫu thử, thực hiện nhiều thử nghiệm sản phẩm và các cuộc kiểm tra, đánh giá bằng phương pháp vật lý, cơ học hoặc dựa trên kinh nghiệm cá nhân.

Tối ưu hóa việc sử dụng các nguồn lực hiện có, chẳng hạn như điều chỉnh độ dày và loại vật liệu, giúp tiết kiệm chi phí, rút ngắn thời gian sản xuất và nâng cao lợi thế cạnh tranh.

Kiểm soát thay đổi thông qua mô phỏng giúp phát hiện các tương tác ẩn có thể dẫn đến vấn đề nghiêm trọng Một trong những lợi ích quan trọng của mô phỏng là ngăn chặn những sai lầm tốn kém.

Mô phỏng giúp giảm thiểu rủi ro bằng cách đánh giá khách quan các phương pháp và cấu hình khác nhau Việc sử dụng tiêu chuẩn khách quan thay cho “dự đoán tốt nhất” giúp giảm thiểu nguy cơ liên quan đến những thay đổi.

Ứng dụng của robot công nghiệp trong sản xuất

Kể từ khi ra đời, robot công nghiệp đã được ứng dụng rộng rãi trong nhiều lĩnh vực, đóng vai trò quan trọng trong việc thay thế sức lao động của con người Nhờ đó, các dây chuyền sản xuất đã được tổ chức lại, dẫn đến sự gia tăng rõ rệt về năng suất và hiệu quả.

Mục đích áp dụng robot công nghiệp nhằm nâng cao năng suất dây chuyền

4 công nghệ, giảm giá thành, nâng cao chất lượng và tăng khả năng cạnh tranh của sản phẩm đồng thời cải thiện sức lao động

Trong ngành cơ khí, robot được sử dụng nhiều trong công nghệ đúc, công nghệ hàn, sơn, cắt kim loại, lắp ráp sản phẩm…

Kỹ thuật robot không chỉ được áp dụng trong các phân xưởng và nhà máy, mà còn đóng vai trò quan trọng trong việc khai thác thềm lục địa và đại dương, y học, quốc phòng, cũng như trong các lĩnh vực chinh phục vũ trụ.

Trong nhiều điều kiện làm việc, robot thể hiện khả năng vượt trội so với con người, trở thành công cụ hiệu quả cho việc tự động hóa Việc áp dụng robot không chỉ nâng cao năng suất lao động mà còn giảm bớt sức lao động cho con người trong những công việc nặng nhọc và độc hại.

Tổng quan về robot gripper

Một số khái niệm về robot gripper

Tùy thuộc vào công dụng của robot trong quy trình công nghệ, tay máy có thể được trang bị các bộ phận công tác khác nhau Những bộ phận này có thể bao gồm thiết bị gắp, kẹp để thực hiện việc gắp và giữ đối tượng, hoặc các dụng cụ khác như đầu hàn hồ quang tự động, đầu phun sơn, và phun men.

Tay gắp là thiết bị quan trọng giúp robot cầm nắm vật thể, và khi kết hợp với cánh tay robot công nghiệp cộng tác (cobot), nó cho phép tự động hóa nhiều quy trình sản xuất thiết yếu như kiểm tra, lắp ráp, chọn lựa và chăm sóc máy móc Sự kết hợp này mở ra tiềm năng lớn trong xử lý vật liệu, từ việc sắp xếp thùng hàng lớn đến di chuyển các linh kiện điện tử nhỏ và tinh vi.

Các tay gắp robot hiện đại được trang bị cảm biến và hệ thống điều khiển thông minh, giúp chúng nhận diện chính xác vật thể cần lấy, kiểm soát lực tác động và thực hiện các tác vụ với độ chính xác cao.

Luận văn này tập trung vào việc thiết kế một tay kẹp để gắp sản phẩm trên băng tải, với cơ cấu đầu gắp đóng vai trò quan trọng trong việc điều khiển chính xác vị trí của robot và bám quỹ đạo Đầu gắp không chỉ giúp đảm bảo sự chính xác trong quá trình gắp mà còn giữ vật một cách an toàn Do đó, việc thiết kế cơ cấu đầu gắp là cần thiết để nâng cao hiệu quả hoạt động của hệ thống.

Ứng dụng của robot gripper trong sản xuất

robot 5 bậc tự do cần phải có sự đòi hỏi về độ chính xác, khả năng linh hoạt theo các hướng, kết cấu đơn giản, đảm bảo lực kẹp giữ vật chắc chắn, nhanh và chính xác, tải nhẹ và dễ dàng di chuyển trong không gian Từ những yêu cầu trên, dưới đây là một số phương án phân tích lựa chọn

1.4.2 Ứng dụng của robot gripper trong sản xuất

Robot gripper có nhiều ứng dụng trong công nghiệp sản xuất, bao gồm:

Robot gripper là thiết bị quan trọng trong lắp ráp sản phẩm, giúp nắm và giữ các bộ phận, linh kiện và vật liệu với nhiều hình dáng và kích thước khác nhau Trong quá trình đóng gói sản phẩm, robot gripper đảm bảo việc nắm giữ chính xác và nhanh chóng, nâng cao hiệu quả đóng gói Ngoài ra, trong sản xuất linh kiện, robot gripper hỗ trợ nắm và giữ vật liệu, góp phần làm cho quy trình sản xuất trở nên nhanh chóng và chính xác hơn.

Robot gripper đóng vai trò quan trọng trong sản xuất thực phẩm bằng cách nắm và giữ các sản phẩm, từ đó nâng cao độ an toàn trong quy trình sản xuất.

Robot gripper đóng vai trò quan trọng trong sản xuất điện tử, giúp nắm giữ các linh kiện nhỏ và nhạy cảm Việc sử dụng robot này đảm bảo quy trình sản xuất diễn ra nhanh chóng và chính xác, nâng cao hiệu quả và chất lượng sản phẩm.

Mạng nơ-ron tích chập

Định nghĩa mạng nơ-tron tích chập

Trong những năm gần đây, ngành Thị giác máy tính đã đạt được nhiều thành tựu vượt bậc Các hệ thống xử lý ảnh lớn như Facebook, Google và Amazon đã tích hợp những tính năng thông minh vào sản phẩm của mình, bao gồm nhận diện khuôn mặt, phát triển xe hơi tự lái và drone giao hàng tự động.

Mạng nơ-ron tích chập (CNNs) là một trong những mô hình Deep Learning tiên tiến, cho phép xây dựng các hệ thống thông minh với độ chính xác cao Bài viết này sẽ trình bày về quá trình tích chập và ý tưởng cơ bản của mô hình CNNs trong ứng dụng thực tiễn.

6 huấn luyện ảnh để thực hiện tác vụ gắp vật.

Convolution( tích chập)

Tích chập, lần đầu tiên được áp dụng trong xử lý tín hiệu số, đã được các nhà khoa học sử dụng để cải thiện xử lý ảnh và video số nhờ nguyên lý biến đổi thông tin Để hình dung rõ hơn, tích chập có thể được coi như một cửa sổ trượt (sliding window) áp lên một ma trận, giúp theo dõi cơ chế hoạt động của nó một cách trực quan.

Hình 1 2: Minh họa tích chập

Ma trận bên trái đại diện cho một bức ảnh đen trắng, trong đó mỗi giá trị của ma trận tương ứng với một điểm ảnh (pixel) Giá trị 0 biểu thị màu đen và giá trị 1 biểu thị màu trắng Đối với ảnh grayscale, giá trị có thể biến thiên từ 0 đến 255.

Sliding window, hay còn gọi là kernel, filter, hoặc feature detector, là một phương pháp sử dụng ma trận filter 3×3 để nhân từng thành phần tương ứng với ma trận ảnh bên trái Giá trị đầu ra được tính bằng cách cộng lại các tích của các thành phần này Kết quả của phép toán tích chập là một ma trận (convoled feature) được tạo ra từ việc trượt ma trận filter và thực hiện tích chập trên toàn bộ ma trận ảnh bên trái Dưới đây là một số ví dụ minh họa cho phép toán tích chập.

Ta có thể làm mờ bức ảnh ban đầu bằng cách lấy giá trị trung bình của các điểm ảnh xung quanh cho vị trí điểm ảnh trung tâm

Hình 1 3: Ảnh mờ sau khi chập

Ngoài ra, ta có thể phát hiện biên cạnh bằng cách tính vi phân (độ dị biệt) giữa các điểm ảnh lân cận

Hình 1 4: Ảnh được phát hiện biên sau khi chập

Mô hình mạng nơ-tron tích chập

Mạng nơ-tron tích chập bao gồm nhiều lớp convolution kết hợp với các hàm kích hoạt phi tuyến như ReLU hoặc tanh, nhằm tạo ra thông tin trừu tượng hơn cho các lớp tiếp theo.

In a Feedforward Neural Network, layers are directly connected to each other through weighted vectors (w) These layers are often referred to as fully connected layers or affine layers.

Trong mô hình CNNs, các lớp được kết nối thông qua cơ chế convolution, với mỗi lớp tiếp theo là kết quả của quá trình này từ lớp trước đó Điều này tạo ra các kết nối cục bộ, nghĩa là mỗi nơ-ron ở lớp tiếp theo được sinh ra từ việc áp dụng filter lên một vùng ảnh cục bộ của nơ-ron ở lớp trước.

Mỗi lớp trong mạng nơ-ron được áp dụng nhiều bộ lọc khác nhau, thường từ vài trăm đến vài nghìn bộ lọc Ngoài ra, các lớp như pooling hay subsampling được sử dụng để lọc và giữ lại thông tin hữu ích, đồng thời loại bỏ thông tin nhiễu.

Trong quá trình huấn luyện, các mạng nơ-ron tích chập (CNNs) tự động học các thông số cho các bộ lọc Cụ thể, trong nhiệm vụ phân loại hình ảnh, CNNs tìm kiếm thông số tối ưu cho các bộ lọc theo thứ tự: pixel thô, cạnh, hình dạng, khuôn mặt và các đặc trưng cấp cao Lớp cuối cùng được sử dụng để thực hiện phân loại hình ảnh.

Hình 1 5: Mô hình mạng Nơ-tron tích chập

CNNs sở hữu tính bất biến và tính kết hợp cục bộ, giúp cải thiện độ chính xác khi nhận diện đối tượng qua các góc độ khác nhau như dịch chuyển, quay và co giãn Tính năng này được hỗ trợ bởi lớp pooling, cho phép mô hình đạt được độ chính xác cao hơn khi xử lý các biến thể của đối tượng.

Tính kết hợp cục bộ trong CNNs cho phép biểu diễn thông tin từ mức độ thấp đến cao và trừu tượng hơn thông qua quá trình convolution với các filter Điều này giải thích tại sao các mô hình CNN đạt được độ chính xác rất cao, tương tự như cách mà con người nhận thức và nhận diện.

Trong tự nhiên, chúng ta có thể phân biệt các vật thể như chó và mèo thông qua những đặc trưng nhận dạng từ mức độ thấp đến cao Những đặc điểm cơ bản như có bốn chân và có đuôi giúp chúng ta nhận biết chúng, trong khi các yếu tố nâng cao hơn như dáng đi, hình thể và màu lông tạo nên sự khác biệt rõ rệt giữa hai loài này.

Mô hình 6-DoF pose estimation

6-DoF pose estimation là quá trình xác định vị trí và hướng của đối tượng trong không gian ba chiều, đóng vai trò quan trọng trong robotics và computer vision Quá trình này có ứng dụng rộng rãi trong nhận diện đối tượng, theo dõi, dẫn đường, điều khiển robot và truyền tải dữ liệu.

Trong 6-DoF pose estimation, vị trí của đối tượng được xác định bởi ba thông số x, y, z, trong khi hướng của đối tượng được xác định bởi ba thông số góc xoay quanh các trục x, y, z Quá trình ước tính pose thường được thực hiện bằng cách sử dụng các kỹ thuật như stereo vision, structured light, hoặc deep learning để xác định các điểm đặc trưng trên đối tượng và từ đó tính toán được vị trí và hướng của đối tượng trong không gian Ứng dụng của mô hình 6-DoF pose estimation:

Robot hội nhập với khả năng ước lượng vị trí 6-DoF giúp nhận diện các đối tượng trong môi trường, đóng vai trò quan trọng trong việc xây dựng hệ thống tự động hóa nhà máy và nâng cao hiệu quả sản xuất.

Xe tự lái sử dụng công nghệ 6-DoF pose estimation để nâng cao độ chính xác trong các hệ thống điều khiển Công nghệ này giúp xe tự động lái nhận diện và tránh các vật thể trong quá trình di chuyển, từ đó cải thiện an toàn và hiệu suất hoạt động.

- Công nghiệp chế tạo: 6-DoF pose estimation giúp các nhà sản xuất đo lường và xác định vị trí của các chi tiết để tăng hiệu quả sản xuất

Bảo trì và sửa chữa thiết bị trở nên hiệu quả hơn nhờ vào việc sử dụng 6-DoF pose estimation, cho phép các kỹ thuật viên xác định chính xác chi tiết và vị trí của chúng trong không gian 3D.

Hình 1 6: Mô hình 6-DoF pose estimation

Mục đích của đề tài

Các thông số đầu vào:

- Vật thể có hình dạng trụ, đường kính 66mm, chiều cao từ 40-80mm, có thiết kế bao bì khác nhau

- Khay đựng có dạng hình hộp vuông kích thước 100 x 100 x 20 mm, lỗ tròn đường kính 80 mm Đặc điểm hệ thống:

- Các vật thể được đặt ngẫu nhiên trong vùng làm việc của robot trên mặt phẳng

- Khay đựng có vị trí cố định trên băng tải, được định vị bởi thanh chắn

1.6.2 Mục tiêu: Đối tượng mà luận văn hướng tới là sinh viên, những người đã có kiến thức căn bản về lập trình và điều khiển

Mục tiêu của luận văn để giải quyết vấn đề sau:

- Viết ra một phần mềm có môi trường 3D trực quan dễ sử dụng để hỗ trợ lập trình và điều khiển

- Sử dụng Teach Pendant điều khiển hoạt động robot

- Tích hợp kỹ thuật thị giác máy tính và mạng nơ tron tích chập vào tác vụ gắp và đặt vật

- Hoạch định đường đi cho robot gắp và đặt vật

- Sai số gắp vật tối đa ±10 mm tính từ tâm vật

- Sai số đặt vật tối đa ±7 mm tính từ tâm hình trụ trong khay.

Nhiệm vụ của đề tài và giới hạn của đề tài

Giới hạn của đề tài

Để hạn chế khối lượng luận văn nên phạm vị của đề tài là:

- Đối tượng nhắm đến của luận văn là sinh viên

- Robot được sử dụng trong luận văn này là Robot 6 bậc tự do VC 6353E của hãng Denso

- Tạo ra phần mềm mô phỏng quá trình hoạt động của cánh tay robot trên máy tính

- Thiết kế, điều khiển gripper

Phát triển thuật toán mạng nơ-tron tích chập được huấn luyện kết hợp với kỹ thuật xử lý ảnh nhằm tối ưu hóa khả năng của robot trong việc thực hiện tác vụ gắp vật.

- Thiết kế, dùng Teach Pendant để điều khiển robot

- Kết nối, điều khiển hoạt động robot mô phỏng với robot thực tế.

Tổ chức luận văn

Chương 2: Lựa chọn phương án

Chương 3: Thiết kế cơ khí

Chương 6: Thiết kế phần mềm

Chương 7: Giải thuật xử lý ảnh nhận diện vật

Chương 9: Kết luận và hướng phát triển

LỰA CHỌN PHƯƠNG ÁN

Phân tích lựa chọn robot

Để tiến hành điều khiển robot trong môi trường mô phỏng 3D, cần thiết phải có một robot đáp ứng các yêu cầu cơ khí đã được phân tích Robot phải đảm bảo độ chính xác cao và đáp ứng các tiêu chí cần thiết cho mô phỏng trong môi trường ảo Đồng thời, cần tạo ra một môi trường tương thích với hệ thống sản xuất bên ngoài, phù hợp với không gian 3D để tối ưu hóa quá trình mô phỏng.

2.1.1 Mua robot mới Ưu điểm:

- Đảm bảo kết cấu và thông số kĩ thuật

- Khi sử dụng thực tế được nhà sản xuất đảm bảo chất lượng và có thể bảo hành dễ dàng

- Bộ điều khiển được đội ngũ của công ty phát triển qua nhiều năm nên dễ sử dụng

- Có sách hướng dẫn chi tiết về lập trình điều khiển và đấu dây

- Khó can thiệp vào bộ điều khiển

2.1.2 Thiết kế và chế tạo robot Ưu điểm:

- Có thể thiết kế theo yêu cầu của người sử dụng

- Dễ can thiệp vào phần cứng

- Có thể tùy chọn bộ điều khiển sao cho phù hợp

- Chế tạo robot rất phức tạp, cần một đội ngũ rất lớn

- Do thiết kế chế tạo từ ban đầu sẽ gây ra tốn kém chi phí

- Tốn thời gian thiết kế chế tạo robot

- Khó đảm bảo các tiêu chí về cơ khí như độ chính xác, độ rơ, tải trọng,…

2.1.3 Sử dụng robot có sẵn Ưu điểm:

- Ít tốn kém chi phí

- Tự chủ được phần điều khiển

- Có sẵn bộ điều khiển

- Phụ thuộc phần xác cơ khí

Kết luận: Sau khi xem xét kỹ lưỡng các ưu nhược điểm của từng phương án, tôi đã quyết định lựa chọn mô hình robot VC 6353E của Denso, vì nó đáp ứng đầy đủ các yêu cầu đề ra.

Phân tích lựa chọn cơ cấu tác động

2.2.1 Phương án thiết kế loại tay gắp

Các tay gắp robot có thể được tùy chỉnh theo yêu cầu cụ thể của ứng dụng, bao gồm tải trọng và kích thước của vật thể cần gắp Một số loại tay gắp phổ biến hiện nay bao gồm nhiều thiết kế khác nhau để đáp ứng nhu cầu đa dạng trong công nghiệp.

Tay gắp kiểu ba ngón (3-Finger Gripper) là thiết bị có ba ngón tay xoay, giúp giữ chắc các vật thể phức tạp Loại tay gắp này thường được ứng dụng trong lĩnh vực y tế và công nghiệp, mang lại hiệu quả cao trong việc lấy và giữ các vật thể có hình dạng đa dạng.

- Có khả năng bắt và giữ chặt vật thể một cách chính xác

- Có thể bắt và giữ các vật thể có hình dạng và kích thước khác nhau

- Chi phí sản xuất cao

Tay gắp kiểu hai ngón (2-Finger Gripper) là thiết bị có hai ngón tay đối xứng, giúp nắm chắc các vật thể Loại tay gắp này thường được ứng dụng trong ngành công nghiệp để lấy và giữ chắc các vật thể hình trụ Ưu điểm của tay gắp hai chấu là khả năng nắm bắt chính xác và độ bền cao, phù hợp với nhiều loại vật liệu khác nhau.

- Thiết kế đơn giản và nhỏ gọn, dễ dàng tích hợp vào hệ thống robot

- Chi phí sản xuất thấp hơn so với các loại tay robot khác

- Giới hạn về khả năng nắm các đối tượng có kích thước và hình dạng phức tạp

Tay gắp kiểu hút (Vacuum Gripper) là thiết bị sử dụng hệ thống hút để nắm giữ các vật thể có bề mặt không phẳng hoặc có lỗ hổng Ưu điểm nổi bật của loại tay gắp này là khả năng giữ chắc chắn các vật thể đa dạng, giúp tăng cường hiệu suất trong quy trình tự động hóa.

- Có khả năng giữ chặt các vật thể có bề mặt phẳng hoặc dẹt

- Không thể bắt và giữ vật thể có bề mặt không phẳng

- Phải có máy tạo áp suất

Tay gắp mềm (Soft Gripper) là một loại cánh tay robot được thiết kế để nắm và giữ các đối tượng một cách nhẹ nhàng, không gây tổn hại cho vật thể Thay vì sử dụng bộ kẹp cứng, Soft Gripper sử dụng tay nắm mềm và linh hoạt, thường được làm từ cao su, silicone hoặc các chất liệu mềm khác, mang lại nhiều ưu điểm trong việc xử lý các vật thể nhạy cảm.

- Độ linh hoạt trong việc bắt, giữ và di chuyển vật thể

- Thiết kế ngón tay khó do giới hạn về kiến thức vật liệu

- Hạn chế về độ chính xác gắp đặt vật

Kết luận: Dựa trên những ưu nhược điểm của các cơ cấu tay gắp, phương án thiết kế tay gắp 2 ngón được lựa chọn do tính đơn giản, nhỏ gọn và khả năng điều khiển dễ dàng Thiết kế này dễ dàng tích hợp vào hệ thống robot, cho phép điều chỉnh lực bắt phù hợp với từng vật thể và có chi phí sản xuất thấp hơn so với các loại tay robot khác.

2.2.3 Phân tích lựa chọn động cơ điện cho tay gắp Động cơ bước Ưu điểm :

Điều khiển góc quay chính xác mà không cần cảm biến bên ngoài như động cơ servo, giúp giảm chi phí và đơn giản hóa hệ thống.

Dòng điện từ driver tới cuộn dây động cơ không thể điều chỉnh trong quá trình hoạt động Nếu động cơ bị quá tải, sẽ xảy ra hiện tượng trượt bước, dẫn đến sai lệch trong việc điều khiển.

16 Động cơ RC servo Ưu điểm:

- Có khả năng xoay ở nhiều góc độ khác nhau, tùy vào tín hiệu điều khiển được cung cấp

- Thường có kích thước nhỏ gọn và giá thành phải chăng

- Không thể xoay liên tục mà chỉ có thể xoay ở một góc cố định

- Độ chính xác không cao, có thể bị sai số đáng kể

- Không thể điều chỉnh tốc độ quay của servo một cách chính xác Động cơ DC servo Ưu điểm :

- Có khả năng xoay liên tục với tốc độ và độ chính xác cao

- Điều khiển được tốc độ quay và vị trí xoay chính xác

- Có thể được sử dụng để thực hiện các nhiệm vụ đòi hỏi độ chính xác cao Nhược điểm :

- Giá thành thường cao hơn so với RC servo

- Yêu cầu nhiều kỹ thuật và kiến thức để thiết lập và vận hành

- Có thể yêu cầu bộ nguồn và vi xử lý phức tạp hơn để điều khiển

Kết luận: Tay gắp cần đảm bảo độ cứng vững và ít rung động để hoạt động hiệu quả ở tốc độ cao Thiết kế nhỏ gọn, khả năng quay ở một số góc cố định và giá thành hợp lý cũng là những yếu tố quan trọng cần xem xét.

Do đó, phương án sử dụng động cơ RC servo được chọn để đáp ứng yêu cầu trên

2.2.4 Phương án thiết kế cơ cấu cho tay gắp

Phương án 1: Thiết kế sử dụng cơ cấu tay quay con trượt Ưu điểm:

Kết cấu với độ cứng vững cao cho phép kẹp giữ vật một cách nhanh chóng và ổn định, không gây rung động Điều này giúp dễ dàng tính toán động học vị trí cho cơ cấu, từ đó xác định chính xác vị trí của end-effector.

Cơ cấu gọn nhẹ và linh hoạt của robot giúp tối ưu hóa quá trình tính toán vị trí điều khiển, cho phép điều chỉnh khoảng cách giữa hai má kẹp để mở rộng hoặc thu hẹp phạm vi gắp vật.

Việc sử dụng cơ cấu con trượt trong thời gian dài có thể dẫn đến giảm độ bền của nó Do đó, việc bảo trì và sửa chữa định kỳ là cần thiết để duy trì độ bền và hiệu suất của cơ cấu này.

Phương án 2: Thiết kế sử dụng cơ cấu vít me - đai ốc Ưu điểm:

Cơ cấu vít me - đai ốc cho phép điều khiển chính xác độ mở và thu hẹp của các ngón tay robot gripper, giúp nó có khả năng cầm nắm các vật thể nhỏ và nhạy cảm một cách hiệu quả.

 Có khả năng giữ chặt vật thể một cách ổn định, giúp cho robot có thể di chuyển và vận chuyển các vật thể một cách an toàn

Cơ cấu vít me - đai ốc hoạt động với tốc độ chậm hơn so với nhiều loại tay gắp khác, điều này làm hạn chế khả năng sử dụng trong các ứng dụng cần tốc độ cao.

 Chi phí sản xuất cao

 Thiết kế, tính toán lực phức tạp

Phương án 3: Thiết kế sử dụng cơ cấu bánh răng Ưu điểm :

 Xuất hiện lực dọc trong quá trình kẹp

 Khó khăn trong việc tính toán, thiết kế và chế tạo bánh răng

Việc sử dụng cơ cấu bánh răng trong thời gian dài có thể dẫn đến giảm độ bền, vì vậy cần thực hiện bảo trì và sửa chữa định kỳ để duy trì hiệu suất và độ bền của nó.

Phân tích lựa chọn camera

Giá thành phù hợp, có độ phân giải tốt, tốc độ khung hình cao, thời gian xử lý ảnh nhanh, đo được khoảng cách vật thể

Stereo camera là loại camera sử dụng hai ống kính song song để ghi lại hình ảnh từ hai góc độ khác nhau, giúp tạo ra hiệu ứng 3D chân thực Các ống kính được căn chỉnh với khoảng cách tương đương khoảng cách giữa hai mắt con người, mang lại trải nghiệm hình ảnh sống động Với thiết kế này, stereo camera có khả năng thu thập thông tin chiều sâu, phục vụ cho nhiều ứng dụng trong lĩnh vực nhiếp ảnh, phim ảnh và công nghệ thực tế ảo.

- Cung cấp thông tin về chiều sâu và mô hình 3D, cho phép phân tích và xử lý hình ảnh trực quan hơn

- Có thể phát hiện vật thể và đo khoảng cách tới vật thể

- Có thư viện SDK hỗ trợ lập trình

- Cần hiệu chỉnh để đạt được độ chính xác và độ tin cậy cao

- Có thể bị ảnh hưởng bởi điều kiện ánh sáng môi trường

- Tốc độ xử lý ảnh chậm hơn so với các loại camera thông thường

Một số vấn đề như nhiễu, độ phân giải và sự đồng bộ hóa giữa hai ống kính có thể dẫn đến mất mát thông tin, ảnh hưởng nghiêm trọng đến độ chính xác của kết quả đo lường.

Camera cấu trúc ánh sáng hoạt động bằng cách chiếu một dải ánh sáng lên bề mặt cần xác định và sử dụng hiện tượng cong của ảnh trả về để tính toán chiều sâu Phương pháp này có tốc độ nhanh hơn so với camera ToF, đạt khoảng 30fps so với 20fps, với sai số khoảng 1cm Ưu điểm nổi bật của camera cấu trúc ánh sáng là khả năng xử lý nhanh và chính xác trong việc xác định chiều sâu bề mặt.

- Tốc độ quét nhanh hơn so với phương pháp stereo vision và time-of-flight

- Độ chính xác cao, độ phân giải chiều sâu tốt

- Khả năng quét đối tượng với nhiều kích thước và hình dạng khác nhau Nhược điểm:

- Giá thành của structure light camera thường cao hơn so với các loại camera 3D khác

- Yêu cầu một môi trường đủ sáng để thu thập dữ liệu

- Không thể quét các đối tượng quá sáng hoặc quá tối

- Có thể bị ảnh hưởng bởi độ bóng của đối tượng

LiDAR (Light Detection and Ranging) là công nghệ đo khoảng cách sử dụng tia laser để xác định vị trí vật cản với độ chính xác cao Nhờ tính định hướng của laser, ánh sáng phản xạ được cảm biến thu nhận, kết hợp với motor quay giúp quét một vùng không gian rộng lớn Công nghệ này mang lại nhiều ưu điểm vượt trội trong việc thu thập dữ liệu địa hình và môi trường.

- Có độ chính xác cao trong việc đo khoảng cách và tạo hình ảnh 3D

- Có khả năng hoạt động trong điều kiện ánh sáng yếu

- Giá thành của LiDAR thường cao hơn so với các loại camera 3D khác

- Phức tạp Cần phải calib nhiều cảm biến

Kết luận: Dựa trên các yêu cầu đã nêu, phương án 2 sử dụng camera ZED là lựa chọn tối ưu nhờ vào điều kiện sẵn có, đa dạng về độ phân giải và tốc độ khung hình Camera này dễ dàng sử dụng với sự hỗ trợ từ thư viện xử lý ảnh, đồng thời có thiết kế nhỏ gọn, thuận tiện cho việc lắp đặt.

Phân tích lựa chọn hệ thống điện

2.4.1 Lựa chọn màn hình cảm ứng cho Teach Pendant

- Màn hình cảm ứng có phần mềm thiết kế giao diện thuận tiện cho việc thiết lập các yêu cầu đồ họa cần thiết

- Có thể dùng vi điều khiển để giao tiếp màn hình

Từ điều kiện sẵn có, màn hình cảm ứng HMI Nextion thõa mãn những yêu cầu đặt ra

Hình 2.1: Màn hình cảm ứng HMI Nextion 3.5 inch Ưu điểm:

- Thiết kế đơn giản, dễ dàng sử dụng và cài đặt

- Có thể tương tác với nhiều loại vi điều khiển, điều khiển qua các giao tiếp như UART, I2C, SPI hoặc GPIO

- Được trang bị các chức năng và tính năng tích hợp sẵn, giúp tiết kiệm thời gian phát triển ứng dụng

- Cho phép định dạng tùy chỉnh và hiển thị nội dung động

- Giá thành của màn hình cảm ứng Nextion cao hơn so với một số loại màn hình cảm ứng thông thường

Màn hình có độ phân giải thấp, khiến nó không phù hợp cho các ứng dụng cần hiển thị nội dung chi tiết hoặc yêu cầu độ sắc nét cao.

Màn hình cảm ứng Nextion không tương thích với các phần mềm lập trình phổ biến như C++, Java hoặc Python, dẫn đến việc người dùng cần bỏ thêm thời gian và chi phí để làm quen với cách sử dụng.

2.4.2 Lựa chọn phương thức giao tiếp vi điều khiển với máy tính

Yêu cầu phần giao tiếp với máy tính:

- Với Teach Pendant: Truyền bằng dây dài khoảng 2m

- Với Gripper: Truyền không dây

- Có thể thực hiện trên vi điều khiển

- Tốc độ truyền trung bình

- Có thể dễ dàng giao tiếp với máy tính Đối với Teach Pendant:

Giao thức USB (Universal Serial Bus) là chuẩn kết nối tuần tự đa dụng trong máy tính, cho phép kết nối các thiết bị ngoại vi theo quy chuẩn Plug and Play (Cắm và chạy) Tính năng cắm nóng giúp kết nối thiết bị mà không cần khởi động lại hệ thống, làm cho việc sử dụng trở nên dễ dàng hơn Để sử dụng giao thức này, vi điều khiển cần hỗ trợ lớp thiết bị giao tiếp qua USB, trong khi máy tính sẽ lập trình phần mềm để đọc dữ liệu từ cổng COM Đối với Gripper, việc tích hợp này rất quan trọng để đảm bảo hiệu suất hoạt động.

Giao thức UART là chuẩn giao tiếp điểm-điểm, cho phép kết nối giữa hai thiết bị, trong đó một thiết bị đóng vai trò là transmitter và thiết bị còn lại là receiver Để thực hiện giao tiếp không dây với gripper, vi điều khiển cần hỗ trợ giao thức UART thông qua module Bluetooth HC-05 Máy tính sẽ lập trình phần mềm để đọc dữ liệu từ cổng COM.

2.4.3 Lựa chọn vi điều khiển

- Có ít nhất 15 GPIO: 9 GPIO để đọc bàn phím keypad và 6 GPIO cho nút nhấn điều hướng, đèn hiệu và nút nhấn khẩn cấp

- Có module UART và USB-CDC

- Cung cấp nguồn 5V cho màn hình

Sau quá trình tìm hiểu, vi điều khiển STM32F103C8T6 có thể đáp ứng tốt những yêu cầu đặt ra

Hình 2.2: Vi điều khiển STM32F103C8T6

Phân tích lựa chọn giải thuật xử lý ảnh

Yêu cầu cần thiết là khả năng nhận diện và dự đoán vị trí, hướng di chuyển của vật thể Hệ thống cần có tốc độ xử lý nhanh chóng, phù hợp cho nghiên cứu và phát triển, đồng thời tương thích với cấu hình của laptop.

PoseCNN là một mô hình mạng nơ-ron được thiết kế để ước lượng vị trí và hướng của đối tượng trong không gian 3D từ hình ảnh 2D Mô hình này kết hợp giữa mạng CNN và mạng MLP nhằm phân loại vị trí và hướng của các đối tượng, giúp cải thiện khả năng nhận diện và phân tích hình ảnh.

24 được trích xuất từ mạng CNN, sau đó được đưa vào mạng MLP để tính toán vị trí và hướng của đối tượng Ưu điểm:

- Đạt được độ chính xác rất cao trong việc ước tính vị trí và hướng của đối tượng trong không gian 3D từ hình ảnh 2D

- Có thể được sử dụng trên các nền tảng khác nhau như Python và MATLAB

- Có thể được sử dụng với các loại đối tượng khác nhau và hoạt động tốt trong môi trường có nhiều nhiễu

PoseCNN yêu cầu một khối lượng lớn dữ liệu huấn luyện để đạt được độ chính xác cao, và những dữ liệu này cần phải được gán nhãn một cách đầy đủ và chính xác.

- Yêu cầu phần cứng mạnh để xử lý các hình ảnh đầu vào và tính toán các tham số của mô hình

- Sử dụng mạng CNN và mạng MLP phức tạp, nên tốc độ tính toán của mô hình này khá chậm so với một số mô hình khác

Deep Object Pose Estimation (DOPE) là phương pháp ước tính vị trí và hướng của đối tượng trong không gian 3D từ hình ảnh 2D Cấu trúc của DOPE bao gồm hai phần chính: một mạng Convolutional Neural Network (CNN) để rút trích đặc trưng hình ảnh và một mạng Fully Connected Neural Network để xử lý thông tin.

(FCNN) được sử dụng để dự đoán các thông số vị trí của đối tượng, bao gồm tọa độ XYZ và các thông số góc quay Ưu điểm:

- Cung cấp một hệ thống đầy đủ và dễ sử dụng để thực hiện 6-DoF pose estimation

- Sử dụng các mô hình deep learning được đào tạo sẵn để cải thiện độ chính xác và tốc độ của việc ước tính pose

- Hỗ trợ đa dạng các cảm biến, bao gồm các loại máy ảnh thông thường, LIDAR, Kinect, v.v

- Có khả năng ước tính được các thông số vị trí và hướng của đối tượng với độ chính xác cao

- Có thể xử lý các hình ảnh 2D nhanh chóng, giúp đảm bảo hiệu suất và tăng cường khả năng ứng dụng của mô hình

- Không thể xử lý các đối tượng mờ hoặc nhỏ hơn một kích thước tối thiểu nhất định

Để phân biệt rõ ràng các điểm đặc trưng trên đối tượng, cần đặt chúng ở vị trí chính xác nhằm xác định vị trí và hướng của đối tượng một cách hiệu quả.

Kết luận: Dựa trên các yêu cầu đã đề ra, phương án 2 được lựa chọn là sử dụng mô hình có sẵn Điều này là do hạn chế về thời gian thực hiện đồ án, dẫn đến việc nghiên cứu và tạo ra mô hình mới không khả thi trong khoảng thời gian cho phép.

Để mô hình CNN hoạt động ổn định, cần có tệp dữ liệu đào tạo lớn, bao gồm việc thu thập và gán nhãn cho các đối tượng, nhưng hiện tại yêu cầu này vẫn chưa được đáp ứng.

THIẾT KẾ CƠ KHÍ

Tính toán và thiết kế tay gắp

- Thiết kế tay gắp có độ mở tối đa giữa 2 con trượt là 45 mm, giữa 2 ngón tay là 76 mm

- Gắp được vật hình trụ, đường kính 66mm, trọng lượng 100g

- Kiểm soát lực kẹp để không làm biến dạng bề mặt vật

- Có trọng lượng nhẹ, dễ dàng tháo lắp, sửa chữa hoặc thay thế

3.1.2 Tính toán lực kẹp cho tay gắp

Thiết kế tool để gắp vật ở độ mở 40mm nên ta tính toán lực khi tay gắp mở 40mm

Hình 3.1: Sơ đồ phân tích lực kẹp

Hệ số ma sát giữa má kẹp và vật (cao su EVA và nhựa ABS) 𝜇 = 0,5

Phân tích lực tại 1 điểm tiếp xúc giữa vật và má kẹp:

Hình 3.2: Sơ đồ Phân tích lực tại 1 điểm tiếp xúc

Chiếu lực theo phương x và y, ta có:

Ta có trọng lực tác dụng lên vật:

0,5 = 0,98 (N) Vậy lực kẹp tác dụng cần thiết để vật được giữ là:

Hình 3.3: Sơ đồ tác động lực của tay gắp ở vị trí kẹp

3.1.2.2 Moment động cơ R/C cần thiết để cung cấp lực kẹp

Các thông số liên quan:

Hình 3.4: Sơ đồ tác động lực một bên tay gắp ở vị trí kẹp

Trọng lực tác dụng lên con trượt B :

𝑁 1 = 𝑃 1 = (𝑚 𝐴 + 𝑚 𝐵 + 𝑚 𝐶 + 𝑚 𝐷 ) × 10 −3 × 9,81 = 0,89(𝑁) Lực ma sát tác dụng lên con trượt B :

𝐹 𝑚𝑠1 = 𝑁 1 × 𝜇 = 0,89 × 0,015 = 0,013 (N) Áp dụng phương trình cân bằng lực theo phương ngang ta có :

Ta chọn động cơ MG996R có moment là 981 N.mm

Thông số động cơ MG996R:

- Điện áp hoạt động: 4.8~6.6VDC

+ 3,5 kg-cm với điện áp 4.8V-1.5A

+ 5.5 kg-cm với điện áp 6V-1.5A

- Kích thước: 40mm x 20mm x 43mm

Mặt đế đế gripper được chọn làm bằng nhôm, độ dày 3mm, thiết kế được thể hiện ở hình 3.10

Hình 3.7:Kết quả kiểm tra biến dạng của mặt đế gripper

Hình 3.8:Kết quả kiểm tra ứng suất của mặt đế gripper

Phần kết nối ngón tay với con trượt được làm từ nhôm, dùng phương pháp gia công cnc

Hình 3.9: Phần kết nối ngón tay với con trượt

Hình 3.10: Thiết kế 3D của Gripper

Robot VC 6353E

Tầm với tối đa 532 mm

Tải nâng tối đa 3 Kg

Loại động cơ AC Servo Yaskawa

Moment xoắn tối đa Trục 1 0.955 Nm

3.2.2 Thông số động cơ các trục của robot

Tên trục Loại động cơ Mã động cơ Công suất Phanh Trục 1

Bảng 3.1: Thông số động cơ các trục của robot

3.2.3 Kích thước và không gian làm việc của robot

Hình 3.11: Kích thước và không gian làm việc của Robot VC-6353EM

ĐỘNG HỌC ROBOT

Quy tắc Denavit-Hartenberg

Quy tắc Denavit-Hartenberg, được phát triển vào năm 1955 bởi hai nhà khoa học cùng tên, là phương pháp thiết lập hệ tọa độ cho các cặp khâu-khớp trong robot Hệ thống tọa độ này được liên kết thông qua bốn biến số, được gọi là biến DH.

Theo quy tắc Denavit – Hartenberg thì tọa độ được gắn lên các khâu khớp như sau:

- Đặt trục tọa độ 𝑧 𝑖 dọc theo trục của khớp sau ( thứ 𝑖 + 1)

- Đặt gốc tọa độ 𝑂 𝑖 tại giao điểm giữa 𝑧 𝑖 và pháp tuyến chung nhỏ nhất của trục

𝑧 𝑖 và 𝑧 𝑖−1 Giao điểm của pháp tuyển chung với trục 𝑧 𝑖−1 là gốc 𝑂’ 𝑖 của hệ 𝑂’ 𝑖 𝑋’ 𝑖 𝑌’ 𝑖 𝑍’ 𝑖

- Đặt trục tọa độ 𝑥 𝑖 theo phương pháp tuyến chung giữa 𝑧 𝑖−1 và 𝑧 𝑖 , hướng từ khớp thứ i đến khớp thứ 𝑖 + 1

- Trục 𝑦 𝑖 vuông góc với 𝑥 𝑖 và 𝑧 𝑖 theo quy tắc bàn tay phải

Sau khi được thiết lập, vị trí của 2 trục tọa độ được xác định hoàn toàn nhờ bốn thông số:

- 𝑎 𝑖 = 𝑂 𝑖 𝑂’ 𝑖 : khoảng cách giữa 2 khớp liên tiếp theo phương 𝑥 𝑖

- 𝑑 𝑖 = 𝑂 𝑖−1 𝑂’ 𝑖 : Khoảng cách giữa 2 khớp liên tiếp theo phương 𝑧 𝑖−1

- 𝛼 𝑖 góc quay quanh trục xi giữa 𝑧 𝑖−1 và 𝑧 𝑖

- 𝜃 𝑖 : góc quay quanh trục 𝑧 𝑖−1 giữa 𝑥 𝑖−1 1 và 𝑥 𝑖

Có được thông số, ta lập được ma trận biến đổi như sau:

𝑖−1 = [ cos𝜃 𝑖 −sin𝜃 𝑖 cos𝛼 𝑖 sin𝜃 𝑖 sin𝛼 𝑖 𝑎 𝑖 cos𝜃 𝑖 sin𝜃 𝑖 cos𝜃 𝑖 cos𝛼 𝑖 −cos𝜃 𝑖 sin𝛼 𝑖 𝑎 𝑖 sin𝜃 𝑖

Thiết lập bảng DH

Động học thuận

Tương ứng với Bảng D-H trên ta được các ma trận chuyển đổi:

1 = [ cos𝜃 2 −sin𝜃 2 0 260cos𝜃 2 sin𝜃 2 cos𝜃 2 0 260sin𝜃 2

2 = [ cos𝜃 3 0 −sin𝜃 3 30,5cos𝜃 3 sin𝜃 3 0 cos𝜃 4 30,5sin𝜃 3

Ma trận thuần nhất giữa khâu cuối cùng và gốc tọa độ là:

Từ công thức trên ta được một ma trận 4x4 gồm 2 thành phần là xoay và tịnh tiến:

Góc Roll-Pitch-Yaw

Cho hệ trục gốc A, B trùng với A:

Xoay hệ trục B quanh 𝑋 𝐴 1 góc 𝛾 (roll)

Xoay hệ trục B quanh 𝑌 𝐴 1 góc 𝛽 (pitch)

Xoay hệ trục B quanh 𝑍 𝐴 1 góc 𝛼 (yaw)

Ma trận xoay tổng quát có dạng:

Ma trận này có thể trích từ ma trận 𝑇𝑜𝑜𝑙 0 𝑇 Theo định nghĩa của góc Roll- PitchYaw, ma trận này được tính bằng cách:

Động học nghịch

Bài toán động học ngược nhằm tìm bộ giá trị (𝜃 1 , 𝜃 2 , 𝜃 3 , 𝜃 4 , 𝜃 5 , 𝜃 6 ) để thỏa mãn tọa độ của điểm tool (𝑃 𝑥 , 𝑃 𝑦 , 𝑃 𝑧 ) và hai góc định hướng (𝛼, 𝛽, 𝛾) trong hệ góc Roll-Pitch-Yaw.

Ta có ma trận thuần nhất của khâu cuối cùng so với trục tọa độ:

Hình 4.1: Phân tích các khâu robot để tính 𝜃 1

Hình 4.2: Phân tích các khâu robot để tính 𝜃 3

Ta có độ dài của vecto 𝑃 14 :

Xét tam giác được tạo bởi 3 khớp 2, 3, 5:

Hình 4.3: Hình tam giác được tạo bởi 3 khớp 2, 3, 5

Hình 4.4: Phân tích các khâu robot để tính 𝜃 2

Do chúng ta đã xác định được các giá trị 𝜃 1 , 𝜃 2 , 𝜃 3 nên ta tính được ma trận xoay

Ma trận Jacobi

Ma trận Jacobi thể hiện mối quan hệ giữa vận tốc của khâu tác động cuối và vận tốc của từng khớp, điều đó được thể hiện như sau:

Robot có 6 bậc tự do, do đó 𝑣 𝑒 là vector 6x1 biểu thị vận tốc và tốc độ góc của đầu công cụ, trong khi 𝑞̇ cũng là vector 6x1 thể hiện vận tốc của từng trục Ma trận Jacobi J là ma trận 6x6 của robot, được tính toán dựa trên các khớp xoay.

Trong đó: 𝑧 1 , 𝑧 2 , 𝑧 3 , 𝑧 4 , 𝑧 5 là 3 giá trị đầu tiên trong cột thứ 3 của các ma trận 1 0 𝑇, 𝑇 2 0 , 𝑇 3 0 , 𝑇 4 0 , 𝑇 5 0 Và 𝑂 1 , 𝑂 2 , 𝑂 3 , 𝑂 4 , 𝑂 5 , 𝑂 6 là 3 giá trị đầu tiên của cột 4 của các ma trận 1 0 𝑇, 𝑇 2 0 , 𝑇 3 0 , 𝑇 4 0 , 𝑇 5 0 , 𝑇 6 0

Ta có công thức sau:

Từ đó ta thu được ma trận như sau:

Sử dụng Matlab ta thu được các giá trị sau:

Trong đó 𝑠 𝑖 , 𝑐 𝑖 lần lượt là viết tắt của 𝑠𝑖𝑛(𝜃 𝑖 ), 𝑐𝑜𝑠(𝜃 𝑖 ) với 𝑖 = 1,2,3,4,5

THIẾT KẾ ĐIỆN

Thiết kế hệ thống điện cho Teach Pendant

5.1.1 Thiết kế giao diện trên màn hình HMI

Mạch chuyển USB UART CP2102 là giải pháp lý tưởng để nạp code nhúng từ máy tính vào màn hình HMI, cho phép chuyển đổi giao tiếp từ USB sang UART TTL và ngược lại Với tốc độ và độ ổn định cao, mạch này tương thích với tất cả các hệ điều hành hiện nay như Windows, Mac, Linux và Android, đảm bảo hiệu suất tối ưu trong quá trình truyền dữ liệu.

Hình 5.1: Mạch USB UART CP2102

Thông số của mạch chuyển:

- TXD: chân truyền dữ liệu UART TTL (3.3VDC), dùng kết nối đến chân nhận RX của các module sử dụng mức tín hiệu TTL 3.3~5VDC

- RXD: chân nhận dữ liệu UART TTL (3.3VDC), dùng kết nối đến chân nhận TX của các module sử dụng mức tín hiệu TTL 3.3~5VDC

- GND: chân mass hoặc nối đất

- 5V: Chân cấp nguồn 5VDC từ cổng USB, tối đa 500mA

- DTR: Chân tín hiệu DTR, thường được dùng để cấp tín hiệu Reset nạp chương trình

- 3.3V: Chân nguồn 3.3VDC (dòng cấp rất nhỏ tối đa 100mA), không sử dụng để cấp nguồn, thường chỉ sử dụng để thiết đặt mức tín hiệu Logic

Sử dụng phần mềm Nextion Editor của hãng để có thể thiết kế giao diện cho cho màn hình:

Hình 5.2: Giao diện phần mềm Nextion Editor

Để bắt đầu, chúng ta nhấn vào nút "New" để tạo một chương trình mới Tiếp theo, hãy chọn loại màn hình mà bạn đang sử dụng và thiết lập hướng màn hình theo các tùy chọn: 0 độ, 90 độ, 180 độ hoặc 270 độ.

Bên tay trái của giao diện là ToolBox, bao gồm các chức năng như Number, Button, Picture và các câu lệnh như Timer, Variable Ngay bên dưới là khu vực để tải ảnh và phông chữ mong muốn Ở giữa phía trên là khu vực thiết kế màn hình, trong khi mục Output nằm ở dưới để xuất giá trị, và Event dùng để nhập các câu lệnh tương ứng với từng chức năng trong ToolBox Bên tay phải là Page, tương tự như các Dialog trong MFC, mỗi Page đại diện cho một chức năng do người dùng thiết kế Phía dưới là nơi cài đặt các chức năng trong ToolBox như tải ảnh và kiểu dữ liệu.

Sau khi hoàn tất thiết kế, bạn có thể nhấn Debug trên thanh ToolBar để xem mô phỏng Để nhúng vào màn hình HMI, có hai phương pháp: đầu tiên, lưu vào thẻ nhớ và nạp trực tiếp vào màn hình; thứ hai, chọn lệnh Upload, sau đó chọn cổng Com mà USB UART đã kết nối, thiết lập tốc độ Baudrate mong muốn và nạp xuống HMI.

5.1.2 Sơ đồ đấu dây với màn hình HMI

Hình 5.3: Sơ đồ đấu dây với màn hình HMI

5.1.3 Sơ đồ đấu dây với mạch chuyển USB

Hình 5.4: Sơ đồ đấu dây với mạch chuyển USB

5.1.4 Sơ đồ đấu dây với nút nhấn 4 x 4, nút điều hướng và nút Start, Stop

Hình 5.5: Sơ đồ đấu dây với nút nhấn 4 x 4, nút điều hướng và nút Start, Stop

5.1.5 Sơ đồ chân STM32F103C8T6 cho Teach Pendant

Hình 5.6: Sơ đồ chân STM32F103C8T6 cho Teach Pendant

Thiết kế hệ thống điện cho tay gắp robot và băng tải

5.2.1 Cảm biến khối lượng Loadcell

Loadcell được cấu tạo bởi hai thành phần, thành phần thứ nhất là “Strain gage” và thành phần còn lại là “Load”

Strain gage là một thiết bị điện trở đặc biệt, có khả năng chuyển đổi các đại lượng vật lý như lực, khối lượng và lực căng thành tín hiệu điện đo được Khi chịu tác động của khối lượng hoặc lực, bề mặt của strain gage sẽ bị biến dạng, dẫn đến sự thay đổi trong điện trở, gây ra hiện tượng nén hoặc kéo dãn.

Hình 5.7: Sự thay đổi của điện trở khi bị kéo (nén)

Thông số kỹ thuật của cảm biến loadcell:

Thông số kỹ thuật Giá trị

Tải trọng tối đa 5kg

Giá trị điện áp đầu vào 5V

Vật liệu Nhôm Điện trở đầu vào 1066 Ω Điện trở đầu ra 1000 Ω

Bảng 5.1: Thông số kỹ thuật của loadcell

HX711 là một bộ chuyển đổi tín hiệu được thiết kế đặc biệt cho việc giao tiếp với cảm biến cầu trong ứng dụng điều khiển công nghiệp Nó xử lý tín hiệu điện yếu từ loadcell, bao gồm khuếch đại, lọc nhiễu và chuyển đổi thành tín hiệu số, giúp tín hiệu trở nên phù hợp cho vi điều khiển.

Thông số kỹ thuật của module HX71:

Thông số kỹ thuật Giá trị Điện áp hoạt động 2,7V - 5V

Tốc độ lấy mẫu 10 – 80 SPS

51 Độ phân giải 24 bit ADC Độ phân giải điện áp 40mV

Bảng 5.2: Thông số kỹ thuật HX711

Sơ đồ đấu nối bộ chuyển đổi Hx711, STM32F103C8T6 và loadcell:

Hình 5.8: Sơ đồ đấu nối Loadcell với HX711

5.2.3 Hiệu chỉnh cảm biến Loadcell

Sau khi áp dụng hệ số hiệu chỉnh, ta tiến hành đo các mức khối lượng: Trọng lượng cần đo (gam) Kết quả thu được (gam)

Trọng lượng cần đo (gam) Kết quả thu được (gam)

Bảng 5.3: Bảng giá trị đo được của loadcell Đồ thị biểu hiện khối cần đo sau khi hiệu chỉnh:

Hình 5.9: Đồ thị biểu hiện khối cần đo sau khi hiệu chỉnh

5.2.4 Sơ đồ nối dây với module HC-05

Hình 5.10: Sơ đồ nối dây với module HC-05

5.2.5 Sơ đồ nối dây với module Hx711

Hình 5.11: Sơ đồ nối dây với module Hx711

5.2.6 Sơ đồ nối dây với động cơ MG-996R

Hình 5.12: Sơ đồ nối dây với động cơ MG-996R

5.2.7 Sơ đồ nối dây với động cơ DC và relay 5V

Hình 5.13: Sơ đồ nối dây với động cơ DC và relay 5V

5.2.8 Sơ đồ nối dây với mạch hạ áp LM2596

Hình 5.14: Sơ đồ nối dây với mạch hạ áp LM2596

5.2.9 Sơ đồ chân STM32F103C8T6điều khiển tay gắp và băng tải

Hình 5.15: Sơ đồ chân STM32F103C8T6 điều khiển tay gắp và băng tải

Hệ thống điện của tủ điện

5.3.1 Các thiết bị cho tủ điện

Nguồn 90V để cấp điện cho phanh động cơ: SLG

Bộ nguồn 24V 3A của Weidmuller cung cấp điện cho các thiết bị như: Relay,

Terminal, tín hiệu Servo Driver cũng như các thiết bị I/O

Relay trung gian LY2N của Omron dùng cho phanh của động cơ Điện áp hoạt động 24V DC

Nút nhấn LA167D8 có điện áp hoạt động là 220v 1 pha loại không giữ

Nút dừng khẩn cấp LA167D8 có điện áp hoạt động là 220v 1 pha

Terminal T68-PR để chống nhiễu cho các dây tín hiệu từ Servo Driver Điện áp hoạt động: 24V

Số chân Pin: 68 chân dùng cho 2 Driver

3 Driver SGDV-1R6A01A có công suất

3 Servo Driver SGDV-R90A01A có công suất 100W cho 3 động cơ

5.3.2 Sơ đồ khối hệ thống điện

Hình 5.16: Sơ đồ khối hệ thống điện

Hệ thống điện động lực và điều khiển tổng quan bao gồm:

- Một máy tính công nghiệp (IPC): Đóng vai trò là bộ điều khiển chính của hệ thống, điều khiển phân cấp đến controller là motion card chuyên dụng PCI-N804

- Một motion card chuyên dụng PCI-N804: dùng điều khiển cả 6 trục của Robot

- Bộ khuếch đại: Gồm 6 AC Servo Driver Yaskawa điều khiển động cơ

- Động cơ: 6 động cơ AC Servo Yaskawa được gắn sẵn trên Robot với công suất phù hợp với Driver ở trên

5.3.3 Sơ đồ mạch điều khiển động lực

Hình 5.17: Sơ đồ mạch điều khiển động lực

5.3.4 Sơ đồ mạch động lực

Hình 5.18: Sơ đồ mạch động lực

THIẾT KẾ PHẦN MỀM

Thiết kế phần mềm mô phỏng cánh tay Robot công nghiệp

Phần mềm mô phỏng bao gồm:

MFC Document là công cụ để phát triển các ứng dụng trên nền tảng Windows, cho phép người dùng tạo giao diện phần mềm với các chức năng thiết kế linh hoạt thông qua ToolBox của MFC.

- OpenGL: thư viện đồ họa giúp chúng ta có thể mô phỏng cánh tay robot và các chuyển động của robot

- STL reader: sẽ đọc file STL model cánh tay Robot rồi đưa vào trong môi trường C++

- Robot Kinematic: Giải động học thuận và động học nghịch sau đó đưa vào chương trình để có thể điều khiển cánh tay robot công nghiệp

- Com Connection: giúp kết nối với các ngoại vi như Teach Pendant và Robot Gripper

- TCP/IP Connection: giúp kết nối với các ngoại vi như chương trình xử lý ảnh, máy tính nhúng

- Model 3D: được vẽ bằng Solid Work sau đó chuyển qua STL file sau đó đưa vào project

Hình 6.1: Mô hình Robot trong không gian ảo

6.1.2 Giao diện của phần mềm mô phỏng

Hình 6.2: Giao diện phần mềm

Tổng cộng có 6 tab chức năng chính, gồm:

- Program: Viết / nạp chương trình điều khiển robot

- Gripper: Điều khiển tay gắp

- Position: Hiển thị vị trí đầu công tác và điều khiển từng trục robot

- TCP/IP: Kết nối với máy tính nhúng và chương trình xử lý ảnh

- Com Serial: Kết nối với Teach Pendant và tay gắp

- Home: sau khi bấm nút này robot được chọn sẽ trở về vị trí Home mà lập trình viên cài đặt

- Servo On: Bật Servo để có thể điều khiển được Robot

- Chart : Nhấn nút này sẽ xuất hiện một đồ thị thể hiện vị trí góc của từng trục của Robot

Trong mục Multi Axis Move: điều khiển đầu Tool đi theo 3 phương X, Y, Z so với tọa độ gốc của Robot được chọn

Trong mục Single Axis Move: Chúng ta sẽ điều khiển được từng trục của Robot được chọn Các nút J1, J2, ,J6 tượng trưng cho 6 trục của robot

Trong mục Robot: hiển thị trạng thái như Gắp hộp ( Pick Box), Thả hộp ( Release

Box) và Chạy/ Dừng băng chuyền ( Conveyor)

Trong mục Signal: Ở đây thể hiện trạng thái của Robot như:

- Servo bật thì đèn sẽ báo màu xanh, Servo tắt thì đèn sẽ báo màu xám

- Robot chuyển động thì đèn Imotion sẽ báo màu xanh, không chuyển động thì đèn sẽ báo màu xám

-Robot đang ở vị trí Home thì đèn Home sẽ báo màu xanh, nếu không thì sẽ báo màu xám

Trong mục Hệ thống, có một ô hiển thị thông tin hoạt động của hệ thống, cùng với nút nhấn Pick Box để kích hoạt tay gắp vật thủ công và nút Conveyor Run để khởi động băng tải.

Trong mục Zoom, người dùng có thể điều chỉnh độ gần xa trong không gian 3D của hệ thống Để sử dụng, trước tiên hãy nhấn nút Servo On để kích hoạt các động cơ robot, sau đó chọn các nút chức năng khác theo nhu cầu của người điều khiển.

Hình 6.4: Chọn chế độ chạy

Bấm vào ComboBox có chữ Home gồm có 2 câu lệnh:

- Home: câu lệnh đưa robot về vị trí Home mà người lập trình cài đặt

MoveP là lệnh dùng để di chuyển đầu Tool từ vị trí này đến vị trí khác, điều khiển các động cơ robot tới các điểm đã được tính toán trước Lệnh này đảm bảo rằng robot di chuyển với vận tốc tối đa và gia tốc đã được xác định, giúp tối ưu hóa quá trình di chuyển.

Hình 6.6: Chọn các chế độ khác

Bấm vô ComboBox có chứa chữ Conveyor Run chúng ta sẽ có 4 câu lệnh sau:

- Conveyor Run: bật băng tải chạy

- Conveyor Stop: dừng bang tải chạy

- Pick: Robot sẽ gắp vật

Robot sẽ thả vật ra, và bên phải là List Box TreeControl, nơi hiển thị các câu lệnh mà người sử dụng chọn qua các ComboBox Giao diện sẽ được trình bày dưới dạng cây, giúp người dùng dễ dàng nhận biết và hiểu rõ hơn.

Sau khi chọn kiểu di chuyển MoveP hoặc MoveL, người dùng cần di chuyển Robot đến vị trí mong muốn trong Tab Control Sau đó, nhấn vào câu lệnh tương ứng và chọn nút Save Point để lưu tọa độ của đầu Tool.

Để chỉnh sửa câu lệnh trong List Box, chúng ta chỉ cần Double Click vào vị trí cần sửa, nhập câu lệnh mới và nhấn nút Edit để cập nhật Tương tự, để thay đổi tọa độ của các Point, hãy Double Click vào Point cần sửa, chuyển đến tab Move Robot, di chuyển đến tọa độ mong muốn và nhấn Edit để hoàn tất việc sửa đổi tọa độ.

- Delete: Click chuột vào câu lệnh muốn xóa trong List Box sau đó bấm Delete thì nó sẽ xóa câu lệnh đó và những câu lệnh dưới nó

- Run: sau khi bấm nút này thì chương trình sẽ đọc các câu lệnh trong List Box sau đó bắt đầu chạy theo các câu lệnh đó

- Stop: là để dừng chương trình lại

Nếu chương trình chạy thì đèn báo Run Program sẽ sang lên còn nếu chương trình dừng lại thì đèn Stop sẽ sáng lên

Nút dừng khẩn cấp là chức năng quan trọng giúp Robot dừng ngay lập tức khi bấm nút Khi nút này được nhấn, Servo sẽ tắt và Robot sẽ ngừng hoạt động Để khởi động lại Robot, người dùng cần nhả nút dừng khẩn cấp và bật lại Servo.

Bên cạnh ô Program ta nhập số lần lặp lại của chương trình Bên canh ô V ta nhập vận tốc tối đa của các trục động cơ

Hình 6.7: Ô nhập số lần lặp lại của chương trình và vận tốc tối đa của động cơ

Khi chúng ta nhấp đúp vào điểm trong chương trình, nó sẽ hiển thị tọa độ vị trí, hướng của đầu công cụ tại điểm đó, cùng với tốc độ di chuyển cần thiết để đến vị trí mong muốn.

Hình 6.8 thể hiện tọa độ vị trí cần di chuyển đến một điểm cụ thể Đồ thị vận tốc của động cơ từng khâu được trình bày ở dưới cùng theo thời gian, với trục tung đơn vị được đo bằng độ.

Đồ thị lực kẹp của tay gắp được hiển thị ở phía trên cùng của tab, với trục tung biểu thị lực kẹp (đơn vị: Newton) và trục hoành biểu thị thời gian (đơn vị: giây).

- Hiển thị vị trí của vật thể ở các ô X, Y, Z, RX, RY, RZ

- Ô Force hiển thị giá trị lực kẹp

- Nút nhấn Set Force để cài đặt giá trị lực kẹp cho tay gắp, phía dưới là ô để nhập giá trị lực mong muốn

- Ô (1): hiện thị các thông tin trạng thái của tay gắp

- Ô (2): hiển thị các tùy chọn như chọn thiết bị kết nối Bluetooth, hiển thị giá trị lực đã cài đặt

- Nút Bluetooth On: bật Bluetooth trên máy tính

- Nút Select: chọn thiết bị kết nối trong danh sách được hiển thị ở ô (2)

- Nút Run: chạy chương trình gắp, đặt vật tự động

- Nút Read/Write: bật chức năng truyền nhận dữ liệu từ máy tính tới tay gắp

- Nút Conveyor: kích thủ công cho băng tải và thanh chắn

- Nút Release: kích thủ công cho tay gắp thả vật

- Nút Servo On: bật động cơ của tay gắp

- Nút Clear: xóa nội dung đang hiển thị trong ô (1) và (2)

- Nút Reset: reset lại vi điều khiển của tay gắp

Trong mục Tool Position: hiển thị vị trí của đầu công tác

Trong mục Tool Position: Thể hiện tọa độ vị trí và hướng của đầu Tool theo Roll

Pitch Yall Các ô màu trắng bên cạnh cho phép người dùng nhập giá trị vị trí vào để giải động học nghịch

- Nút Lock Move: khóa chuyển động thực tế của robot để kéo các thanh vị trí các khâu ở dưới cho robot mô phỏng

- Nút Inverse: giải động học nghịch tại 1 vị trí được nhập vào ở trên để xem xét tư thế robot tại điểm đó

- Ô bên cạnh để hiển thị trạng thái nút nhấn Lock Move và kết quả nghiệm các khâu khi ấn nút Inverse

Sáu thanh kéo bên dưới được thiết kế để điều khiển nhanh vị trí của các trục động cơ Độ dài của các thanh này được giới hạn theo góc xoay tối đa của từng động cơ, dựa trên dữ liệu từ nhà sản xuất.

Tab này cho phép kết nối với máy tính nhúng và phần mềm xử lý ảnh, đồng thời hỗ trợ điều khiển robot trực tiếp sau khi thiết lập kết nối với chương trình trên máy tính nhúng.

- Ô (1): Hiển thị địa chỉ IP thiết bị kết nối

- Ô (2): Hiển thị dữ liệu nhận được từ Server

- Ô (3): Hiển thị dữ liệu gửi tới Client

- Ô (4): Hiển thị dữ liệu nhận được từ chương trình xử lý ảnh

- Ô (5): Hiển thị Port đang kết nối

- Ô (6): Hiển thị trạng thái kết nối với máy tính nhúng

- Nút Recieve Data: kết nối nhận dữ liệu từ máy tính nhúng

- Nút Servo On: bật động cơ Servo của Robot thông qua máy tính nhúng

- Nút Embedded Computer: kết nối truyền dữ liệu tới máy tính nhúng

- Nút Run Jog: điều khiển từng trục của Robot thông qua máy tính nhúng

- Nút Send Program: gửi chương trình qua máy tính nhúng

- Nút Run Program: chạy chương trình đã gửi

- Nút Home: gửi tín hiệu về Home cho robot thông qua máy tính nhúng

- Nút Emergency Stop: gửi tín hiệu dừng khẩn cấp cho robot qua máy tính nhúng

- Ô (7): hiển thị trạng thái kết nối với chương trình xử lý ảnh

- Nút Image Processing: kết nối với chương trình xử lý ảnh

- Nút Clear Data: xóa thông tin hiển thị trong mục Data

Tab này cho phép kết nối thông qua cổng Com để truyền nhận thông tin theo giao thức UART, giúp liên kết phần mềm với các thiết bị như Teach Pendant và tay gắp robot.

- Ô Com Port: chọn cổng Com để kết nối

- Ô Baud Rate: chọn tốc độ truyền nhận tín hiệu 4800, 9600, 115200,…

- Ô Data Bits: chọn độ dài của data là 5, 6, 7, 8 bit

- Ô Parity: chọn kiểu Parity là None, Even, Odd

- Ô Stop Bit: chọn Stop Bit 1 hay 2 bit

- Ô Status (1): hiển thị trạng thái kết nối

- Ô Read Information (3): hiển thị dữ liệu truyền nhận

- Nút Connect: kết nối thiết bị qua cổng Com đã thiết lập

- Nút Deleta Info: xóa dữ liệu hiển thị trong mục Display

- Nút Write: truyền dữ liệu từ máy tính qua thiết bị đã kết nối

- Nút Read: nhận dữ liệu từ thiết bị đã kết nối

- Đèn báo trạng thái Com Connection: đèn xanh khi đã kết nối, màu xám khi không kết nối

- Đèn báo trạng thái Reading Info: đèn xanh khi đang nhận dữ liệu từ thiết bị đã kết nối, đèn xám khi không nhận được dữ liệu

- Đèn báo trạng thái In Motion: đèn xanh khi robot đang chuyển động, đèn xám khi robot đứng yên

- Nút Clear: xóa dữ liệu hiển thị trong ô dữ liệu truyền nhận,

- Ô Write Information (3): hiển thị dữ liệu gửi từ máy tính tới thiết bị kết nối

Bài viết này trình bày các giải thuật và lưu đồ liên quan đến chức năng của phần mềm mô phỏng cánh tay Robot, bao gồm cách tạo không gian 3D ảo, vẽ mô hình trong không gian đó, các câu lệnh điều khiển trong phần mềm, và các nút chức năng có trong giao diện.

6.1.3.1 Lưu đồ nút Single Axis Move

Thiết kế phần mềm điều khiển Robot trên máy tính nhúng

TCP/IP (Giao thức điều khiển truyền nhận/Giao thức liên mạng) là bộ giao thức quan trọng cho việc truyền tải và kết nối thiết bị trong mạng Internet Được phát triển nhằm nâng cao độ tin cậy của mạng, TCP/IP còn có khả năng phục hồi tự động, đảm bảo thông tin được trao đổi một cách hiệu quả và ổn định.

TCP/IP là sự kết hợp của hai giao thức chính: IP (Giao thức liên mạng) và TCP (Giao thức truyền vận) Giao thức IP đảm bảo rằng các gói tin được gửi đến đúng địa chỉ đã định bằng cách thêm thông tin dẫn đường, trong khi giao thức TCP kiểm tra và đảm bảo an toàn cho mỗi gói tin khi di chuyển qua các trạm Nếu TCP phát hiện gói tin bị lỗi, nó sẽ gửi tín hiệu yêu cầu hệ thống gửi lại gói tin khác Sự hoạt động này sẽ được làm rõ hơn qua chức năng của từng tầng trong mô hình TCP/IP.

Mô hình TCP/IP tiêu chuẩn được cấu thành từ 4 lớp chồng lên nhau, bắt đầu từ Tầng vật lý (Physical) ở mức thấp nhất, tiếp theo là Tầng mạng (Network), sau đó là Tầng giao vận (Transport), và cuối cùng là Tầng ứng dụng (Application).

Hình 6.12: Mô hình TCP/IP

6.2.2 Giao diện phần mềm điều khiển robot trên máy tính nhúng

- Giao tiếp với phần mềm mô phỏng qua TCP/IP

- Bật tắt động cơ servo

- Chọn chế độ chạy từng trục (Run Jog) hoặc chế độ chạy chương trình có sẵn (Run Program)

- Điều khiển Robot thông qua thư viện C++ của Motion Control Card của hãng AJINEXTEK

Hình 6.13: Giao diện phần mềm điều khiển robot trên máy tính nhúng

Hình 6.14: Motion Control Card của hãng AJINEXTEK

GIẢI THUẬT XỬ LÝ ẢNH NHẬN DIỆN VẬT

Mạng nơ-tron tích chập Deep Object Pose Estimation

Deep Object Pose Estimation là một mô hình mạng thần kinh sâu có khả năng dự đoán tư thế 3D của các đối tượng quen thuộc trong môi trường lộn xộn từ hình ảnh RGB Mô hình này được huấn luyện trên cả bộ dữ liệu mô phỏng và thực tế, giúp cải thiện độ chính xác trong việc nhận diện và phân tích tư thế của các đối tượng.

Thuật toán gồm hai bước để giải quyết vấn đề là phát hiện và ước tính tư thế 6- DoF của các vật thể đã biết từ hình ảnh RGB:

- Đầu tiên, một mạng lưới thần kinh sâu ước tính các điểm chính 2D của tất cả các đối tượng trong hệ tọa độ hình ảnh

- Sau đó các điểm này được cung cấp cho thuật PnP để ước tính tư thế 6-DoF của từng cá thể đối tượng

Trong bài viết này, tác giả áp dụng các vật thể đã được huấn luyện trước để xác định vị trí và hướng của chúng, từ đó tiến hành ảo hóa nhằm hỗ trợ trong việc lập kế hoạch quỹ đạo gắp vật.

VGGNet là một kiến trúc mạng học sâu đơn giản nhưng hiệu quả, với các lớp tích chập xếp chồng lên nhau Khi ảnh đầu vào đi qua mạng, độ phân giải sẽ giảm và chiều sâu sẽ tăng, giúp mạng học được cả các đặc trưng nông lẫn sâu của ảnh Đặc biệt, VGGNet sử dụng bộ lọc 3 x 3 trong các lớp tích chập, tạo ra khả năng nhận diện hình ảnh mạnh mẽ.

Hình 7.1: Cấu trúc mạng VGG-19

VGG-19 là một mạng nơ-ron sâu với 16 lớp tích chập được tổ chức thành 5 khối Mỗi khối được theo sau bởi một lớp Maxpool, giúp giảm kích thước hình ảnh đầu vào xuống một nửa và tăng gấp đôi số lượng bộ lọc trong các lớp tích chập Ba lớp dày đặc cuối cùng trong khối 6 có kích thước là 4096.

4096 và 1000 tương ứng VGG phân loại hình ảnh đầu vào thành 1000 loại khác nhau

Vì có hai lớp đầu ra trong nghiên cứu này nên kích thước của fc8 được đặt thành hai

Mô hình VGG19 là một mạng nơ-ron sâu quan trọng trong thị giác máy tính, được phát triển bởi nhóm nghiên cứu VGG tại Đại học Oxford.

Mô hình VGG19 bao gồm 19 tầng, trong đó có 16 tầng tích chập và 3 tầng kết nối đầy đủ Các tầng tích chập giúp học các đặc trưng của hình ảnh, trong khi các tầng kết nối đầy đủ thực hiện phân loại hình ảnh vào các lớp khác nhau.

VGG19 là một mô hình nổi bật trong lĩnh vực nhận dạng hình ảnh, được sử dụng rộng rãi để trích xuất đặc trưng cho nhiều nhiệm vụ khác nhau như phân loại hình ảnh, nhận dạng vật thể, nhận dạng khuôn mặt và nhận dạng chữ viết tay.

7.1.2 Cấu trúc mạng Deep Object Pose Estimation (DOPE)

Mạng feedforward nhận đầu vào là hình ảnh RGB có kích thước 640 × 480 × 3, với chín điểm dự đoán, bao gồm tám đỉnh của các hộp giới hạn 3D và một điểm trọng tâm Mỗi đỉnh được kết nối với trọng tâm bằng tám trường vectơ chỉ hướng, giúp phát hiện nhiều tư thế của cùng một loại đối tượng.

Mạng hoạt động theo từng giai đoạn, mỗi giai đoạn không chỉ xem xét các đặc điểm hình ảnh mà còn sử dụng kết quả từ giai đoạn trước Các giai đoạn đều là tích chập, giúp tăng hiệu quả khi dữ liệu truyền qua mạng Mười lớp đầu tiên từ VGG-19, đã được huấn luyện trên ImageNet, tính toán các đặc điểm hình ảnh, sau đó là hai lớp tích chập 3 × 3 để giảm kích thước đặc điểm từ 512 xuống 256 và từ 256 xuống 128 Các đặc điểm 128 chiều này được cung cấp cho giai đoạn đầu tiên, bao gồm ba lớp 3 × 3 × 128 và một lớp.

1 × 1 × 512, tiếp theo là lớp 1 × 1 × 9 (belief maps) hoặc lớp 1 × 1 × 16 (vector fields) Năm giai đoạn còn lại giống với giai đoạn đầu tiên, ngoại trừ việc chúng nhận đầu vào

Mô hình có tổng cộng 153 chiều, bao gồm năm lớp kích thước 7 × 7 × 128 và một lớp kích thước 1 × 1 × 128, trước lớp 1 × 1 × 9 hoặc 1 × 1 × 16 Tất cả các giai đoạn đều có kích thước chiều rộng (w) và chiều cao (h) là 8, với các hàm kích hoạt ReLU được xen kẽ xuyên suốt.

Sau khi mạng xử lý hình ảnh, cần trích xuất các đối tượng từ bản đồ niềm tin DOPE sẽ tìm kiếm các đỉnh của vật thể trong các bản đồ này và sử dụng thuật toán để liên kết các đỉnh đã chiếu với các trọng tâm được phát hiện Đối với mỗi đỉnh, quá trình tiếp theo sẽ so sánh trường vectơ tại đỉnh với hướng từ đỉnh đến từng trọng tâm, từ đó gán đỉnh cho trọng tâm gần nhất trong một ngưỡng góc nhất định của vectơ.

Khi các đỉnh của đối tượng được xác định, thuật toán PnP sẽ được áp dụng để xác định tư thế của đối tượng Bước này sử dụng các đỉnh đã được chiếu từ hộp giới hạn, kết hợp với thông số nội của máy ảnh và kích thước đã biết của đối tượng để tính toán ma trận xoay của đối tượng so với máy ảnh.

Phát hiện đối tượng 3D yêu cầu dữ liệu gắn nhãn phức tạp hơn so với 2D, khiến việc tạo dữ liệu đào tạo trở nên khó khăn Mặc dù có thể sử dụng công cụ gán nhãn bán tự động như LabelFusion, nhưng thời gian gắn nhãn vẫn là một rào cản lớn Để khắc phục, mô hình đã được huấn luyện trên dữ liệu tổng hợp, kết hợp giữa dữ liệu vật thể ảo thông qua Domain Randomization (DR) và dữ liệu ảnh thực Sự kết hợp này giúp tối ưu hóa hiệu suất, mang lại kết quả tốt hơn so với việc sử dụng từng loại dữ liệu riêng lẻ Dữ liệu tổng hợp cũng giúp giảm nguy cơ overfitting, tạo ra một mạng nơron mạnh mẽ có khả năng hoạt động hiệu quả trong nhiều điều kiện ánh sáng và môi trường khác nhau.

7.1.3.1 Dữ liệu vật thể ảo Domain randomization (DR)

Các hình ảnh được tạo ra từ môi trường ảo chứa nhiều đối tượng phân tán trên nền ngẫu nhiên Quá trình này bao gồm việc thay đổi ngẫu nhiên các yếu tố như số lượng và loại đối tượng, chất liệu của vật thể, nền, độ nghiêng và ánh sáng Các đối tượng phân tán được chọn từ một tập hợp mô hình 3D đa dạng, với các chất liệu như màu sắc đồng nhất hoặc sọc ngang, cùng với nền màu đơn giản để tạo ra hiệu ứng hình ảnh phong phú.

Trong nghiên cứu này, chúng tôi sử dụng 77 hình ảnh được chọn từ một tập con gồm 10.000 ảnh trong bộ dữ liệu COCO, cùng với hình ảnh nền được tạo ra tự động bằng mô hình mạng lưới đa màu sắc ngẫu nhiên Các vật thể và đối tượng phân tán được lấy theo phân phối đều với độ nghiêng 3D, kết hợp với các đèn chiếu sáng có hướng ngẫu nhiên, màu sắc và độ sáng khác nhau, nhằm tối ưu hóa độ hiển thị của các đối tượng này.

Hình 7.2: Dữ liệu ảo Domain randomization

7.1.3.1 Dữ liệu vật thể thực

Ảo hóa vật thể

7.2.1 Đo khoảng cách bằng Camera Zed

7.2.1.1 Nguyên lý hoạt động của Camera Zed

Camera Zed là thiết bị chuyên dụng để thu ảnh và phim 3D, hoạt động dựa trên nguyên lý của camera stereo Với hai ống kính được lắp đặt song song, camera này cho phép ghi lại hai hình ảnh khác nhau, từ đó tạo ra hiệu ứng 3D chân thực.

Mode Chế độ Tốc độ khung hình Độ phân giải

VGA 15, 30,60, 100 672×376 Đo độ sâu Khoảng cách đo

Bảng 7.1: Thông số camera Zed

Hai tấm ảnh sẽ ghi lại các chi tiết thông qua hai ống kính của camera đồng thời Tại thời điểm này, tọa độ của điểm ảnh trên hai tấm ảnh sẽ có một độ lệch nhất định, được gọi là ∆𝑥.

Bảng 7.2: Nguyên lý đo khoảng cách của Camera Zed (1)

∆𝑥 = 𝑥𝑖 𝑙 − 𝑥𝑖 𝑟 Khoảng cách từ điểm L trên vật đến camera sẽ được tính:

Từ các tọa độ của điểm A trên hai bức ảnh trái và phải, chúng ta có thể tính toán khoảng cách từ camera đến điểm A, được gọi là độ sâu của điểm ảnh, ký hiệu là z.

Bảng 7.3: Nguyên lý đo khoảng cách của Camera Zed (2)

7.2.1.2 Đo khoảng cách tới tâm vật thể

Mô hình DOPE dự đoán vị trí và hướng của vật thể, sau đó cung cấp các giá trị tâm vật thể dưới dạng tọa độ điểm ảnh (x, y) cùng với các góc Euler.

Dựa vào giá trị tọa độ (x, y) của tâm vật, chúng ta có thể xác định khoảng cách từ điểm chính giữa mặt trước của vật đến camera Trong trường hợp này, chúng ta sẽ phân chia thành hai trường hợp khác nhau.

Trường hợp vật thẳng đứng:

Do tất cả vật thể đều có đường kính 𝑑 = 66 mm, nên khoảng cách từ tâm vật tới camera sẽ được tính:

Trường hợp vật nằm ngang:

Bảng 7.4: Tính khoảng cách tới tâm vật nằm ngang

Khi vật nằm ngang, trục x của tọa độ vật thể tạo với trục x của tọa độ robot 1 góc

Sau khi nhận diện được vật, độ dài đoạn AE là khoảng cách Camera Zed đo được tới vật

BA là bán kinh vật nên 𝐵𝐴 = 33 (𝑚𝑚)

Xét tam giác ABC: cos(𝜔) =𝐵𝐶

Hệ trục tọa độ camera Zed:

Bảng 7.5:Hệ trục tọa độ của camera Zed

Hệ trục tọa độ của vật thể:

Bảng 7.6: Hệ trục tọa độ của vật thể

Hệ trục tọa độ của hệ thống:

Bảng 7.7: Hệ trục tọa độ của hệ thống

Ma trận thông số nội của Camera:

Ma trận thông số ngoại:

Công thực tổng quát biến đổi về trục tọa độ robot:

]: tọa độ vật toàn cục

7.2.3 Calibration ma trận nội Để calib lấy thông số ma trận nội của camera Zed ta sử dụng tool Zed Calibration

Bảng 7.8: Calib thông số nội của Camera Zed

Ma trận thông số nội của Camera Zed ở chế độ VGA 672 x 376:

Do không xác định được vị trí của gốc tọa độ camera trong hệ tọa độ tay máy, việc đo khoảng cách từ tay máy đến camera sẽ không chính xác Vì vậy, nghiên cứu sử dụng các vị trí trung gian đã biết tọa độ trong cả hai hệ tọa độ để xác định các ma trận chuyển Tổng quát, để chuyển một điểm từ hệ tọa độ này sang hệ tọa độ khác, cần tìm ma trận chuyển M.

𝑃 𝑅 : là tọa độ điểm trung gian đã biết trước trong hệ tọa độ Robot

𝑃 𝐶 : là tọa độ điểm trung gian đã biết trước trong hệ tọa độ Camera

Ta thấy M có tới 12 ẩn cần tìm, vì thế cần 12 phương trình độc lập để giải M Do đó số điểm trung gian tối thiểu cần xác định là 4 điểm

Sử dụng Teach Pendant để điều chỉnh tay gắp gắp tại vị trí trung tâm của vật, sau đó di chuyển đến các vị trí ngẫu nhiên Mô hình DOPE sẽ nhận diện và trả về tọa độ ảnh (x, y) cùng với khoảng cách z đo được.

Bảng 7.9: Nhận diện tâm vật thể trên tay gắp lấy tọa độ để calib

Bảng 7.10:Kết quả trả về từ chương trình xử lý ảnh

Hệ phương trình khi thay vào các tọa độ:

Hệ phương trình trên là một hệ tuyến tính bình thường nên có thể chuyển thành dạng ma trận để thuận tiện tính toán:

Vậy M có thể được tìm qua các giá trị của vector K:

Sau khi calib, ta được :

7.2.4 Giao diện xử lý ảnh

Bảng 7.11: Giao diện xử lý ảnh

- Sử dụng TCP/IP truyền video RGB qua máy ảo để mô hình dự đoán tư thế vật thể

- Tính toán vị trí và hướng của vật thể trong tọa độ robot

- Trả về sai số góc Euler so với vị trí ban đầu

- Truyền các giá trị vị trí và hướng qua giao diện mô phỏng chính bằng TCP/IP

THỰC NGHIỆM

Mô hình thực tế và giao diện chương trình

- Kích thước ( dài x rộng x cao): 171 x 150 x 65 mm

- Độ mở tối ta: 76 mm

- Độ mở tối thiểu: 48 mm

- Điện áp hoạt động: 6VDC

Hình 8.1: Mô hình cấu tạo thực tế của tay gắp

Hình 8.2: Mô hình thực tế ở góc nghiêng của tay gắp

Hình 8.3: Mô hình thực tế mặt dưới của tay gắp

Hình 8.4: Mô hình thực tế mặt trên của tay gắp

Mô hình Teach Pendant gồm có:

- Màn hình HMI cảm ứng để lựa chọn chế độ

- Nút On/Off ( màu xanh) và dừng khẩn cấp (màu đỏ)

- Keypad 4x4 để nhập các giá trị mong muốn

- Cổng Micro Usb để giao tiếp với máy tính qua cáp Micro Usb to Usb

Hình 8.5: Mô hình thực tế Teach Pendant

8.1.3 Giao diện chương trình mô phỏng

8.1.3.1 Tab Control và Tab Position:

- Không gian mô phỏng 3D trực quan

- Có thể quan 360 độ trong không gian

- Có thể Zoom theo tùy ý người điều khiển

- Di chuyển theo từng trục

- Di chuyển theo hướng của trục tọa độ gốc X, Y, Z của robot

- Hiển thị các giá trị vị trí của đầu tool

- Hiển thị giá trị góc của từng trục động cơ

Hình 8.6: Giao diện Tab Control và Tab Position

8.1.3.2 Tab Program và Tab TCP/IP

- Lập trình di chuyển, gắp thả vật, vẽ qua các câu lệnh như: MovePoint, Pick, Release, Home…

- Hiển bị đồ thị vận tốc theo thời gian

- Kết nối TCP/IP với máy tính nhúng và chương trình xử lý ảnh

- Điều khiển Jog và chạy chương trình Robot thật qua máy tính nhúng

Hình 8.7: Giao diện Tab Program và Tab TCP/IP

8.1.3.3 Tab Gripper và Com Serial

- Kết nối với tay gắp qua Bluetooth

- Kiểm soát và cài đặt lực gắp

- Hiển thị vị trí của vật thể cần gắp

- Hiển thị vị trí của tay gắp

- Kết nối và truyền nhận dữ liệu với Teach pendant và các ngoại vi khác qua cổng Com

Hình 8.8: Giao diện Tab Gripper và Com Serial

8.1.4 Giao diện chương trình xử lý ảnh

Gồm các chức năng chính:

- Kết nối truyền nhận dữ liệu với mô hình DOPE và chương trình giao diện chính qua TCP/IP

- Đo độ sâu các vật thể cần gắp

- Chuyển tạo độ của vật thể về tọa độ robot

- Hiển thị giá trị lệch của các góc Euler so với giá trị gốc

Hình 8.9: Giao diện chương trình xử lý ảnh

8.1.5.1 Giao diện khi khởi động

Hình 8.10: Giao diện khởi động

8.1.5.2 Giao diện chọn chức năng

Gồm 4 nút chức năng chính:

- Single Axis: Điều khiển từng trục (Jog)

- Multi Axis: Điều khiển phối hợp nhiều trục

- Initial: Các tùy chọn chức năng khác

- TCP/IP: Kết nối TCP/IP với máy tính nhúng

Hình 8.11: Giao diện lựa chọn chế độ điều khiển

8.1.5.3 Giao diện điều khiển từng trục

Gồm 6 nút tương ứng với sáu trục Bên cạnh đó là ô giá trị góc được tính bằng độ của các trục

Sau khi nhấn chọn trục để điều khiển, nhấn 4 nút điều hướng để di chuyển robot

Hình 8.12: Giao diện điều khiển từng trục

8.1.5.4 Giao diện điều khiển phối hợp nhiều trục

Gồm 3 nút tương ứng với 3 trục di chuyển là X, Y và Z của gốc tọa độ robot Bên cạnh đó là ô giá trị độ dài X, Y Z được tính bằng milimet

Sau khi nhấn chọn trục di chuyển để điều khiển, nhấn 4 nút điều hướng để di chuyển robot

Hình 8.13: Giao diện điều khiển phối hợp nhiều trục

8.1.5.5 Giao diện các chức năng khác

- Home: Trở về vị trí Home của robot

- Servo: Bật tắt servo thanh gạt băng tải

- Chart: Hiển thị biểu đồ

Hình 8.14: Giao diện các chức năng khác

8.1.5.6 Giao diện kết nối TCP/IP

- Start: Nút khởi động Server TCP/IP

- Servo: Nút bật tắt Servo robot

- Clear: Nút xóa dữ liệu

- Jog: Nút chọn chế độ điều khiển Jog

- Program: Nút chọn chế độ chạy chương trình

Hình 8.15: Giao diện kết nối TCP/IP

8.1.6 Giao diện điều khiển robot trên máy tính nhúng

- Kết nối TCP/IP cho phép truyền nhận dữ liệu và điều khiển robot bởi máy tính khác

- Bật tắt động cơ Servo

- Cài đặt vận tốc, gia tốc động cơ

- Các chế độ khác như: về vị trí Home, chạy điều khiển từng trục, chạy chương trình đã được hoạch định sẵn

Hình 8.16: Giao diện điều khiển robot trên máy tính nhúng

Đánh giá hiệu suất mô hình DOPE

- Cấu hình Card đồ họa: NVIDIA GeForce MX250 2 GB

- CPU: i51035G11.00 GHz Điều kiện ánh sáng: ánh sáng trong xưởng, ảnh hưởng bởi ánh sáng môi trường bên ngoài

8.2.1 Hiệu suất dự đoán khung 1 vật thể với các stage tăng từ 1 đến 6

Thời gian xử lý (ms)

Số điểm dự đoán được ( trên tổng số

Hình 8.17: Kết quả dự đoán khung 1 vật thể

8.2.2 Hiệu suất dự đoán khung nhiều vật thể với các stage tăng từ 1 đến 6

Thời gian xử lý trung bình

Số điểm dự đoán được ( theo thứ tự từ trái sang phải)

Hình 8.18: Kết quả dự đoán khung nhiều vật thể

Tốc độ nhận diện vật thể còn chậm do cấu hình máy tính chưa đủ mạnh

Mô hình ở stage 1 và 2 có tốc độ nhận diện nhanh (205-214 ms), nhưng vẫn gặp khó khăn trong việc nhận diện một số vật thể, dẫn đến độ chính xác chưa cao Khi chuyển sang stage 3, độ chính xác tăng lên, với khả năng nhận diện 7/9 và 8/9 điểm, nhưng thời gian nhận diện lại chậm hơn, khoảng 522 ms Nếu nâng cấp lên stage 4, tất cả các vật thể đều được nhận diện chính xác ở 9 góc, tuy nhiên thời gian trung bình để nhận diện mỗi vật thể là 686 ms.

Do độ chính xác ở Stage 4 tương đương với ở stage 5 và 6 nhưng có tốc độ nhận diện nhanh hơn, nên ta chọn số stage để hoạt động là 4.

Sai số góc Euler dự đoán từ mô hình DOPE

Đánh giá sai số các góc Euler mô hình dự đoán được sử dụng để gắp vật khi vật nằm ngang

Thiết bị sử dụng cho thực nghiệm:

- Module GY-521 6DOF IMU MPU6050 được gá trên gá in 3D

- 1 vật thể đã được huấn luyện

Hình 8.19: Module GY-521 6DOF IMU MPU6050

Giá trị góc thực tế của lon cà chua được xác định bằng cách sử dụng cảm biến MPU6050, được đặt ở giữa vật thể Arduino Uno sẽ được sử dụng để đo lường độ lệch góc giữa vị trí hiện tại và vị trí ban đầu của lon cà chua.

Giá trị dự đoán từ mô hình DOPE được tính toán thông qua giao diện sai lệch giữa giá trị hiện tại mà mô hình trả về và giá trị gốc đã biết, sau đó lưu trữ vào biến Delta.

Bước 1: Chọn nút Set origin coordinate trên giao diện xử lý ảnh để lưu lại giá trị hiện tại và coi như đó là giá trị gốc

Hình 8.21: Giao diện xử lý ảnh

Bước 2: Ấn 1 nút bất kì trong Monitor của Arduino để bắt đầu calib MPU và lấy về các giá trị góc Euler:

Bước 3: Đưa vật tới vị trí bất kì và so sánh các giá trị Delta từ giao diện và monitor arduino Sau đây là 1 số trường hợp:

Trường hợp 1: vật thẳng đứng, xoay vật theo trục Z 1 góc bất kì

Hình 8.23: Đo sai số góc Euler cho trường hợp vật thẳng đứng

Giá trị độ lệch dự đoán:

Giá trị độ lệch từ MPU6050:

Trường hợp 2: vật nằm nghiêng

Hình 8.24: Đo sai số góc Euler cho trường hợp vật nằm nghiêng

Giá trị độ lệch dự đoán:

𝐷𝑒𝑙𝑡𝑎 𝑋 = 22 0 , 𝐷𝑒𝑙𝑡𝑎 𝑌 = 13 0 , 𝐷𝑒𝑙𝑡𝑎 𝑍 = 49 0 Giá trị độ lệch từ MPU6050:

Trường hợp 3: vật nằm ngang

Hình 8.25: Đo sai số góc Euler cho trường hợp vật nằm ngang

Giá trị độ lệch dự đoán:

𝐷𝑒𝑙𝑡𝑎 𝑋 = 43 0 , 𝐷𝑒𝑙𝑡𝑎 𝑌 = 5, 𝐷𝑒𝑙𝑡𝑎 𝑍 = 88 0 Giá trị độ lệch từ MPU6050:

𝐷𝑒𝑙𝑡𝑎 𝑋 ≈ 39 0 , 𝐷𝑒𝑙𝑡𝑎 𝑌 ≈ 10 0 , 𝐷𝑒𝑙𝑡𝑎 𝑍 ≈ 89 0 Thực hiện đo 33 lần, ta thu được các giá trị dưới dây

8.3.2 Sai số góc Alpha Đồ thị sai số góc Alpha:

Hình 8.26: Đồ thị sai số góc Alpha dự đoán so với thực tế

Giá trị sai số góc Alpha: 3,6 ± 1,56 0

8.3.3 Sai số góc Beta Đồ thị sai số góc Beta:

Hình 8.27: Đồ thị sai số góc Beta dự đoán so với thực tế

Giá trị sai số góc Beta: 2,6 ± 1,84 0

8.3.4 Sai số góc Gama Đồ thị sai số góc Gama:

Hình 8.28: Đồ thị sai số góc Gaa dự đoán so với thực tế

Giá trị sai số góc Gama: 1,3 ± 1 0

Góc Euler dự đoán của mô hình Dope có độ chính xác cao, sai số từ 1,3 0 − 3,6 0

Tay gắp có khả năng mở tối đa 76 mm, lớn hơn 10 mm so với đường kính vật 66 mm, đảm bảo rằng sai số góc dự đoán của mô hình đủ để robot thực hiện gắp khi vật nằm ngang ở bất kỳ góc độ nào.

Kết quả kết nối và điều khiển tay gắp

To begin, select the Gripper tab and activate Bluetooth by pressing the Bluetooth On button A list of available devices will appear; choose JDY_Hshopvn, which is the Bluetooth module for the gripper.

Bước 2: Sau đó chọn nút Select để kết nối với thiết bị đã chọn Nếu kết nối thành công, ô thông báo sẽ hiện “JDY_Hshopvn connected”

Hình 8.30: Thông báo đã kết nối Bluetooth

Bước 3: Ấn nút Read/Write để bắt đầu truyền nhận dữ liệu

Hình 8.31: Thông báo đang truyền nhận dữ liệu

Để cài đặt lực gắp mong muốn, hãy nhập giá trị vào ô dưới nút "Set Force" và nhấn nút "Set Force" để bắt đầu hoạt động Sau khi cài đặt, thông báo lực đã được thiết lập sẽ hiển thị trên màn hình.

Hình 8.32: Cài đặt lực gắp tối thiểu

8.4.2 Đáp ứng của tay gắp với giá trị lực cài đặt

Lực cài đặt là 0,98N như đã tính ở phần 3.2

Vật thể có đường kính 66 mm, trọng lượng 100g

Kết quả ở tốc độ 0,3 mm/s:

Hình 8.33: Đồ thị đáp ứng lực của tay gắp với tốc độ gắp 0,3 mm/s

Kết quả ở tốc độ 0,15 mm/s:

Hình 8.34: Đồ thị đáp ứng lực của tay gắp với tốc độ gắp 0,15 mm/s

Kết quả ở tốc độ 0,08 mm/s:

Hình 8.35: Đồ thị đáp ứng lực của tay gắp với tốc độ gắp 0,08 mm/s

Kết quả kết nối và sử dụng Teach Pendant

Để bắt đầu, hãy chọn tab Com Serial và điều chỉnh các thông số trong mục Com Setting Sau đó, nhấn nút Connect Port Nếu kết nối thành công, ô Status sẽ hiển thị thông báo đã kết nối.

Bước 2: Chọn mục Read để nhận dữ liệu và Write để truyền dữ liệu Nếu thành công, ở mục Status sẽ hiện thông báo đang truyền nhận

Hình 8.37: Truyền nhận dữ liệu qua cổng Com

8.5.2 Sử dụng Teach Pendant điều khiển robot

Vị trí home Vị trí 1

Hình 8.38: Kết quả sử dụng Teach Pendant điều khiển robot

Đánh giá sai số lặp lại của Robot

Dụng cụ đo là đồng hồ so có: Độ chính xác: 0.013mm Độ chia nhỏ nhất: 0.01mm

Thực hiện đo với mức vận tốc bằng nhau cho 6 động cơ là 1 vòng /phút

Để thiết lập robot, bắt đầu từ vị trí HOME, đặt đồng hồ so vào không gian làm việc của robot Di chuyển đầu tool của robot đến vị trí điểm X và điều chỉnh đồng hồ so sao cho kim chỉ đến vị trí khác 0 Tiếp theo, điều chỉnh cả hai mặt đồng hồ lớn và nhỏ về 0 Cuối cùng, đưa robot trở về vị trí HOME và quay lại vị trí cũ để thực hiện các bước tiếp theo.

Sai số lặp lại của robot được xác định bằng cách thực hiện 7 lần đo với cùng một mức vận tốc Giá trị sai lệch trên đồng hồ giữa lần đầu và các lần lặp sau cho thấy độ chính xác và tính nhất quán trong hoạt động của robot.

8.6.2 Sai số lặp lại theo phương Z

Hình 8.39:Kết quả sai số lặp lại theo phương Z trên đồng hồ so

Bảng sai số lặp lại theo phương Z:

Bảng 8.1: Bảng sai số lặp lại theo phương Z Đánh giá sai số phép đo:

Giá trị sai lệch trung bình:

∆𝐴 ′ = 0,013 (mm) Sai số tuyệt đối:

→ 𝑆ai số lặp lại theo phương Z: 𝐴 = 𝐴 𝑡𝑏 ± ∆𝐴 𝑡𝑏 = 0,024 ± 0,0179 (mm)

8.6.3 Sai số lặp lại theo phương X

Hình 8.40: Kết quả sai số lặp lại theo phương X trên đồng hồ so

Bảng sai số thực nghiệmsai số lặp lại theo phương X

Bảng 8.2: Bảng sai số thực nghiệm sai số lặp lại theo phương X Đánh giá sai số phép đo:

Giá trị sai lệch trung bình:

∆𝐴 ′ = 0,013 (mm) Sai số tuyệt đối:

→ 𝑆ai số lặp lại theo phương X: 𝐴 = 𝐴 𝑡𝑏 ± ∆𝐴 𝑡𝑏 = 0,014 ± 0,019 (mm)

8.6.4 Sai số lặp lại theo phương Y

Hình 8.41: Kết quả sai số lặp lại theo phương Y trên đồng hồ so

Bảng sai số lặp lại theo phương Y :

Bảng 8.3: Bảng sai số lặp lại theo phương Y Đánh giá sai số phép đo:

Giá trị sai lệch trung bình:

∆𝐴 ′ = 0,013 (mm) Sai số tuyệt đối:

→ 𝑆ai số lặp lại theo phương Y: 𝐴 = 𝐴 𝑡𝑏 ± ∆𝐴 𝑡𝑏 = 0,004 ± 0,0179 (mm)

Kết quả nhận diện và gắp đặt vật

8.7.1 Bố trí thực nghiệm Đặt vật thể ở tư thế bất kì trong vùng hoạt động của robot Cho robot nhận diện vật thể qua camera và hoạch định đường đi gắp vật đặt vào trên khay được đặt trên băng tải sao cho nắp hộp nằm ở trên, đáy hộp tiếp xúc với khay

- Tốc độ 6 trục bằng nhau: 50000 xung/ phút

- Gia tốc 6 trục bằng nhau: 30000 xung/ phút

- Thực nghiệm với 4 vật thể đã được huấn luyện, có đường kính 66mm, trọng lượng 100g, chiều cao từ 53 – 85 mm

- Điều kiện ánh sáng: trong xưởng, có thể bị ảnh hưởng bởi ánh sáng bên ngoài

Hình 8.42: Bố trí không gian thực nghiệm

- Số 3: Máy tính cá nhân

8.7.2 Nhận diện và gắp đặt 1 vật thể

Sử dụng 3 vật thể: lon súp, lon cà chua và lon cherry

Số lần thực nghiệm: 18 ( mỗi vật thể 6 lần)

Stt Vị trí ban đầu Gắp vật Thả vật Về Home

Hình 8.43: Kết quả thực nghiệm gắp và đặt vật thể thẳng đứng

Vật thể Số lần thành công Số lần thất bại

Bảng 8.4: Bảng kết quả thực nghiệm gắp và đặt vật thể thẳng đứng

8.7.2.2 Vật thể nằm ngang, nắp nghiêng bên trái

Vị trí ban đầu Gắp vật Thả vật Về Home

Hình 8.44: Kết quả gắp và đặt vật ở tư thế nằm ngang, nắp nghiêng bên trái

Vật thể Số lần thành công Số lần thất bại

Bảng 8.5: Bảng kết quả gắp và đặt vật ở tư thế nằm ngang, nắp nghiêng bên trái

8.7.2.3 Vật thể nằm ngang, nắp nghiêng bên phải

Vị trí ban đầu Gắp vật Thả vật Về Home

Hình 8.45: Kết quả gắp và đặt vật ở tư thế nằm ngang, nắp nghiêng bên phải

Vật thể Số lần thành công Số lần thất bại

Bảng 8.6: Bảng kết quả gắp và đặt vật ở tư thế nằm ngang, nắp nghiêng bên phải

8.7.3 Nhận diện và gắp đặt nhiều vật thể

Sử dụng ba vật thể đã được huấn luyện, đặt chúng ở ba tư thế khác nhau trong vùng làm việc của robot Tiến hành cho robot nhận diện và gắp từng vật cho đến khi không còn vật nào trong vùng làm việc.

Quá trình Gắp vật Di chuyển Thả vật

Hình 8.46: Kết quả gắp và đặt nhiều vật thể

Thực hiện các thực nghiệm tương tự với 7 vật thể còn lại, mỗi lần gắp từ 2-5 vật thể Ta thu được bảng kết quả sau:

Số lượng vật thể Số lần thực nghiệm

Số vật thể gắp và đặt được Độ chính xác

Bảng 8.7: Bảng kết quả gắp và đặt nhiều vật thể

Kết luận, kết quả thực nghiệm cho thấy độ chính xác trung bình đạt được, mặc dù vẫn tồn tại một số sai sót trong thuật toán, đặc biệt là khi các vật thể quá gần nhau Tốc độ xử lý ảnh của hệ thống dao động từ 0,5 đến 0,7 giây cho mỗi vật thể, tùy thuộc vào số lượng vật thể trong vùng làm việc Robot hoạt động ổn định tương tự như trong chương trình mô phỏng, với tín hiệu truyền nhận cho tay gắp không bị mất kết nối trong suốt quá trình hoạt động.

Link video thực nghiệm: https://www.youtube.com/playlist?list=PLaDbSC4jfAWLxKBvUVHTRQAKr39OTD dB_

Ngày đăng: 02/12/2023, 21:54

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w