• Không có kết quả nào được tìm thấy

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

N/A
N/A
Protected

Academic year: 2024

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

Copied!
13
0
0

Loading.... (view fulltext now)

Văn bản

(1)

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HC ĐÀ NNG

PHM HNG CÔNG

NGHIÊN CU ĐIU KHIN TAY MÁY DÙNG K THUT XNH

Chuyên ngành : T ĐỘNG HÓA Mã s : 60.52.60

TÓM TT LUN VĂN THC SĨ K THUT

Đà Nng - Năm 2010

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

(2)

MỞ ĐẦU 1. Tính cp thiết ca ñề 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 cu ñiu khin tay máy dùng k thut xnh” mà cụ thể là xử lý ả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. Mc ñích nghiên cu

- Nghiên cứu hai Toolbox trong MATLAB:

Image Processing Toolbox cho việc xử lý ả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.

- Nghiên cứu dùng máy tính ñể xử lý ảnh (cụ thể là xử lý 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 cu ñiu khin tay máy dùng k thut xnh”

3. Đối tượng và phm vi nghiên cu

- 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ử lý ảnh (cụ thể là xử lý 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ử lý ảnh và OPC Toolbox cho việc kết nối PLC.

4. Phương pháp nghiên cu

- 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 lý 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 hc và thc tin ca ñề tài

- Việc xử lý ả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.

(3)

- 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. Cu trúc lun 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Ở LÝ 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 LÝ THUYT 1.1. Lý thuyết PLC S7-200

Lý 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 lý 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. Gii thiu 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.

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 cha chương trình ng dng 1.1.2.2. Vùng nh cha tham s

1.1.2.3. Vùng cha các khi d liu 1.1.3. B ñiu rng 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. Điu rng 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. Điu rng 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 tc ñộ cao (High-Speed Counter)

(4)

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. Hot ñộng Reset 1.1.4.2. Các chế ñộ hot ñộ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. Tng 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. Kho sát tay máy 3 bc t do RRP 1.3.1. Quy tc Denavit – Hartenberg (D-H)

1.3.2. Thiết lp phương trình ñộng hc ca tay máy robot

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.

(5)

θ

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

a1

0

2

θ2

180

0 a2

0

3 0 0 0

d3*

c. Bước 3:

Xác ñịnh các matrận An

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 zn-1 một góc mộ Tịnh tiến dọc trục zn-1 một ñoạn dn Tịnh tiến dọc trục xn-1 một ñoạn an

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:

1 1=cosθ

c ; s1 =sinθ1; c2 =cosθ2; s2 =sinθ2;

Từ matrận tổng quát An ta xác ñịnh ñược các matrận An của Robot cụ thể như sau:









 −

=

1 0 0 0

0 1 0 0

0 0

1 1 1

1

1 1 1 1

1

s a c

s

c a s c A









= −

1 0 0 0

0 1 0 0

0 0

2 2 2 2

2 2 2 2

2

s a c s

c a s

c A









=

1 0 0 0

1 0 0

0 0 1 0

0 0 0 1

3

3 d

A

d. Bước 4:

Tính các ma trận biến ñổi thuần nhất + Matrận 3 3

2T =A

+ Matrận 3 2 3

2 2 3

1T = A . T = A A

+ Matrận T3 = A1.1T3 = A1A2A3 Như vậy:









=

1 0 0 0

1 0 0

0 0 1 0

0 0 0 1

3 3

2

T d

=

















= −

1 0 0 0

1 0 0

0 0 1 0

0 0 0 1 . 1 0 0 0

0 1 0 0

0 0

3 2

2 2

2

2 2 2

2

3 1

d s

a c

s

c a s

c T

=

1 0 0 0

1 0 0

0 0

3 2 2 2

2

2 2 2

2

3 1

d s a c

s

c a s

c T

=

1 0 0 0

1 0 0

0 0 .

1 0 0 0

0 1 0 0

0 0

3 2 2 2

2

2 2 2

2 1 1 1 1

1 1 1 1

3 d

s a c

s

c a s

c s a c s

c a s c T









+

− +

+

− +

=

1 0

0 0

1 0

0

0 0

3 1 1 2 1 2 2 1 2 2

1 2 1 2 1 2 1

1 1 2 1 2 2 1 2 2

1 2 1 2 1 2 1

3 d

s a s c a c s a c

c s s s c c s

c a s c a c c a c

s s c s s c c 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 1 3

1 0 0 0

T p A

a o n

p a o n

p a o n T

z z z z

y y y y

x x x x

=









=

Ta có hệ phương trình ñộng học thuận của robot như sau:





= +

=

=

0

2 1 2 1

2 1 2 1

z y x

n

s s c c n

s c c c n

;





=

= +

=

0

2 1 2 1

2 1 2 1

z y x

o

c c s s o

c s s c o

;





=

=

=

1 0 0

z y x

a a a

;





=

+

=

+

=

3

1 1 2 1 2 2 1 2

1 1 2 1 2 2 1 2

d p

s a s c a c s a p

c a s c a c c a p

z y x

1.3.3. Động hc ngược cho tay máy 3 bc t do dng 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à 300.

(6)

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à l2

γ : là góc hợp bởi l1 và l2

Với ñiểm A(x,y). Xét tam giác vuông OXA ta có:

Chiều dài: L=x2 +y2 Ở ñâ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(x0,y0)

θ

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à l2

γ : là góc hợp bởi l1 và l2

Với ñiểm A(x,y). Xét tam giác vuông OXA ta có:

Chiều dài: L=x2+y2 a) Trường hợp vật ở tọa ñộ có y < 0:

tan( x)

a y

α= 22 2 12

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=α+β+450

• Góc khớp thứ hai cần quay là: θ2=γ-300 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=β+450 +900

• Góc khớp thứ hai cần quay là: θ2=γ-300 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=α+β+450 + 900

• Góc khớp thứ hai cần quay là: θ2=γ-300 1.4. Xnh

1.4.1. Thay ñổi ñộ tương phn 1.4.2. Lc nhiu

1.4.2.1. Lc không gian trung bình 1.4.2.2. Lc thông thp

1.4.2.3. Lc nhiu Gaussian

1.4.2.4. Lc ñồng hình (Homomorphic filtering) 1.4.2.5. Lc trung v (Median filter)

1.4.2.6. Lc gi trung v (pseudo median filter)

(7)

1.4.2.7. Lc ngoài

1.5. Phương pháp phân ñon nh 1.5.1. Phân ñon bng mt ngưỡng 1.5.2. Phương pháp cc b

1.5.3. Phương pháp chia tách, kết ni, và phát trin 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 ni biên nh 1.6. ng dng 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ử lý ả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. Xnh trong MATLAB 1.6.1.1. Các khái nim cơ bn 1.6.1.2. Các loi nh

1.6.1.3. Cơ bn v xnh bng MATLAB

* Đọc mt nh ñồ ha:

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 …

* Hin 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)

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 chuyn ñổi kiu 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) % Vi I là mt nh ñen trng.

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.

(8)

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)% Hin 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);

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 thng 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 ca 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…

(9)

1.6.2.2. S dng 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 lý 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 cp 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 ca 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:

Writeasync ( tên biến, giá tr ca biến)

* Đọc dữ liệu bất ñồng bộ một biến:

Readasync ( tên biến)

Chương 2 - THIT K VÀ THI CÔNG PHN CNG 2.1. Thiết kế mch

2.1.1. Mch ngun

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. Mch chuyn ñổi ñin á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 sut

Đâ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. Mch ñảo chiu ñộ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. Mch ly tín hiu 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.

(10)

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 bc t do RRP 2.2.2. Mch ñiu khin

2.2.3. Không gian làm vic Tóm tt kết ni phn cng:

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

Chương 3 - XÂY DNG PHN MM 3.1. Lưu ñồ gii thut cho toàn h thng

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

(11)

3.2. Lưu ñồ gii thut cho xnh

START

Lấy ảnh từ Camera

Chuyển từ ảnh màu sang ảnh xám

Loại bỏ những ñiểm trắng nhỏ Chuyển từ ảnh xám sang ảnh nhị

phân

Lấp ñầy lỗ trống so với nền ảnh

Lấy biên vật

Lấy tâm vật dựa vào biên ñã xác ñịnh

RUN = 1?

END

Y N

Hiển thị kết quả

3.3. Lưu ñồ gii thut cho chương trình PLC 3.3.1. Lưu ñồ gii thut cho chương trình chính

START

XÓA CÁC BIT KHỞI TẠO COUNTER KHỞI TẠO ĐIỂU XUNG NẠP GIÁ TRỊ BAN ĐẦU

CHO WORD

LOAD GIÁ TRỊ ĐIÊU XUNG LẤY GIÁ TRỊ COUNTER CHUYỂN ĐỔI

CÁC GIÁ TRỊ

START=1?

Y N

MANUAL=0?

Y

N

ĐIỀU KHIỂN BẰNG TAY

END

CONTROL

=10?

Y

RESET COUNTER

CONTROL=

11?

N

Y

VITRI_BANDAU

N

CHẠY GẮP VẬT

(12)

3.3.2. Lưu ñồ gii thut cho chương trình con 3.3.2.1. Chương trình con quay v v trí ban ñầu

START

CÔNG TẮC 1=1?

Y

N

TẮT MOTOR1, ROLE1

BẬT MOTOR1, ROLE1

CÔNG TẮC 2=1?

Y

N

TẮT MOTOR2, ROLE2

BẬT MOTOR2, ROLE2

CÔNG TẮC 3=1?

Y

N

TẮT MOTOR3, ROLE3

BẬT MOTOR3, ROLE3

END

3.3.2.2. Chương trình con khi to Motor

3.3.2.3. Chương trình con Reset các Byte s dng

START

KHỞI TẠO ĐIỀU XUNG Q0.0

KHỞI TẠO ĐIỀU XUNG Q0.1

END

START

END

CHO CÁC BYTE LƯU GIÁ TRỊ HSC =0

CHO CÁC BYTE LƯU GIÁ TRỊ GẮP VẬT CỦA KHÂU 1,2,3 =0

CHO CÁC BYTE LƯU GIÁ TRỊ ĐẬT VẬT CỦA KHÂU 1,2,3 =0

CHO CÁC BYTE LƯU GIÁ TRỊ NĂNG =0

CHO CÁC BYTE LƯU GIÁ TRỊ ĐIỀU KHIỂN =0

(13)

3.3.2.4. Chương trình con reset Counter

3.3.2.5. Chương trình con dng Motor

START

END

KHỞI TẠO LẠI COUNTER 1 (ĐẾM ENCODER KHÂU 3) KHỞI TẠO LẠI COUNTER 4 (ĐẾM

ENCODER KHÂU 2) KHỞI TẠO LẠI COUNTER 0 (ĐẾM

ENCODER KHÂU 1)

START

END

XÓA BIT MOTOR, ROLE

XÓA BIT CHẠY TRONG CHƯƠNG TRÌNH

XÓA BIT ĐIỀU XUNG

KT LUN VÀ KIN NGH

1. Nhng kết qu ñạt ñược ca lun văn

- Luận văn hoàn thành ñúng thời hạn và ñạt ñược yêu cầu ñặt ra.

- Thi công phần cứng gọn gàng, mạch hoạt ñộng ổn ñịnh ñáp ứng yêu cầu của luận văn. Khi tay máy hoạt ñộng mặc dù vấn ñề ñiều khiển vẫn chưa thực sự tối ưu nhưng tay máy vẫn gắp ñược vật.

- Đề tài này không phải là một ñề tài dễ, vì có nhiều bài toán cần phải giải quyết. Với kết quả ñạt ñược thì có thể xem như cơ bản giải quyết các vấn ñề cốt lõi, nhưng cần phát triển hơn nữa.

- Sau khi hoàn thành luận văn, tôi ñã học tập ñược rất nhiều nhiều kiến thức về PLC, lý thuyết về tay máy robot, về xử lý ảnh trong Matlab v.v… Chúng sẽ là hành trang quý báu cho công việc sau nay.

2. Nhng vn ñề cn tiếp tc nghiên cu và thc hin

- Mặc dù luận văn hoàn thành mục tiêu ñề ra nhưng ñể ứng dụng thực tế thì còn khoảng cách rất lớn. Do vậy cần phải phát triển hơn nữa.

- Điều khiển tối ưu lộ trình của tay máy.

- Sử dụng cảm biến góc với ñộ phân giải cao hơn và kết cấu cơ khí tốt hơn ñể táy máy khi hoạt ñộng ít bị sai số góc.

- Thiết kế và ñiều khiển tay máy với số bậc tự do lớn hơn 3 bậc.

- Xử lý ảnh cần phải tốt hơn, loại bỏ ñược nhiễu do ánh sáng và màu nền gây ra.

Tài liệu tham khảo

Tài liệu liên quan