ĐỒ ÁN TỐT NGHIỆP Thiết kế điều khiển Robot Delta phân loại sản phẩm và sắp xếp theo trật tự có khớp xoay
NỘI DUNG ĐỒ ÁN
ĐỒ ÁN TỐT NGHIỆP
Ngành: CNKT Điều khiển và Tự động hóa
PHÂN LOẠI SẢN PHẨM ỨNG DỤNG ROBOT
TÊN ĐỀ TÀI: PHÂN LOẠI SẢN PHẨM ỨNG DỤNG ROBOT
II. NHIỆM VỤ
-
Các tài liệu ban đầu:
- Tài liệu về xử lý ảnh và thư viện EmguCV
- Tài liệu về mô hình robotDelta
- Tài liệu về bộ điều khiển PLC, Arduino
- Tài liệu về động cơ servo và driver
-
Nội dung thực hiện:
- Tìm hiểu cơ sở lý thuyết và kết nối phần điện
- Cải tiến robot Delta
- Viết chương trình xử lý ảnh nhận diện màu sắc và góc xoay
- Viết chương trình điều khiển robot Delta
- Hoàn thiện phần cứng và kiểm chứng mô hình
- Chạy thử nhiều lần, chỉnh sửa hệ thống
- Nhận xét và kết luận
MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP. i
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP. ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.. iii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN.. iv
LỜI CẢM ƠN.. v
LỜI CAM ĐOAN.. vi
TÓM TẮT.. vii
ABSTRACT.. viii
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN.. 1
1.1 Lý do chọn đề tài1
1.2 Mục tiêu nghiên cứu. 1
1.3 Đối tượng và phạm vi nghiên cứu. 1
1.3.1 Đối tượng nghiên cứu. 1
1.3.2 Phạm vi nghiên cứu. 2
1.4 Cách tiếp cận, phương pháp nghiên cứu. 2
1.4.1 Cách tiếp cận. 2
1.4.2 Phương pháp nghiên cứu. 2
1.5 Nội dung nghiên cứu. 2
1.6 Bố cục cuốn báo cáo. 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.. 1
2.1 Giới thiệu Robot Delta. 1
2.2 Tổng quan về công nghệ xử lý ảnh. 2
2.2.1 Các khái niệm về xử lí ảnh. 2
2.2.2 Màu RGB.. 2
2.2.3 Không gian màu HSV.. 2
2.2.4 Xử lý hình thái học. 4
2.3 Các phần mềm liên quan. 7
2.3.1 Phần mềm Visual Studio. 7
2.3.2 Giới thiệu thư viện Emgu CV. 8
2.3.3 MX Component9
2.3.4 Bộ điều khiển PID. 14
2.3.5 Tổng quan về PLC.. 15
CHƯƠNG 3: NỘI DUNG THỰC HIỆN.. 17
3.1 Phương trình động học robot Delta. 17
3.1.1 Cấu tạo robot song song Delta. 17
3.1.2 Động học thuận Robot18
3.1.3 Động học nghịch. 21
3.2 Thiết kế và thi công hệ thống. 24
3.2.1 Gia công băng tải24
3.2.2 Gia công khung robot25
3.2.3 Gia công cánh tay robot26
3.2.4 Gia công bộ phận truyền động. 28
3.2.5 Gia công phần khớp xoay. 29
3.3 Lựa chọn thiết bị30
3.3.1 Công tắc hành trình. 30
3.3.2 Cơ cấu hút vật31
3.3.3 Bơm hút chân không Micro 24V (Micro Air)31
3.3.4 Động cơ cho khớp xoay. 32
3.3.5 Nguồn tổ ong. 33
3.3.6 Điều khiển động cơ L298. 34
3.3.7 Arduino mega 2560. 34
3.3.8 Sơ đồ kết nối động cơ. 35
3.3.9 Động cơ bước. 36
3.3.10 Driver điều khiển động cơ Micro step TB6600. 37
3.3.11 Sơ đồ kết nối động cơ bước với Arduino. 38
3.3.12 Driver MR-J2S-10A.. 38
3.3.13 Động cơ AC servo HC-MFS13. 40
3.3.14 Hộp số giảm tốc. 43
3.3.15 Wedcam Xiaomi Youpin Xiao. 44
3.3.16 PLC Mitsu FX5UJ. 45
3.4 Thi công hệ thống. 47
3.4.1 Thi công tủ điện. 47
3.4.2 Mô hình hoàn chỉnh của robot48
3.5 Giải thuật và chương trình điều khiển. 49
3.5.1 Quy trình điều khiển. 49
3.5.2 Quy trình xử lý ảnh. 51
3.5.3 Phương pháp chuyển đổi tọa độ khung hình sang tọa độ của hệ robot52
3.5.4 Thiết kế giao diện điều khiển. 54
CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC.. 57
4.1 Kết quả thực hiện. 57
4.1.1 Phần cứng. 57
4.1.2 Phần mềm.. 57
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.. 62
- Kết luận. 62
1.1 Mục tiêu đã đạt được. 62
1.2Hạn chế còn tồn tại62
- Hướng phát triển. 62
TÀI LIỆU THAM KHẢO.. 63
Phụ lục 1: Chương trình Arduino tiêu biểu. 64
Phụ lục 2: Chương trình Visual studio tiêu biểu. 66
DANH MỤC HÌNH ẢNH
Hình 2. 1: Robot delta dùng khớp xoay.1
Hình 2. 2: Robot delta dùng khớp trượt.2
Hình 2. 3: Hệ màu RGB.2
Hình 2. 4: Thông số H (hue) về vùng màu.3
Hình 2. 5: Thông số S (saturation) về độ bão hòa.3
Hình 2. 6: Thông số B (brigh) về độ sáng.3
Hình 2. 7: Mối liên hệ giữa thông số S và V (saturation và Value).4
Hình 2. 8: Phép toán giãn nở ảnh.4
Hình 2. 9: Phép toán co ảnh.5
Hình 2.10: Hình ảnh sau khi đã được co và dãn ảnh.5
Hình 2. 11: Một số vi dụ về vật thể sau khi được nhận diện.6
Hình 2. 12: Biểu tượng phần mềm ở một số phiên bản.7
Hình 2. 13: Giao diện khi mở phần mềm.10
Hình 2. 14: Thực hiện khởi tạo Logical station number.11
Hình 2. 15: Chọn kiểu giao tiếp và CPU phù hợp.11
Hình 2. 16: Chọn Adapter tương ứng.12
Hình 2. 17: Chọn loại Station thích hợp.12
Hình 2. 18: Đặt tên cho thiết bị.13
Hình 2. 19: Sau khi hoàn thành cài đặt Communication.13
Hình 2. 20: Sơ đồ thuật toán PID.14
Hình 2. 21: Biểu trưng của phần mềm GX Works3.16
Hình 3. 1: Cấu tạo robot Delta.17
Hình 3. 2: Mô hình động học robot Delta.18
Hình 3. 3: Giao điểm 3 hình cầu.19
Hình 3. 4: Tọa độ các điểm hình chiếu trên mặt phẳng Oxy.19
Hình 3. 5: Các thông số về mô hình robot.21
Hình 3. 6: Mặt phẳng YZ.22
Hình 3. 7: Hệ tọa độ quy chiếu.23
Hình 3. 8: Khung băng tải.25
Hình 3. 9: Khung cố định robot.25
Hình 3. 10: Mặt đế của khung robot.26
Hình 3. 11: Khớp bi cầu.27
Hình 3. 12: Cánh tay robot delta.27
Hình 3. 13: Cánh tay đòn của cánh tay robot.28
Hình 3. 14: Cơ cấu truyền động của robot.28
Hình 3. 15: Thiết kế khớp xoay.29
Hình 3. 16: Khớp xoay sau khi thiết kế.29
Hình 3. 17: Khớp xoay thực tế.30
Hình 3. 18: Công tắc hành trình.30
Hình 3. 19: Giác hút.31
Hình 3. 20: Đông cơ hút chân không.31
Hình 3. 21: Động cơ DC giảm tốc GA25 Encoder 60RPM.32
Hình 3. 22: Sơ đồ dây của động cơ GA25.33
Hình 3. 23: Nguồn tổ ông.33
Hình 3. 24: Sơ đồ dây của một số nguồn tổ ông.33
Hình 3. 25: Động cơ LM298.34
Hình 3. 26: Arduino 2560.35
Hình 3. 27: Sơ đồ kết nối động cơ GA25, LM298 và arduino.36
Hình 3. 28: Động cơ step.36
Hình 3. 29: Driver điều khiển động cơ step TP6600.37
Hình 3. 30: Sơ đồ kết nối TP6600 với động cơ step.38
Hình 3. 31: Sơ đồ kết nối step và arduino.38
Hình 3. 32: Driver MR-J2S-10A.39
Hình 3. 33: Bố trí thứ tự chận cả jack kết nối.39
Hình 3. 34: Động cơ servo HC-MFS13.41
Hình 3. 35: Cấu tạo encoder.42
Hình 3. 36: Sơ đồ kết nối Driver MR-J2S-10A và sMotor HC-MFS13.43
Hình 3. 37: Hộp số giảm tốc.43
Hình 3. 38: Webcam XIAOVV HD USB WEBCAM.45
Hình 3. 39: Hình dạng của PLC FX5UJ.45
Hình 3. 40: Bố trí sơ đồ chân PLC.47
Hình 3. 41: Tủ điều khiển.47
Hình 3. 42: Sơ đồ kết nối PLC với các thiết bị.48
Hình 3. 43: Mô hình thực tế của hệ thống.48
Hình 3. 44: Quy trình điểu khiển robot.50
Hình 3. 45: Lưu đồ xử lý ảnh.51
Hình 3. 46: Hệ tọa độ quy đổi.52
Hình 3. 47: Trang khởi tạo cho giao diện điều khiển.53
Hình 3. 48: Chế độ điều khiển manual.54
Hình 3. 49: Chế độ điểu khiển Auto.54
Hình 3. 50: Trang cài đặt các thông số ban đầu.55
Hình 4. 1: Tổng quan về hệ thống.56
Hình 4. 2: Nhận dạng vật màu xanh.57
Hình 4. 3: Nhận dạng vật màu đỏ.57
Hình 4. 4: Nhận dạng vật màu vàng.58
Hình 4. 5: Nhận dạng vật màu đó với góc xoay.58
Hình 4. 6: Nhận dạng vật màu xanh với góc xoay.59
Hình 4. 7: Robot đang tiến hành gắp vật màu đỏ.59
Hình 4. 8: Robot hạ và thả vật.60
Hình 4. 9: Robot hút vật màu xanh.60
DANH MỤC CÁC TỪ VIẾT TẮT
AC: Alternating Current
DC: Direct Current
GND: Ground
HSV: Hue, Saturation, Value
IDE: Integrated Design Environment
LS: Limit Switch
NC: Normally Close
NO: Normally Open
PC: Personal Computet
PID (Proportional Integral Derivative)
PLC: Programmable Logic Controller
PWM: Pulse-width modulation
RGB: Red Green & Blue
USB: Universal Serial Bus
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Lý do chọn đề tài
Trong quá trình công nghiệp hóa hiện đại hóa, các nhà khoa học đã nghiên cứu chế tạo các loại robot để phục vụ sản xuất. Với quá trình phát triển của các robot công nghiệp, loại robot mới ra đời thay thế dần các loại robot trước đây, đó là robot song song, với đặc tính nổi trội so với robot cổ điển như:
- Khả năng chịu tải lớn.
- Độ cứng vững cao do kết cấu hình học của chúng hợp lí.
- Các lực tác động đồng thời được phân bố đều cho các chân, đồng thời lực tác động lên các chân của robot đều là lực kéo (hay nén) nhờ các cấu trúc của robot.
- Các robot song song không cần làm việc trên bệ đỡ và có thể di chuyển tới mọi nơi trong môi trường sản xuất do có khối lượng và kích thước tương đối nhỏ.
- Năng suất làm việc cao.
- Giá thành robot song song sử dụng trong gia công rẻ hơn nhiều so với các máy CNC có tính năng tương đương.
Với tính ưu việt cao, các robot song song ngày càng thu hút được nhiều nhà khoa học nghiên cứu và ứng dụng rộng rãi các loại robot trong nhiều lĩnh vực.
Chính vì những lý do trên, chúng em quyết định chọn đề tài “Phân loại sản phẩm ứng dụng robot” cụ thể là sử dụng robot Delta để phân loại sản phẩm một cách linh hoạt dựa vào màu sắc và góc xoay của sản phẩm, ứng dụng trong các dây chuyền sản xuất.
1.2 Mục tiêu nghiên cứu
Mục tiêu nghiên cứu của đề tài là chế tạo thành công robot Delta có khả năng phân loại sản phẩm linh hoạt theo màu sắc và sắp xếp sản phẩm theo trật tự.
1.3 Đối tượng và phạm vi nghiên cứu
1.3.1 Đối tượng nghiên cứu
- Nghiên cứu tổng quan về robot song song.
- Nghiên cứu lý thuyết và giải bài toán động học của robot song song
- Nghiên cứu và thiết kế và chế tạo mô hình cơ khí của robot song song. Nghiên cứu lựa chọn và chế tạo các mạch điện sử dụng để điều khiển robot
- Thuật toán xử lý ảnh để phân loại sản phẩm và tính toán góc xoay
- Phần mềm trên máy tính để tính toán xử lý ảnh và tính động học của robot để điều khiển các động cơ, điều khiển băng tải, viết giao diện chương trình điều khiển cho hệ thống
1.3.2 Phạm vi nghiên cứu
- Nghiên cứu tổng quan về robot song song, cụ thể là robot Delta.
- Nghiên cứu lý thuyết và giải bài toán động học của robot Delta.
- Nghiên cứu, thiết kế và chế tạo mô hình cơ khí của robot Delta. Nghiên cứu lựa chọn sử dụng động cơ AC Servo cho robot Delta.
- Thuật toán xử lý ảnh chuyển hệ màu sang HSV tiến hành các bước xử lý ảnh để phân loại sản phẩm theo màu sắc và tính toán góc xoay
- Phần mềm trên máy được viết bằng ngôn ngữ lập trình C#, dùng để tính toán động học và xử lý ảnh, sau đó thông qua phần mềm MX Component để kết nối với phần mềm điều khiển PLC GX Works3 và kết nối với Arduino tiến hành điều khiển robot và khớp xoay
1.4 Cách tiếp cận, phương pháp nghiên cứu
1.4.1 Cách tiếp cận
- Tiếp cận các lý thuyết liên quan như lý thuyết về xử lý ảnh, lý thuyết vể robot, lý thuyết điều khiển động cơ bước, lý thuyết điều khiển AC Servo, lý thuyết điều khiển động cơ giảm tốc……
- Tiếp cận theo cách ứng dụng các lý thuyết ở trên để phát triển một sản phẩm robot Delta demo có thể lắp ráp thử nghiệm thực tế
1.4.2 Phương pháp nghiên cứu
Đề tài sử dụng tổng hợp các phương pháp nghiên cứu sau:
- Phương pháp nghiên cứu lý thuyết
- Phương pháp thực nghiệm
1.5 Nội dung nghiên cứu
- Tổng hợp tài liệu về tính toán động học thuận và nghịch của robot Delta, từ đó xây dựng thuật toán giải bài toán động học thuận/ động học nghịch.
- Tìm hiểu tài liệu về điều khiển động cơ AC Servo, tài liệu sử dụng các phẩn mềm liên quan (C#.NET, GX Works3, Arduino, MX Component)
- Tính toán thiết kế và cải tiến mô hình cơ khí cho robot đảm bảo độ chính xác và độ vững cứng cần thiết, đáp ứng nhu cầu điều khiển linh hoạt, chính xác.
- Chế tạo mô hình thực nghiệm robot Delta
- Tìm hiểu các phương pháp điều khiển, xây dựng thuật toán và chương trình điều khiển.
- Tìm hiểu về phương pháp xử lý ảnh để phân loại sản phẩm, góc lệch so với băng tải.
- Điều khiển thực hiện các công việc yêu cầu, cụ thể là nhận diện phân loại được màu sắc, bỏ vật vào đúng vị trí, khi vật lệch một góc bất kì thì sử dụng khớp xoay để sắp xếp vật đúng vị trí.
1.6 Bố cục cuốn báo cáo
Nội dung của cuốn báo cáo bao gồm 5 phần:
Chương 1: Giới thiệu tổng quan
Chương 2: Cơ sở lý thuyết
Chương 3: Nội dung thực hiện
Chương 4: Kết quả đạt được
Chương 5: Kết luận và hướng phát triển
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu Robot Delta
Khái niệm robot có cấu trúc song song được Gough và Whitehall đưa ra vào năm 1962. Ngày nay, Delta robot (robot song song là một loại robot được sử dụng nhiều trong công nghiệp, đặc biệt là khâu phân loại và đóng gói sản phẩm nhờ vào đặc tính có tốc độ và độ chính xác cao).
Robot Delta có cơ cấu động học song song ba bậc tự do, cấu trúc vòng kín. Trong đó có 3 nhánh, với mỗi nhánh, một đầu được nối vào giá di động thông qua cơ cấu hình bình hành. Với cấu trúc hình học như vậy nên giá di động luôn định hướng và chỉ có thể chuyển động tịnh tiến theo ba trục XYZ.
Dựa vào đặt tính của các khớp của robot mà ta có thể phân loại robot delta làm 2 dạng chính:
- Robot delta hoạt động theo 3 khớp xoay: đối với loại này thường được ứng dụng để gắp và thả các vật có kích thước vừa phải từ trên các băng truyền để ứng dụng vào việc phân loại cũng như để đóng gói. Bên cạnh đó, nó còn được ứng dụng trong các dây chuyển sản xuất thực phẩm và y học.
Hình 2. 1: Robot delta dùng khớp xoay.
- Robot hoạt động theo kiểu các khớp trượt: Đa phần loại này được sử dụng trong các loại máy in 3D.
Hình 2. 2: Robot delta dùng khớp trượt.
2.2 Tổng quan về công nghệ xử lý ảnh
2.2.1 Các khái niệm về xử lí ảnh
Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý là ảnh. Đây là một phân ngành khoa học mới rất phát triển trong những năm gần đây. Xử lý ảnh gồm 4 lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh.
2.2.2 Màu RGB
Mô hình màu RGB sử dụng mô hình bổ sung trong đó ánh sáng đỏ, xanh lục và xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo thành các màu khác. Từ viết tắt RGB trong tiếng Anh có nghĩa là đỏ (red), xanh lục (green) và xanh lam (blue), là ba màu gốc trong các mô hình ánh sáng bổ sung.
Hình 2. 3: Hệ màu RGB.
2.2.3 Không gian màu HSV
Không gian màu HSV không giống như màu RGB là sử dụng các hệ màu cơ bản, HSV gần gũi với người sử dụng về cách cảm nhận màu sắc.
Không gian màu HSV (còn được gọi là HSB) là một phương thức để mô tả màu sắc một cách tự nhiên.
Bánh xe màu HSV được mô tả dưới dạng hình nón hoặc hình trụ, nhưng luôn có 3 thành phần sau:
- H: (Hue) Vùng màu: phần màu của mô hình được biểu thị dưới dạng số từ 0 đến 360 độ. Trong đó màu đỏ (0-60), màu vàng (60-120), màu xanh lá (120-180), màu cam (180-240), màu xanh da trời (240-300) và cuối cùng là màu đỏ tươi (300-360).
-
Hình 2. 4: Thông số H (hue) về vùng màu.
- S: (saturation) Độ bão hòa màu: hay còn được xem là lượng màu xám trong màu cụ thể nào đó, được biểu diễn từ 0 đến 100 phần trăm. Thành phần này nếu được giảm về 0 sẽ tạo ra màu sắc có sắc xám, màu nhạt do mức bão hòa thấp và tạo ra hiệu ứng mờ dần (trong một số tài liệu độ bão hòa sẽ được xuất hiện dưới phạm vi từ0 đến 1), khi độ bão hào đạt 100% sẽ tạo ra màu tinh khiết mang tính chất của màu được chọn ở Hue (H).
Hình 2. 5: Thông số S (saturation) về độ bão hòa.
- B: (hay V): (Bright hay Value) Độ sáng: giá trị độ sáng được sử dụng kết hợp với độ bão hòa và mô tả độ sáng hoặc cường độ của màu sắc từ 0-100 phần trăm, trong đó 0 là hoàn toàn đen và 100 là sáng nhất cho thấy màu sắc nhất.
Hình 2. 6: Thông số B (brigh) về độ sáng.
Hình 2.6 được tạo ra để thể hiện mối quan hệ giữa các thành phần trong hệ màu HSV, với giá trị màu được chọn là màu đỏ và mối liên hệ giữa độ bão hòa (S), độ sáng (V) thông qua 2 trục thẳng đứng và ngang.
Hình 2. 7: Mối liên hệ giữa thông số S và V (saturation và Value).
Trong luận văn nhóm đã sử dụng các frame ảnh mà mỗi pixel ảnh có một độ sâu là 8 bít (256) từ đây ta có thể chuyển đổi các giá trị H, S, V thành các khoảng giá trị tương ứng là [0,255] thay vì [0,360] ở H cũng như [0,1] ở S và V.
Để thuận tiện cho việc nhận diện vật thể ta sử dụng hàm inRang để chuyển từ ảnh hiện có sang ảnh nhị phân.
Lý do chúng em sử dụng không gian màu HSV để phát hiện và tạo ngưỡng màu trên RGB hay BGR là HSV mạnh mẽ hơn đối với các thay đổi ánh sáng bên ngoài. Điều này có nghĩa là trong trường hợp ánh sáng bên ngoài thay đổi nhỏ (chẳng hạn như bóng mờ, v.v.), giá trị Hue thay đổi tương đối ít hơn giá trị RGB.
2.2.4 Xử lý hình thái học
2.2.4.1 Phép toán giãn nở (Dilation)
Phép toán giãn nở (Dilation) là một trong các hoạt động cơ bản trong hình thái toán học. Phép toán này có tác dụng làm cho đối tượng ban đầu trong ảnh tăng lên về kích thước (giãn nở ra).
Hình 2. 8: Phép toán giãn nở ảnh.
2.2.4.2 Phép toán co (Erosion)
Phép toán co (Erosion) là một trong hai hoạt động cơ bản (khác phép giãn nở) trong hình thái học có ứng dụng trong việc giảm kích thước của đối tượng, tách rời các đối tượng gần nhau, làm mảnh và tìm xươngcủa đối tượng.
Hình 2. 9: Phép toán co ảnh.
Trong luận văn, phép co sử dụng phần tử có kích thước 8x8 để phù hợp với kích thước vật mẫu và khung hình nhắm loại bỏ các điểm nhiễu, dễ dàng tách vật ra khỏi background giữa các vật với nhau. Sau khi thực hiện phép co ta thực hiện phép dãn để đưa ảnh về đúng kích thước ban đầu. Trải qua phép co và dãn thì vật thể thì ảnh nhị phân đã loại bỏ được một phần lớn nhiễu, phần lồi lõm quanh đường bao của vật thể, giúp đường bao các đối tượng trong ảnh trở nên mượt mà hơn. Luận văn ta sử dụng 2 lần co ảnh và 2 lần dãn ảnh.
Hình 2.10: Hình ảnh sau khi đã được co và dãn ảnh.
2.2.4.3 Contours.
Là một đường cong khép kín nối các điểm liên tục (trên đường viền bao), các điểm trên countour có cùng giá trị màu và cường độ. Contour là một công cụ hữu dụng trong phân tích hình dáng, phát hiện đối tượng và nhận dạng. Tìm contour giống như tìm vật thể trắng từ nền đen. Do đó, vật thể nên có màu trắng và nền nên có màu đen.
Hình 2. 11: Một số vi dụ về vật thể sau khi được nhận diện.
Trong đề tài, ảnh sau khi được khử khử nhiễu và làm mịn đường sẽ được áp dụng hàm FindContours để tìm kiếm những đường bao của vật mẫu trong ảnh nhị phân. Cách sử dụng để tìm Contour là RetrType.Ccomp. Số điểm bao sẽ được lấy ra dưới dạng chainApproxSimple.
2.2.4.4 Moments
Image Moment là giá trị trung bình có trọng số cụ thể nhất định của cường độ pixel hình ảnh bào gồm một số thuộc tính cụ thể của hình ảnh, như bán kính, diện tích, tâm…
Để tìm ra tâm của một vật ta sử dụng công thức
Trong đó
được coi là tọa độ tâm của vật trong khung ảnh.
được coi là tọa độ tâm của vật trong khung ảnh.
là đại lượng thể hiện các điểm area (có thể được xem là diện tích của dối tượng).
vàlần lượt là các giá trị theohoặcđể khi phép toán được thực hiện ta sẽ rút ra được cường độ các điều ảnh, các điểm ảnh này thường đều bằng nhau.
Với giá trị củađược lấy ra từ công thức sau:
Với được xem là tọa độ điểm ảnh, là cường độ điểm ảnh.
Đối với luận văn ta tính toán các moments của vùng thuộc contour có diện tích phù hợp với kích thước vật thể được phân loại. Từ đó ta xác định được vị trí thực tế của vật thể trong khung ảnh để tiến hành phân loại.
2.3 Các phần mềm liên quan
2.3.1 Phần mềm Visual Studio
Visual Studio hay gọi đầy đủ là Microsoft Visual Studio. Đây là một phần mềm hỗ trợ hàng đầu cho công việc lập trình website do Microsoft phát triển. Là công cụ hỗ trợ đang nắm giữ vị trí số một thế giới, hiện tại vẫn chưa có phần mềm đối thủ nào có thể thay thế được nó.
Là một IDE được sản xuất bởi Microsoft, nhiều người thường gọi Visual Studio như một trình soạn thảo mã nổi tiếng được nhiều người sử dụng nhất thế giới. Lý do là vì phần mềm này được hỗ trợ nhiều ngôn ngữ lập trình khác nhau, thông dụng nhất là VB+ và C#. Người thiết kế giao diện bằng Visual Studio sẽ thoải mái lựa chọn những ngôn ngữ lập trình quen thuộc để phát triển phần mềm. Ngoài ra, Visual Studio còn dùng để phát triển các phần mềm của Microsoft, các trang web, dịch vụ web và ứng dụng web.
Đến nay, Microsoft đã cho ra đời nhiều phiên bản phần mềm khác nhau để phục vụ nhu cầu sử dụng đa dạng của người dùng. Các bạn có thể dễ dàng lựa chọn những phiên bản tương thích với cấu hình máy và giao diện phù hợp mục đích sử dụng.
Hình 2. 12: Biểu tượng phần mềm ở một số phiên bản.
Một số điểm mạnh của Visual Studio:
- Hỗ trợ lập trình đa ngôn ngữ như C/C++, C#, Visual Basic, JavaScript, … ngoài ra đối với những phiên bản từ 2015 trở lên có hỗ trợ thêm ngôn ngữ Python.
- Visual Studio là một công cụ hỗ trợ việc Debug một cách mạnh mẽ, dễ dàng nhất (Break Point, hỗ trợ việc Debug theo từng dòng lệnh, …)
- Dễ dàng tiếp cận cũng như việc sử dụng đối với những người mới bắt đầu.
- Visual Studio hỗ trợ phát triển ứng dụng desktop MFC, Windows Form,
Universal App, ứng dụng mobile Windows Phone 8/8.1, Windows 10, Android
(Xamarin), iOS và phát triển website Web Form, ASP.NET MVC và phát triển
Microsoft Office.
- Visual Studio hỗ trợ kéo thả trong việc xây dựng ứng dụng một cách chuyên nghiệp, hỗ trợ người mới bắt đầu có thể tiếp cận nhanh chóng hơn với phần mềm.
- Visual Studio cho phép chúng ta tích hợp những extension từ bên ngoài như
Resharper (hổ trợ quản lý và viết mã nhanh cho các ngôn ngữ thuộc .Net), hay việc cài đặt thư viện nhanh chóng thông qua Nuget.
- Visual Studio được sử dụng đông đảo bởi lập trình viên trên toàn thế giới
Về phần thiết kế giao diện nhóm tiến hành thực hiện dựa trên tính năng Windows Forms Designer. Tínhnăng này được dùng để nhằm xây dựng GUI (giao diện đồ họa người dùng) sử dụng Windows Forms, được tạo ra bằng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh mẫu. Các nguồn dữ liệu như cơ sở dữ liệu và truy vấn được liên kết các công cụ điều khiển trình bày dữ liệu như hộp danh sách, hộp văn bản, …
2.3.2 Giới thiệu thư viện Emgu CV
Thư viện Emgu CV là một thư viện được phát triển dành cho ngôn ngữ C# ứng dụng mãnh mẽ vàoviệc xử lý ảnh. Với thư viện này ta có thể sử dụng được các chức năng của OpenCV từ .NET. Thư viện Emgu CV được sử dụng tương thích với các ngôn ngữ C#, VB, VC++, Iron Python, …Thự viện này có thể chạy trên các nền tảng Windows, Linux, Mac OS X, iOS, Android và Window Phone.
Ưu điểm của việc sử dụng thư viện Emgu CV:
- Emgu CV được viết bằng C#, có thể hoạt động trên đa nền tảng
- Emgu CV sử dụng được trên nhiều loại ngôn ngữ khác nhau.
- Ứng dụng nhận dạng hình ảnh: nhận dạng khuôn mặt, các vật thể, hình dạng của vật thể, nhận dạng cử chỉ, …
- Xử lý hình ảnh: khử nhiễu, điều chỉnh độ sáng, độ bão hòa, …
- Có thể sử dụng hình ảnh lớp hoặc trực tiếp gọi chức năng từ OpenCV.
Về OpenCV đây là một thư viện được phát triển bởi hãng Intel. Nó được ứng dụng cho lĩnh vực thị gác máy tính, nó được viết dựa trên ngôn ngữ C và C++ và đã được tối ưu hóa, trong OpenCV bao gồm hơn 500 hàm với nhiều lĩnh vực khác nhau của thị giác máy tính.
Thư viện Emgu CV được sử dụng trải dài trên nhiều lĩnh vực bao gồm việc kiểm tra các sản phẩm của nhà máy, hình ảnh từ y tế, giao diện dành cho người dùng, tinh chình máy ảnh và các ứng dụng khác liên quan đến robot.
Một số hàm được sử dụng trong Emgu CV
- Chuyển màu BRG sang HSV
CvInvoke.CvtColor(Image_Brg, Image_Hsv, ColorConversion.Bgr2Hsv)
- Image_Brg: ảnh đầu vào Brg (input).
- Image_Hsv: ảnh thu được sau khi chuyển đổi(output).
- Chức năng lọc vùng không gian màu HSV (Lower, Upper)
Lấy vùng không gian màu HSV tương ứng
CvInvoke.InRange (Hsv_Image, Lower, Upper, Color_Image)
- Hsv_Image: ảnh đầu vào HSV (input)
- Lower: điểm không gian màu HSV min.
- Upper: điểm không gian màu HSV max.
- Color_Image: ảnh sau khi lọc vùng không gian màu Hsv.
- Chuyển sang ảnh nhị phân
CvInvoke.Threshold(Input_Image, Output_Image, Max_thresh, Value_Thresh, Type_Threshold.Binary)
- Input_Image: ảnh đầu vào
- Output_Image: ảnh thu được sau khi chuyển đổi
- Value_Thresh: giá trị ngưỡng
- Max_thresh: giá trị ngưỡng lớn nhất
- Type_Threshold.Binary: kiểu nhị phân
2.3.3 MX Component
Để có thể giao tiếp giữa C# với PLC thì ở đây nhóm thực hiện thông qua phần mềm trung gian MX Component. Đây là phần mềm giúp người dùng có thể giao tiếp cũng như truyền nhận dữ liệu từ C# với PLC một cách đơn giản thông qua nhiều chuẩn giao tiếp khác nhau như UART, RS485, Ethernet … ở đây nhóm thực hiện thông qua mạng ethernet.
Một số khai báo cần thực hiện trước khi thực hiện giao tiếp.
Đầu tiên ta tiến hành mở phần mềm, tại Target setting ta quan sát tại đây lúc này sẽ không chứa bất kì thông số nào, ta tiến hành chọn vào Wizard để có thể thiết lập các thông số.
Hình 2. 13: Giao diện khi mở phần mềm.
Sau khi chọn vào Wizard, ở đây ta sẽ chọn thông số Logical station number dùng để làm thông số trung gian khi giao tiếp C# trên phần mềm Visual Studio, ở đây ta chọn Logical station number bằng 1.
Hình 2. 14: Thực hiện khởi tạo Logical station number.
Logical station sau khi đã được chọn ta tiến hành bấm next và tiếp theo tại PC side I/F ta có thể chọn một trong các loại giao tiếp: GX Simulator3, GX Simulator2, GX Simulator, USB, USB (via GOT), Ethernet board, Ethernet board (via GOT) … ở đây ta chọn Ethernet board và tại Connect module ta chọn CPU module (FX5) tùy theo loại PLC mà ta có được module khác nhau.
Hình 2. 15: Chọn kiểu giao tiếp và CPU phù hợp.
Module PLC sau khi đã được chọn, tiếp theo tại Communication setting ta chọn vào Ethernet port direct connection ta chọnAdapter thích hợp, lúc này IP Address sẽ được cập nhật.
Hình 2. 16: Chọn Adapter tương ứng.
Sau khi địachỉ IP Address đã được cập nhật ta chọn Station type thích hợp
Hình 2. 17: Chọn loại Station thích hợp.
Cuối cùng là việc đặt tên tại mục Comment
Hình 2. 18: Đặt tên cho thiết bị.
Sau khi đã thực hiện đầy đủ, phương thức giao tiếp được thể hiện như hình bên dưới. Ở đay ta sử dụng Ethernet với CPU type là FX5U thời gian timer out là 6000 ms và CPU module (FX5)
Hình 2. 19: Sau khi hoàn thành cài đặt Communication.
Một số lệnh được sử dụng trong việc truyền và nhân dữ liệu
Thư viện ActUtTypelLid sẽ được sử dụng ở đây để thêm kết nối MX Components giữa PLC với C#.
Việc khởi tạo kết nối được thực hiện thông qua lệnh
public ActUtlType plc = new ActUtlType(); |
Để thực hiện kết nối ta dùng các lệnh
plc.ActLogicalStationNumber = Logical station number plc.Open(); |
Trong đó Logical station number là một con số được chúng ta tiến hành lựa chọn như trên công thức (2.17).
Việc ngắt kết nối ta sử dụng
Plc.Close(); |
Để có thể truyền dữ liệu từ C# sang PLC ta dùng lệnh
plc.SetDevice (“Tên biến trên PLC”, dữ liệu truyền sang plc); |
Để có thể dễ dàng nắm bắt được hoạt động của hệ thống sau khi truyền ta cũng tiến hành nhận dữ liệu từ PLC gửi xuống C#
int Biến_chứa_giá_trị; |
plc.GetDevice ("Tên biến cần đọc dữ liệu", out Biến_chứa_giá_trị ); |
2.3.4 Bộ điều khiển PID
PID (Proportional Integral Derivative) là một phương pháp điều khiển kinh điển nhưng hiệu quả đưa đến cho người sử dụng khá cao. Và nó được sử dụng nhiều khi điều khiển với bộ điều khiển số.
Hình 2. 20: Sơ đồ thuật toán PID.
Trong đó
- P (Proportional): Khâuđiều chỉnh tỉ lệ, giúp tạo ra tín hiệu điều chỉnh tỉ lệ với sai lệch đầu vào theo thời gian lấy mẫu.
- I (Integral): là tích phân của sai lệch theo thời gian lấy mẫu. Điều khiển tích phân là phương pháp điều chỉnh để tạo ra các tín hiệu điều chỉnh sao cho độ sai lệch giảm về 0. Từ đó cho ta biết tổng sai số tức thời theo thời gian hay sai số tích lũy trong quá khứ. Khi thời gian càng nhỏ thể hiện tác động điều chỉnh tích phân càng mạnh, tương ứng với độ lệch càng nhỏ.
- D (Derivative): là vi phân của sai lệch. Điều khiển vi phân tạo ra tín hiệu điều chỉnh sao cho tỉ lệ với tốc độ thay đổi sai lệch đầu vào. Thời gian càng lớn thì phạm vi điều chỉnh vi phân càng mạnh, tương ứng với bộ điều chỉnh đáp ứng với thay đổi đầu vào càng nhanh.
2.3.5 Tổng quan về PLC
PLC (Programmable Logic Controlller) là thiết bị cho phép lập trình thực hiện các thuật toán điều khiển logic. PLC hoạt động theo phương thức quét các trạng thái trên đầu ra và đầu vào. Khi có sự thay đổi bất kỳ từ ngõ vào, dựa theo chương trình ngõ ra tương ứng sẽ thay đổi. Ngôn ngữ lập trình phổ biến hiện nay của PLC là Ladder.
PLC có các ưu điểm như:
- Số lượng relay, dây nối giảm, số lượng tiếp điểm trong chương trình sử dụng không hạn chế
- Công suất tiêu thụ của PLC rất thấp
- Lập trình dễ dàng, ngôn ngữ lập trình dễ học. Gọn nhẹ, dễ bảo quản, sữa chữa.
- Độ tin cậy cao, kích thước nhỏ gọn, dễ dàng bảo quản, bảo trì và sửa chữa.
- Thời gian hoàn thành một chu trình điều khiển rất nhanh (vài ms) dẫn đến tăng cao tốc độ sản xuất.
- Dung lượng bộ nhớ lớn có thể chứa những chương trình phức tạp.
- Kết nối được với nhiều loại thiết bị thông minh: máy tính, nối mạng, module mở rộng.
Với những ưu điểm này, PLC thể hiện ưu điểm vượt trội và hiện nay đã thay thế hệ thống điểu khiển tiếp điểm truyền thống trong các nhà máy, dây chuyền công nghệ.
Ở báo cáo này chúng ta sử dụng dòng PLC của Mitsubishi, và sử dụng phần mềm tương ứng là GX Works3.
Hình 2. 21: Biểu trưng của phần mềm GX Works3.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
- Kết luận
1.1 Mục tiêu đã đạt được
Trong khoảng thời gian hơn 5 tháng tìm hiểu và thực hiện thiết kế, cải tiến mô hình Delta robot, nhóm em đã hoàn thành tương đối tốt mục tiêu ban đầu đề ra. Đó là chế tạo thành công robot Delta có khả năng ứng dụng xử lý ảnh để phân loại sản phẩm theo màu sắc và sắp xếp sản phẩm theo trật tự.
1.2 Hạn chế còn tồn tại
Sau khi hệ thống đã hoàn thành thì vẫn còn những vấn đề mà nhóm chưa khắc phục được:
- Mô hình bị rung khi hoạt động ở tốc độ cao.
- Thuật toán chưa hoàn toàn tối ưu.
- Chương trình xử lý ảnh chỉ đáp ứng trong môi trường ánh sáng ổn định.
- Góc xoay chưa thể hoạt động chính xác trong thời gian dài.
- Hướng phát triển
Với những kết quả đạt được và các hạn chế trong quá trình thực hiện đề tài, hướng phát triển đề tài đề xuất như sau:
- Cải tiến khớp xoay để đáp ứng việc phân loại sản phẩm theo tốc độ cao.
- Lập trình hệ thống để đáp ứng với các tốc độ khác nhau của băng tải.
- Thay bằng camera tốc độ cao để thu ảnh và xử lý ảnh trong mọi điều kiện ánh sáng.
- Xây dựng giao diện điều khiển và giám sát qua màn hình HMI/SCADA.