Nghiên cứu điều khiển tay máy dùng kỹ thuật xử lý ảnh

13 413 0
Nghiên cứu điều khiển tay máy dùng kỹ thuật xử lý ảnh

Đ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

1 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG PHẠM HỒNG CÔNG NGHIÊN CỨU ĐIỀU KHIỂN TAY MÁY DÙNG KỸ THUẬT XỬ ẢNH Chuyên ngành : TỰ ĐỘNG HÓA Mã số : 60.52.60 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT Đà Nẵng - Năm 2010 2 Công trình ñược hoàn thành tại ĐẠI HỌC ĐÀ NẴNG Người hướng dẫn khoa học: TS. PHAN VĂN HIỀN Phản biện 1: PGS.TS. Nguyễn Hồng Anh Phản biện 2: TS. Lê Tấn Duy Luận văn sẽ ñược bảo vệ tại Hội ñồng chấm Luận văn tốt nghiệp thạc sĩ kỹ thuật họp tại Đại học Đà Nẵng vào ngày 24 tháng 07 năm 2010 Có thể tìm hiểu luận văn tại: - Trung tâm Thông tin – Học liệu, Đại học Đà Nẵng - Trung tâm Học liệu, Đại học Đà Nẵng 3 MỞ ĐẦU 1. Tính cấp thiết của ñề tài Trong thời ñại ngày nay, ngành công nghiệp ñóng vai trò quan trọng trong nền kinh tế. Từ những ngành như sản xuất, chế biến lương thực thực phẩm, nước uống cho ñến các ngành công nghệ chế tạo máy, công nghệ chế tạo ôtô, các ngành công nghệ cao v.v…Tất cả những ngành ñó có ñược hiệu quả kinh tế cao không ít nhờ vào các hệ thống sản xuất tự ñộng, những Robot tự ñộng, những tay máy công nghiệp, chúng ñã thay thế sức lao ñộng con người một cách hiệu quả nhất. Robot ñược sử dụng rộng rãi từ những nơi mà môi trường có tính ñộc hại, nguy hiểm, ñộ chính xác cao…trong công nghiệp cho ñến các công việc hằng ngày. Do vậy Robot có tầm quan trọng rất lớn và là một trong những lĩnh vực nghiên cứu hàng ñầu trong thời ñại ngày nay. Qua thời gian học tập và nghiên cứu chương trình thạc sỹ tự ñộng hóa tại Đại học Đà Nẵng, ta thấy lĩnh vực nghiên cứu về robot là một lĩnh vực khá mới mẻ; ñặc biệt là những Robot tự ñộng, những tay máy công nghiệp. Vì vậy chúng tôi ñã quyết ñịnh chọn ñề tài “Nghiên cứu ñiều khiển tay máy dùng kỹ thuật xử ảnh” mà cụ thể là xử ảnh hình tròn, ñể nghiên cứu trong luận văn. Thông qua luận văn chúng tôi sẽ khảo sát, nghiên cứu và ñiều khiển tay máy 3 bậc tự do RRP ñể gắp vật cố ñịnh trên mặt phẳng nhờ sự trợ giúp bởi Camera xác ñịnh tọa ñộ vật. 2. Mục ñích nghiên cứu - Nghiên cứu hai Toolbox trong MATLAB:  Image Processing Toolbox cho việc xử ảnh  OPC Toolbox cho việc kết nối PLC. - Nghiên cứu ñiều khiển tay máy 3 bậc tự do RRP. 4 - Nghiên cứu dùng máy tính ñể xử ảnh (cụ thể là xử hình tròn) và ñiều khiển tay máy thông qua PLC. - Phân tích ñánh giá kết quả ñạt ñược qua thi công. Với sự trình bày và phân tích các vấn ñề nêu trên, chúng tôi ñặt tên cho ñề tài là: “Nghiên cứu ñiều khiển tay máy dùng kỹ thuật xử ảnh” 3. Đối tượng và phạm vi nghiên cứu - Nghiên cứu ñiều khiển tay máy 3 bậc tự do RRP. - Nghiên cứu phương pháp dùng máy tính ñể xử ảnh (cụ thể là xử hình tròn) và ñiều khiển tay máy thông qua PLC bằng phần mềm MATLAB. - Phân tích ñánh giá kết quả ñạt ñược qua thi công tay máy RRP. - Nghiên cứu hai Toolbox trong MATLAB cần thiết là: Image Processing Toolbox cho việc xử ảnh và OPC Toolbox cho việc kết nối PLC. 4. Phương pháp nghiên cứu - Nghiên cứu thiết kế màn hình giám sát và ñiều khiển trên máy tính bằng phần mềm MATLAB ñể thực hiện. - Nghiên cứu và ñiều khiển tay máy 3 bậc tự do ñể gắp vật cố ñịnh trên mặt phẳng nhờ sự trợ giúp bởi Camera xác ñịnh tọa ñộ vật. - Sử dụng phương pháp thuyết ñể ñọc và nghiên cứu tài liệu. - Thiết kế giao diện ñiều khiển quá trình hoạt ñộng của tay máy trên phần mềm Matlab. - Dùng phương pháp thực nghiệm, lập trình mô phỏng và thi công. - Thực hiện trên phần cứng là tay máy 3 bậc tự do RRP. - Đánh giá kết quả và ñề xuất hướng phát triển của ñề tài. 5. Ý nghĩa khoa học và thực tiễn của ñề tài - Việc xử ảnh và ñiều khiển tay máy 3 bậc tự do RRP ñể ñưa vào ứng dụng thực tế là rất cần thiết trong các ngành công nghiệp hiện nay. 5 - Vì vậy, trong luận văn này ta ñiều khiển ñược cho tay máy 3 bậc tự do RRP. Trên cơ sở ñó, ta nghiên cứu một số luật ñiều khiển cho tay máy 3 bậc tự do RRP trong môi trường làm việc của nó . - Tất cả các vấn ñề ñược ñề cập trong cuốn luận văn ñều góp phần vào việc nghiên cứu, xây dựng và phát triển tay máy. Tạo tiền ñề cho việc nghiên cứu chế tạo tay máy, ñáp ứng ñược nhiều công dụng thiết thực trong công tác nghiên cứu giảng dạy ở nước ta. 6. Cấu trúc luận văn Ngoài chương mở ñầu, trong luận văn còn có các phần và chương kế tiếp như sau: MỞ ĐẦU CHƯƠNG 1: CƠ SỞ THUYẾT CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG CHƯƠNG 3: XÂY DỰNG PHẦN MỀM KẾT LUẬN VÀ KIẾN NGHỊ PHỤ LỤC Chương 1 - CƠ SỞ THUYẾT 1.1. thuyết PLC S7-200 thuyết PLC thì rất rộng nên trong chương này tôi chỉ trình bày những khái niệm cơ bản và những phần thuyết liên quan PLC S7-200 loại CPU 224 ñược sử dụng chủ yếu trong luận văn. 1.1.1. Giới thiệu PLC S7-200 Từ những năm 70 ñể ñáp ứng nhu cầu thực tế sản xuất, các mạch ñiều khiển bằng relay, bộ ñịnh thời ñã không còn phù hợp, do ñó bộ ñiều khiển logic khả trình (Programmable Logic Controller – PLC) ra ñời. Các PLC ñời ñầu chỉ thực hiện các phép tính logic, tín hiệu vào là tín hiệu rời rạc. Hiện nay PLC còn thực hiện ñược các phép tính số học, logic và làm việc với tín hiệu vào là tín hiệu liên tục. PLC S7-200 là một trong những PLC mạnh của hãng Siemens. 6 PLC S7-200 gồm các phần chính sau: - Khối CPU. - Khối nhớ RAM, ROM, EPROM, EEPROM. - Khối vào – ra. - Khối nguồn. - Khối mở rộng. 1.1.2. Bộ nhớ PLC S7-200 Bộ nhớ của PLC thường có 3 vùng nhớ chính 1.1.2.1. Vùng nhớ chứa chương trình ứng dụng 1.1.2.2. Vùng nhớ chứa tham số 1.1.2.3. Vùng chứa các khối dữ liệu 1.1.3. Bộ ñiều rộng xung (PWM, PTO) CPU S7-200 có 2 ngõ ra xung tốc ñộ cao Q0.0, Q0.1, dùng cho việc ñiều rộng xung tốc ñộ cao trong các ứng dụng ñiều khiển thiết bị bên ngoài như ñiều khiển tốc ñộ ñộng cơ, ñiều khiển nhiệt ñộ v.v . 1.1.3.1. Điều rộng xung 50% (PTO) Để thực hiện việc phát xung tốc ñộ cao ở chế ñộ PTO trước hết ta phải thực hiện các bước ñịnh dạng sau:  Reset ngõ xung tốc ñộ cao ở chu kì ñầu của chương trình.  Chọn loại ngõ ra phát xung tốc ñộ cao Q0.0 hay Q0.1. 1.1.3.2. Điều rộng xung theo tỉ lệ (PWM) Để thực hiện việc phát xung tốc ñộ cao ở chế ñộ PWM trước hết ta phải thực hiện các bước ñịnh dạng sau:  Reset ngõ xung tốc ñộ cao ở chu kì ñầu của chương trình.  Chọn loại ngõ ra phát xung tốc ñộ cao Q0.0 hay Q0.1. 1.1.4. Bộ ñếm xung tốc ñộ cao (High-Speed Counter) 7 Bộ ñếm xung tốc ñộ cao ñếm các sự kiện tốc ñộ cao không phụ thuộc vào chu kì quét của CPU. Tần số ñếm cao nhất phụ thuộc vào loại CPU. Khi ñếm bằng hai pha, cả hai xung clock ñều có thể hoạt ñộng ở tốc ñộ cao nhất. Chúng có thể hoạt ñộng ở dạng nhân 1(1x) hoặc nhân 4 (4x) khi ñếm hai pha. 1.1.4.1. Hoạt ñộng Reset 1.1.4.2. Các chế ñộ hoạt ñộng Tùy từng loại ứng dụng mà ta có thể chọn nhiều chế ñộ ñọc xung tốc ñộ cao khác nhau, có tất cả 12 chế ñộ ñọc xung tốc ñộ cao như sau: * Chế ñộ 0,1,2: Dùng ñếm 1 pha với hướng ñếm ñược xác ñịnh bởi Bit nội. * Chế ñộ 3,4,5: Dùng ñếm 1 pha với hướng ñếm ñược xác ñịnh bởi Bit ngoại, tức là có thể chọn từ ngõ vào input. * Chế ñộ 6,7,8: Dùng ñếm 2 pha với 2 xung vào, 1 xung dùng ñể ñếm tăng và một xung ñếm giảm. * Chế ñộ 9,10,11: Dùng ñể ñếm xung A/B của Encoder 1.2. Tổng quan về Robot Trong phạm vi ñề tài này, tác giả tập trung vào việc nghiên cứu ñiều khiển cánh tay máy RRP. 1.3. Khảo sát tay máy 3 bậc tự do RRP 1.3.1. Quy tắc Denavit – Hartenberg (D-H) 1.3.2. Thiết lập phương trình ñộng học của tay máy robot 8 a. Bước 1: Hình 1.23: Mô hình cánh tay robot và các hệ trục tọa ñộ Gắn hệ toạ ñộ lên các khâu: - Đối với robot loại này các trục khớp ñều song song với nhau, các hệ toạ ñộ ñặt tại các tâm trục khớp. Khâu thứ hai có O2 ñặt tại tâm trục khớp ba và z2 hướng về phía các khâu như hình vẽ. + Khâu 1: Có O1 ñặt trên trục khớp thứ hai và có x1 hướng từ trục khớp thứ hai ñến trục khớp thứ ba và z1 nằm trên trục khớp thứ hai hướng từ dưới lên trên. Do ñó xác ñịnh ñược O1. Dựa vào quy tắc bàn tay phải ta xác ñịnh ñược y1. Ta thấy z1 song song với z2 nên O2 tịnh tiến so với O1 trên x1 một ñoạn a2 (Trans(a2, 0,0)) và xác ñịnh ñược y2 theo quy tắc bàn tay phải. + Từ O1 ta chon ñược O0 trên trục khớp một và z0 nằm trên trục khớp một hướng từ dưới lên trên. O1 chính là O0 tịnh tiến ñi một ñoạn a1 theo trục x0 (Trans(a1,0,0)) và y0 chọn theo quy tắc bàn tay phải. + Chọn O3: nằm trên tâm của trục khớp ba trùng với trục khớp thứ hai và có z3 cùng chiều với z2. Do ñó O3 chính là O2 tịnh tiến ñi một ñoạn d3 (Trans(0,0,d3)). Như vậy, việc gắn hệ toạ ñộ lên các khâu của robot ñã hoàn thành. 9 n θ b. Bước 2: Lập bảng thông số DH. Thông qua các phân tích trên ta xác ñịnh ñược các thông số DH của tay máy 3 bậc tự do RRP Khâu i θ i α a i d i 1 1 θ ∗ 0 1 a 0 2 2 θ ∗ 180 0 2 a 0 3 0 0 0 * 3 d c. Bước 3: Xác ñịnh các matrận A n Trên cơ sở các hệ toạ ñộ ấn ñịnh cho tất cả các khâu liên kết của Robot ta có thể thiết lập mối quan hệ giữa các hệ toạ ñộ nối tiếp nhau (n0); (n-1); (n) bởi các phép quay và tịnh tiến sau ñây: Quay quanh trục z n-1 một góc mộ Tịnh tiến dọc trục z n-1 một ñoạn d n Tịnh tiến dọc trục x n-1 một ñoạn a n Quay quanh trục xn một góc xoắn α n Bốn phép biến ñổi ñồng nhất này thể hiện quan hệ của hệ toạ ñộ thuộc khâu thứ n so với hệ toạ ñộ thuộc khâu thứ n-1 và tích của chúng ñược gọi là ma trận A. An = Rot(z,θ).Trans(0,0,0).Rot(x,α) os -sin cos sin sin acos sin cos cos -cos sin asin 0 sin cos d 0 0 0 1 n c A θ θ α θ α θ θ θ α θ α θ α α       =       Ta quy ước cách viết tắt các hàm lượng giác như sau: 11 cos θ =c ; 11 sin θ =s ; 22 cos θ =c ; 22 sin θ =s ; Từ matrận tổng quát An ta xác ñịnh ñược các matrận A n của Robot cụ thể như sau:             − = 1000 0100 0 0 1111 1111 1 sacs casc A             − − = 1000 0100 0 0 2222 2222 2 sacs casc A             = 1000 100 0010 0001 3 3 d A 10 d. Bước 4: Tính các ma trận biến ñổi thuần nhất + Matrận 33 2 AT = + Matrận 323 2 23 1 . AATAT == + Matrận 3213 1 13 . AAATAT == Như vậy:             = 1000 100 0010 0001 3 3 2 d T =                         − − = 1000 100 0010 0001 . 1000 0100 0 0 3 2222 2222 3 1 d sacs casc T             −− − = 1000 100 0 0 3 2222 2222 3 1 d sacs casc T             −− −             − = 1000 100 0 0 . 1000 0100 0 0 3 2222 2222 1111 1111 3 d sacs casc sacs casc T             −− +−−+ +−+− = 1000 100 0 0 3 1121221221212121 1121221221212121 3 d sascacsaccsssccs cascaccacsscsscc T Matrận T3 là matrận xác ñịnh hướng và vị trí của khâu chấp hành cuối. 3 1 13 1000 TA paon paon paon T zzzz yyyy xxxx =             = Ta có hệ phương trình ñộng học thuận của robot như sau:      = += −= 0 2121 2121 z y x n ssccn scccn ;      = −= += 0 2121 2121 z y x o ccsso cssco ;      −= = = 1 0 0 z y x a a a ;      −= +−= +−= 3 11212212 11212212 dp sascacsap cascaccap z y x 1.3.3. Động học ngược cho tay máy 3 bậc tự do dạng RRP Các thông số ñã biết chiều dài của khâu 1: L1 =17cm, chiều dài khâu 2: L2= 17cm. Góc gập ban ñầu của khâu 1 và khâu 2 là 30 0 . 11 Giả sử ñiểm A có tọa ñộ (x,y) nằm trong vùng làm việc của tay máy, thì khâu 1 sẽ quay 1 góc 1 φ và khâu 2 sẽ quay 1 góc 2 φ ñến vị trí của ñiểm A(x,y). Ở ñây các góc 1 2 , φ φ là góc quay của tay máy mà ta cần xác ñịnh.Chiếu xuống hệ trục oxy ta ñươc: Ở ñây ta có: 1 θ : là góc quay của khâu 1 so với vị trí ban ñầu. 2 θ : là góc quay của khâu 2 so với vị trí ban ñầu. L: là chiều dài từ góc tọa ñộ ñến vật. α : là góc hợp bởi L và Oy β : là góc hợp bởi L và l 2 γ : là góc hợp bởi l 1 và l 2 Với ñiểm A(x,y). Xét tam giác vuông OXA ta có: Chiều dài: 2 2 L x y= + Ở ñây ta có: 1 θ là góc quay của khâu 1 so với vị trí ban ñầu. A(x,y) L 45 l1 l2 -y y x -x α β γ 30 B(x 0 ,y 0 ) 12 2 θ : là góc quay của khâu 2 so với vị trí ban ñầu. L: là chiều dài từ góc tọa ñộ ñến vật. α : là góc hợp bởi L và oy β : là góc hợp bởi L và l 2 γ : là góc hợp bởi l 1 và l 2 Với ñiểm A(x,y). Xét tam giác vuông OXA ta có: Chiều dài: 2 2 L x y= + a) Trường hợp vật ở tọa ñộ có y < 0: tan( ) x a y α = 2 2 2 2 1 2 cos( ) 2. . l L l a l L β + − = 2 2 2 2 1 2 1 cos( ) 2. . l l L a l l γ + − = • Góc khớp thứ nhất cần quay là: θ1=α+β+45 0 • Góc khớp thứ hai cần quay là: θ2=γ-30 0 b) Trường hợp vật ở tọa ñộ có y = 0: 2 2 2 2 1 2 cos( ) 2. . l L l a l L β + − = 2 2 2 2 1 2 1 cos( ) 2. . l l L a l l γ + − = • Góc khớp thứ nhất cần quay là: θ1=β+45 0 +90 0 • Góc khớp thứ hai cần quay là: θ2=γ-30 0 c) Trường hợp vật ở tọa ñộ có y > 0: tan( ) y a x α = 2 2 2 2 1 2 cos( ) 2. . l L l a l L β + − = 2 2 2 2 1 2 1 cos( ) 2. . l l L a l l γ + − = • Góc khớp thứ nhất cần quay là: θ1=α+β+45 0 + 90 0 • Góc khớp thứ hai cần quay là: θ2=γ-30 0 1.4. Xử ảnh 1.4.1. Thay ñổi ñộ tương phản 1.4.2. Lọc nhiễu 1.4.2.1. Lọc không gian trung bình 1.4.2.2. Lọc thông thấp 1.4.2.3. Lọc nhiễu Gaussian 1.4.2.4. Lọc ñồng hình (Homomorphic filtering) 1.4.2.5. Lọc trung vị (Median filter) 1.4.2.6. Lọc giả trung vị (pseudo median filter) 13 1.4.2.7. Lọc ngoài 1.5. Phương pháp phân ñoạn ảnh 1.5.1. Phân ñoạn bằng một ngưỡng 1.5.2. Phương pháp cục bộ 1.5.3. Phương pháp chia tách, kết nối, và phát triển vùng 1.5.4. Phương pháp tách cây tứ phân (quadtree) 1.5.5. Phương pháp làm nổi biên ảnh 1.6. Ứng dụng MATLAB Trong luận văn này chúng tôi chỉ sử dụng 2 Toolbox là Image Processing Toolbox và OPC Toolbox. Image Processing Toolbox dùng cho việc xử ảnh lấy từ Camera ñể xác ñịnh tọa ñộ vật và OPC Toobox dùng ñể kết nối MATLAB với PLC. 1.6.1. Xử ảnh trong MATLAB 1.6.1.1. Các khái niệm cơ bản 1.6.1.2. Các loại ảnh 1.6.1.3. Cơ bản về xử ảnh bằng MATLAB * Đọc một ảnh ñồ họa: RGB=imread(‘rices.jpg’); Hàm imread sẽ nhận ra ñịnh dạng file ñể sử dụng từ tên file. Ta cũng có thể chỉ ra ñịnh dạng file như một tham số trong hàm imread. Matlab trợ giúp rất nhiều ñịnh dạng ñồ hoạ thông dụng chẳng hạn : BMP , GIF , JPEG , PNG , TIFF … * Hiển thị ảnh: + Dùng hàm imview Để hiển thị một ảnh ta có thể dùng hàm imview hiển thị ảnh nằm trong Workspace của Matlab. Ví dụ: ricesfig = imread(‘rices.jpg’); % Đọc ảnh vào imview (ricesfig) 14 Hàm imview chỉ hiện thị ảnh nằm trong thư mục làm việc của Matlab hoặc ñường dẫn. Nếu dùng hàm imview mà không chỉ ra thông số nào thì nó sẽ mở ra hộp thoại cho ta chọn file cần hiện thị. + Dùng hàm imshow Nếu ta chỉ ra một file mà chứa nhiều ảnh, hàm imview chỉ hiển thị ảnh ñầu tiên trong file ñó. Để xem tất cả các ảnh trong file, sử dụng hàm imread ñể nhập mỗi ảnh vào trong không gian làm việc của Matlab sau ñó gọi hàm imview nhiều lần ñể hiển thị mỗi ảnh riêng biệt. Ta có thể sử dụng hàm imshow thay cho imview. Ta sử dụng imshow ñể hiển thị một ảnh ñã ñược nhập vào trong không gian làm việc. Ví dụ : ricesfig = imread(‘rices.jpg’); % Đọc ảnh vào imshow (ricesfig) Ta cũng có thể chỉ ra tên của file ảnh như một tham số truyền vào cho hàm như sau : imshow (‘rices.jpg’) Khi sử dụng cấu trúc này thì dữ liệu ảnh không ñược nhập vào trong không gian làm việc. Tuy nhiên ,ta có thể mang ảnh vào trong không gian làm việc bằng cách sử dụng hàm getimage. Hàm này sẽ nhận dữ liệu ảnh từ handle của một ñối tượng ảnh hiện tại. Chẳng hạn ricefig = getimage; Lúc này ảnh sẽ ñược gán vào biến ricefig * Các hàm chuyển ñổi kiểu ảnh: Các hàm sau ñây ñược sử dụng trong việc convert ảnh: - dither: Tạo một ảnh nhị phân từ một ảnh cường ñộ ñen trắng VD: BW = dither(I) % Với I là một ảnh ñen trắng. Tạo một ảnh chỉ số từ một ảnh RGB VD: X =dither(RGB,MAP) %Ảnh chỉ số MAP không hơn 65536 màu. - gray2ind: Tạo một ảnh chỉ số từ một ảnh cường ñộ ñen trắng. 15 VD: I = imread('cameraman.tif'); [X, map] = gray2ind(I, 16); figure, imshow(X, map); - grayslice: Tạo một ảnh chỉ số từ một ảnh cường ñộ ñen trắng bằng cách ñặt ngưỡng. VD: I = imread('snowflakes.png'); X = grayslice(I,16); figure, imshow(I), figure, imshow(X,jet(16)) - im2bw: Tạo một ảnh nhị phân từ một ảnh cường ñộ , ảnh chỉ số hay ảnh RGB bằng cách ñặt ngưỡng ánh sáng. VD: BW = im2bw(X,map,0.4); % Ngưỡng 0.4 figure, imshow(X,map), figure, imshow(BW)% Hiển thị - ind2gray: Tạo một ảnh cường ñộ ñen trắng từ một ảnh chỉ số. VD: I = ind2gray(X,map); figure, imshow(X,map), figure, imshow(I); - ind2rgb: Tạo một ảnh RGB từ một ảnh chỉ số. - mat2gray: Tạo một ảnh cường ñộ ñen trắng từ dữ liệu trong một ma trận bằng cách lấy tỉ lệ giữ liệu. VD: I = imread('rice.png'); J = filter2(fspecial('sobel'), I); K = mat2gray(J); figure, imshow(I), figure, imshow(K) - rgb2gray: Tạo một ảnh cường ñộ ñen trắng từ một ảnh RGB. VD: I = imread('board.tif'); J = rgb2gray(I); figure, imshow(I), figure, imshow(J); - rgb2ind: Tạo một ảnh chỉ số từ một ảnh RGB. VD: RGB = imread('peppers.png'); [X,map] = rgb2ind(RGB,128); 16 figure, imshow(X,map) Hàm lấy biên: khoanh vùng biên vật như những lỗ trống trên nền ảnh. B = Bwboundaries(BW) VD: I = imread('rice.png'); BW = im2bw(I, graythresh(I)); [B,L] = bwboundaries(BW,'noholes'); imshow(label2rgb(L, @jet, [.5 .5 .5])) hold on for k = 1:length(B) boundary = B{k}; plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2) 1.6.1.4. Hệ thống toạ ñộ Một ảnh ñược cấu tạo từ ma trận các ñiểm ảnh. Các ñiểm ảnh trong một ảnh ñược sắp xếp có trật tự riêng. Do ñó vị trí của một ñiểm ảnh cũng sẽ có tọa ñộ riêng trong ảnh ñó. Trong Matlab thì có hai hệ tọa ñộ là tọa ñộ pixel và tọa ñộ không gian. 1.6.1.5. Phân tích ảnh Trong kỹ thuật phân tích ảnh thì có rất nhiều bước khác nhau, nhưng với yêu cầu của luận văn chúng tôi xin trình bày hai bước cơ bản trong khâu phân tích một ảnh. Đó là: phát hiện cạnh (Edge Detection) và tìm biên của vật (Boundary Tracing). 1.6.2. OPC Toolbox của MATLAB 1.6.2.1. Sơ lược OPC Toolbox Phần mềm OPC Toolbox là một phần mềm mở rộng khả năng trong môi trường MATLAB và SIMULINK. Chúng ta có thể tăng cường những ứng dụng với Toolbox với việc sử dụng hàm callback như: bắt ñầu nhận sự kiện, khai báo sự kiện, thay ñổi sự kiện… 17 1.6.2.2. Sử dụng OPC Toolbox Các hàm cơ bản của OPC Toolbox: * Tạo một Object kết nối với Server Object name = opcda( ‘locallhost’, ‘OPC Client Name’) VD: da = opcda(‘locallhost’, ‘S7200.OPCServer’) * Kết nối với Server: Connect( Object name) VD: Connect(da) * Ngừng kết nối với server: Disconnect( Object name) VD: Disconnect( da) * Tạo một nhóm ñể quản các biến: grp1 =addgroup( Object name) VD: grp1 =addgroup(da) * Tạo biến trong một nhóm: Tên biến = additm( Group name, ‘biến truy cập trên Server’) VD: itm1 = additm(grp1,McroWin.s7200.Start) * Xóa một Object: Delete ( object name) VD: Delete ( da) * Lưu một Object vào Workspace của Matlab: Save myopc “Oblect name” * Tải lên một Object: Load myopc * Ghi dữ liệu vào một biến: Write ( tên biến, giá trị của biến) * Đọc dữ liệu một biến: Read ( tên biến) * Ghi dữ liệu vào một biến: 18 Writeasync ( tên biến, giá trị của biến) * Đọc dữ liệu bất ñồng bộ một biến: Readasync ( tên biến) Chương 2 - THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG 2.1. Thiết kế mạch 2.1.1. Mạch nguồn Khối nguồn phải ñáp ứng các yêu cầu sau: - 5V cấp cho encoder hoạt ñộng với ñiện áp DC ổn ñịnh. - 12V cấp cho việc khiển relay và bộ phận kích dẫn FET ñể khiển motor hoạt ñộng. - 24V cấp nguồn cho PLC và cấp cho ñộng cơ . 2.1.2. Mạch chuyển ñổi ñiện áp PLC hoạt ñộng ở ñiện áp 24V DC nhưng mạch công suất hoạt ñộng ở 12V DC và Encoder ñọc tín hiệu xung hoạt ñộng ở 5V DC. Do vậy ñể giao tiếp giữa chúng với nhau cần phải có mạch chuyển áp. Linh kiện cơ bản của mạch là Opto quang. 2.1.3. Mach công suất Đây là một phần mạch công suất tiếp nhận tín hiệu từ PLC ñể khiển motor. Có thể hoạt ñộng theo ON/OFF hoặc ñiều xung. Đảo chiều ñộng cơ nhờ role. 2.1.4. Mạch ñảo chiều ñộng cơ ULN2803 ñược cấu tạo bên trong giống như một transistor NPN darlington có Emiter nối GND, Colector là ngõ ra, và Base là ngõ vào. Chỉ có tác dụng ñảo mức 1 thành 0. Còn muốn ñảo mức 0 thành 1 thì phải có ñiện trở kéo lên bên ngoài. 2.1.5. Mạch lấy tín hiệu xung từ encoder ñưa vào PLC Vì encoder có áp sử dụng là 5V, nên ngõ ra là tín hiệu xung 5V. Ta dùng opto ñể chuyển tín hiệu xung 5V của encoder thành tín hiệu xung 24V cấp cho PLC. 19 Khi xung encoder mức 0(0V) làm cho opto dẫn, và tín hiệu ngõ ra là 24V, và ngược lại khi xung encoder mức 1(5V) thì opto không dẫn, sẽ là 0V. 2.2. Thi công 2.2.1. Mô hình thi công tay máy 3 bậc tự do RRP 2.2.2. Mạch ñiều khiển 2.2.3. Không gian làm việc Tóm tắt kết nối phần cứng: J2, J3, J5, J6 là các jumper 4 kết nối tới các encoder. J7 là ngõ ra sau khi chuyển ñổi tín hiệu xung 5V của encoder thành 24V nhờ opto và ñưa vào PLC theo các chân: I0.0, I0.1 cho HSC0 encoder của khâu ñế I0.3, I0.4 cho HSC4 encoder của khâu 1 I0.6, I0.7 cho HSC1 encoder của khâu 2 Kết nối tới ngõ ra của PLC lần lượt là. PWM1 chân Q0.0 PWM2 chân Q0.1 PWM3 chân Q0.2 PWM4 chân Q0.3 Nam châm ñiện chân Q1.0 ROLE1 chân Q0.4 ROLE2 chân Q0.5 ROLE3 chân Q0.6 ROLE4 chân Q0.7 20 Chương 3 - XÂY DỰNG PHẦN MỀM 3.1. Lưu ñồ giải thuật cho toàn hệ thống START Xác ñịnh tâm của vật cần gắp Xác ñịnh tọa ñộ của vật trong trong hệ quy chiếu Giải ñộng học ngược Truyền dữ liệu cho PLC Thực hiện gắp vật Thực hiện ñặt vật Trở về vị trí ban ñầu END

Ngày đăng: 30/12/2013, 13:46

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan