Ngày nay nền kinh tế của nước ta đang trên đà phát triển mạnh mẽ các ngành công nghiệp ngày càng đòi hỏi trình độ khoa học kỹ thuật cao Nhu cầu của nhà sản xuất cũng như nhà tiêu dùng là tăng không ngừng Đây là cơ hội và cũng là thách thức cho ngành cơ điện tử với việc ứng dụng các thành tựu nhân loại để phục vụ nhu cầu xã hội Robot là một ứng dụng thiết thực nhất từ những cỗ máy đơn giản đến phức tạp nhất nó có thể góp mặt vào trong mọi lĩnh vực đời sống sản xuất con người Các robot đã và đang trở thành công cụ lao động thông minh từng bước thay thế con người trong hoạt động sản xuất Nhờ có robot mà năng suất và chất lượng lao động ngày càng được cải thiện và tiệm cận sự hoàn hảo Trong học phần này chúng em thực hiện đề tài Thiết kế và chế tạo robot gắp thức ăn sử dụng xử lý ảnh và tay gắp mềm Với mục tiêu tạo ra một sản phẩm hoạt động linh hoạt và có khả năng ứng dụng thực tế mang lại hiệu quả kinh tế cao Các nhiệm vụ cần thực hiện trong đề tài này bao gồm Xác định phương án thiết kế và thiết kế tay gắp Nghiên cứu và điều khiển robot Xử lý ảnh xác định vật thể kết hợp với lập trình PLC
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn: TS LÊ HOÀI NAM
Sinh viên thực hiện: NGUYỄN ĐÌNH GIANG
HÀ XUÂN TUẤN
LÊ QUỐC TÍN
Đà Nẵng, 12/2019
Trang 2NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
1 Thông tin chung:
2 Lớp: 15CDT1 – 15CDT2
3 Tên đề tài: Thiết kế và chế tạo robot gắp thức ăn sử dụng xử lý ảnh và tay gắp mềm
II Nhận xét, đánh giá đồ án tốt nghiệp:
1 Về tính cấp thiết, tính mới, khả năng ứng dụng của đề tài: (điểm tối đa là 1đ)
1 Điểm đánh giá: …… /10 (lấy đến 1 số lẻ thập phân)
Đà Nẵng, ngày tháng 12 năm 2019
Người hướng dẫn
DUT.LRCC
Trang 3NHẬN XÉT PHẢN BIỆN ĐỒ ÁN TỐT NGHIỆP
I Thông tin chung:
3 Lớp: 15CDT1 – 15CDT2
4 Tên đề tài: Thiết kế và chế tạo robot gắp thức ăn sử dụng xử lý ảnh và tay gắp mềm
5 Người phản biện: ……….………… Học hàm/ học vị: …………
II Nhận xét, đánh giá đồ án tốt nghiệp: 1 Về tính cấp thiết, tính mới, khả năng ứng dụng của đề tài: ………
………
2 Về kết quả giải quyết các nội dung nhiệm vụ yêu cầu của đồ án: ………
………
3 Về hình thức, cấu trúc, bố cục của đồ án tốt nghiệp: ………
………
4 Đề tài có giá trị khoa học/ có bài báo/ giải quyết vấn đề đặt ra của doanh nghiệp hoặc nhà trường: ………
………
5 Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa: ………
………
………
………
………
………
………
………
DUT.LRCC
Trang 41 Sinh viên có phương pháp nghiên cứu phù hợp, giải
quyết đủ nhiệm vụ đồ án được giao 70
1a
- Tính mới (nội dung chính của ĐATN có những phần mới
so với các ĐATN trước đây)
- Đề tài có giá trị khoa học, công nghệ; có thể ứng dụng thực
tiễn
10
1b
- Kỹ năng giải quyết vấn đề; hiểu, vận dụng được kiến thức
cơ bản, cơ sở, chuyên ngành trong vấn đề nghiên cứu
- Chất lượng nội dung ĐATN (thuyết minh, bản vẽ, chương
trình, mô hình,…)
50
1c
- Có kỹ năng vận dụng thành thạo phần mềm ứng dụng trong
vấn đề nghiên cứu (thể hiện qua kết quả tính toán bằng
phần mềm);
- Có kỹ năng sử dụng tài liệu tiếng nước ngoài liên quan vấn
đề nghiên cứu (thể hiện qua các tài liệu tham khảo);
- Có kỹ năng làm việc nhóm (đánh giá đối với đề tài do
nhóm SV thực hiện);
10
3 Tổng điểm đánh giá theo thang 100:
Quy về thang 10 (lấy đến 1 số lẻ)
- Câu hỏi đề nghị sinh viên trả lời trong buổi bảo vệ: ………
………
………
………
………
………
Đà Nẵng, ngày tháng 12 năm 2019
Người phản biện
DUT.LRCC
Trang 5TÓM TẮT
Tên đề tài: Thiết kế và chế tạo robot gắp thức ăn sử dụng xử lý ảnh và tay gắp mềm
lý ảnh phân biệt các loại thức ăn với nhau kết hợp lắp đặt và vận hành cánh tay robot 3 bậc tự do để có thể gắp các loại thức ăn vào khay theo đúng vị trí và hướng yêu cầu; Tích hợp cảm biến vào tay gắp mềm, áp dụng phương pháp data-driven trong việc dự đoán và điều khiển tay gắp mềm
DUT.LRCC
Trang 61 Tên đề tài đồ án:
Thiết kế và chế tạo robot gắp thức ăn sử dụng xử lý ảnh và tay gắp mềm
2 Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện
3 Các số liệu và dữ liệu ban đầu:
• Các số liệu yêu cầu về phạm vi hoạt động, tốc độ, chu kỳ của robot theo yêu cầu của công ty Maruyasu Kikai
• Kích thước thông số các bộ phận công ty Maruyasu Kikai cung cấp
• Các vật liệu: Nhôm định hình, inox, thép
4 Nội dung các phần thuyết minh và tính toán:
a Phần chung:
Chương 2: Hệ thống Robot gắp thức ăn
Data-driven cho tay gắp mềm
5 Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
a Phần chung:
DUT.LRCC
Trang 71 Hà Xuân Tuấn Bản vẽ tổng quan hệ thống và phần gá truyền động
(1A0) Bản vẽ các thành phần trong hệ thống (1A0)
b Phần riêng:
Bản vẽ tay gắp và đồ gá tay gắp (1A0)
6 Họ tên người hướng dẫn: TS Lê Hoài Nam
Đà Nẵng, ngày tháng 12 năm 2019
DUT.LRCC
Trang 8Ngày nay, nền kinh tế của nước ta đang trên đà phát triển mạnh mẽ, các ngành công nghiệp ngày càng đòi hỏi trình độ khoa học kỹ thuật cao Việc cung cấp của nhà sản xuất cũng như nhu cầu của người tiêu dùng tăng lên đáng kể Đây là cơ hội và thách thức cho nền công nghiệp nói chung, ngành cơ điện tử nói riêng, với việc ứng dụng các thành tựu khoa học kỹ thuật của nhân loại để phục vụ nhu cầu đời sống xã hội
Robot là một ứng dụng tiêu biểu, đang ngày một trở nên hiện đại hơn, trở thành công cụ lao động thông minh, từng bước thay thế con người trong hoạt động sản xuất Nhờ có robot mà năng suất và chất lượng lao động ngày càng được cải thiện và tiệm cận
sự hoàn hảo Trong học phần này, chúng em thực hiện đề tài: Thiết kế và chế tạo robot gắp thức ăn sử dụng xử lý ảnh và tay gắp mềm Với mục tiêu tạo ra một sản phẩm hoạt
động linh hoạt và có khả năng ứng dụng thực tế mang lại hiệu quả kinh tế cao Các nhiệm vụ cần thực hiện trong đề tài này bao gồm:
• Xác định phương án thiết kế và thiết kế tay gắp mới
• Xử lý ảnh xác định vật thể kết hợp với lập trình PLC
• Tích hợp cảm biến, dự đoán và điều khiển tay gắp mềm
Để đồ án này đạt kết quả tốt đẹp, chúng em đã nhận được sự hỗ trợ, giúp đỡ của công ty Sunfield Vietnam và công ty Maruyasu Kikai – Nhật Bản Với tình cảm sâu sắc cho phép chúng em được bày tỏ lòng biết ơn đến quý công ty đã tạo điều kiện giúp đỡ trong suốt quá trình học tập và nghiên cứu đề tài Với sự quan tâm, chỉ dạy và truyền đạt kiến thức, chúng em xin gửi tới các thầy Khoa Cơ khí trường Đại học Bách Khoa Đại học Đà Nẵng lời cảm ơn sâu sắc và lời chúc sức khỏe
Đặc biệt chúng em chân thành cảm ơn thầy giáo – TS Lê Hoài Nam đã quan tâm
giúp đỡ, hướng dẫn hoàn thành tốt đề tài này trong thời gian qua Ngoài ra, không thể
không nhắc tới sự hỗ trợ, truyền đạt kinh nghiệm của các thành viên trong nhóm Aiméka
và các anh khóa 14CDT
Tuy nhiên, do kiến thức và kinh nghiệm còn nhiều hạn chế nên khó tránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm và đóng góp ý kiến của các thầy và các bạn sinh viên để đồ án của chúng tôi được hoàn chỉnh hơn Xin chân thành cảm ơn
Trang 9ii
CAM ĐOAN
Chúng tôi xin cam đoan số liệu và kết quả nghiên cứu trong đồ án này là trung thực và chưa hề được sử dụng để bảo vệ đồ án hoặc học vị nào khác Mọi sự giúp đỡ cho việc thực hiện đồ án này đã được cảm ơn và các thông tin trích dẫn trong đồ án đã được chỉ rõ nguồn gốc và được phép công bố
Sinh viên thực hiện
Lê Quốc Tín Nguyễn Đình Giang Hà Xuân Tuấn
DUT.LRCC
Trang 10Tóm tắt
Nhiệm vụ đồ án
Lời nói đầu i
Cam đoan ii
Mục lục iii
Danh sách các bảng biểu, hình vẽ và sơ đồ v
Danh sách các cụm từ viết tắt vii
Trang Chương 1: TỔNG QUAN 1
Chương 2: HỆ THỐNG ROBOT GẮP THỨC ĂN 3
2.1.1 Tổng quan 3
2.1.2 Sơ đồ khối hệ thống 4
2.1.3 Hệ thống thực tế 5
2.2.1 Tổng quan về xử lý ảnh 5
2.2.2 Quy trình xử lý ảnh 6
Chương 3: QUÁ TRÌNH XỬ LÝ ẢNH 9
3.1.1 Điểm ảnh 9
3.1.2 Độ phân giải ảnh 9
3.1.3 Mức xám của ảnh 9
3.1.4 Cấu trúc lưu dữ liệu 9
3.2.1 Thiết bị phần cứng: camera xử lý ảnh 10
DUT.LRCC
Trang 11iv
3.2.3 EmguCV/OpenCV 14
3.3.1 Giới thiệu về MX Component 15
3.3.2 Cài đặt kết nối 16
3.3.3 Chương trình nhận và gửi dữ liệu 18
Chương 4: HỆ THỐNG TRUYỀN ĐỘNG 27
4.2.1 Cấu trúc và kết nối 28
4.2.2 Phần mềm PC Interface Software for RCEC 30
4.3.1 Giới thiệu về động cơ bước 32
4.3.2 Cấu tạo và nguyên lý hoạt động của động cơ bước 32
4.4.1 Bộ điều khiển lập trình PLC 33
4.4.2 Module CC-Link FX3U-16CCL-M 37
4.5.1 Lập trình cơ cấu thanh trượt 40
4.5.2 Lập trình điều khiển động cơ bước 44
Chương 5: TÍCH HỢP CẢM BIẾN VÀ PHƯƠNG PHÁP DATA-DRIVEN TRONG VIỆC DỰ ĐOÁN VÀ ĐIỀU KHIỂN TAY GẮP MỀM 46
5.1.1 Tay gắp mềm kiểu xếp li 46
Nguyên lý hoạt động 47
5.2.1 Đặt vấn đề: 48
5.2.2 Tích hợp cảm biến 48
DUT.LRCC
Trang 125.4.1 Sơ đồ khối điều khiển 55
Chương 6: TAY GẮP MỀM 58
6.2.1 Vấn đề khi sử dụng tay gắp cũ cho bài toán mới 58
6.2.2 Cải tiến tay gắp cũ 59
6.2.3 Nguyên lý hoạt động của tay gắp mới 61
6.3.1 Các thông số hình học 62
6.3.2 Vật liệu và mô phỏng 65
6.3.3 Thiết kế hoàn thiện 67
6.4.1 Thiết kế khuôn 67
6.4.2 Quá trình đúc 68
KẾT LUẬN 71
TÀI LIỆU THAM KHẢO 72
PHỤ LỤC 1 1
PHỤ LỤC 2 28
PHỤ LỤC 3 38
DUT.LRCC
Trang 13vi
BẢNG 4.1 So sánh giữa PLC và Rơ-le 34
BẢNG 4.2: So sánh các phương pháp truyền dữ liệu của CC-Link 37
BẢNG 6.1: Các thông số hình học của tay gắp mềm 63
BẢNG 6.2: Các thông số hình học của tay gắp mềm nhóm thực hiện 67
HÌNH 1.1 Kích thước khay và các loại thức ăn khác nhau 2
HÌNH 2.1 Sơ đồ tổng quan của hệ thống 3
HÌNH 2.2 Sơ đồ khối hệ thống 4
HÌNH 2.3 Hệ thống thực tế 5
HÌNH 2.4 Các giai đoạn chính trong quá trình xử lý ảnh 6
HÌNH 2.5 Sơ đồ động của hệ thống 7
HÌNH 3.1 Camera Logitech HD c720 10
HÌNH 3.2 Giao diện Visual Studio 11
HÌNH 3.3 Giao diện làm việc của Visual Studio 12
HÌNH 3.4 Cách bật các cửa sổ bị ẩn trong Visual Studio 13
HÌNH 3.5 Giao diện làm việc của chương trình xử lý ảnh 13
HÌNH 3.6 Giao diện Communication Setup Utility 15
HÌNH 3.7 Nhập số trạm 16
HÌNH 3.8 Chọn phương thức kết nối 16
HÌNH 3.9 Chọn loại CPU sử dụng 17
HÌNH 3.10 Chọn loại trạm 17
HÌNH 3.11 Ghi chú và kết thúc 18
HÌNH 3.12 Lưu đồ thuật toán lập trình xử lý ảnh 19
HÌNH 3.13 Không gian màu HSV 23
HÌNH 3.14 Ví dụ cho giãn nở và co ảnh 24
HÌNH 3.15 Ví dụ về xác định hình chữ nhật xoay trong EmguCV 26
HÌNH 3.16 Phân tích vật thể bằng phương pháp SURF 26
HÌNH 4.1 Cấu tạo cơ cấu truyền động 27
HÌNH 4.2: Mode Number của cơ cấu truyền động 27
HÌNH 4.3 Cấu trúc PCON-CB 28
HÌNH 4.4 Sơ đồ đấu nối các thiết bị cơ bản 29
HÌNH 4.5 Trường hợp không sử dụng EMG- (dừng khẩn cấp) 29
HÌNH 4.6 Trường hợp có sử dụng EMG- (dừng khẩn cấp) 30
DUT.LRCC
Trang 14HÌNH 4.8 Chọn chế độ hoạt động 30
HÌNH 4.9 Thiết lập Parameter cho cơ cấu truyền động 31
HÌNH 4.10 Thiết lập Position cho cơ cấu truyền động 31
HÌNH 4.11 Động cơ bước 32
HÌNH 4.12 Cấu tạo của động cơ bước 33
HÌNH 4.13 Nguyên lý hoạt động của động cơ bước 33
HÌNH 4.14 PLC Mitsubishi FX3G-60M 35
HÌNH 4.15 Cấu trúc bộ điều khiển lập trình PLC 35
HÌNH 4.16 Hoạt động của PLC 36
HÌNH 4.17 Module CC-Link FX3U-16CCL-M 37
HÌNH 4.18 Tối ưu hệ thống với CC-Link 38
HÌNH 4.19 Liên kết dữ kiệu giữa các trạm trong hệ thống CC-Link 39
HÌNH 4.20 Kiểu nối dây CC-Link 39
HÌNH 4.21 Minh họa quá trình truyền dữ liệu 40
HÌNH 4.22 Các thanh ghi được cấp phát 41
HÌNH 4.23 Vị trí địa chỉ các thanh ghi 41
HÌNH 4.24 Hai cấu trúc đọc và ghi từ Buffer Memory 42
HÌNH 4.25 Khối khởi động PLC 43
HÌNH 4.26 Khối nạp vị trí PCx 43
HÌNH 4.27 Khối về “Home” 43
HÌNH 4.28 Khối bật tắt bit CSTR 43
HÌNH 4.29 Khối đọc giá trị các thanh ghi 44
HÌNH 4.30 Tạo xung điều khiển động cơ bước 44
HÌNH 4.31 Lưu đồ thuật toán lập trình PLC kết hợp xử lí ảnh 45
HÌNH 5.1 Mẫu tay gắp mềm đầu tiên của Suzumori 46
HÌNH 5.2 Thử nghiệm gắp vật 47
HÌNH 5.3 Nguyên lý hoạt động của tay gắp mềm 48
HÌNH 5.4 Hình dạng của cảm biến FRS402 48
HÌNH 5.5 Biểu đồ thể hiện mối quan hệ giữa điện trở và cảm biến lực FSR402 49
HÌNH 5.6 Cầu phân áp và đường cong biển diễn quan hệ giữa lực và điện áp đầu ra tương ứng với giá trị điện trở kéo khác nhau 50
HÌNH 5.7 Cảm biến độ cong FSL0055253ST của hãng Spectra Symbol 50
HÌNH 5.8 Cảm biến áp suất MPXH6400A 51
HÌNH 5.9 Mạch lọc điện áp đầu ra 52
HÌNH 5.10 Biểu đồ quan hệ giữa điện áp đầu ra và áp suất đo được 52
DUT.LRCC
Trang 15viii
HÌNH 5.12 Khuôn đúc tay gắp mềm 54
HÌNH 5.13 Các bước chế tạo tay gắp mềm tích hợp cảm biế 55
HÌNH 5.14 Sơ đồ khối hệ thống khí nén 57
HÌNH 5.15 Khả năng co, duỗi thực tế của tay gắp 57
HÌNH 5.16 Khả năng co, duỗi thực tế của tay gắp 57
HÌNH 6.1 Khay đặt thức ăn trong bài toán 58
HÌNH 6.2 Phiên bản tay gắp thử nghiệm 1 59
HÌNH 6.3 Phiên bản tay gắp thử nghiệm 2 60
HÌNH 6.4 Phiên bản tay gắp thử nghiệm 3 60
HÌNH 6.5 Phiên bản thử nghiệm 4 61
HÌNH 6.6 Thiết kế mô hình tay gắp mới 62
HÌNH 6.7 Các đặc trưng hình học của tay gắp mới 63
HÌNH 6.8 Mô phỏng tay gắp mới trong Abaqus 66
HÌNH 6.9: Thiết kế khuôn để đúc silicone 67
HÌNH 6.10 Các vật dụng cơ bản dùng để chế tạo tay gắp mềm 68
HÌNH 6.11 Các bước cơ bản của quá trình đúc tay gắp mềm 69
HÌNH 6.12 Sơ đồ khối hệ thống khí nén 69
DUT.LRCC
Trang 16CHỮ VIẾT TẮT:
• ACC – Acceleration
• BCM – Broadcom
• BKLS – Brake Release
• CGA – Color Graphic Adaptor
• CPU – Central Processing Unit
• HSV – Hue, Saturation, Value
• I2C – Inter-Integrated Circuit
• IP – Internet Protocol
• MISO – Master Out Slave Out
• MOSI – Master Out Slave In
• RAM – Random Access Memory
• RCEC – Robo Cylinder
• RGB – Red Green Blue
• RPi – Raspberry Pi
• SDA – Serial Data
• SIO – Serial Input/Output
• SPI – Service Provider Interface
• TXD – Transmit Data
• UART – Universal Asynchronous Receiver-Transmitter
• USB - Universal Serial Bus
• XLA – Xử lý ảnh
DUT.LRCC
Trang 17Chương 1: TỔNG QUAN
1.1 Đặt vấn đề
Hầu hết chúng ta đều biết, con người Nhật Bản có một tính cách rất nổi bật đó là
họ luôn tỉ mỉ, chỉnh chu trong tất cả những việc họ làm và một trong những sản phẩm đặc trưng cho tính cách đó chính là cơm hộp ăn trưa (bento) bởi sự cầu kì, tinh tế và nghệ thuật của nó Cơm hộp được sử dụng rất thường xuyên trong các bữa ăn trưa của người Nhật Những hộp cơm có nhiều màu sắc và được tạo hình đa dạng dưới bàn tay khéo léo của những người nội trợ đảm đang Cơm hộp ban đầu xuất phát từ những hộp cơm trưa mà các bà mẹ chuẩn bị cho con mình mang theo để ăn trên trường Nhưng các
em nhỏ thường rất kén ăn do đó những bà mẹ đã có sáng kiến đó là tạo hình đẹp mắt cho hộp cơm bằng cách tỉa gọt và trang trí các món ăn nhằm kích thích sự tò mò, thích thú và khiến các em ngoài ăn cơm, thịt ra thì còn ăn thêm các loại rau củ nhờ màu sắc hấp dẫn và tạo cảm giác ngon miệng Dần dần về sau, cơm hộp ăn trưa không chỉ là sản phẩm thể hiện tình yêu và sự quan tâm của các bà mẹ đến con cái mình mà đã phát triển lên thành một nét văn hóa riêng, một sản phẩm đặc trưng của người Nhật Bản
Ngày nay, cùng với nhịp sống ngày càng nhanh, nhu cầu tiêu thụ cơm hộp chế biến sẵn cũng tăng theo Đòi hỏi các doanh nghiệp sản xuất phải nâng cao năng suất Điều này đồng nghĩa với việc họ phải cố gắng tự động hóa được hết tất cả các khâu trong quá trình sản xuất cơm hộp Tuy nhiên họ lại gặp một vấn đề đau đầu tại khâu đóng gói thức
ăn vào hộp đó là: Làm thế nào để di chuyển những loại thức ăn cầu kì, đa dạng như vậy vào trong các hộp đựng mà vẫn đảm bảo được tính thẩm mĩ và an toàn vệ sinh? Chính
vì vậy, công ty Sunfield Vietnam và công ty Maruyasu Kikai – Nhật Bản đã đưa ra một yêu cầu và cũng là đề tài của đồ án này để giải quyết vấn đề trên
1.2 Bài toán đặt ra
Công ty đặt ra bài toán là thiết kế một hệ thống robot được tích hợp tay gắp có thể gắp được nhiều loại thức ăn đa dạng với những yêu cầu cụ thể như sau:
• Thức ăn được gắp có độ cứng, hình dạng, kích thước và khối lượng khác nhau
• Thức ăn không bị hư, trầy, biến dạng hoặc rơi rớt trong quá trình gắp
• Việc thiết kế tập trung chủ yếu ở phần thiết kế ý tưởng tay gắp với ràng buộc
là không được sử dụng hơi để hút trực tiếp thức ăn
• Gắp thức ăn vào khay theo đúng hướng, vị trí yêu cầu
DUT.LRCC
Trang 18Để giải quyết các vấn đề đặt ra ở trên, nhóm tác giả đã quyết định lựa chọn phương
án là Tay gắp mềm (Soft gripper) với vật liệu là silicon để nghiên cứu và chế tạo Đây
là lĩnh vực rất mới và đang được quan tâm, nghiên cứu nhiều trên thế giới trong những năm gần đây bởi ưu điểm vượt trội của nó so với các cơ cấu truyền thống như cơ cấu gắp cơ khí, cơ cấu hút… Ngoài ra, hệ thống còn được tích hợp thêm camera xử lý ảnh
để robot có thể nhận biết và gắp thức ăn vào đúng vị trí của từng loại trong khay Kích thước khay và các loại thức ăn được mô tả dưới Hình 1.1
Hình 1.1 Kích thước khay và các loại thức ăn khác nhau
DUT.LRCC
Trang 19Chương 2: HỆ THỐNG ROBOT GẮP THỨC ĂN
2.1 Mô hình hóa hệ thống
2.1.1 Tổng quan
Hình 2.1 Sơ đồ tổng quan của hệ thống
Hệ thống robot gắp thức ăn là tập hợp của nhiều hệ thống thành phần khác như:
Hệ thống cơ khí, hệ thống khí nén, hệ thống điện, hệ thống điều khiển Các hệ thống riêng biệt này được thiết kế để kết nối với nhau nhằm tạo ra một hệ thống hoàn chỉnh, đảm bảo thực hiện tốt nhiệm vụ đặt ra của đề tài
Hệ thống sau khi hoàn chỉnh có thể hoạt động theo chế độ xử lý ảnh động: Một camera sẽ liên tục hoạt động để thu hình ảnh về cho chương trình xử lý ảnh Nếu chương trình xác định được một loại thức ăn nằm trong vùng gắp, nó sẽ gửi dữ liệu nhận được như vị trí gắp và góc gắp cho robot để robot có thể thực hiện việc gắp thức ăn đó vào đúng vị trí trong khay Trong trường hợp không có thức ăn trong vùng gắp, robot sẽ ở chế độ chờ
DUT.LRCC
Trang 202.1.2 Sơ đồ khối hệ thống
Hình 2.2 Sơ đồ khối hệ thống
Sơ đồ hệ thống gồm có 4 khối chính:
• Khối nguồn
• Khối điều khiển
• Khối cơ cấu chấp hành
• Khối xử lý ảnh
Hình 2.2 thể hiện sơ đồ khối của hệ thống Theo đó, hệ thống hoạt động như sau: Camera sau khi chụp ảnh sẽ gửi dữ liệu ảnh về cho Máy tính chạy chương trình xử lý ảnh Máy tính sau khi xử lý và phân biệt được các loại thức ăn xong sẽ gửi dữ liệu các loại thức ăn nhận diện được đến PLC Tại đây, PLC sẽ điều khiển cánh tay robot 2 bậc
tự do (2 Robo cylinder) và động cơ bước thông qua các bộ điều khiển động cơ Tay gắp mềm hoạt động thông qua hệ thống khí nén để thực hiện việc gắp và thả thức ăn đến đúng vị trí và góc xoay của nó của nó Các số liệu về vị trí, vận tốc và gia tốc của cánh tay robot sẽ được cài đặt trước vào bộ điều khiển bằng phần mềm dạy học trên máy tính
Để cho hệ thống hoạt động thì ta cần cấp nguồn 220VAC cho PLC, nguồn 24V cho bộ điều khiển động cơ
DUT.LRCC
Trang 21là một lĩnh vực của tin học ứng dụng, nó bao gồm các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên
Mục đích của xử lý ảnh gồm:
• Biến đổi ảnh làm tăng chất lượng ảnh
• Sử dụng nội dung ảnh sau xử lí cho một ứng dụng cụ thể
DUT.LRCC
Trang 22bị thu nhận ảnh sẽ phụ thuộc vào đặc tính của các đối tượng cần xử lý Các thông số quan trọng ở khâu thu nhận này là độ phân giải, chất lượng màu, dung lượng bộ nhớ và tốc độ thu nhận ảnh của các thiết bị Trong đề tài này, nhóm tác giả sử dụng camera
Logitech 720 có độ phân giải 1280x720pi
2.2.2.2 Tiền xử lý
Ở bước này, ảnh sẽ được cải thiện về độ tương phản, khử nhiễu, khử bóng, khử
độ lệch với mục đích làm cho chất lượng ảnh trở lên tốt hơn nữa, chuẩn bị cho các bước
xử lý phức tạp hơn về sau trong quá trình XLA Quá trình này thường được thực hiện
bởi các bộ lọc
2.2.2.3 Phân đoạn
Phân đoạn ảnh là bước then chốt trong XLA Giai đoạn này phân tích ảnh thành những thành phần có cùng tính chất bất kỳ dựa theo biên hay các vùng liên thông Tiêu chuẩn để xác định các vùng liên thông có thể là cùng màu, cùng độ xám Mục đích của phân đoạn ảnh là để có một bản miêu tả tổng hợp về nhiều phần tử khác nhau cấu tạo nên ảnh thô Vì lượng thông tin chứa trong ảnh rất lớn, trong khi đa số các ứng dụng chúng ta chỉ cần trích một vài đặc trưng nào đó, do vậy cần có một quá trình để giảm lượng thông tin khổng lồ đó Quá trình này bao gồm phân vùng ảnh và trích chọn đặc tính chủ yếu
DUT.LRCC
Trang 23Biểu diễn dạng vùng lại thích hợp cho những ứng dụng khai thác các tính chất bên trong của đối tượng, ví dụ như cấu trúc xương của nó Sự chọn lựa cách biểu diễn thích hợp cho một vùng ảnh chỉ mới là một phần trong việc chuyển dổi dữ liệu ảnh thô sang một
dạng thích hợp hơn cho các xử lý về sau
2.2.2.5 Nhận dạng và phân tích
Ðây là bước cuối cùng trong quá trình XLA Nhận dạng ảnh có thể được nhìn nhận một cách đơn giản là việc dán nhãn cho các đối tượng trong ảnh Ví dụ đối với nhận dạng hình dáng sản phẩm, sau xử lý ảnh ta phân loại các đối tượng có trong ảnh thành
ở hình dạng như thế nào và dán cho nó một nhãn nhất định
Chúng ta cũng có thể thấy rằng, không phải bất kỳ một ứng dụng XLA nào cũng bắt buộc phải tuân theo tất cả các bước xử lý đã nêu ở trên, ví dụ như các ứng dụng chỉnh sửa ảnh nghệ thuật chỉ dừng lại ở bước tiền xử lý Tùy theo ngôn ngữ và phần mềm mà người lập trình lựa chọn thì cách tiếp cận với từng công đoạn sẽ có độ khó dễ khác nhau Một cách tổng quát thì những chức năng xử lý bao gồm cả nhận dạng và giải thích thường chỉ có mặt trong hệ thống phân tích ảnh tự động hoặc bán tự động, được dùng để rút trích ra những thông tin quan trọng từ ảnh, ví dụ như các ứng dụng nhận dạng ký tự quang học, nhận dạng chữ viết tay…
2.3 Cơ cấu chấp hành
Hình 2.5 Sơ đồ động của hệ thống
Dựa vào sơ đồ động, ta xác định được hệ thống bao gồm ba cơ cấu chấp hành được điều khiển độc lập với nhau Và ba cơ cấu này hoạt động phụ thuộc lẫn nhau để vận hành toàn bộ hệ thống
DUT.LRCC
Trang 24Cơ cấu chấp hành thứ nhất là cánh tay robot Đây là robot hai bậc tự do, bao gồm
hai trục chính (bao gồm động cơ, trục truyền động, encoder…), hai bộ điều khiển công suất (PCON-CB/CFB), phần mềm điều khiển (PC Interface Software for RCEC) Được điều khiển bởi PLC Mitsubishi thông qua module CC-link
Cơ cấu chấp hành thứ hai là cơ cấu xoay Nó bao gồm một động cơ bước, một bộ điều khiển ST-6600 Nó được điều khiển trực tiếp bằng xung phát từ PLC
Cơ cấu chấp hành thứ ba là tay gắp Cũng được điều khiển bởi PLC qua hệ thống khí nén, có kết hợp xử lý ảnh được lập trình bằng ngôn ngữ C# trên nền soạn thảo Visual Studio, có áp dụng thư viện thị giác máy tính EmguCV Với đề tài này, tay gắp được thiết kế để giải quyết nhiều vấn đề khó khăn như: sản phẩm thao tác là thức ăn có hình dạng kích thước không cố định, đảm bảo sản phẩm không bị hư hại trong quá trình vận hành hệ thống…Do vậy tay gắp này mang nhiều đặc tính riêng như:
• Gắp được vật có nhiều hình dạng kích thước khác nhau
• Cơ cấu nhẹ, mềm dẻo không gây ảnh hưởng cơ học tới sản phẩm
• Hoạt động được ở tốc độ cao và không ảnh hưởng tới kết quả toàn hệ thống
• Công nghệ hiện đại, mới mẻ, không sinh phế phẩm và an toàn với môi trường
DUT.LRCC
Trang 25gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200)
Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng
hơn thì độ mịn (liên tục của các điểm) kém hơn
3.1.3 Mức xám của ảnh
Một điểm ảnh (pixel) có 2 đặc trưng cơ bản đó là vị trí (x, y) của điểm ảnh và độ xám của nó Và mức xám của một điểm ảnh là cường độ sáng của nó gắn với một trị số nhất định tại điểm đó Có nhiều thang biểu thị mức xám như 16, 32, 64, 128, 256,… Mức 256 được sử dụng phổ biến (kỹ thuật máy tính dung 1 Byte để biểu diễn mức xám,
có 28 = 256 mức, tức là từ 0 255)
3.1.4 Cấu trúc lưu dữ liệu
Dữ liệu được lưu trữ theo cấu trúc mảng (tập có thự tự gồm các phần tử số thực hoặc phức) Ảnh cũng được lưu trữ bởi các mảng phần tử với các dữ liệu lưu trữ có thể
là màu cường độ của ảnh Hầu hết các ảnh được lưu trữ dưới dạng các mảng 2 chiều (ví dụ: ma trận) Trong các mảng 2 chiều này, mỗi phần tử tương ứng với một pixel và thường được biểu diễn bởi một điểm trên màng hình mày tính (ví dụ: một bức ảnh có
500 hàng và 700 cột gồm nhiều điểm màu khác nhau được lưu trữ bởi một ma trận kích thước 500x700) Một bức ảnh như ảnh màu đòi hỏi phải được lưu trữ bởi mảng ba chiều Trong đó mặt phẳng thứ nhất trong mảng ba chiều này biểu diễn cho cường độ màu đỏ
DUT.LRCC
Trang 26(red) của phần tử, mặt phẳng thứ hai biểu diễn cho cường độ màu xanh lá cây (green)
và mặt phẳng còn lại biểu diễn cho cường độ màu xanh da trời (blue) của phần tử Với việc lưu trữ các ảnh dưới dạng mảng, việc xử lý ảnh với dữ liệu được lưu bởi dạng ma trận nào được thực hiện rất thuận tiện
• Line scan camera, thích hợp cho các ứng dụng cần cả tốc độ cao và chất lượng hình ảnh cao Loại camera này không theo dõi toàn bộ ảnh mà đánh giá ảnh chính xác theo từng dòng Thường được sử dụng trong quá trình kiểm tra chất lượng hàng hóa và quy trình phân loại
• Network camera, thường được sử dụng để giám sát với chất lượng hình ảnh vượt trội và hiệu suất mạnh mẽ trong môi trường ánh sáng thấp
Một hệ thống xử lý ảnh tốt cần một camera tốt, đồng thời tùy vào mục đích sử dụng cũng như yêu cầu của ứng dụng mà lựa chọn camera phù hợp Các tiêu chí căn cứ
để lựa chọn một camera cho xử lý ảnh gồm: điện năng tiêu thụ, độ phân giải, loại cảm biến được sử dụng trong máy ảnh, chuẩn giao tiếp, loại Camera đơn sắc hay màu … Trong khuôn khổ đề tài này, nhiệm vụ xử lý ảnh không quá phức tạp nên nhóm tác
giả sử dụng Camera Logitech HDc270h Với các thông số kỹ thuật chính như sau:
• Độ phân giải 1280 x 720 pixel
• Chuẩn giao tiếp USB2.0
• Loại Camera màu
• Tốc độ khung hình 30 fps
DUT.LRCC
Trang 273.2.2 Visual Studio
3.2.2.1 Hiểu biết chung về Visual Studio
Microsoft Visual Studio là một môi trường phát triển tích hợp từ Microsoft Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight Nó có thể sản xuất
cả hai ngôn ngữ máy và mã số quản lý
Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và
gỡ lỗi mức độ máy Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm
Hình 3.2 Giao diện Visual Studio Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình Các ngôn ngữ tích hợp gồm có C,[1] C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như của Visual
DUT.LRCC
Trang 28Studio 2010[2]) Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và
CSS.GPIO, Power over Ethernet (PoE)
3.2.2.2 Giao diện làm việc của Visual Studio
Hình 3.3 Giao diện làm việc của Visual Studio Màu cam:(Solution Explorer)là cửa sổ hiển thị Solution, các Project và các tập tin trong project
• Màu đỏ:đây là khu vực để lập trình viên viết mã nguồn cho chương trình Cửa sổ lập trình cho một tập tin trong Project sẽ hiển thị khi người dùng nháy đúp chuột lên tập tin đó trong cửa sổ Solution Explorer
• Màu vàng:(Output)đây là cửa sổ hiển thị các thông tin, trạng thái của Solution khi build hoặc của chương trình khi debug
• Màu đen(Toolbar) với các công cụ hỗ trợ người dùng trong việc viết mã và debug (các công cụ trên thanh có thể thay đổi khi bắt đầu debug)
• Màu xanh lá cây(Thanh menu) với đầy đủ các danh mục chứa các chức năng của VS Khi người dùng cài thêm những trình cắm hỗ trợ VS (ví dụ như Visual Assist), thanh menu này sẽ cập nhật thêm menu của các trình cắm (nếu có)
DUT.LRCC
Trang 29Một số cửa sổ bị ẩn bạn có thể tìm ở trong :View -> Other Windows, các thanh công cụ được đặt trong View -> Toolbars
Hình 3.4 Cách bật các cửa sổ bị ẩn trong Visual Studio
3.2.2.3 Giao diện làm việc của chương trình xử lý ảnh
Hình 3.5 Giao diện làm việc của chương trình xử lý ảnh
DUT.LRCC
Trang 30Trên giao diện, mỗi vùng có một tác dụng tương ứng:
• Vùng 1: Nơi hiển thị kết quả nhận diện khi chạy chương trình Nó sẽ hiển thị hình ảnh, vị trí của vật cùng góc xoay của vật
• Vùng 2: Các lựa chọn nhận diện thủ công Ở đây chúng ta có thể chọn vật thể cần nhận diện sau đó nhận diện chúng từ một bức ảnh chọn trong máy tính hoặc lấy trực tiếp từ camera
• Vùng 3: Theo dõi trạng thái kết nối giữa chương trình máy tính và PLC cũng như Arduino, thực hiện việc kết nối/ngắt kết nối, kiểm tra dữ liệu truyền nhận với Arduino và đọc/ghi dữ liệu thủ công vào Buffer Memory của PLC
• Vùng 4: Hiển thị hình ảnh đầu vào sau khi được khử nhiễu và lọc màu, vùng này giúp việc theo dõi và xử lý các tình huống bị nhiễu tốt hơn
• Vùng 5: Hiển thị vị trí vật nhận diện được
• Vùng 6: Hiển thị hình ảnh camera đầu vào
3.2.3 EmguCV/OpenCV
OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho
cả học thuật và thương mại Nó có các interface C++, C, Python, Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tính toán hiệu quả và với sự tập trung nhiều vào các ứng dụng thời gian thực Được viết bằng tối ưu hóa C/C++, thư viện có thể tận dụng lợi thế của xử lý đa lõi Được sử dụng trên khắp thế giới, OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần Phạm vi sử dụng từ nghệ thuật tương tác, cho đến lĩnh vực khai thác mỏ, bản đồ trên web hoặc công nghệ robot
OpenCV đang được sử dụng rộng rãi trong các ứng dụng bao gồm:
• Hình ảnh street view
• Kiểm tra và giám sát tự động
• Robot và xe hơi tự lái
• Phân tích hình ảnh y tế
• Tìm kiếm và phục hồi hình ảnh/video
• Phim - cấu trúc 3D từ chuyển động
• Nghệ thuật sắp đặt tương tác
Trong quá trình xử lý ảnh, nhóm tác giả sử dụng EmguCV, đây là một cross flatform NET và một thư viện xử lý hình ảnh mạnh dành riêng cho ngôn ngữ C# Nó cho phép gọi được chức năng của OpenCV là từ NET EmguCV tương thích với các
DUT.LRCC
Trang 31ngôn ngữ như: C#, VB, VC ++, Iron Python Wrapper của nó có thể được biên dịch bởi Visual Studio, Xamarin Studio và Unity EmguCV có thể chạy trên Windows, Linux, Mac OS X, iOS, Android và Windows Phone
Các lợi thế của EmguCV có thể kể ra như sau:
• EmguCV được viết hoàn toàn bằng C# Có thể chạy trên bất kỳ nền tảng hỗ trợ bao gồm iOS, Android, Windows Phone, Hệ điều hành Mac OS X và Linux
• EmguCV có thể được sử dụng từ nhiều ngôn ngữ khác nhau, bao gồm C#, VB.NET, C ++ và Iron Python
• Nhận dạng ảnh: nhận dạng khuôn mặt, các vật thể …
• Xử lý ảnh: khử nhiễu, điều chỉnh độ sáng …
• Nhận dạng cử chỉ
• Hỗ trợ tài liệu XML và intellisense
• Sự lựa chọn để sử dụng hình ảnh lớp hoặc trực tiếp gọi chức năng từ OpenCV
3.3 Giao tiếp giữa máy tính và PLC
3.3.1 Giới thiệu về MX Component
Ta thực hiện truyền/nhận dữ liệu giữa PLC và máy tính thông qua dây cáp USB và
sự hỗ trợ của chương trình MX Component MX Component là một công cụ đơn giản nhưng rất mạnh mẽ cho phép ta kết nối các PLC Mitsubishi với máy tính một cách nhanh chóng và dễ dàng
Công cụ Communication Setup Utility sẽ giúp ta dễ dàng tạo dựng và kiểm tra kết nối giữa máy tính và PLC Chương trình hỗ trợ rất nhiều chế độ kết nối khác nhau như: Serial (cổng CPU), RS-232C, RS-422, Ethernet và CC-Link Đặc biệt một số dòng PLC còn hỗ trợ kết nối qua cổng USB
Hình 3.6 Giao diện Communication Setup Utility
DUT.LRCC
Trang 323.3.2 Cài đặt kết nối
• Bước 1: Trên giao diện chính của Communication Setup Utility, nhấn vào
mục Wizard Của sổ Introduction hiện ra, nhập vào số của trạm Logic cần tạo vào mục Logical station number Nhấn next để đến bước tiếp theo
Hình 3.7 Nhập số trạm
• Bước 2: Ở của sổ PC side, ở mục PC side I/F, chọn phương thức kết nối là
USB Nhấn Next để tới bước tiếp theo
Hình 3.8 Chọn phương thức kết nối
• Bước 3: Ở bước này, ở mục PLC side I/F ta chọn CPU module để kết nối
với PLC Ở mục CPU type chúng ta chọn loại CPU được sử dụng trong PLC ta đang sử dụng, ở đây là FX3G(C)
DUT.LRCC
Trang 33Hình 3.9 Chọn loại CPU sử dụng
• Bước 4: Ở bước này a chọn loại trạm ở mục Station type là Host station
Nhấn next để đến bước cuối cùng
Hình 3.10 Chọn loại trạm
• Bước 5: Ở bước này, chúng ta có thể thêm một số ghi chú cho kết nối đang
cài đặt Nhấn Finish để kết thúc việc cài đặt
DUT.LRCC
Trang 34Hình 3.11 Ghi chú và kết thúc
3.3.3 Chương trình nhận và gửi dữ liệu
Để thuận tiện cho việc truyền nhận dữ liệu với PLC trên ngôn ngữ C#, Mitsubishi tạo ra thư viện hỗ trợ MITSUBISHI ActUtlType Control Và ta phải thêm thư viện này vào chương trình trước khi viết chương trình truyền nhận
Khối lệnh đọc dữ liệu từ Buffer Memory:
private int ReadDataPLC(string device)
Trang 35Hình 3.12 Lưu đồ thuật toán lập trình xử lý ảnh
❖ Khối lệnh thu nhận và kiểm tra hình ảnh đầu vào
private void Form1_Load(object sender, EventArgs e)
DUT.LRCC
Trang 36Trong khối lệnh này bao gồm các hàm với chức năng như sau:
Hàm “if (capture == null)” cho phép chúng ta kiểm tra xem đã lấy được các khung hình video thông qua camera hay chưa Nếu là chưa thì nó sẽ thực hiện việc kết nối bằng cách tạo ra một Capture mới bằng lệnh“capture = new Capture();”
Sau khi kết nối được, hàm ProcessFrame sẽ được gọi để hiển thị hình ảnh thu được lên giao diện chương trình:
private void ProcessFrame(object sender, EventArgs arg)
{
var ImageFrame = capture.QueryFrame().ToImage<Bgr, byte>(); //line 1' var bmp = ImageFrame.Bitmap;
DUT.LRCC
Trang 37Bitmap TempBitmap = Image;
float FinalValue = (float)Value / 255.0f;
TempBitmap.Height, GraphicsUnit.Pixel, Attributes);
Attributes.Dispose();
NewGraphics.Dispose();
return NewBitmap;
}
Hàm này có input là một ảnh và một giá trị từ -255 đến 255, nó có nhiệm vụ xuất
ra một ảnh là kết quả sau khi tăng/giảm ánh sáng ở ảnh đầu vào dựa vào giá trị nhận được Giá trị 0 tương ứng với độ sáng ở ảnh gốc, giá trị nhập vào càng lớn thì ảnh đầu
Trang 38cho nên nếu xét trên miền tần số thì phương pháp này sẽ làm giãm các thành phần có tần số cao trong hình Hay nói cách khác Gaussian Blur là một bộ lọc tần số cao (low pass filter: chỉ giữ lại các thành phần tần số thấp) Hiểu đơn giản bộ lọc này sẽ giảm nhiễu cho ảnh và giảm mức độ chi tiết của hình ảnh
❖ Khối lọc màu cho ảnh
private void GetRedPixelMask(IInputArray image, IInputOutputArray mask)
using (ScalarArray lower = new ScalarArray(15))
using (ScalarArray upper = new ScalarArray(150))
CvInvoke.InRange(mask, lower, upper, mask);
CvInvoke.BitwiseNot(mask, mask);
}
else if (Type == 2)
{
using (ScalarArray lower = new ScalarArray(10))
using (ScalarArray upper = new ScalarArray(40))
CvInvoke.InRange(mask, lower, upper, mask);
}
else if (Type == 3)
{
using (ScalarArray lower = new ScalarArray(0))
using (ScalarArray upper = new ScalarArray(35))
DUT.LRCC
Trang 39}
else if (Type == 4)
{
using (ScalarArray lower = new ScalarArray(0))
using (ScalarArray upper = new ScalarArray(20))
CvInvoke.InRange(mask, lower, upper, mask);
Ảnh được đưa vào sẽ được tách ra làm hai kênh, kênh thứ nhất dùng để lọc màu
sắc (Hue) và kênh thứ hai dùng để lọc độ bão hòa màu (Saturation) Không gian màu
HSV được sử dụng để làm cơ sở để lọc màu:
Hình 3.13 Không gian màu HSV Giá trị vùng màu (Hue) trong EmguCV được quy định trong khoảng từ 0-179 Mỗi
vật thể cần xác định luôn có màu nằm trong một vùng màu nhất định Ví dụ quả cà chua
có màu đỏ và vùng màu của nó nằm trong khoảng 150 đến 15 Dựa vào đặc tính này, ta
có thể lọc ra những vùng màu có màu tương tự như vật cần tìm
Giá trị ngưỡng màu được quy định bằng 2 biến “lower” và “upper” Hàm
“CvInvoke.InRange(mask, lower, upper, mask);” được sử dụng để lọc bỏ đi tất cả điểm
ảnh trên hình ảnh đầu vào không có màu sắc nằm trong ngưỡng này và chỉ để lại những
điểm ảnh phù hợp Mỗi giá trị của biến “Type” đại diện cho một loại thức ăn: 1 - Gà rán,
2 - Trứng cuộn, 3 - Xúc xích, 4 - Gà rán Mỗi loại thức ăn đều có một khoảng màu quy
Trang 40❖ Khử nhiễu cho ảnh sau khi lọc màu
Các vật thể được lọc ra bằng bộ lọc màu ở bước 1 chứa vô số các chấm nhỏ, đó là các điểm ảnh không thỏa mãn bộ lọc trên vật thể Chúng ta cần loại bỏ chúng trước khi thực hiện bước tiếp theo Ta sử dụng hai phép toán hình thái học Dilation (giãn nở) và Erosion (co lại) Phép giãn nở sẽ có tác dụng làm cho đối tượng ban đầu trong ảnh (điểm ảnh) tăng lên về kích thước (Giãn nở ra) và lấp đầy các ô trống gần chúng, phép co lại
sẽ giúp đưa vật về kích thước trước khi giãn nở và giúp viền của vật thể mượt hơn
Hình 3.14 Ví dụ cho giãn nở và co ảnh Chương trình khử nhiễu cho ảnh được trình bày như sau:
CvInvoke.Dilate(smoothedRedMask, smoothedRedMask, null, new Point(-1, -1), 1, BorderType.Constant, CvInvoke.MorphologyDefaultBorderValue);
CvInvoke.Erode(smoothedRedMask, smoothedRedMask, null, new Point(-1, -1), 1, BorderType.Constant, CvInvoke.MorphologyDefaultBorderValue);
❖ Tạo viền, tìm kiếm các vật thể sau khi lọc màu
Sau khi có được những vùng có màu tương tự như vật cần tìm, ta sử dụng giải thuật phát hiện cạnh Canny để xác định viền của các vật thể đó Giải thuật Canny được
sử dụng trong EmguCV với chỉ một hàm:
CvInvoke.Canny(smoothedRedMask, canny, 100, 50);
Trong đó, smoothedRedMask là ảnh đã được xử lý ở bước trên, và canny là viền của vật thể được lưu trữ với dạng ma trận
DUT.LRCC