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

Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động

120 26 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

TÓM TẮT Do nhu cầu cần gia tăng mức độ tự động hóa độ xác cho robot hàn tự động, việc phát xây dựng quỹ đạo cho robot hàn trở thành chìa khóa then chốt Trong nghiên cứu này, nhóm áp dụng kỹ thuật lĩnh vực xử lý ảnh để phát triển thuật toán cho việc phát đường hàn xây dựng quỹ đạo cho robot hàn Các ảnh thu thập theo thời gian thực sử dụng làm đối tượng để phân tích xử lý ảnh Một mơ hình thiết bị xây dựng nhằm hỗ trợ cho việc lấy mẫu kiểm nghiệm thuật toán Thư viện OpenCV sử dụng nhằm cung cấp công cụ hàm cho việc phát triển thuật toán nhận diện đường hàn Bằng việc phân tích đặc tính ảnh đường hàn, phương án nhận diện đưa để phát trích xuất xác vị trí đường hàn ảnh, từ tính tốn vị trí đường thực tế iv MỤC LỤC LỜI CẢM ƠN iii TÓM TẮT iv MỤC LỤC v DANH MỤC CÁC CHỮ VIẾT TẮT viii DANH MỤC CÁC BẢNG BIỂU ix DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ x Chương 1: TỔNG QUAN 1.1 Đặt vấn đề 1.2 Ý nghĩa khoa học thực tiễn đề tài .1 1.3 Mục tiêu đề tài .2 1.4 Đối tượng phạm vi nghiên cứu 1.4.1 Đối tượng nghiên cứu .2 1.4.2 Phạm vi nghiên cứu 1.5 Cơ sở phương pháp luận 1.6 Phương pháp nghiên cứu .2 Chương 2: THÔNG SỐ KỸ THUẬT CỦA THIẾT BỊ 2.1 Giới thiệu công nghệ hàn 2.1.1 Thực chất đặc điểm trình hàn .4 2.1.2 Phân loại phương pháp hàn 2.1.3 Máy hàn tự động .8 2.2 Tổng quan khí 12 2.2.1 Truyền động vít me – đai ốc bi 12 2.2.2 Truyền động đai 15 2.2.3 Sống trượt, dẫn hướng 22 2.3 Tổng quan điện – điện tử 24 2.3.1 2.4 Động bước 24 Tổng quan xử lý ảnh .26 2.4.1 Giới thiệu xử lý ảnh 26 2.4.2 Các giai đoạn trình xử lý ảnh 26 2.4.3 Một số khái niệm xử lý ảnh .29 v 2.4.4 2.5 Một số thuật tốn thơng dụng xử lý ảnh 31 Tổng quan ngôn ngữ lập trình Python thư viện OpenCV 36 2.5.1 Ngơn ngữ lập trình Python 36 2.5.2 Thư viện OpenCV 37 Chương 3: THIẾT KẾ 39 3.1 Thông số yêu cầu kỹ thuật 39 3.2 Tính tốn, thiết kế khí .39 3.2.1 Tính tốn lựa chọn kết cấu khung sườn 39 3.2.2 Thiết kế bàn máy 42 3.2.3 Tính tốn, thiết kế cấu truyền động đầu công tác (trục X) 43 3.2.4 3.3 Tính tốn, thiết kế cấu truyền động bàn máy (trục Y) .54 Thiết kế hệ thống điều khiển .60 3.3.1 Xây dựng sơ đồ khối hệ thống điều khiển 60 3.3.2 Camera 61 3.3.3 Board mạch Mach 62 3.3.4 Driver động bước .64 3.3.5 Cơng tắc hành trình .65 3.3.6 Nguồn nuôi 66 3.3.7 Sơ đồ nguyên lý 67 3.4 Thiết kế thuật toán xử lý ảnh điều khiển 68 3.4.1 Phân tích đặc tính ảnh 68 3.4.2 Xây dựng giải thuật cho xử lý ảnh 70 3.4.3 Giải pháp điều khiển hệ thống 75 3.4.4 Giao tiếp điều khiển phần mềm Mach xử lý ảnh 76 Chương 4: THI CÔNG VÀ THỰC NGHIỆM 80 4.1 Thi cơng mơ hình 80 4.2 Lập trình hệ thống 84 4.2.1 Tiền xử lý ảnh .84 4.2.2 Lấy khung xương 87 4.2.3 Xác định đường hàn 88 4.2.4 Xác định vị trí điểm lấy mẫu đường hàn .89 vi 4.2.5 Tính tốn vị trí điểm khơng gian thực 90 4.2.6 Tạo lệnh G-Code lưu trữ 93 4.3.1 Thực nghiệm xử lý ảnh 93 4.3.2 Thực nghiệm toàn hệ thống 97 Chương 5: KẾT LUẬN 101 5.1 Kết đạt 101 5.2 Những mặt hạn chế 101 5.3 Hướng phát triển 101 TÀI LIỆU THAM KHẢO .102 PHỤ LỤC 105 vii DANH MỤC CÁC CHỮ VIẾT TẮT CNC: Computerized Numerical Control EDM: Electrical Discharge Machining viii DANH MỤC CÁC BẢNG BIỂU Bảng 2.1: Các thông số truyền đai 17 Bảng 2.2: Ưu, nhược điểm đai sợi thủy tinh 21 Bảng 3.1: Thông số đầu vào cho động trục X 49 Bảng 3.2: Thông số đầu vào trục Y 55 Bảng 4.1: Bảng thống kê số khung hình nhận diện thành cơng sau 200 khung hình 94 Bảng 4.2: Các thông số thiết lập .97 ix DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ Hình 2.1: Phương pháp hàn điện hồ quang tay Hình 2.2: Phương pháp hàn ma sát khuấy Hình 2.3: Phương pháp hàn khí Hình 2.4: Phương pháp hàn nóng chảy .7 Hình 2.5: Phương pháp hàn áp lực Hình 2.6: Máy hàn tự động Hình 2.7: Rùa hàn tự động 10 Hình 2.8: Máy hàn CNC 11 Hình 2.9: Robot hàn tự động .11 Hình 2.10: Vít me – đai ốc bi 12 Hình 2.11: Cấu tạo Vít me – đai ốc bi 13 Hình 2.12: Cơ cấu truyền động đai 15 Hình 2.13: Mô tả ăn khớp đai 16 Hình 2.14: Các loại biên dạng đai .16 Hình 2.15: Mơ hình ứng suất chân 17 Hình 2.16: Các thơng số đai .18 Hình 2.17: Kết cấu dây đai 18 Hình 2.18: Cách bố trí sợi cốt hướng xoắn sợi 19 Hình 2.19: Ray trượt dẫn hướng vuông 22 Hình 2.20: Cấu tạo trượt vng .23 Hình 2.21: Động bước điều khiển 25 Hình 2.22: Sơ đồ điều khiển vịng kín động bước .25 Hình 2.23: Quá trình xử lý ảnh 26 Hình 2.24: Các bước xử lý ảnh 27 Hình 2.25: Mức xám ảnh đen trắng 30 Hình 2.26: Mức xám ảnh nhị phân 30 Hình 2.27: Tách ngưỡng cho ảnh xám 33 Hình 2.28: Đường thẳng tọa độ cực 34 Hình 2.29: Lấy khung xương (skeletonization) 36 Hình 2.30: Nhận diện đối tượng cách sử dụng OpenCV 38 x Hình 3.1: Kiểu dáng mơ hình .39 Hình 3.2: Kích thước nhơm định hình 20x40 40 Hình 3.3: Bản vẽ khung mơ hình 41 Hình 3.4: Bu lơng, trượt, nối góc .41 Hình 3.5: Chân đế cao su 42 Hình 3.6: Bánh xe V-slot 42 Hình 3.7: Bản vẽ bàn máy 43 Hình 3.8: Bàn máy lắp vào khung 43 Hình 3.9: Kiểu lắp vít me fixed – fixed 44 Hình 3.10: Kiểu lắp vít me fixed – support 44 Hình 3.11: Kiểu lắp vít me fixed – free 45 Hình 3.12: Quy trình lựa chọn vít me .45 Hình 3.13: Sơ đồ đặt lực 46 Hình 3.14: Thơng số vít me kiểu SFU 48 Hình 3.15: Bản vẽ vít me đai ốc bi 48 Hình 3.16: Thơng số động 53 Hình 3.17: Cơ cấu trục X 53 Hình 3.18: Vị trí trục X mơ hình .54 Hình 3.19: Cơ cấu truyền động đai 54 Hình 3.20: Cặp pulley truyền động 56 Hình 3.21: Thơng số kỹ thuật động 57HS10030A4D8 58 Hình 3.22: Trục X Y mơ hình .59 Hình 3.23: Các cấu chuyển động sau lắp đặt 59 Hình 3.24: Sơ đồ khối hệ thống 60 Hình 3.25: Camera Bysameyee USB Digital Microscope 1000X 62 Hình 3.26: Board mạch Mach 63 Hình 3.27: Cơng tắc hành trình KW11-N KW12 5a .66 Hình 3.28: Bảng vẽ lắp đặt sơ đồ nguyên lý tủ điện 67 Hình 3.29: Cách đặt camera, nguồn sáng, mẫu 68 Hình 3.30: Ảnh mơ tả độ tương phản 69 Hình 3.31: Giải thuật .70 xi Hình 3.32: Giải thuật tiền xử lý ảnh 71 Hình 3.33: Giải thuật lấy khung xương 72 Hình 3.34: Giải thuật xác định đường hàn 73 Hình 3.35: Giải thuật xác định vị trí lấy mẫu 74 Hình 3.36: Giải thuật xác định vị trí đường hàn .75 Hình 3.37: Lưu đồ tương tác xử lý ảnh điều khiển 77 Hình 3.38: Lưu đồ giải thuật điều khiển 79 Hình 4.1: Mơ mơ hình Autodesk Inventor 80 Hình 4.2: Lắp ráp khung mơ hình 81 Hình 4.3: Bộ bàn máy mơ hình 82 Hình 4.4: Cụm vít me-đai ốc sử dụng mơ hình 82 Hình 4.5: Lắp ráp tủ điện cho mơ hình .83 Hình 4.6: Tồn mơ hình sau hồn thiện 83 Hình 4.7: Các bước trình xử lý ảnh 84 Hình 4.8: Ảnh thu từ camera 84 Hình 4.9: Ảnh chuyển sang không gian xám .85 Hình 4.10: Ảnh tăng độ tương phản 86 Hình 4.11: Ảnh sau làm mịn .86 Hình 4.12: Ảnh sau nhị phân hóa 88 Hình 4.13: Ảnh sau mỏng hóa 88 Hình 4.14: Ảnh sau trình xác định đường hàn 89 Hình 4.15: Mẫu dùng để tham chiếu 90 Hình 4.16: Xác định ppm 91 Hình 4.17: Mơ tả không gian 92 Hình 4.18: Hình mẫu thử 94 Hình 4.19: Các kết thực nghiệm nhận diện 95 Hình 4.20: G-Code thu nhận sau xử lý ảnh .96 Hình 4.21: Biên dạng mơ từ G-Code 96 Hình 4.22: Mơ tả kết thực nghiệm tồn hệ thống .98 Hình 4.23: Thực nghiệm toàn hệ thống 99 xii Chương 1: TỔNG QUAN 1.1 Đặt vấn đề Nền công nghiệp nước giới, kể Việt Nam phát triển mạnh mẽ Trước sản phẩm tạo cách thủ cơng, sử dụng sức người tốn nhiều thời gian dẫn đến giá thành cao chất lượng sản phẩm Cùng với phát triển nhanh chóng khoa học kỹ thuật, tự động hóa trở thành ngành thiếu công nghiệp đại Với phát triển trình tự động hóa ngày rộng rãi phổ biến sản phẩm làm có chất lượng đáp ứng yêu cầu kỹ thuật mà giá thành lại rẻ Hiện nay, nhiều nơi việc hàn chi tiết cịn thực thủ cơng tạo sản phẩm có đường hàn khơng xác, không đồng với dẫn đến sản phẩm tạo có chất lượng khơng cao, bên cạnh việc gia cơng tay cịn gây nguy hiểm cho người công nhân Do thấy cấp thiết đó, nhóm vận dụng kiến thức học để tiến hành nghiên cứu phương thức áp dụng công nghệ xử lý ảnh nhằm khắc phục phần hạn chế máy hàn tự động, qua giảm can thiệp người vào trình hàn, nâng cao suất chất lượng sản phẩm 1.2 Ý nghĩa khoa học thực tiễn đề tài - Cải thiện điều kiện sản xuất - Đáp ứng cường độ lao động sản xuất đại - Thực chun mơn hóa hốn đổi sản xuất - Thực cạnh tranh đáp ứng điều kiện sản xuất - Cho phép tạo sản phẩm có chất lượng cao với giá thành thấp - Đảm bảo an toàn cho người lao động Kết mô cho thấy, quỹ đạo tạo thuật tốn có hình dạng giống với quỹ đạo thực tế mẫu 4.3.2 Thực nghiệm toàn hệ thống Thực nghiệm toàn hệ thống nhằm kiểm chứng lại tồn hệ thống có hoạt động với u cầu đề ban đầu Thực nghiệm toàn hệ thống thực cách vận hành toàn hệ thống theo quy trình Kết trình đánh giá dựa theo ghi nhận độ lệch biên dạng thuật toán mẫu Điều kiện cách thức tiến hành thực nghiệm Nhóm tiếp tục sử dụng mẫu thử thép có kích thước 40x20 cm cắt hàn đính giống thực nghiệm xử lý ảnh Hệ thống được thiết lập với tham số sau: Bảng 4.2: Các thông số thiết lập Tên tham số Giá trị ppm 44.06237571 pixel/mm xoffset 33.6848 mm (yoffset + j/ppm) 105.6454 mm v 300 mm/phút Do giới hạn hành trình bàn máy, nhóm khơng thể thực nghiệm với tồn đường hàn, q trình thực nghiệm tiến hành với đoạn mẫu có độ dài 130 mm theo phương Y Nhóm tiến hành thực thi tồn chương trình kiểm tra giá trị ghi nhận tập tin G-Code lưu trữ Kết thực nghiệm Sau tiến hành lần thực nghiệm, nhóm ghi nhận quỹ đạo điều khiển hệ thống bám sát với đường hàn thực tế Độ lệch lớn ghi nhận nằm khoảng 0,5 mm theo phương X 97 Hình 4.22: Mơ tả kết thực nghiệm tồn hệ thống 98 Hình 4.23: Thực nghiệm toàn hệ thống 99 Nhận xét Sau thực nghiệm riêng lẻ xử lý ảnh thực nghiệm vận hành toàn hệ thống, kết cho thấy giải thuật xử lý ảnh hoạt động tốt, có khả nhận diện xác định đường hàn với độ xác cao Tuy nhiên việc kết hợp xử lý ảnh điều khiển chưa thực đồng bộ, dẫn đến có sai lệch 100 Chương 5: KẾT LUẬN 5.1 Kết đạt Sau thời gian thực đồ án tốt nghiệp, mục tiêu đề đề tài hoàn thành Một số kết đạt sau: - Xây dựng thuật toán nhận diện đường hàn - Thiết kế hồn thiện mơ hình kiểm chứng - Xây dựng chương trình điều khiển dựa liệu từ xử lý ảnh cho mơ hình So với mục tiêu ban đầu đề ra, nhóm hồn thành kế hoạch đặt Thuật tốn xử lý ảnh có khả nhận diện trích xuất liệu tương đối hiệu quả, xác Mơ hình phần cứng hoạt động tốt, đáp ứng đủ tiêu chí đề trước Ngồi ra, thơng qua q trình thực đề tài, nhóm có hội vận dụng kiến thức học vào việc thiết kế giải vấn đề đặt 5.2 Những mặt hạn chế Ngồi kết đạt nhóm ghi nhận vài hạn chế hệ thống sau: - Thuật tốn điều khiển cịn phụ thuộc nhiều vào phần mềm Mach 3, chưa tối ưu cho việc tích hợp vào hệ thống hàn tự động hoàn chỉnh - Chưa có giao diện tương tác điều khiển 5.3 Hướng phát triển Từ mặt hạn chế đề tài, để đề tài hoạt động tốt áp dụng vào thực tế, nhóm xin đề xuất hướng phát triển sau: Phát triển riêng hệ thống điều khiển, phát triển giao diện tương tác, điều khiển 101 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Lương Mạnh Bá, Nguyễn Thanh Thủy (2006), “Nhập môn xử lý ảnh số”, Nhà xuất khoa học kỹ thuật [2] Trịnh Chất, Lê Văn Uyển (2006), “Tính tốn thiết kế hệ dẫn động khí”, Nhà xuất giáo dục, tập hai [3] Nguyễn Thúc Hà, Bùi Văn Hạnh, Võ Văn Phong (2006), “Giáo trình cơng nghệ hàn”, Nhà xuất giáo dục [4] Nguyễn Quang Hoan (2006), “Giáo trình Xử lý ảnh”, Học viện cơng nghệ bưu viễn thơng [5] Trần Ngọc Nhuần (2006), “Đai – đặc điểm cấu tạo”, Tạp chí Khoa học – Công nghệ Thủy sản, số 03-04/2006 [6] Nguyễn Hiền Minh, Phan Thanh Phong (2019), “Ứng dụng xử lý ảnh hệ thống phân loại sản phẩm”, Đại học Sư phạm kỹ thuật Thành phố Hồ Chí Minh [7] Đỗ Năng Tồn, Phạm Việt Bình (2007), “Giáo trình Xử lý ảnh”, Đại học Thái Nguyên [8] Động bước (STEP), phân loại, ứng dụng điều khiển Internet: https://vietmachine.com.vn/cac-loai-dong-co-buoc-step-phan-loai-ung-dung-vadieu-khien.html, 26/04/2021 [9] bi Hướng dẫn cách tháo lắp trục vít me đai ốc bi - Cách sửa chữa vít me đai ốc Internet: https://tayhostar.vn/huong-dan-cach-thao-lap-truc-vit-me-dai-oc-bi- cach-sua-chua-vit-me-dai-oc-bi-a41.html, 26/04/2021 [10] Máy hàn tự động gì? Các loại máy hàn tự động Internet: https://maydochuyendung.com/tin-tuc/tu-van-tieu-dung/may-han-tu-dong-la-gi-cacloai-may-han-tu-dong-hien-nay, 24/04/2021 102 [11] Python (ngôn ngữ lập trình) Internet:https://vi.wikipedia.org/wiki/Python_(ngơn_ngữ_lập_trình), 11/08/2021 [12] Cơng tắc hành trình Limit Switch Internet: https://thietbihienthi.com/cong- tac-hanh-trinh-limit-switch/, 01/07/2021 [13] Cơ cấu truyền động (vít me, ray trượt, đai) Internet: https://vietmachine.com.vn/co-cau-truyen-dong-vit-me-ray-truot-dai.html, 01/07/2021 [14] Kiến thức dây đai (dây curoa) phải biết Internet: https://cuahangvattu.com/blog/kien-thuc-day-dai-day-curoa-ai-cung-phai-biet, 01/07/2021 [15] Hàn ma sát gì? tìm hiểu tổng quan phương pháp hàn ma sát Internet: http://cokhithanhduy.com/han-ma-sat-la-gi-tim-hieu-tong-quan-ve-phuong-phaphan-ma-sat/, 01/07/2021 [16] Thanh trượt trượt QWW series HIWIN Internet: https://www.ngananhphat.com/vn/san-pham/2196/thanh-truot-con-truot-qwwseries-hiwin.html, 01/07/2021 Tiếng Anh [17] Azhar Shaukharova, Yi Liang, Hutian Feng, Bin Xu (2016), “Study of Stiffness of Linear Guide Pairs by Experiment and FEA”, World Journal Engineering and Technology (April 2016) [18] Guangyuan Zhang, Zhengfang Zhu, Guannan Si (2014), “Welding line detection based on image for automatic welding machine”, IEEE, (20-21 Dec 2014) [19] Oriental Motor USA Corp, “Technical Reference” [20] Oriental Motor USA Corp, “Motor Sizing Calculations” [21] HIWIN Technologies Corp (2018), “Ballscrews Technical Information” 103 [22] Rafael C Gonzalez, Richard E Woods (2008), “Digital Image Processing”, Pearson Education Inc [23] Belt Actuator Sizing Tool Internet: https://www.orientalmotor.com/motor- sizing/beltActuator-sizing.html, 02/05/2021 [24] NEMA 23 Stepper motor 57x100mm 2.5Nm Internet: https://mro.ecvv.com/product/4891239, 01/07/2021 [25] NEMA 23 Closed loop stepper motor drive kit 2.2Nm LC57H280 Internet: https://vi.aliexpress.com/item/4000597353388.html, 01/07/2021 [26] Laser Pressure Welding Internet: https://www.manufacturingguide.com/en/laser-pressure-welding, 01/07/2021 [27] 1605 ball screw set: SFU1605 ball screw with end machining + ball screw supporter + ball nut housing + coupling Internet: https://cpdxkcnc.com/products/1605-ball-screw-set-sfu1605-ball-screw-with-endmachining-ball-screw-supporter-ball-nut-housing-coupling-530, 01/07/2021 104 PHỤ LỤC #==========================================================================# # WINDOWS VERSION #==========================================================================# #==========================================================================# # IMPORT MODULES ARE USED #==========================================================================# import cv2 as cv import numpy as np import argparse import math import datetime import os import imutils import time import pywinauto from pywinauto.application import Application # import pywinauto lib from pywinauto import Desktop from pywinauto.keyboard import send_keys #==========================================================================# # INITIALIZING GLOBAL VARIABLES WITH INITIAL VALUE #==========================================================================# y_dis = state = alpha = beta = ppm = 44.06237571 # Image saved directory directory = r'D:\\Welding_image_process\\img_saved' # Set the name of output file timenow = datetime.datetime.now() filename_output = "D:\Welding_image_process\data\gcode_" + \ timenow.strftime("%d%m%y")+"_"+timenow.strftime("%H%M%S")+".txt" file_output = open(filename_output, "w+") file_output.close() # Define the codec and create VideoWriter object filename_video = "D:\\Welding_image_process\\img_saved\\video_" + \ timenow.strftime("%d%m%y")+"_"+timenow.strftime("%H%M%S")+".avi" fourcc = cv.VideoWriter_fourcc(*'XVID') 105 out = cv.VideoWriter(filename_video, fourcc, 20.0, (640, 480)) start_time = FirstTO = GlobalTO = #==========================================================================# # IMPLEMENTATION #==========================================================================# #** # @brief line_prepend - add a line to the beginning of current lines # @details #==========================================================================# def line_prepend(newContent): file_output = open(filename_output, "r+") currentContent = file_output.read() # print(currentContent) file_output.seek(0, 0) file_output.write(newContent + "\n") file_output.write(currentContent) file_output.close() #** # @brief state_0 - send home & move command to Mach3 software # @details #==========================================================================# def state_0(): appMach3 = Application(backend='uia').connect( title="Mach3 CNC Controller ") # First step - Load Recent File loadRF = appMach3.Mach3CNCController.child_window( title="Recent File", auto_id="8349", control_type="Button").wrapper_ object() loadRF.click() time.sleep(0.1) # Click 'OK' okBTN = appMach3.Mach3CNCController.child_window( title="OK", auto_id="1", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit GCode okBTN = appMach3.Mach3CNCController.child_window( 106 title="Edit GCode", auto_id="8586", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit gcode by notepad notepad = Application(backend='uia').connect(title="gcode.txt - Notepad" ) send_keys('^a') # send key "alt + a" to mach3 software time.sleep(0.05) # Add "G0 Y5" into gcode file to control Mach3 Y Homing notepad.gcodetxtNotepad.Edit.type_keys("G0 X30 Y5", with_spaces=True) time.sleep(0.05) send_keys('{ENTER}') # send key "Enter" to mach3 software time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Save") time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Exit") time.sleep(0.2) send_keys('%r') send_keys('%r') time.sleep(30) ################################ loadRF.click() time.sleep(0.1) # Click 'OK' okBTN = appMach3.Mach3CNCController.child_window( title="OK", auto_id="1", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit GCode okBTN = appMach3.Mach3CNCController.child_window( title="Edit GCode", auto_id="8586", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit gcode by notepad notepad = Application(backend='uia').connect(title="gcode.txt - Notepad" ) send_keys('^a') time.sleep(0.05) 107 # Add "G1 Y180 F300" into gcode file to control Mach3 goto Y180 with Fee drate = 300 mm/p notepad.gcodetxtNotepad.Edit.type_keys("G1 Y135 F300", with_spaces=True) time.sleep(0.05) send_keys('{ENTER}') time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Save") time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Exit") time.sleep(0.1) send_keys('%r') send_keys('%r') time.sleep(0.05) # Set State_var = to switch to state #** # @brief state_1 - detect, recognize and creat gcode # @details #==========================================================================# def state_1(): global y_dis global state global start_time # global FirstTO # global GlobalTO img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) img_gray_ct = cv.addWeighted(img_gray, alpha, np.zeros( img_gray.shape, img_gray.dtype), 0, beta) img_copy = np.copy(img) # Set canny threshold and hough theshold canny_threshold = 100 hough_threshold = 120 blur_img = cv.blur(img_gray_ct, (9, 9)) binary_img = cv.adaptiveThreshold( blur_img, 255, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY_INV, 21, 2) binary_img = cv.erode(binary_img, None, iterations=2) # Skeletonize the image skeleton_img = cv.ximgproc.thinning(binary_img, 0) 108 # HoughLine lines = cv.HoughLines(skeleton_img, 1, np.pi / 180, hough_threshold, None, 0, 0) all_point_x_top = [] all_point_x_bottom = [] if lines is not None: for i in range(0, len(lines)): rho = lines[i][0][0] theta = lines[i][0][1] a = b = pt1 pt2 math.cos(theta) math.sin(theta) = (int(rho/a), 0) = (int((rho/a)-640*(b/a)), 640) if ((pt1[0] < 640 and pt1[0] > 0) and range (0;640) # pt1[0] (X_1) must be in (pt2[0] < 640 and pt2[0] > 0) and # pt2[0] (X_2) must be in range (0;640) # pt1[0] (X_1) and pt2[0] (X_2) cannot be (pt1[0] != and pt2[0] != 0) and (pt1[0] != pt2[0])): # pt1[0] (X_1) and pt2[0] (X_2) mu st be different #y1 != y2 all_point_x_top.append(pt1) all_point_x_bottom.append(pt2) num_line = len(all_point_x_top) if (num_line != 0): #Calculate the lines then take their average line ave_top_point = ave_bottom_point = for i in range(0, num_line): ave_top_point += all_point_x_top[i][0] ave_bottom_point += all_point_x_bottom[i][0] ave_top_point = int(ave_top_point/num_line) ave_bottom_point = int(ave_bottom_point/num_line) cv.line(img_copy, (ave_top_point, 0), (ave_bottom_point, 640), (0, 0, 255), 1) 109 for j in range(0, 640): if ((img_copy[240, j][0] == 0) and (img_copy[240, j][1] == 0) and (img_copy[240, j][2] == 255)): # Distance of X x_dis = (j/ppm) + 33.6848 # delta_X = 33.6848 # Delta Time from the starting of state to current DeltaTime = (end_time - start_time) y_dis = round((DeltaTime*(300/60) + 105.6454), 4) # #visme 33mm from base # #DATA SAMPLE G90 G1 F2000 X Y str_gcode = "G1 X" + \ str(round(x_dis, 4)) + " Y" + str(y_dis) + " F300" # Add the new str_gcode line above the previous one line_prepend(str_gcode) # cv.putText(img_copy,str(round(distance_line,4)),(50,50 ),fontFace=cv.FONT_HERSHEY_COMPLEX,fontScale=1,color=(150,100,200),thickness =2) # cv.arrowedLine(img_copy,(0,240),(j,240),(255,255,0),5) # cv.arrowedLine(img_copy,(j,240),(0,240),(255,255,0),5) # cv.line(img_copy,(0,240),(640,240),(0,255,0),1) break # else: #print("LINE NOT FOUND") cv.imshow("Detected Lines (in red) - Standard Hough Line Transform", img _copy) if (y_dis >= 240): cv.destroyAllWindows() state = #==========================================================================# # MAIN CODE #==========================================================================# print("State - SETUP MACHINE PLEASE WAIT 30 SECONDS ") if(state == 0): state_0() state = print("State ANALYZE AND GENERATE GCODE") cap_video = cv.VideoCapture(0,cv.CAP_DSHOW) 110 start_time = time.monotonic() while(state == 1): ret, img = cap_video.read() # read frame then timing end_time = time.monotonic() # end of time delta # if frame is read correctly ret is True if not ret: print("Can't receive frame (stream end?) Exiting ") break img = cv.flip(img, 1) img = cv.flip(img, 0) state_1() # Check key key = cv.waitKey(1) if key & 0xFF == ord('q'): break # Press "q" to quit print("DONE") print("THE GCODE IS SAVED IN "+str(filename_output)) cap_video.release() cv.destroyAllWindows() 111 ... cịn gọi máy hàn công nghiệp [10] Một số dạng hàn tự động thông dụng: - Xe hàn tự động hay rùa hàn tự động: thiết bị hàn thiết kế cho mối hàn thẳng Khi chiều dài đường hàn lớn ứng dụng thiết bị hiệu... máy hàn khác Thông thường Việt Nam, máy hàn tự động sử dụng để hàn thép tấm, thép kết cấu xây dựng, hàn chi tiết dày từ vài mm đến hàng trăm mm, mà máy hàn tự động ứng dụng chủ yếu nhà máy chế tạo. .. dẻo) để tạo thành mối hàn [3] Khi hàn nóng chảy, kim loại bị nóng chảy, sau kết tinh hoàn toàn thành mối hàn Khi hàn áp lực, kim loại nung đến trạng thái dẻo, sau ép để tạo nên mối liên kết kim

Ngày đăng: 05/06/2022, 17:35

Xem thêm:

HÌNH ẢNH LIÊN QUAN

Hình 2.7: Rùa hàn tự động - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 2.7 Rùa hàn tự động (Trang 19)
Hình 2.10: Vít me – đai ốc bi. Nguồn: Trích từ [13] - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 2.10 Vít me – đai ốc bi. Nguồn: Trích từ [13] (Trang 21)
Hình 2.11: Cấu tạo Vít me – đai ốc bi. Nguồn: Trích từ [9] - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 2.11 Cấu tạo Vít me – đai ốc bi. Nguồn: Trích từ [9] (Trang 22)
Hình 2.29: Lấy khung xương (skeletonization) - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 2.29 Lấy khung xương (skeletonization) (Trang 45)
Hình 3.3: Bản vẽ khung mô hình - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.3 Bản vẽ khung mô hình (Trang 50)
Hình 3.8a: Mặt trên Hình 3.8b: Mặt dưới - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.8a Mặt trên Hình 3.8b: Mặt dưới (Trang 52)
Hình 3.10: Kiểu lắp vít me fixed – support. Nguồn: Trích từ [21] - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.10 Kiểu lắp vít me fixed – support. Nguồn: Trích từ [21] (Trang 53)
Hình 3.12: Quy trình lựa chọn vít me - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.12 Quy trình lựa chọn vít me (Trang 54)
Hình 3.13: Sơ đồ đặt lực Lực chống trượt:   - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.13 Sơ đồ đặt lực Lực chống trượt: (Trang 55)
Hình 3.15: Bản vẽ vít me đai ốc bi. Nguồn: Trích từ [27] - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.15 Bản vẽ vít me đai ốc bi. Nguồn: Trích từ [27] (Trang 57)
Hình 3.21: Thông số kỹ thuật của động cơ 57HS10030A4D8. Nguồn: Trích từ [24] - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.21 Thông số kỹ thuật của động cơ 57HS10030A4D8. Nguồn: Trích từ [24] (Trang 67)
Hình 3.22: Trục X và Y trên mô hình - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.22 Trục X và Y trên mô hình (Trang 68)
Hình 3.23: Các cơ cấu chuyển động sau khi lắp đặt (Trục X: cơ cấu chuyển động mô phỏng đầu hàn  - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.23 Các cơ cấu chuyển động sau khi lắp đặt (Trục X: cơ cấu chuyển động mô phỏng đầu hàn (Trang 68)
Hình 3.24: Sơ đồ khối hệ thống - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.24 Sơ đồ khối hệ thống (Trang 69)
Hình 3.26: Board mạch Mach3 - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.26 Board mạch Mach3 (Trang 72)
Hình 3.28: Bảng vẽ lắp đặt và sơ đồ nguyên lý tủ điện - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.28 Bảng vẽ lắp đặt và sơ đồ nguyên lý tủ điện (Trang 76)
Hình 3.34: Giải thuật xác định đường hàn - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.34 Giải thuật xác định đường hàn (Trang 82)
Hình 3.35: Giải thuật xác định vị trí lấy mẫu - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.35 Giải thuật xác định vị trí lấy mẫu (Trang 83)
Hình 3.36: Giải thuật xác định vị trí đường hàn - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 3.36 Giải thuật xác định vị trí đường hàn (Trang 84)
Hình 4.4: Cụm vít me-đai ốc được sử dụng trong mô hình - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.4 Cụm vít me-đai ốc được sử dụng trong mô hình (Trang 91)
Hình 4.3: Bộ bàn máy của mô hình - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.3 Bộ bàn máy của mô hình (Trang 91)
Hình 4.7: Các bước chính trong quá trình xử lý ảnh - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.7 Các bước chính trong quá trình xử lý ảnh (Trang 93)
Hình 4.11: Ảnh sau khi làm mịn - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.11 Ảnh sau khi làm mịn (Trang 95)
 Object area: là diện tích của đối tượng trong hình ảnh (pixel x pixel). Know area: là diện tích thực tế của đối tượng (mm2 ) - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
bject area: là diện tích của đối tượng trong hình ảnh (pixel x pixel). Know area: là diện tích thực tế của đối tượng (mm2 ) (Trang 100)
Hình 4.17: Mô tả các không gian - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.17 Mô tả các không gian (Trang 101)
Hình 4.19: Các kết quả thực nghiệm nhận diện - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.19 Các kết quả thực nghiệm nhận diện (Trang 104)
Hình dạng quỹ đạo ghi nhận từ thuật toán - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình d ạng quỹ đạo ghi nhận từ thuật toán (Trang 104)
Hình 4.20: G-Code thu nhận được sau khi xử lý ảnh - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.20 G-Code thu nhận được sau khi xử lý ảnh (Trang 105)
Hình 4.22: Mô tả kết quả thực nghiệm toàn hệ thống - Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động
Hình 4.22 Mô tả kết quả thực nghiệm toàn hệ thống (Trang 107)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w