TỔNG QUAN
Đặt vấn đề
Hiện nay cùng với sự gia tăng dân số và quá trình đô thị hóa ngày càng nhanh, chất thải rắn được thải ra ngày càng nhiều và đa dạng về thành phần, chủng loại Vì vậy, thu gom và xử lý chất thải rắn đã trở thành một vấn đề lớn trên thế giới, đặc biệt là các nước đang phát triển Trong khi đó, chi phí đầu tư cho công tác quản lý chất thải rắn ở nhiều nơi còn thấp dẫn đến chưa đáp ứng được nhu cầu thu gom và xử lý.
Rác thải đang dần trở thành mối nguy hại đối với đời sống và sức khỏe con người. Trong thành phần rác thải sinh hoạt, đa số rác hưu cơ, vô cơ luôn để lẫn lộn nên dẫn đến mùi hôi thối, ô nhiễm môi trường và các rác thải tái chế phải được phân loại bởi con người. Ở các nước phát triển trên thế giới, công việc thu gom và phân loại rác thì được trả lương rất cao, nhưng đối với nước ta thì mức lương rất thấp và không đảm bảo được sức khỏe của người dân.
Với sự phát triển nhanh chóng vượt bậc, thế giới đang trải qua quá trình công nghiệp hóa, hiện đại hóa trên quy mô toàn cầu, từ vĩ mô tới vi mô Từng bước làm chủ các ngành công nghiệp trên thế giới, đẩy mạnh quá trình tự động hóa trong công nghiệp.
Ngành công nghiệp tự động hóa tập trung nghiên cứu, thiết kế, vận hành các hệ thống tự động, các dây chuyền tại nhà máy; thiết kế và chế tạo Robot trong việc phân loại sản phẩm, nâng cao năng suất làm việc.
Là một phần không thể thiếu trong chuyển động của Robot, động cơ servo đã cách mạng hóa ngành công nghiệp điều khiển một cách triệt để Từ đó đến nay, nghành công nghiệp servo đã phát triển vượt bậc và hầu hết góp mặt trong mọi hệ thống điều khiển tự động trên mọi lĩnh vực Đối với các công việc phức tạp, đòi hỏi độ chính xác cao và sai số thấp, khả năng đáp ứng của máy móc ngày càng phải nhanh và mạnh mẽ hơn, để đáp ứng được nhu cầu đó các hệ thống ngày nay hầu hết đều sử dụng động cơ servo trong quá trình xử lý, cụ thể như cánh tay Robot, máy CNC, cần trục và cơ cấu vitme, bàn xoay, tịnh tiến…
Cùng sự ứng dụng khoa học công nghệ, thế giới đã có những chuyển biến rõ rệt và ngày càng tiên tiến, hiện đại hơn Hệ thống tự động hóa với khả năng thực hiện nhiều công việc cùng lúc với độ chính xác cao, là một phần không thể thiếu trong các dây chuyền sản xuất, phân loại tự động.
Trong quá trình phân loại rác thải thì để máy móc và các thiết bị hoạt động hiệu quả phải đảm bảo hai yếu tố: độ chính xác và tốc độ xử lý cao Ngoài ra còn tùy vào rác thải để phân loại, không gian hoạt động và đặc tính của rác Vì vậy qua những yếu tố trên, cùng với việc có thể dễ dàng tiếp cận nguồn dữ liệu cần thiết, nhóm quyết định lựa chọn đề tài “ ỨNG
Tình hình nghiên cứu
Theo Business Insider, các Robot hỗ trợ xử lý rác thải có hiệu quả và năng suất cao đã được chế tạo để giải quyết bài toán rác thải Một số hãng sản xuất Robot lớn trên thế giới như AMP Robotics, Bulk Handling Systems of Eugene ở Oregon (Mỹ), ZenRobotics ở Helsinki (Phần Lan) … đã đẩy mạnh nghiên cứu, phát triển các Robot phân loại rác thải, lần lượt cho ra mắt nhiều Robot hiện đại, tích hợp công nghệ AI để giúp con người phân loại rác thải, tăng năng suất lao động.
Bảng 1.1: Các nghiên cứu ở nước ngoài
Stt Các Robot phân loại rác Thông tin về Robot
Sản xuất năm 2018 Công ty Machinex Nước Canada
Công suất 70 lần nhặt/ phút Phân loại rác nhựa
Cơ cấu hít Hiệu quả 95%
• Công suất 100 lần nhặt/ phút
• Phân loại rác kim loại
3 • Công suất 25 lần nhặt/phút, 6 tấn/giờ
• Phân loại rác vụn xây dựng, túi rác.
Hiện nay trình độ khoa học kĩ thuật trong lĩnh vực Robot ở Việt Nam còn bị bỏ khá xa so với thế giới Họ có nền tảng vững chắc, lịch sử lâu đời về Robot Hầu hết các nghiên cứu phát triển Robot đã và đang được triển khai ở các trường đại học, viện nghiên cứu trong cả nước nhưng đa phần chỉ quan tâm và tập trung giải quyết một số vấn đề liên quan đến hệ thống như thiết kế tối ưu, động học, động lực học, điều khiển, thiết kế phần cứng, lập trình phần mềm…Việc kết hợp xử lý ảnh cùng với Robot cũng đã được thực hiện nhưng chưa thật sự rộng rãi, các đề tài tập trung nhiều cho mô hình cánh tay Robot chỉ gắp sản phẩm và phân loại sản phẩm Đối với các đề tài thiết kế và điều khiển Robot bắt vật sử dụng xử lý ảnh thì hiện nay vẫn vẫn còn hạn chế.
Qua thời gian nghiên cứu, tại Trường Đại học Sư Phạm Kỹ Thuật cũng đã có một số đề tài liên quan đến chủ đề phân loại đối tượng dựa trên thị giác máy tính.
Một số đề tài có thể kể như:
Bảng 1.2 Các đề tài phân loại rác trong trường
Tên đề tài Khoa Nhóm tác giả
Thiết Kế Và Chế Tạo Hệ Khoa Cơ Khí Chế Tạo Lương Công Hiệu
Thống Phân Loại Rác Tự Máy Võ Nhựt Minh Động Nguyễn Đức Lợi Ứng Dụng PLC Trong Khoa Điện-Điện Tử Trần Hảo Ý Điều Khiển Robot Delta Phùng Huỳnh Tuấn Minh Để Phân Loại Sản Phẩm
Mục tiêu đề tài
Mục đích đề tài của nhóm là nghiên cứu, thiết kế và vận hành được robot Scara để phân loại rác tái chế (chai nhựa).
Mục tiêu của đề tài sẽ dùng hệ thống xử lý ảnh để nhận tín hiệu đầu vào và thông qua bộ xử lý để điều khiển được Robot.
Xây dựng mô hình theo thiết kế ban đầu được đặt ra.
Lắp đặt tủ điện điều khiển và kết nối thành công các thiết bị với nhau dựa trên các tiêu chuẩn được quy định.
Lập ra lưu đồ giải thuật và đưa ra được ý tưởng nhằm đáp ứng đúng các yêu cầu mà bài toán đưa ra.
Nội dung nghiên cứu
Chương 1: Tổng Quan. Ở chương này sẽ nêu lên các vấn đề, lý do chọn đề tài, đưa ra mục tiêu nghiên cứu bố cục đồ án cũng như là giới hạn của đề tài.
Chương 2: Cơ sở lý thuyết.
Trình bày về cơ sở lý thuyết về PLC hãng Mitsubishi, Servo Driver, Servo motor, công nghệ thị giác máy tính.
Chương 3: Thiết kế và thi công hệ thống. Ở chương này sẽ trình bày các bước thi công phần cứng, lựa chọn thiết bị, sơ đồ đấu dây dựa trên thực tế và bản vẽ thiết kế.
Chương 4: Tính toán động học và quy hoạch quỹ đạo
Sử dụng các phần mềm để tính toán động hoạch thuận, nghịch và quy hoạch quỹ đạo cho cánh tay robot.
Chương 5: Áp dụng thị giác máy tính
Chương này bao gồm việc huấn luyện mạng Yolo và sử dụng kết quả ngõ ra để dùng cho phần mềm phát hiện vật Tiếp theo là xử lý tín hiệu vị trí của vật và trả về cánh tay robot.
Chương 6: Tính toán và thiết kế phần mềm điều khiển
Giải thuật điều khiển và đường đi của dữ liệu sẽ được trình bày Bên cạnh đó còn có giao diện người dùng được thiết kế thân thiện với người dùng.
Chương 7: Đưa mô hình vào hoạt động, thực nghiệm và đánh giá kết quả
Sử dụng nhiều mẫu thử, trường hợp khác nhau, đưa ra đánh giá quy trình và chọn thông số tốt nhất.
Chương 8: Đưa ra kết luận và hướng phát triển của đề tài. Đưa ra kết quả tổng quan của cả đề tài, những tiềm năng có thể và những hạn chế cần khắc phục Hướng đi trong tương lai gần.
Giới hạn đề tài
Trong đồ án được thực hiện, được đặt ra là ứng dụng cánh tay Robot Scara phân loại rác (chai nhựa), sử dụng xử lý ảnh nên nhóm chỉ nhận dạng và phân loại chai nhựa ở mức độ là rác sinh hoạt hằng ngày của hộ gia đình.
Vì mục tiêu chủ yếu của đề tài là xoay quanh câu chuyện xử lý ảnh, nhưng nhóm không thể đáp ứng được nhu cầu về phần cứng, kể cả khâu lập trình cũng bị hạn chế về thời gian.
CƠ SỞ LÝ THUYẾT
Giới thiệu chung về PLC
PLC (Programmable Logic Controller) là thiết bị điều khiển khả trình cho phép thực hiện linh hoạt các thuật toán điều khiển logic thông qua một ngôn ngữ lập trình nào đó. Người sử dụng có thể lập trình để thực hiện một loạt trình tự, sự kiện Ngôn ngữ lập trình có thể là Ladder hay State logic.
Cùng với sự phát triển của máy móc tự động hóa thì PLC dần dần được tích hợp thêm nhiều tính năng khác nhằm giúp nó có thể điều khiển được nhiều thiết bị cũng như khả năng kết nối nhiều hệ thống với nhau Những tính năng mở rộng phổ biến hiện nay của PLC như khả năng đọc và xuất tín hiệu analog Tích hợp khả năng đọc xung tốc độ cao từ cảm biến đo vòng quay encoder Kết nối với nhiều thiết bị ngoại vi bằng truyền thông như màn hình cảm ứng HMI, máy tính, camera, …
● Bộ xử lý (CPU: Central Processing Unit)
Là bộ não của PLC, quyết định tốc độ xử lý cũng như khả năng điều khiển chuyên biệt của PLC Là nơi đọc các tín hiệu từ ngõ vào đồng thời xử lý cũng như xuất tín hiệu ra ngõ ra.
● Khối ngõ vào (Module Input): gồm hai loại: ngõ vào số DI (Digital Input) và ngõ vào tương tự AI (Analog Input)
Ngõ vào DI kết nối với các thiết bị tạo ra tín hiệu dạng xung như: nút nhấn, công tắc hành trình, cảm biến tiệm cận…
Ngõ vào AI kết nối với các thiết bị tạo ra tín hiệu liên tục như: cảm biến nhiệt độ, khoảng cách, độ ẩm
● Khối ra (Module Output): gồm hai loại: ngõ ra số DO (Digital Output) và ngõ ra tương tự AO (Analog Output)
Ngõ ra DO kết nối với các cơ cấu chấp hành điều khiển theo quy tắc On/ Off như: đèn báo, chuông, van điện…
Ngõ ra AO kết nối với các cơ cấu chấp hành cần tín hiệu điều khiển liên tục: biến tần, van tuyến tính…
2.1.2 Đặc điểm của PLC Ưu điểm: Để so sánh giữa PLC và các mạch điều khiển dạng tiếp điểm truyền thống thì PLC có khá nhiều ưu điểm đáng kể như sau:
- Khả năng điều khiển linh hoạt.
- Tích hợp sẵn Timer, Counter bên trong, bên cạnh đó PLC còn hỗ trợ thêm các khối chuyên dụng có thể kể đến như bộ phát xung tốc độ cao, bộ đếm tốc độ cao, bộ điều khiển PID…
- PLC có thể thay thế toàn bộ mạch điều khiển truyền thống sử dụng dây dẫn.
- Khả năng truyền thông, kết nối với máy tính hay PLC khác
- Tuổi thọ cao, chống nhiễu tốt trong môi trường công nghiệp.
Nhược điểm: Nhược điểm chí mạng của PLC nằm ở giá thành Việc giá thành khá cao so với mạch điều khiển tiếp điểm truyền thống đã ngăn cản PLC có thể tiếp cận được với các hệ thống đơn giản Một yêu cầu nữa khi muốn sử dụng PLC thì người dùng phải có kiến thức về lập trình PLC.
Với những ưu nhược điểm vừa kể trên, có thể thấy PLC thể hiện vượt trội so với mạch điều khiển tiếp điểm truyền thống Hiện nay, trong các nhà máy dây chuyền công nghiệp, PLC đã thay thế hầu hết các hệ thống điều khiển sử dụng mạch điều khiển tiếp điểm truyền thống Việc này giúp hệ thống hoạt động hiệu quả hơn, độ tin cậy cao hơn, tiết kiệm được nhân công và tránh được những thao tác sai lầm của người vận hành.”
Hình 2.1 Các dòng PLC Mitsubishi
PLC dòng Q của hãng MITSUBISHI
[1] Phát triển lên từ dòng sản phẩm trước đó họ AnSH, họ Q PLC Mitsubishi cho phép người dùng phối hợp và lựa chọn sự kết hợp tốt nhất giữa CPU, công cụ truyền tin, module điều khiển chuyên biệt và I/O trên cùng một nền tảng Có thể phối hợp PLC (cơ bản và nâng cao), Motion CPU, Process Controllers và ngay cả PC vào trong một hệ thống duy nhất lên đến 4 CPU khác nhau.
Bảng 2.1 Các kí hiệu của PLC dòng Q series
Tên CPU dòng Q Mô tả Mẫu CPU
QnUCPU Các tính năng, phương pháp, Mã CPU ứng dụng tổng thiết bị cho lập trình quát
Qn(H)/QnPH/ Các tính năng, phương pháp, Mẫu QCPU cơ bản/ hiệu
QnPRHCPU thiết bị cho lập trình năng cao/ điều khiển quy trình/ dự phòng
QCPU Thông tin cho cấu hình hệ thống Mẫu QCPU cơ bản/ hiệu đa CPU (cấu hình hệ thống, năng cao/ điều khiển quy thông số I/O, liên kết thiết bị trình/ ứng dụng tổng quan vào/ra và tính năng thiết bị thông minh
QnPRHCPU Cấu hình hệ thống dự phòng, tính Mã CPU dự phòng năng, kết nối với các thiết bị bên ngoài và xử lý sự cố
QnUCPU Tính năng liên kết thông qua Mã CPU ứng dụng tổng cổng Ethernet gắn trong quát
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 8
Hình 2.2 Các loại thiết bị CPU dòng Q hiện có Bảng 2.2 Các loại nguồn cung cấp cho CPU
Tên Module Đầu vào Đầu ra
Hình 2.3 Các loại mô-đun nguồn và thẻ nhớ
Bảng 2.3 Các module ngõ vào
Số 100- 100 đến 24V DC 5/12V 24V DC ngõ 120V 220V DC vào AC AC
16 QX10 QX40, QX40- QX70 QX80
64 QX42, QX42- QX72 QX82, QX82-
Hình 2.4 Sơ đồ mạch điện đầu vào PLC Bảng 2.4 Các module ngõ ra
Số Relay Triac Transistor Transistor 12 Transistor Transistor ngõ 24VDC, 100 đến 12 đến đến 24VDC 12 đến 12 đến ra 240VAC 240VAC 24VDC (Sink/source) 24VDC 24VDC
Hình 2.5 Sơ đồ mạch điện đầu ra PLC
PLC dòng có thành phần chính là một bộ nhớ chương trình RAM bên trong (có thể mở rộng thêm một số bộ nhớ ngoài EPROM) Một bộ vi xử lý có cổng giao tiếp dùng cho việc ghép nối với PLC, các modul vào/ra.
Hình 2.6 Cấu trúc PLC dòng
Q ● Nguyên lý hoạt động của PLC Đầu tiên các tín hiệu từ các thiết bị ngoại vi (sensor, contact, …) được đưa vào CPU thông qua module đầu vào Sau khi nhận được tín hiệu đầu vào thì CPU sẽ xử lý và đưa các tín hiệu điều khiển qua module đầu ra xuất ra các thiết bị được điều khiển bên ngoài theo 1 chương trình đã được lập trình sẵn Một chu kỳ bao gồm đọc tín hiệu đầu vào, thực hiện chương trình, truyền thông nội, tự kiểm tra lỗi, gửi cập nhật tín hiệu đầu ra được gọi là 1 chu kỳ quét hay 1 vòng quét (Scan Cycle) Thường việc thực hiện một vòng quét xảy ra trong thời gian rất ngắn (từ 1ms-100ms) Thời gian thực hiện vòng quét này phụ thuộc vào tốc độ xử lý lệnh củaPLC, độ dài ngắn của chương trình, tốc độ giao tiếp giữa PLC và thiết bị ngoại vi.
Động cơ
2.3.1 Động cơ bước Động cơ bước là một loại động cơ có nguyên lý và ứng dụng khác biệt nhất trong các loại động cơ điện thông thường Nó là động cơ đồng bộ biến đổi tín hiệu điều khiển dạng xung rời rạc kế tiếp nhau thành chuyển động góc quay Số xung đầu vào sẽ quyết định góc bước.
Là một loại máy móc chuyên dụng, được sử dụng để cung cấp cơ năng cho một số thiết bị Một trong các bộ phận không thể thiếu để giúp Động cơ Servo hoạt động chính xác đó là Driver Servo, nó cung cấp cho Động cơ Servo lượng lực cần thiết cho các thiết bị máy móc khi vận hành.
“ Động cơ Servo thông thường sẽ được phân ra làm hai loại chính đó là: động cơ AC Servo và động cơ DC Servo. Đối với DC servo: Động cơ sử dụng nguồn một chiều DC servo sử dụng chổi than bên trong động cơ chính vì thế việc thay thế chổi than là cần thiết khi sử dung thời gian dài, do đó việc sử dụng DC servo cần có sử bảo trì định kì DC servo thường có thế mạnh về điều khiển tốc độ với khả năng duy trì tốc độ cao một cách cực kì ổn định kiểm soát bởi bộ điều khiển PWM tích hợp. Đối với AC servo: Cấu trúc rất giống với động cơ không chổi than, vì không có chổi than nên động cơ AC servo yêu cầu bảo trì ít hơn so với động cơ DC servo Hệ thống Encoder hồi tiếp điều khiển và cảnh báo vị trí rôto để đảm bảo dòng điện chạy qua các cuộn dây chính xác Liên kết và phản hồi được sử dụng trong động cơ servo AC phải hoạt động chính xác với bộ điều khiển hoặc bộ khuếch đại So với DC servo, quán tính của rôto rất thấp, hệ thống điều khiển phức tạp, và dòng điện, tần số và pha của stato được điều phối bởi driver để đạt được vị trí mong muốn Tốc độ quay của AC servo có thể đạt tới 6000 vòng / phút hoặc cao hơn trong servo chuyên dụng. Đối với hãng Mitsubishi, động cơ AC Servo của hãng sẽ phân theo ứng dụng của động cơ và sẽ được phân biệt dựa vào Seri kí hiệu.”
- Động cơ quán tính trung bình (Series HF): Độ chính xác của máy quán tính cao sẽ được đảm bảo Thích hợp cho các máy yêu cầu tăng tốc nhanh chóng.
- Động cơ quán tính thấp (Series HF-KP): Phù hợp với một trục phụ trợ đòi hỏi phải định vị tốc độ cao.
- Động cơ servo tuyến tính (Series LM-F): Có thể sử dụng trong môi trường sạch sẽ bởi không sử dụng bất cứ vít me bi nào và do đó nhiễm bẩn từ dầu mỡ không phải là vấn đề.
- Động cơ servo dẫn động trực tiếp (Series TM-RB): Động cơ kết hợp dẫn động trực tiếp với mô-men xoắn cao với hệ thống điều khiển có độ lợi cao sẽ mang lại khả năng tăng tốc và định vị nhanh chóng, giúp máy quay mượt mà hơn.
AC Servo có khả năng thực hiện ba loại điều khiển: điều khiển vị trí, điều khiển tốc độ, điều khiển momen.
- Điều khiển vị trí: AC Servo có khả năng điều khiển vị trí chính xác đến từng micromet mà mắt người không thể phát hiện được.
- Điều khiền tốc độ: điều khiển tốc độ được sử dụng cho các thiết bị được biết đến như máy xi mạ quay được sử dụng để sản xuất mạch bán dẫn…
- Điều khiển momen: momen là lực dùng để xoay các trục được sử dụng như máy in công nghiệp.
AC Servo chủ yếu được cấu hình với hai thiết bị chính: bộ khuếch đại servo (trình điều khiển servo) và động cơ servo (bộ dò và bộ truyền động) Tuy nhiên, không thể chạy các servo AC chỉ sử dụng bộ khuếch đại servo và động cơ servo Hệ thống cần một bộ điều khiển để đưa ra các lệnh điều khiển Bộ điều khiển sẽ gửi một lệnh đến bộ khuếch đại servo và sau khi bộ khuếch đại servo nhận được lệnh, nó sẽ truyền lệnh đến động cơ servo Sau đó động cơ servo sẽ tạo ra lực truyền động theo lệnh này Động cơ servo cũng được trang bị một bộ mã hóa, hoạt động như một máy dò để phát hiện vị trí hiện tại và truyền thông tin này đến bộ khuếch đại servo Bộ khuếch đại servo so sánh giá trị được lệnh với giá trị hiện tại được bộ mã hóa đọc, sau đó đưa ra lệnh sửa đổi để giảm thiểu sự khác biệt Quá trình này được gọi là điều khiển hồi tiếp
2.3.2.5 Ưu nhược điểm Động cơ servo AC
- Ưu điểm: Điều khiển tốc độ tốt, điều khiển trơn tru trên toàn bộ vùng tốc độ, hầu như không dao động, hiệu suất cao hơn 90%, ít nhiệt, điều khiển tốc độ cao, điều khiển vị trí chính xác cao (tùy thuộc vào độ chính xác của bộ mã hóa) Mô-men xoắn, quán tính thấp, tiếng ồn thấp, không có bàn chải mặc, bảo trì miễn phí (đối với môi trường không có bụi, nổ).
- Nhược điểm: Điều khiển phức tạp hơn, các thông số ổ đĩa cần phải điều chỉnh các thông số PID để xác định nhu cầu kết nối nhiều hơn
Encoder
Encoder được hiểu là cảm biến vị trí trả về thông tin về góc quay và tốc độ của một trục quay nào đó được kết nối với nó Nguyên lý cơ bản của bộ mã hóa là một đĩa quay sẽ quay quanh trục, trên đĩa có các lỗ hoặc khe cho tín hiệu quang đi qua đĩa để thu được góc quay của đĩa Khi trục quay làm đĩa quay, tín hiệu ánh sáng do đĩa chiếu xạ sẽ nhận và tắt để liên tục tạo xung, ghi lại số xung và tốc độ xung, ta được góc quay và tốc độ quay của bộ mã hóa trục lắp đặt.
Hình 2.9 Encoder dùng trong công nghiệp 2.4.2 Phân loại Encoder
Encoder thường được phân làm 2 loại: encoder tuyệt đối (Absolute encoder) và encoder tương đối (Increamental encoder).
Encoder tuyệt đối: là dòng encoder có khả năng phản hồi chính xác vị trí của trục động cơ so với điểm quy định sẵn ban đầu Đĩa encoder tuyệt đối thường có nhiều rãnh có kích thước khác nhau và sắp xếp không đều để tín hiệu quang phát ra xuyên qua rảnh đưa về được tín hiệu vị trí tại đó nhờ phân tích kích thước, số lượng rảnh rồi biên dịch qua hệ nhị phân mà từ đó qui đổi ngược lại được ví trí của trục quay.
Hình 2.10 Đĩa Encoder tuyệt đối
Encoder tương đối: là dòng encoder mà đĩa quay của nó có nhiều rảnh với kích thước bằng nhau và cách đều nhau, nhờ vậy khi tín hiệu quang cứ đi qua mỗi rãnh thì lại có một xung tín hiệu ra cho biết trục quay đã quay được một góc bao nhiêu độ.
Hình 2.11 Đĩa Encoder tương đối
Sự khác biệt giữa 2 loại encoder: encoder tuyệt đối sẽ có ưu điểm vượt trôi hơn encoder tương đối với khả năng nhớ được vị trí chính xác trên một vòng quay của đĩa encoder hay trục kết nối Khi nguồn bị mất do sự cố, khi có điện trở lại encoder tuyệt đối vẫn nhớ được ví trí của mình, hệ thống có thể hoàn thành công việc tiếp tục mà không cần quay trở về vị trí ban đầu.Tuy nhiên đi kèm với ưu điểm vượt trội của encoder tuyệt đối đó là giá thành khá cao, điều khiển phức tạp hơn và các thiệt bị hỗ trợ phải hiện đại, giá thành cao hơn.
Bộ điều khiển động cơ servo
[2] Driver Servo là một bộ khuếch đại điện tử đặc biệt được sử dụng để theo dõi tín hiệu phản hồi từ cơ chế Servo và liên tục điều chỉnh độ lệch từ các hành vi dự kiến Drive Servo nhận được tín hiệu lệnh từ một hệ thống điều khiển, khuếch đại tín hiệu và truyền dòng điện cho một động cơ Servo để tạo ra chuyển động tỉ lệ thuận với tín hiệu lệnh Thông thường, tín hiệu lệnh đại diện cho một vận tốc mong muốn, nhưng cũng có thể biểu diễn một momen hoặc vị trí mong muốn Một cảm biến gắn vào động cơ Servo báo cáo tình trạng thực tế của động cơ quay trở lại bộ khuếch đại Động cơ Servo sau đó so sánh trạng thái động cơ thực tế với trạng thái động cơ được chỉ định Sau đó, thay đổi tần số, điện áp hoặc độ rộng xung tới động cơ để sửa lỗi cho bất kỳ độ lệch nào từ trạng thái lệnh.
Hình 2.12 Một số Driver Servo của hãng Mitsubishi Trong một hệ thống điều khiển được cấu hình đúng cách, động cơ Servo quay với vận tốc rất gần với tín hiệu vận tốc mà động cơ Servo nhận được từ hệ thống điều khiển Một số tham số, chẳng hạn như độ cứng (còn được gọi là tỷ lệ thuận lợi), giảm chấn (còn gọi là đạt được phái sinh) có thể được điều chỉnh để đạt được hiệu suất mong muốn Mặc dù có nhiều động cơ Servo đòi hỏi một Drive cụ thể cho thương hiệu động cơ hoặc kiểu động cơ cụ thể Tuy nhiên, nhiều Drive hiện nay có thể tương thích với một loạt các động cơ khác nhau.
[3] Dòng Servo thế hệ mới MR-J4 với công nghệ đứng đầu thế giới, như một kiệt tác về công nghệ điều khiển Servo Tính năng chống rung chuyên dụng cho máy móc và autotuning thời gian thực làm cho việc chuyển động đạt được độ chính xác cao nhất, thời gian đáp ứng nhanh và dễ dàng lắp đặt Servo MR-J4, MR-J3 có kích thước giảm khoảng40% so với dòng Servo MR-J2S thế hệ trước.
Tổng quan về thị giác máy tính và xử lý ảnh
Number of pulses per rotation (Số xung trên mỗi vòng quay): Thiết lập này giúp động cơ hiểu được số xung cần cấp để động cơ có thể hoàn thành được một vòng quay Số xung này phụ thuộc vào số xung cô định trên Encoder và hộp số đang gắn trực tiếp vào động cơ đó.
Movement amount per roration (Khoảng di chuyển trên mỗi vòng quay): cài đặt khoảng di chuyển mà cơ cấu cơ khí liên kết với trục động cơ như vít me, linear, bàn xoay… Pulse output mode (Chế độ phát xung): cài đặt phương pháp truyền tín hiệu xung lệnh và hướng quay cho phù hợp với bộ điều khiển servo được kết nối.
Output signal logic (Tín hiệu logic đầu ra): có thể lựa chọn một trong hai chếđộ
Positive logic – nhận lệnh mức High hoặc Negative logic – nhận lệnh mức low.
Rotation direction setting (Thiết lập hướng quay): chiều quay thuận nghịch của động cơ servo thực tế là không có mặc định Hướng ngay được chỉ định theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ Chính vì thế ta phải thiết lập hướng quay cho bộ điều khiển servo bằng cách cài đặt động cơ quay theo chiều mà giá trị vị trí báo về là dương nghĩa là quay thuận và ngược lại là quay nghịch.
Hình 2.13 Minh họa chiều quay của động cơ 2.7 Tổng quan về thị giác máy tính và xử lý ảnh
Tổng quan về thị giác máy tính và xử lý ảnh là hai lĩnh vực liên quan chặt chẽ với nhau, sử dụng các kỹ thuật từ trí tuệ nhân tạo (AI) và nhận dạng mẫu để lấy thông tin có ý nghĩa từ hình ảnh, video và các đầu vào trực quan khác.
2.7.1 Giới thiệu về thị giác máy tính
Thị giác máy tính sử dụng xử lý hình ảnh để nhận dạng và phân loại dữ liệu hình ảnh.Trên thực tế, thị giác máy tính đang trở nên lão luyện hơn trong việc xác định các mẫu từ hình ảnh so với hệ thống nhận thức thị giác của con người Công nghệ này đang được sử dụng trong các ngành công nghiệp từ chăm sóc sức khỏe và truyền thông đến chơi game và vận tải.
2.7.2 Giới thiệu về xử lý ảnh
Xử lý ảnh là đầu tàu trong các lĩnh vực 4.0 và là nền tảng của lĩnh vực thị giác máy tính, là quá trình biến đổi từ một ảnh ban đầu sang ảnh khác tùy theo mong muốn của người sử dụng Các thuật toán xử lý hình ảnh được sử dụng để trích xuất thông tin từ hình ảnh, khôi phục và nén dữ liệu hình ảnh và video.
Xử lý ảnh nhằm các mục đích:
- Phát triển thuật toán nhằm xử lý ảnh để tăng hoặc giảm chất lượng ảnh đầu vào, lọc nhiễu, làm sắc nét, tăng hoặc giảm độ tương phản, …
- Sử dụng các kỹ thuật khác nhau để phân loại mẫu.
- Quang trắc trong việc liên quan đến thu thập số liệu tương đối từ dữ liệu đầu vào.
[4] Camera calibration là phương pháp tính toán và thực nghiệm nhằm tìm ra các tham số của camera để tái tạo không gian 3D của một cảnh, một vật thể nào đó trong thực tế bằng những ảnh mà camera đó ghi lại được Để có được những tham số đó, các tính toán chủ yếu dựa vào mô hình camera thông dụng nhất hiện nay: mô hình Pinhole camera Và thông qua các bước như sau:
• Các thể loại biến dạng do camera gây ra
• Thuộc tính nội và ngoại của camera
[5][6] Có hai loại biến dạng chủ yếu qua mô hình Pinhole camera, bao gồm méo xuyên tâm (radial distortion) và méo tiếp tuyến (tagential distortion).
Sự biến dạng xuyên tâm làm cho các đường thẳng có vẻ cong Sự biến dạng xuyên tâm càng lớn khi các điểm càng xa tâm ảnh.
Méo tiếp tuyến đôi khi còn được gọi là méo lệch tâm, vì nguyên nhân chính là do cụm thấu kính không được căn giữa và song song với mặt phẳng hình ảnh Hiệu ứng hình học từ sự biến dạng tiếp tuyến không hoàn toàn dọc theo trục xuyên tâm.
Hình 2.14.Ví dụ về hỉnh ảnh không bị biến dạng, biến dạng xuyên tâm dương và âm
Hình 2.15 Ví dụ về nguyên nhân gây ra méo xuyên tâm t
Hình 2.16 Ví dụ về biến dạng xuyên tâm
Với những ảnh bị biến dạng như vậy, khi được đem đi xử lý sẽ trả về những thông tin không chính xác Đặc biệt đối với những bài toán đọc vị trí từ hình ảnh Sự biến dạng này sẽ dẫn đến kết quả trả về sai lệnh đối với vị trí thực tế của vật Để giải quyết vấn đề này thì trước khi đọc thông tin từ ảnh cần phải qua một bước hiệu chỉnh để khử những biến dạng này.
[7] Các thông số camera được thể hiện thông qua ma trận thông số nội (Intrinsics), ma trận thông số ngoại (Extrinsics) và hệ số méo (Distortion) Để ước tính các thông số camera, chúng ta cần phải có các điểm ở hệ tọa độ 3 chiều và các điểm hình ảnh 2 chiều tương ứng của chúng trong màn ảnh.
Biến dạng xuyên tâm có thể được biểu diễn như sau: x = x (1 + k r 2 + kr 4 + k r 6 ) distorted 1 2 3 y = y (1 + k r 2 + k r 4 + k r 6 ) distorted 1 2 3
Tương tự, hiện tượng méo tiếp tuyến xảy ra do dải ảnh lấy ảnh không được căn chỉnh hoàn toàn song song với mặt phẳng chụp ảnh Vì vậy, một số khu vực trong hình ảnh có thể trông gần hơn mong đợi Lượng biến dạng tiếp tuyến có thể được biểu diễn như sau: x distorted = x + [2 p 1 xy + p 2 ( r 2 + x 2 )] y distorted = y + [2 p 1 xy + p 2 ( r 2 + 2 y 2 )]
• x, y: Tọa độ gốc có đơn vị là pixel, vô hướng.
• f: Hệ số méo xuyên tâm của ống kính
• p 1 , p 2 : Hệ số méo tiếp tuyến của ống kính
Rút lại ma trận biến dạng cần tìm:
Hình 2.17 Mô hình Pinhole camera
Ta thấy hình (2.17) là mô hình đơn giản của Pinhole camera Ánh sáng sẽ đi qua lỗ kim và lưu lại trên màn chắn của camera Tuy nhiên ảnh sẽ bị ngược so với ảnh thực tế. Nhờ vào các camera có thể chuyển từ ảnh từ màn chắn sang ảnh số.
Mô hình camera này sẽ có hai tham số chính mà ta cần phải quan tâm đến Đó chính là: tham số nội (Instrinsic matrix) và tham số ngoại (Extrinsic matrix).
2.7.3.4 Các tham số của camera
Hình 2.18 Các tham số của mô hình Pinhole camera.
Hình (2.18) đã biểu diễn cho ta thấy các thông số của camera trong quá trình thực hiện số hóa ảnh [8] Có 2 tham số quan trong là tham số nội (Intrinsic parameters) và tham số ngoại (Extrinsic parameters).
- Tham số nội (Intrinsic parameters)
Là tham số bên trong camera và đại diện cho quá trình ảnh được 2D hóa Từ hệ tọa độ 3 trục Oxyz của camera (Camera coordinates system) ảnh được chuyển sang tọa độ chỉ gồm 2 trục Oxy (Image coordinates system) của màn chắn Mỗi camera sẽ có một tham số nội khác nhau do các nhà sản xuất với công nghệ khác nhau.
- Tham số ngoại (Extrinsic parameters)
Tổng quan về trí tuệ nhân tạo
2.8.1 Trí tuệ nhân tạo (Artificial Intelligence)
Nhìn chung, AI [10][11] mô tả khi một cỗ máy bắt chước các chức năng nhận thức của con người, chẳng hạn như học tập và giải quyết vấn đề Ở cấp độ cơ bản hơn, AI có thể chỉ là tập hợp các quy tắc được lập trình để yêu cầu máy móc hành xử theo một cách cụ thể trong một số tình huống nhất định Nói cách khác, trí tuệ nhân tạo chỉ có thể là một vài câu lệnh if-else.
Hình 2.29 Tổng quan về trí tuệ nhân tạo
Hình 2.30 Ví dụ về trí tuệ nhận tạo 2.8.2 Máy học (Machine Learning)
Machine Learning (ML) [11] là một tập hợp con của trí tuệ nhân tạo Chúng ta có thể coi học máy như một loạt các thuật toán phân tích dữ liệu, học hỏi từ nó và đưa ra quyết định dựa trên những hiểu biết đã học được đó.
Học máy yêu cầu rất nhiều lập trình và các thuật toán phức tạp để đạt được các chức năng và kết quả mong muốn Với lượng dữ liệu đầu vào càng lớn, việc huấn luyện ra các tập mẫu có độ chính xác càng cao.
Thông thường có ba kiểu học máy hay được sử dụng:
• Học có giám sát: dữ liệu đã được gắn nhãn, đồng nghĩa với việc mục tiêu đã được xác định Sử dụng phương pháp học này, các hệ thống có thể dự đoán kết quả trong tương lai dựa trên dữ liệu trong quá khứ Nó yêu cầu ít nhất một biến đầu vào và đầu ra được cung cấp cho mô hình để đào tạo.
• Học không giám sát: sử dụng dữ liệu không được gắn nhãn để tự khám phá các mẫu từ dữ liệu Các hệ thống có thể xác định các tính năng ẩn từ dữ liệu đầu vào được cung cấp Khi dữ liệu dễ đọc hơn, các mẫu và điểm tương đồng sẽ trở nên rõ ràng hơn.
• Học tăng cường: còn được gọi là học củng cố, cách học này tương tự như học tập có giám sát ở chỗ một số phản hồi được đưa ra, tuy nhiên thay vì được cung cấp đầu ra mục tiêu, phần thưởng được trao dựa trên mức độ hoạt động của hệ thống Học tập củng cố nhằm mục đích tối đa hóa phần thưởng mà hệ thống nhận được thông qua quá trình thử và sai.
Học sâu [11] là một lĩnh vực con của trí tuệ nhân tạo dựa trên mạng lưới lớp thần kinh nhân tạo Vì các thuật toán học sâu cũng yêu cầu dữ liệu để học và giải quyết vấn đề, nên chúng ta cũng có thể gọi nó là một lĩnh vực con của học máy Các thuật ngữ học máy và học sâu thường được hiểu lầm là giống nhau Tuy nhiên, các hệ thống này có khả năng khác nhau Vì là tập con của ML và AI nên có thể định nghĩa khái quát các thuật ngữ này:
- Trí tuệ nhân tạo (AI) là nhiệm vụ rộng rãi của việc tạo ra những cỗ máy có thể suy nghĩ một cách thông minh.
- Học máy (ML) là một cách để thực hiện điều đó, bằng cách sử dụng các thuật toán để thu thập thông tin chi tiết từ dữ liệu.
- Học sâu (DL) là một cách để làm điều đó, sử dụng một thuật toán cụ thể được gọi là mạng nơ-ron.
2.8.3.1 Khác biệt giữa học máy và học sâu Đầu tiên và quan trọng nhất, trong khi các thuật toán Machine Learning truyền thống có cấu trúc khá đơn giản, chẳng hạn như hồi quy tuyến tính hoặc cây quyết định, thì học sâu dựa trên mạng thần kinh nhân tạo Mạng nơ-ron nhiềulớp này, giống như bộ não con người, phức tạp và đan xen Thứ hai, các thuật toán học sâu đòi hỏi ít sự can thiệp của con người hơn. Ở ví dụ dưới đây, học máy cần các kỹ sư phần mềm tiền xử lý bằng cách chọn thủ công các tính năng và bộ phân loại để sắp xếp hình ảnh, kiểm tra xem đầu ra có theo yêu cầu hay không và điều chỉnh thuật toán nếu không đúng như vậy Tuy nhiên, là một thuật toán học sâu, các tính năng được trích xuất tự động và thuật toán học hỏi từ các lỗi của chính nó.
Hình 2.31 Sự khác biệt giữa học sâu và học máy
2.8.4 Mạng nơ-ron tích chập (Convolutional Neural Network) và mạng nơ-ron
2.8.4.1 Mạng nơ-ron (Neural Network)
[12] Mạng thần kinh nơ-ron là các thuật toán được tạo ra một cách rõ ràng để mô phỏng các mạng thần kinh sinh học Nói chung, ý tưởng là tạo ra một hệ thống nhân tạo hoạt động giống như bộ não con người.
Một mạng nơ-ron bao gồm nhiều lớp (layer) khác nhau, số lượng layer càng nhiều thì mạng sẽ càng “sâu” Trong mỗi layer là các nút mạng (Artificial neurons) và được liên kết với những lớp liền kề khác Mỗi kết nối giữa các tế bào sẽ có một trọng số tương ứng, trọng số càng cao thì ảnh hưởng của kết nối này đến mạng nơ-ron càng lớn.
Hình 2.32 Tổng quan về mạng nơ-ron Mỗi nơ-ron sẽ có một hàm kích hoạt, về cơ bản thì có nhiệm vụ “chuẩn hoá” đầu ra từ nơ-ron này Dữ liệu được người dùng đưa vào mạng nơ-ron sẽ đi qua tất cả layer và trả về kết quả ở layer cuối cùng, gọi là output layer.
Hình 2.33 Ảnh hưởng của trọng số tới đầu các nút mạng
Trong quá trình huấn luyện mô hình mạng nơ-ron, các trọng số sẽ được thay đổi và nhiệm vụ của mô hình là tìm ra bộ giá trị của trọng số sao cho phán đoán là tốt nhất.
Các mạng CNN được xây dựng theo một kiến trúc tuần tự Một mạng CNN gồm là một chuỗi các lớp và mỗi lớp của CNN sẽ biến đổi một khối lượng kích hoạt này sang một khối khác thông qua một hàm chức năng Có ba lớp chính để xây dựng một mạng CNN: lớp tích chập, lớp gộp và lớp kết nối đầy đủ Các lớp này còn được gọi là lớp ẩn, được xếp chồng lên nhau để tạo ra một kiến trúc CNN đầy đủ Mạng CNN xử lý hình ảnh thông qua các lớp được thể hiện như hình dưới:
• Lớp tích chập (Convolutional Layer): được sử dụng để phát hiện các tính năng.
• Lớp không tuyến tính (Non-linearrity Layer): giới thiệu tính phi tuyến tính cho hệ thống
• Lớp gộp (Pooing Layer): giảm số lượng trọng số và kiểm soát hiện tượng quá khớp (overfiting)
• Lớp làm phẳng (Plattening Layer): chuẩn bị sữ liệu cho mạng nơ-ron cổ điển.
• Lớp kết nối đầy đủ (Fully Connected Layer): mạng nơ-ron tiêu chuẩn được sử dụng để phân loại.
2.9.4.2 Lớp tích chập (Convolutional Layer)
Trong Hình 2.35, ở phía bên trái là đầu vào của lớp tích chập, ví dụ như hình ảnh đầu vào Bên phải là bộ lọc tích chập hay còn gọi là kernel, chúng ta sẽ sử dụng thay thế các thuật ngữ này cho nhau Đây còn được gọi là tích chập 3x3 theo kích thước ma trận lọc Lớp tích chập hoạt động dựa trên một ma trận điểm ảnh đầu vào nhân tích chập với một ma trận lọc để tạo ra một ma trận đặc trưng Ma trận lọc phải có kích thước nhỏ hơn kích thước ma trận đầu vào, các ma trận lọc thường có kích thước 3x3, 5x5 hoặc 7x7 Ma trận lọc này quét qua ma trận dữ liệu đầu vào theo chiều từ trái sang phải, từ trên xuống dưới, sử dụng phép nhân element - wise tương ứng từng giá trị đầu vào rồi cộng lại.
Hình 2.35 Đầu vào và bộ lọc của CNN
Hình 2.36 Dữ liệu đầu vào, bộ lọc và kết quả của một lớp tích chập Kết quả nhân tích chập này giúp mô hình trích xuất được các đặc trưng của dữ liệu đầu vào Vì ảnh có 3 kênh màu red, green và blue sẽ được biểu diễn dưới dạng tensor 3 chiều nên khi nhân tích chập ta cũng sử dụng ma trận lọc là một tensor 3 chiều tương ứng có kích thước k*k*3.
Hình 2.37 Hoạt động tích chập của CNN
Lập trình Python
Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML) Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển.
Các tính năng chính của ngôn ngữ Python:
• Ngôn ngữ lập trình đơn giản, dễ học
• Miễn phí, mã nguồn mở, phổ biến nhất
• Khả năng hoạt động nhiều nền tảng
• Khả năng mở rộng và có thể nhúng
• Ngôn ngữ thông dịch cấp cao
• Thư viện đa dạng để giải quyết nhiều tác vụ phổ biến
• Có thể hướng đối tượng
IDE: Có nhiều IDE hỗ trợ tốt cho Python bao gồm PyCharm, Visual Studio Code, Sublime Text, Jupyter, …
THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG
Thi công phần cứng
Mục tiêu của hệ thống cần phải hoàn thành mà nhóm đề ra là xây dựng mô hình phân loại đối tượng chai nhựa Để đạt được mục tiêu này thì phần cứng là một phần không thể thiếu để xây dựng lên một hệ thống, phần cứng càng tốt thì mức độ chính xác và độ tin cậy càng cao Do đó dưới đây nhóm xin liệt kê các phần quan trọng cần phải quan tâm trong việc thi công phần cứng.
Hình 3 1 Sơ đồ tổng quan hệ thống
Mô hình cánh tay Robot Scara của nhóm là mô hình tái sử dụng, hiệu chỉnh từ cánh tay Robot Scara đã hư hỏng các động cơ Nên có các yêu cầu sau: o Tìm kiếm động cơ phù hợp, đấu nối các đầu dây encoder và đầu dây động lực cho tất cả động cơ. o Đấu nối các dây khí nén o Có thể vận hành trơn tru trong không gian làm việc. o Lắp đặt tủ điện một cách hợp lý, đảm bảo tính an toàn, dễ sửa chửa khi gặp sự cố và mang tính thẩm mỹ o Lắp đặt phần cứng mang tính thực tế.
3.1.2 Lựa chọn cánh tay robot
Việc quan trọng đầu tiên phải lựa chọn cánh tay Robot phù hợp với đề tài và mang tính khả thi trong quá trình thi công kết hợp với các yếu tố khác Ở đây nhóm đã tìm được cánh tay Robot Scara của Yamaha mang mã hiệu YK600XG.
Bảng 3 1 Tình hình robot từ giai đoạn đầu và sau khi hoàn thành
Giai đoạn Hình ảnh Tình Trạng
• Tất cả động cơ không còn sử dụng được Dẫn tới tình trạng Robot không thể hoạt động
• Các khớp nối đã lâu không
Trước khi sử dụng dẫn tới không còn mượt mà. thi công
• Không thể lắp lên khung được.
• Tất cả các động cơ đều đã được thay thế và đấu nối dây ngầm bên trong khung Robot để đảm bảo tính thẩm mỹ Trừ khớp cuối không thể thay thế được Robot từ
Sau khi 4 khớp còn 3 khớp.
• Vệ sinh và thêm mỡ vào các thi công khớp nối.
• Thay thế cơ cấu gắp vật ở khớp cuối bằng cơ cấu hút vật để phù hợp hơn với đề tài.
• Lắp giá để nâng đỡ Robot lên khung.
3.1.3 Các chi tiết cơ khí robot Scara
Do nguyên bản robot được sử dụng servo Tamagawa cho 4 trục robot, nên nhóm đã quyết định thay thế toàn bộ về servo Misubishi để thuận tiên cho việc điều khiển, do nhóm sử dụng PLC của Misubishi.
Vấn đề đặt ra là mặt bích của servo Tamagawa lại không giống mặt bích của servo Mitsubishi, cả về đầu trục servo cũng không cùng đường kính. Để giải quyết vấn đề trên Nhóm đã Thiết kế và gia công các mặt bích kết hợp với các khớp nối mềm để thay thế.
3.1.3.2 Các chi tiết cơ khí thay thế
Bảng 3 2 Các linh kiện, thiết bị thay thế
Linh kiện, thiết bị Kết quả
Mặt bích Khớp nối đồng
• Trục 1: Tiến hành thay servo Tamagawa 400W thành servo Mitsubishi 400W
• Trục 2: Tiến hành thay servo Tamagawa 200W thành servo Mitsubishi 200W
• Trục 3: Tiến hành thay servo Tamagawa 200W thành servo Mitsubishi 200W
Băng tải có nhiệm vụ đưa đối tượng vào vùng hoạt động và phát hiện của hệ thống Bảng 3 3 Đặc tính băng tải
• Tỉ số truyền bang tải so với trục động cơ: 1/25
• Chiều dài băng tải: 700mm
• Độ rộng băng tải: 75mm
• Chất liệu khung: Nhôm nguyên khối
Chủ đề về phân loại các đối tượng khá rộng rãi và quan được quan tâm nhiều từ lâu. Cùng với đó loại thiết bị cũng như cơ cấu phân loại cũng được chú ý nhiều bởi sự đa dạng của đối tượng cũng như biên dạng của đối tượng Một số cơ cấu phân loại có thể liệt kê như sau:
Bảng 3 4 Các cơ cấu phân loại sản phẩm
Nhóm chọn cơ cấu khí nén bởi vì thông qua nghiên cứu các đề tài trước đó cũng như trên thế giới, vì tính biên dạng của đối tượng phân loại là hình hộp chữ nhật và đôi khi có thể là hình dẹp nên khí nén mang lại lợi thế tối ưu trong việc gắp vật.
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 57
Bảng 3 5 Các thiết bị khí nén
STT Tên thiết bị Hình ảnh Đặc điểm
1 ▪ Đường kính giác hút: 20mm giác hút
▪ Áp suất hoạt động lý tưởng:0.1~16kg/cm 3
Van Điện Từ ▪ Van khí 5/2: là van 5 cửa 2 vị trí
▪ Điện cáp cuộn coil: 24VDC
5 ▪ Đầu v ào: 6mm khí ▪ Áp suất: 1 -15kg
TÍNH TOÁN ĐỘNG HỌC VÀ QUY HOẠCH QUỸ ĐẠO CHO ROBOT
Sử dụng các phần mềm để tính toán động hoạch thuận, nghịch và quy hoạch quỹ đạo cho cánh tay robot.
Chương 5: Áp dụng thị giác máy tính
Chương này bao gồm việc huấn luyện mạng Yolo và sử dụng kết quả ngõ ra để dùng cho phần mềm phát hiện vật Tiếp theo là xử lý tín hiệu vị trí của vật và trả về cánh tay robot.
Chương 6: Tính toán và thiết kế phần mềm điều khiển
Giải thuật điều khiển và đường đi của dữ liệu sẽ được trình bày Bên cạnh đó còn có giao diện người dùng được thiết kế thân thiện với người dùng.
Chương 7: Đưa mô hình vào hoạt động, thực nghiệm và đánh giá kết quả
Sử dụng nhiều mẫu thử, trường hợp khác nhau, đưa ra đánh giá quy trình và chọn thông số tốt nhất.
Chương 8: Đưa ra kết luận và hướng phát triển của đề tài. Đưa ra kết quả tổng quan của cả đề tài, những tiềm năng có thể và những hạn chế cần khắc phục Hướng đi trong tương lai gần.
Trong đồ án được thực hiện, được đặt ra là ứng dụng cánh tay Robot Scara phân loại rác (chai nhựa), sử dụng xử lý ảnh nên nhóm chỉ nhận dạng và phân loại chai nhựa ở mức độ là rác sinh hoạt hằng ngày của hộ gia đình.
Vì mục tiêu chủ yếu của đề tài là xoay quanh câu chuyện xử lý ảnh, nhưng nhóm không thể đáp ứng được nhu cầu về phần cứng, kể cả khâu lập trình cũng bị hạn chế về thời gian.
1.6 Các công cụ đánh giá
Phân tích dữ liệu: Sử dụng các công cụ tìm kiếm như Google, Google Schoolar, …
Phân tích toán học: Tính toán động học dựa vào cấu trúc hình học của robot và tính toán động lực học dựa vào phương pháp Newton – Euler và Jacobian.
Phân tích mô phỏng: Sử dụng phần mềm Solidworks để xây dựng chính xác mô hình của tay máy robot song song 4 bậc tự do sát với thực tiễn; Sử dụng phần mềm MATLAB Simulink và Simscape để lập trình, mô phỏng kiểm nghiệm bài toán động học.
Phân tích thí nghiệm: Thiết kế thuật toán điều khiển và áp dụng trên mô hình thực tế.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu chung về PLC
PLC (Programmable Logic Controller) là thiết bị điều khiển khả trình cho phép thực hiện linh hoạt các thuật toán điều khiển logic thông qua một ngôn ngữ lập trình nào đó. Người sử dụng có thể lập trình để thực hiện một loạt trình tự, sự kiện Ngôn ngữ lập trình có thể là Ladder hay State logic.
Cùng với sự phát triển của máy móc tự động hóa thì PLC dần dần được tích hợp thêm nhiều tính năng khác nhằm giúp nó có thể điều khiển được nhiều thiết bị cũng như khả năng kết nối nhiều hệ thống với nhau Những tính năng mở rộng phổ biến hiện nay của PLC như khả năng đọc và xuất tín hiệu analog Tích hợp khả năng đọc xung tốc độ cao từ cảm biến đo vòng quay encoder Kết nối với nhiều thiết bị ngoại vi bằng truyền thông như màn hình cảm ứng HMI, máy tính, camera, …
● Bộ xử lý (CPU: Central Processing Unit)
Là bộ não của PLC, quyết định tốc độ xử lý cũng như khả năng điều khiển chuyên biệt của PLC Là nơi đọc các tín hiệu từ ngõ vào đồng thời xử lý cũng như xuất tín hiệu ra ngõ ra.
● Khối ngõ vào (Module Input): gồm hai loại: ngõ vào số DI (Digital Input) và ngõ vào tương tự AI (Analog Input)
Ngõ vào DI kết nối với các thiết bị tạo ra tín hiệu dạng xung như: nút nhấn, công tắc hành trình, cảm biến tiệm cận…
Ngõ vào AI kết nối với các thiết bị tạo ra tín hiệu liên tục như: cảm biến nhiệt độ, khoảng cách, độ ẩm
● Khối ra (Module Output): gồm hai loại: ngõ ra số DO (Digital Output) và ngõ ra tương tự AO (Analog Output)
Ngõ ra DO kết nối với các cơ cấu chấp hành điều khiển theo quy tắc On/ Off như: đèn báo, chuông, van điện…
Ngõ ra AO kết nối với các cơ cấu chấp hành cần tín hiệu điều khiển liên tục: biến tần, van tuyến tính…
2.1.2 Đặc điểm của PLC Ưu điểm: Để so sánh giữa PLC và các mạch điều khiển dạng tiếp điểm truyền thống thì PLC có khá nhiều ưu điểm đáng kể như sau:
- Khả năng điều khiển linh hoạt.
- Tích hợp sẵn Timer, Counter bên trong, bên cạnh đó PLC còn hỗ trợ thêm các khối chuyên dụng có thể kể đến như bộ phát xung tốc độ cao, bộ đếm tốc độ cao, bộ điều khiển PID…
- PLC có thể thay thế toàn bộ mạch điều khiển truyền thống sử dụng dây dẫn.
- Khả năng truyền thông, kết nối với máy tính hay PLC khác
- Tuổi thọ cao, chống nhiễu tốt trong môi trường công nghiệp.
Nhược điểm: Nhược điểm chí mạng của PLC nằm ở giá thành Việc giá thành khá cao so với mạch điều khiển tiếp điểm truyền thống đã ngăn cản PLC có thể tiếp cận được với các hệ thống đơn giản Một yêu cầu nữa khi muốn sử dụng PLC thì người dùng phải có kiến thức về lập trình PLC.
Với những ưu nhược điểm vừa kể trên, có thể thấy PLC thể hiện vượt trội so với mạch điều khiển tiếp điểm truyền thống Hiện nay, trong các nhà máy dây chuyền công nghiệp, PLC đã thay thế hầu hết các hệ thống điều khiển sử dụng mạch điều khiển tiếp điểm truyền thống Việc này giúp hệ thống hoạt động hiệu quả hơn, độ tin cậy cao hơn, tiết kiệm được nhân công và tránh được những thao tác sai lầm của người vận hành.”
Hình 2.1 Các dòng PLC Mitsubishi
2.2 PLC dòng Q của hãng MITSUBISHI
[1] Phát triển lên từ dòng sản phẩm trước đó họ AnSH, họ Q PLC Mitsubishi cho phép người dùng phối hợp và lựa chọn sự kết hợp tốt nhất giữa CPU, công cụ truyền tin, module điều khiển chuyên biệt và I/O trên cùng một nền tảng Có thể phối hợp PLC (cơ bản và nâng cao), Motion CPU, Process Controllers và ngay cả PC vào trong một hệ thống duy nhất lên đến 4 CPU khác nhau.
Bảng 2.1 Các kí hiệu của PLC dòng Q series
Tên CPU dòng Q Mô tả Mẫu CPU
QnUCPU Các tính năng, phương pháp, Mã CPU ứng dụng tổng thiết bị cho lập trình quát
Qn(H)/QnPH/ Các tính năng, phương pháp, Mẫu QCPU cơ bản/ hiệu
QnPRHCPU thiết bị cho lập trình năng cao/ điều khiển quy trình/ dự phòng
BẬC TỰ DO
Mô hình động học của robot scara 3 bậc tự do
Xây dụng mô hình cơ học (bao gồm mô hình động học, quy hoạch quỹ đạo nhưng không có động lực học) robot scara 3 bậc tự do là việc khả thi bởi cấu tạo cơ bản khá đơn giản. Dưới đây, nhóm xin trình bày việc phác thảo lại mô hình cơ học cho robot scara. Để di chuyển điểm thực thi cuối được nối cố định với trục Z của robot, phải thực hiện 3 chuỗi động học khác nhau, trong đó có 2 khớp xoay và 1 khớp tịnh tiến.
Trong mô hình không có khâu bị động, tất cả đều là chủ động và được gắn liền bởi 3 động cơ, tạo nên một cánh tay.
Bài toán động học robot
Để có thể xác định vị trí khâu tác động cuối của robot trong không gian thì ta phải biết được hướng và tọa độ của cơ cấu cuối Vì vậy, phải gắn hệ trục tọa độ lên tay máy để tính toán xác định vị trí, hướng của khâu tác động cuối của tay máy trong không gian Việc tính toán vị trí và hướng từ các biến khớp cũng như mối quan hệ này theo chiều ngược lại được gọi là bài toán động học thuận và động học nghịch của robot.
Mục đích của bài toán động học thuận là xác định vị trí của khâu tác động cuối của robot khi biết các biến khớp của robot Các bước tính toán động học thuận của robot Scara 3 bậc tự do được trình bày như sau: Đầu tiên ta tiến hành xác định số thanh và khớp của Robot Tất cả mọi khớp được biểu diễn theo trục Z Nếu khớp là khớp quay, trục Z sẽ được định hướng theo hướng dịch chuyển tạo ra sự quay theo quy tắc bàn tay phải Nếu khớp là khớp tịnh tiến, trục Z của khớp dọc theo hướng di chuyển Tiếp theo đó ta tiến hành kẻ đường vuông góc chung với 2 trục tọa độ và gắn trục x dọc theo đường vuông góc chung giữa 2 trục Z hướng từ khớp thứ i đến i+1, theo quy tắc bàn tay phải ta xác định được trục y.
CHƯƠNG 4: TÍNH TOÁN ĐỘNG HỌC VÀ QUY HOẠCH QUỸ ĐẠO d 2 d 1 a 2 a 1
Hình 4.1 Đặt trục tọa độ cho robot
Có 6 quy tắc về bàn tay phải mà ta phải dựa vào để đặt trục tọa độ cho các khớp rồi sau đó có thể hình thành được bảng DH một cách tổng quát cho bất kỳ Robot nào Các quy tắc như sau:
• Khung thứ i được gắn với liên kết thứ i.
• Trục z i được chọn dọc theo trục khớp thứ i.
• Trục x i được chọn theo đường vuông góc chung z i và z i+1
• y i được chọn để làm thành một tọa độ bên phải.
• Khung thứ 0 thường được chọn khớp với khung thứ 1 khi biến khớp đầu bằng 0.
• Khung thứ N có thể được chọn tự do, thường được chọn tự do, đảm bảo càng nhiều số liên kết càng tốt.
Thông qua hiểu biết tóm tắt theo giáo trình, thì nhóm đưa ra bảng DH như sau Bảng
4.1.Bảng DH của Robot Scara i a i−1 i−1 d i i z 0 z 1 x 0 1 0 0 d 1 1 x 0 x 1 z 1 z 1 z 2 x 1 2 a 1 0 d 2 2 x 1 x 2 z 2 z 2 z
• a i−1 : khoảng cách từ trục z i−1 đến trục z i đo dọc theo trục x i−1
• i−1: góc lệch từ trục z i−1 đến trục z i đo dọc theo trục x i−1
• d i : khoảng cách từ trục x i−1 đến trục x i đo dọc theo trục z i
• i : góc quay từ trục x i−1 đến trục x i đo dọc theo trục z i
Với α i-1 và θ i phải được xác định theo quy tắc bàn tay phải.
4.2.3 Tính toán động học thuận
Kí hiệu: c i = cos i ; s i = sin i ; c 12 = cos( 1 + 2 )
Trong đó: i = 1, 2, và 1+ 2 Dựa vào công thức tổng quát của ma trận chuyển vị đồng nhất giữa các liên kết i-1 và i, ta có: c i −s s i c i −1 c i c i − 1 T = i c i s i −1 c i s i
Ma trận chuyển đổi giữa khớp 0 và khớp 1: c 1 s
Ma trận chuyển đổi giữa khớp 1 và khớp 2: c 2 s
Ma trận chuyển vị từ hệ trục số 0 đến hệ trục số 3 là:0 c 12 − s 12 0 s c 0
Tọa độ vị trí của cơ cấu gắp cuối là:
4.2.4 Tính toán động học nghịch cho hệ thống
(4.7) (4.8) Ở đây số bậc của robot đóng vai trò quan trọng trong bài toán này Sự phức tạp trong bài toán động học nghịch tăng khi số lượng bậc tự do tăng, đặc biệt đối với cơ cấu robot vòng kín, khi mà vị trí điểm đầu cuối chịu sự ràng buộc từ nhiều chuỗi động học khác nhau.
Phát hiện đối Trích xuất vị trí đối Ảnh đầu vào tượng, khoanh tượng trong khung vùng đối tượng ảnh, đơn vị pixel
Tính toán vị trí vật Điều khiển robot tới trong không gian qua đối tượng thông qua ma trận chuyển đổi, động học nghịch và đơn vị mm quy hoạch quỹ đạo
Hình 4.2 Vị trí của động học nghịch trong hệ thống Xét về tính hệ thống thì tính toán động học nghịch nằm trong bước cuối cùng để di chuyển tới đối tượng, và đầu vào phụ thuộc vào vị trí đối tượng được trích xuất trước đó Vị tải, … nên chúng ta phải xem xét tìm ra hạn chế để tránh gặp phải vấn đề trong không gian làm việc. Để tính toán động học nghịch, ta dựa theo tính toán:
Từ phương trình (4.6) và (4.7), cộng bình phương 2 vế, ta được
Hoặc theo hình vẽ mô phỏng vị trí khi hoạt động của robot, ta sẽ có vị trí các điểm B ( x 1
, y 1 ) , C ( x 2 , y 2 ) , và độ dài các khớp AB = a 1 , BC = a 2 Bằng phương pháp hình học ta có được công thức:
Hoặc xét tam giác ABC, ta có:
AC 2 = AB 2 + BC 2 − 2 AB.BC cos(180 − ) = a 2 + a 2 + 2 a a
Hình 4.3 Đặt trục cho động học nghich
Quy hoạch quỹ đạo cho cánh tay robot
Quy hoạch quỹ đạo là tạo các tín hiệu vào tham chiếu cho bộ điều khiển robot để robot di chuyển theo quỹ đạo mong muốn Quỹ đạo điểm điểm là quỹ đạo đi qua hai điểm định trước trong thời gian xác định, quỹ đạo đường là quỹ đạo đi qua nhiều điểm theo một đường liên tục xác định trước.
Chuyển động tuyến tính là một trong những chuyển động cơ bản và cần thiết tuyệt đối cho bất kỳ bộ điều khiển chuyển động nào Độ chính xác cao, khả năng lặp lại và không phụ thuộc vào hướng là ba yếu tố quan trọng để đánh giá hiệu suất của điều khiển chuyển động hai trục bằng Nội suy Để đạt được điều này, thuật toán dựa trên PLC được triển khai, tránh tính toán chuyển động phức tạp với sự kết hợp khéo léo giữa bộ tích lũy và cấu trúc phần cứng dựa trên hệ số nhân.
Nội suy: Là một loại ước tính, một phương pháp xây dựng các điểm dữ liệu mới trong phạm vi của một tập hợp các điểm dữ liệu đã biết rời rạc.
Nội suy tuyến tính: Là một phương pháp điều chỉnh đường đi bằng cách sử dụng các đa thức tuyến tính để xây dựng các điểm dữ liệu mới trong phạm vi của một tập hợp các điểm dữ liệu đã biết.
Hình 4.4 Nội suy tuyến tính
Nội suy vòng tròn: Vì không phải tất cả các bộ phận đều được làm bằng bề mặt phẳng, hợp gia công các đường chạy dao tròn, đường tâm của dao phay ngón là đường tròn Điều này được gọi là nội suy tròn.
Hình 4.5 Nội suy vòng tròn Tại bước này nhóm chọn quy hoạch quỹ đạo từ điểm tới điểm theo đường thẳng để mang lại tính thống nhất về mặt di chuyển trong không gian làm việc và tối ưu về thời gian hoạt động của hệ thống.
Không gian làm việc
Không gian làm việc của robot là khoảng không gian robot có thể di chuyển trong đó.
Khoảng không gian này được giới hạn bởi góc quay của các khớp và chiều dài các thanh nối của robot.
Trong đề tài chúng ta không sử dụng hướng của trục cuối, nên không gian làm việc chỉ bị giới hạn vật lý về tương tác với các mục tiêu khác của đề tài như vị trí đặt Robot, vị trí đặt camera và băng tải.
Dựa vào mô hình robot từ hai hình (4.1), (4.3) và thực tế, giới hạn các góc quay của robot được thể hiện bởi, đơn vị rad:
Bảng 4.2 Bảng giới hạn góc quay của các khớp
Khớp xoay thứ nhất 1 (rad) -π/2 π/2
Khớp xoay thứ hai 2 (rad) -5π/9 -5π/9
Bảng 4.2 là bảng giới hạn góc quay của các khớp, bao gồm năm khớp xoay 1 ,2 Quy đổi từ đơn vị rad sang đơn vị độ thì ta sẽ có được giới hạn của hai khớp như sau:
Hình 4.6.Không gian làm việc của Robot trong mô phỏng
PHÁT HIỆN VÀ XÁC ĐỊNH VỊ TRÍ ĐỐI TƯỢNG
RoboFlow
[19] RoboFlow là một framework dành cho nhà phát triển Thị giác Máy tính để thu thập dữ liệu tốt hơn để xử lý trước và các kỹ thuật đào tạo mô hình RoboFlow có sẵn các tập dữ liệu công khai cho người dùng và cũng có quyền truy cập để người dùng tải lên dữ
Sử dụng RoboFlow để dán nhãn dữ liệu cũng như làm giàu và phân chia dữ liệu Các bước thực hiện như sau:
5.1.1 Thu thập dữ liệu Ảnh đầu vào sẽ được thu nhận qua các thiết bị như camera Đây là loại ảnh có thể tiến hành các thao tác hậu kỳ, xử lý ảnh Các thông số của ảnh như độ phân giải, chất lượng, dung lượng lưu trữ phụ thuộc vào thiết bị quay chụp, điều này cũng ảnh hưởng đến các thao tác xử lý ảnh về sau.
Thu nhập ảnh bằng cách chụp từ điện thoại, webcam Sau khi có bộ ảnh, tiếp theo ta sẽ tải lên bộ dữ liệu vào phần mềm Roboflow Phần mềm Roboflow là một framework dành cho nhà phát triển thị giác máy tính để thu nhập dữ liệu tốt hơn để xử lý trước và kỹ thuật đào tạo mô hình.
Hình 5.3 Upload dữ liệu lên Roboflow
Sau khi tải bộ dữ liệu lên Roboflow, tiếp theo ta sẽ dán nhãn thủ công cho từng ảnh theo Class mà tạo ra trước đó Thì đối với bộ dữ liệu này, nhóm tạo hai Class đó là chai nhựa (Plastic-Bottle) và những đối tượng không phải chai nhựa (Others).
Có hai cách dãn nhãn được sử dụng phổ biến trong Roboflow là dán theo bounding box hoặc ôm trọn vật:
Hình 5.4 Dán nhãn theo bounding box
Hình 5.5 Dán nhãn ôm trọn vật
5.1.3 Phân chia tập dữ liệu
Training Set: Là tập huấn luyện.
Validation Set: Là tập dữ liệu kiểm chứng, có tác dụng giúp cho việc tìm kiếm mô hình tốt nhất trong các ứng viên được huấn luyện từ training set Ngoài ra còn giúp hạn chế overfitting bằng kỹ thuật dừng sớm (early stopping).
Testing Set: Là tập kiểm thử đánh giá kết quả thu được của mô hình dự đoán.
Hình 5.6 Tập đánh giá kết quả
5.1.4 Tiền xử lý dữ liệu
Các bước xác định được thực hiện đối với tất cả các hình ảnh trước khi đưa chúng vào mô hình Ví dụ: bạn có thể thay đổi kích thước hình ảnh của mình để chúng có cùng kích thước hoặc chuyển đổi hình ảnh của bạn sang thang độ xám. Ở đây nhóm chọn chuyển đổi kích thước dữ liệu về 416x416 để tiện cho việc huấn luyện mạng.
5.1.5 Làm giàu dữ liệu Để tăng thêm ảnh cho bộ dữ liệu, ta có thể sử dụng các công cụ có sẵn trên Roboflow Chẳng hạn như muốn lật ảnh lại, xoay ảnh, làm mờ ảnh, … thì trên Roboflow mỗi công cụ có thể giúp ta có thêm gấp đôi, gấp ba lần mà bộ data sẵn có của mình Một số kỹ thuật tăng cường dữ liệu mà nhóm đã dùng:
• Xoay ảnh đối xứng ngang, dọc
Hình 5.7 Các công cụ để làm giàu ảnh
Tại bước này, số lượng ảnh tăng cường phụ thuộc vào người sử dụng, nhóm chọn 2x đồng nghĩa với việc từ tập ảnh training, Roboflow sẽ tạo nên 2 bản sao và áp dụng các kỹ thuật tăng cường ảnh một cách ngẫu nhiên cho các bản sao.
Hình 5.8 Tập dữ liệu sau khi làm giàu
Google Colab
Colaboratory hay còn gọi là Google Colab, là một sản phẩm từ Google Research, nó cho phép thực thi Python trên nền tảng đám mây, đặc biệt phù hợp với Data analysis, Machine learning và giáo dục Colab không cần yêu cầu cài đặt hay cấu hình máy tính, mọi thứ có thể chạy thông qua trình duyệt, bạn có thể sử dụng tài nguyên máy tính từ CPU tốc độ cao và cả GPUs và cả TPUs đều được cung cấp cho bạn Sử dụng Google Colab có những lợi ích ưu việt như: sẵn sàng chạy Python ở bất kỳ thiết bị nào có kết nối Internet mà không cần cài đặt, chia sẻ và làm việc nhóm dễ dàng, sử dụng miễn phí GPU cho các dự án về AI.
Sau khi hoàn tất có được bộ dữ liệu, nhóm tiến hành các bước đào tạo Vì để tăng tốc độ đào tạo và chia sẽ đồng bộ thông tin nhanh hơn Nhóm đã quyết định sử dụng Google Colab, là một dạng Jupyter Notebook tùy biến cho phép thực thi Python trên nền tảng đám mây, được cung cấp bởi Google Một vài ưu điểm của Google Colab:
• Kết nối dễ dàng với các dữ liệu trên cloud
• Viết và thực thi câu lệnh Python mà không cần cài đặt
• Cung cấp nhiều thư viện phổ biến dành cho DeepLearning như Keras, TensorFlow,
• Cung cấp từ 12-25GB GPU để đào tạo dữ liệu
Các bước đào tạo dữ liệu:
Bảng 5 1 Các bước tạo dữ liệu Chuẩn bị tập dữ liệu và nhãn dán Bao gồm 2 tệp: 3000 ảnh (chiếm Bước 1 80%) và nhãn dán cho thư mục train, 750 ảnh (chiếm 20%) và nhãn dán còn lại cho thư mục valid Kết nối với Google Driver cho mục đích lưu trữ thông tin Bước 2 from google.colab import drive drive.mount('/content/drive') Sao chép (clone) yolov5 và cài đặt các thư mục yêu cầu
!git clone https://github.com/ultralytics/yolov5 # clone
Bước 3 %cd /content/drive/MyDrive/yolov5
%pip install -qr requirements.txt # install import torch from drive.MyDrive.yolov5 import utils display = utils.notebook_init() # checks Bước 4 Tải lên Google Driver thư mục dữ liệu ảnh
Tùy chỉnh các file theo ý muốn Trong đó có file yaml cần chỉnh Bước 5 class phù hợp với đề tài, ở đây thì số đối tượng là 2 và tên đối tượng là ‘plastic-bottle’ và ‘other’
Thực hiện đào tạo dữ liệu với các thông số có thể tùy chỉnh được
Bước 6 !python train.py img 416 batch 16 epochs 60 data custom_data.yaml weights yolov5s.pt
• Img: kích thước ảnh đầu vào
• Batch: số lượng mẫu ảnh trong một lần huấn luyện
• Epoch: Số lần đưa tất cả dữ liệu vào huấn luyện
• Data: Vị trí dữ liệu
• Weights: file trọng số mẫu
Kết quả thu thập được: Ở đây chúng ta cần quan tâm các file trọng số (weights) và xem xét kết quả sau khi huấn luyện để đưa ra nhận xét về tính khả thi của mô hình mạng
Hình 5 9 Quá trình huấn luyện
Tính toán vị trí đối tượng
Sau khi phát hiện và khoanh vùng được đối tượng trên khung ảnh, việc tiếp theo cần làm là tính toán và chuyển đổi được vị trí của đối tượng từ tọa độ ảnh sang tọa độ robot, đơn vị milimet.
Trích xuất vị trí đối tượng trong khung ảnh, đơn vị pixel
Tính toán vị trí vật trong không gian qua ma trận chuyển đổi, đơn vị mm
Ma trận thông số nội, ma trận thông số ngoại
Hình 5.10 Vị trí của ma trận chuyển vị trí sang hệ tọa độ robot trong hệ thống
5.3.1 Tìm ma trận camera. Ứng dụng Camera Calibrator cho phép bạn ước tính các thông số bên trong, bên ngoài và biến dạng ống kính của máy ảnh Sử dụng các thông số camera này cho các ứng dụng thị giác máy tính khác nhau Các ứng dụng này bao gồm loại bỏ hiệu ứng biến dạng ống kính khỏi hình ảnh, đo các đối tượng phẳng hoặc tái tạo cảnh 3-D từ nhiều camera.
Hình 5 11 Phần mềm Camera Calibrator của Matlab
Kết quả thu được ma trận thông số nội:
Kế tiếp đó ta xác định được ma trận thông số ngoại của camera chính là ma trận chuyển đổi từ hệ tọa độ ảo sang hệ tọa độ camera Ma trận thông số ngoại bao gồm 2 thành phần là ma trận xoay R và ma trận tịnh tiến T Trong phần này ảnh hưởng méo của camera sẽ được sơ lược bởi hai điểm: ảnh không bị méo quá nhiều và sẽ làm ảnh hưởng tới tốc độ xử lý khi phát hiện đối tượng.
Từ đó áp dụng thêm phương pháp Zhang’s Method Là một phương pháp giả định vật luôn nằm ở tọa độ Z = 0, từ đó ma trận thông số ngoại của camera sẽ được rút gọn và có thể tính toán được tọa độ thực tế của vật trong hệ tọa độ ảo từ tọa độ pixel.
5.3.2 Chuyển tọa độ từ hệ tọa độ ảo sang tọa độ trong không gian làm việc robot
Z 0 Hình 5.12 Đặt tọa độ cho các hệ tọa độ Để chuyển một điểm trong trục tọa độ này sang trục tọa độ khác cần phải tìm mối quan hệ giữa hai trục tọa độ Cách phổ biến nhất là tìm ra ma trận chuyển vị của tọa độ ảo O sang hệ tọa độ robot R cos −sin 0
Tại đây, ta có tọa độ O chuyển về tọa độ R cần xoay trục tọa độ O theo trục x một góc
Tọa độ của gốc tọa độ {O} trong tọa độ {R} là:
Từ công thức (5.7) và (5.8) ta tìm được ma trận chuyển vị từ gốc tọa độ ảo {O} sang gốc tọa độ robot {R} như sau:
Sau khi tìm được ma trận chuyển vị (5.9) và (5.3), ta có công thức chuyển đổi vị trí trong tọa độ {O} sang trục tọa độ {R} là:
CHƯƠNG 6: TÍNH TOÁN VÀ THIẾT KẾ PHẦN MỀM ĐIỀU
KHIỂN, GIAO DIỆN NGƯỜI DÙNG
GX Works2
Lập trình điều khiển các khớp của robot bằng cách cấp xung cho động cơ thông qua phần mềm GXWorks2 và ngôn ngữ Ladder.
Hình 6.1 Lập trình trên GXWorks 2
GT Designer3
GT Designer3 là phần mềm để thiết lập giao diện và điều khiển cho màn HMI của hãng Mitsubishi.
Bảng 6.1 Giao diện điều khiển hệ thống trên GT Designer 3 Trang
• Giao diện giới thiệu về robot Scara
• Bảng hiển thị thông tin trạng thái robot, trạng thái băng tải.
• Giao diện hiển thị bảng điều khiển Jog, Home cho robot.
• Giao diện hiển thị bảng điều khiển động học thuận, nghịch của robot.
• Giao diện hiển thị bảng điều khiển chế độ Chế độ chạy 3 điểm, vòng lặp. 4
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 85
Visual Studio Code
Visual Studio Code là trình biên tập code hoàn toàn miễn phí, dành cho các hệ điều hành macOS, Windows và Linux được phát triển bởi Microsoft Visual Code Studio hỗ trợ các chức năng như debug, tự hoàn thành mã thông minh, cải tiến mã nguồn, cho phép người dùng thay đổi theme, phím tắt…
Vì Yolov5 chạy chương trình bằng ngôn ngữ Python nên chúng ta có thể sử dụng Visual Studio Code làm phần mềm hỗ trợ Ngoài ra còn để giao tiếp với database.
Bảng 6.2 Giao diện điều khiển trên WinForm
Trang Giao diện Tính năng
• Tại giao diện đầu tiên sẽ bao gồm thông tin về sản phẩm, người thực
• Giao diện hiển thị các thông tin về vị trí, tốc độ, lỗi.
• Các nút điều khiển động cơ (Jog,
2 Home, động học thuận nghịch, chế độ Auto, quy hoạch quỹ đạo.
• Giao diện bảng dữ liệu.
• Bảng 1: Lưu dữ liệu khi chai đi qua camera
• Bảng 2: Lưu dữ liệu khi chai xuất hiện trong khung và xóa khi ra khỏi khung.
Tính toán thời gian gắp vật
Để phân loại đối tượng trên băng chuyền mang lại hiệu suất tối đa, thì băng chuyền phải hoạt động liên tục không ngừng nghỉ xuyên suốt thời gian vận hành Tuy nhiên về mặt hạn chế chúng ta phải tính toán đến khoảng cách nhỏ nhất giữa 2 vật liên tiếp để xử lý.
Hình 6.2 Khu vực thực thi trên băng chuyền
Trong đó: S là khoảng cách giữa tâm 2 đối tượng liên tiếp v bt : là vận tốc băng tải T: là thời gian thực thi một chu kỳ của Robot Ta có công thức:
Vì thời gian thực thi một chu kỳ của Robot phụ thuộc vào vận tốc của từng khớp, trong quá trình thực thi gồm có nhiều chu trình nhỏ khác.
Vậy nên tùy vào giá trị lớn nhất mà vận tốc các khớp đạt được, ta sẽ có kết quả:
Trong thực tế, khi tăng vận tốc các khớp để đạt được giá trị Tmin = 1.4s Mô hình xuất hiện các hiện tượng dao động trong phần cứng, không mang tính ổn định Vì vậy nhóm thực hiện chọn T = 3s Để tính toán công thứ chuẩn xác phải tính tới gia tốc tăng giảm của từng khớp, đòi hỏi sự phức tạp hơn nên trong đề tài này nhóm không đề cập tới. Để tính toán tốc độ băng tải, ta cần phải xem xét thời gian phát hiện đối tượng Dựa vào phần mềm ta có thể có được tốc độ chụp 1 frame của camera là 0.05s, tốc độ xử lý của Yolo + DeepSORT ~ 0.05s Vùng xử lý là 25mm.
Trường hợp 1: Camera cần xử lý 4 frame trong vùng thực thi v
Trường hợp 2: Camera cần xử lý 1 frame trong vùng thực thi v
Từ trên ta tính được khoảng cách ngắn nhất giữa 2 chai nhựa liên tiếp mà mô hình có thể hoạt động ổn định được.
Chương trình điều khiển
Hệ thống gồm 2 trung tâm điều khiển (máy tính và PLC) để xử lý tín hiệu đầu vào là camera và xuất các tín hiệu là các xung điều khiển các động cơ AC Servo Trong đó trung tâm xử lý chính, đảm bảo đường truyền giữa đầu vào và đầu ra là máy tính, xử lý tín hiệu đầu vào ở dạng ảnh, tính toán và truyền kết quả ngõ ra là vị trí và tốc độ cho các động cơ khi xét tính hệ thống PLC có nhiệm vụ nhận tín hiệu từ máy tính, thực hiện hành động như điều khiển động học thuận, nghịch, chạy điểm biết trước, và cho phép máy tính đọc và hiển thị dữ liệu là trạng thái của các động cơ lên giao diện điều khiển cũng như thông báo lỗi các khớp nếu có.
Hình 6.3 Lưu đồ hoạt động tuần tự của hệ thống
Bắt đầu Khối xử lý tín hiệu đầu vào
Camera nhận dữ Thiết lập các thông số mặc định liệu
ON Đúng Dán nhãn đối tượng bằng
Khối xử lý tín SORT hiệu đầu vào
Có băng tải đối tượng vào database 2 Khối điều khiển Đúng
Lưu thông tin đối tượng vào database 1
Sai OFF Đúng Kết thúc
Trở về Hình 6.5 Lưu đồ khối xử lý tín hiệu đầu vàoHình 6.4 Lưu đồ tổng quan hệ thống
Phát hiện đối tượng bằng YOLOv5
Tiền xử lý dữ liệu
Chia đối tượng thành nhiều ô
Dự đoán đối tượng, bounding box
Tính toán kết quả cuối cùng Đạt ngưỡng Sai Loại bỏ đối tượng Đúng
Loại bỏ bouding box dư thừa
Xuất kết quả ra màn hình kèm thông tin
Hình 6.6 Lưu đồ hoạt động của YOLO
Dán đối tượng bằng SORT
Sử dụng bộ lọc Kalman Filter
So sánh kết quả IOU tương lai Đúng Cập nhật Kalman Đã tồn tại
Sai Đúng Tạo mới Kalman
Chưa tồn tại dán ID
Sai Đúng Xóa Kalman Filter
Rời khỏi khung hình của đối tượng
Hình 6.7 Lưu đồ phát hiện đối tượng có cùng một vật hay không
Tín hiệu Start từ Đúng
Lần đầu Start Winform Đúng Sai
Chạy Jog tất cả các trục, sau đó về Home
Tải dữ liệu từ cơ sở dữ liệu
Sai lên để xử lý
Kiểm tra tín hiệu So sánh tín hiệu Thông báo lỗi điều khiển Đúng với giá trị thực tế và đợi Reset
Hình 6.8 Lưu đồ giải thuật khối điều khiển
THI CÔNG MÔ HÌNH VÀ ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM
Kiểm chứng động học robot scara 3 bậc tự do
7.1.1 Kiểm nghiệm động học nghịch
Chương trình kiểm nghiệm động học nghịch được tính toán trên phần mềm MATLAB Simulink Ở đây, ta tiến hành đưa các vị trí của cơ cấu chấp hành cuối vào khối “Inverse Kinematics” đã được lập trình chương trình tính toán động học nghịch Kết quả đầu ra của khối “Inverse Kinematics” là các góc khớp tương ứng mỗi vị trí đầu vào.
Bảng 7.1 Nhập tọa độ để kiểm chứng động học nghịch Các trường hợp
Kết quả mô phỏng (đơn vị mm)
Nhập tọa độ điểm bất kì (x, y, z) = (300,
Nhập điểm có tọa độ bất kì (x, y, z) = (260,
Ta thu được 2 bộ nghiệm sau khi đưa giá trị đầu vào thông qua bộ động học nghịch, tùy không gian làm việc, phù hợp với thực tế thì ta sẽ chọn các bộ nghiệm thích hợp Ở đây nhóm chọn bộ nghiệm 2, vì không gian làm việc của cánh tay robot ở phía bên phải.
7.1.2 Kiểm nghiệm động học thuận Để kiểm nghiệm kết quả động học thuận cũng như kết quả của bài toán động học thì ta tiến hành lấy giá trị góc khớp từ khối “Inverse Kinematics” đưa vào khối “Forward Kinematics” đã được lập trình chương trình tính toán động học thuận Ngõ ra của khối
“Forward Kinematics” chính là vị trí của cơ cấu chấp hành cuối sẽ được so sánh với vị trí được đưa vào khối động học nghịch.
Bảng 7 2.Kiểm chứng động học thuận Các trường hợp
Kết quả mô phỏng (đơn vị mm)
Nhập tọa độ bất kỳ (x, y, z) (260,350,189)
Nhập tọa độ bất kỳ (x, y, z) = ( -
Dựa vào kết quả từ 2 trường hợp và 2 hình trên, ta đánh giá kết quả tính toán động học thuận, nghịch là chính xác và có thể dùng để áp dụng thuật toán vào mô hình cánh tay robot scara.
Kiểm chứng động học thuận nghịch bằng Module vị trí QD75MH4
7.2.1 Kiểm nghiệm động học nghịch
Với mỗi ô trên bàn check board là 20mm Khoảng cách từ gốc tọa độ Robot tới vị trí đặt bàn cờ là (200, 0, 0) Với cách thức kiểm chứng là nhập tọa độ của vị trí bất kì và kiểm tra với điểm tương ứng trên bàn cờ Sai số có thể thấy ở đây bởi vì các nguyên nhân như sai lệch trong số liệu đo từ thực hoặc làm tròn trong phương pháp tính toán.
Bảng 7.3: Nhập tọa độ để kiểm chứng động học nghịch Các trường hợp
Kết quả mô phỏng (đơn vị mm)
Nhập tọa độ bất kỳ (x, y, z) (400, 0, 0)
Nhập tọa độ bất kỳ (x, y, z) (400, 240, 0)
Nhập tọa độ bất kỳ (x, y, z) (300, 120, 0)
Nhập tọa độ bất kỳ (x, y, z) (320, 200, 0)
Bảng 7 4: Sai số của bộ điều khiển động học nghịch
Tọa độ Encoder trả về Matlab Sai số
(đơn vị mm) (đơn vị độ) (đơn vị độ) (đơn vị độ)
Nhận xét: So sánh kết quả của encoder trả về và kết quả tính toán từ matlab Ta nhận ra được sai số của encoder rất nhỏ Thường việc làm tròn số này xảy ra do trong PLC, dữ liệu chỉ được hiển thị tối đa sau dấu chấm là 5 số Ngoài ra còn có thể có sai số do làm tròn trong công thức.
Kết quả: Có thể sử dụng bộ điều khiển này trong hệ thống.
7.2.2 Kiểm nghiệm động học thuận
Bảng 7.5: Nhập góc để kiểm chứng động học thuận Các trường hợp
Kết quả mô phỏng (đơn vị độ)
Kiểm chứng YOLO
Để đánh giá kết quả của mô hình phát hiện dựa trên YOLO, nhóm đưa ra đề xuất thử so sánh kết quả trên 2 mô hình khác nhau:
7.3.1 Lần thử nghiệm ban đầu
Nhóm thực hiện phân tích dựa trên tập dữ liệu ban đầu và cách dán nhãn phổ thông là dán bằng bounding box xung quang đối tượng Bên dưới là ma trận nhầm lẫn thực tế của kết quả tốt nhất được lựa chọn thông qua nhiều lần huấn luyện mạng.
Hình 7 1 Huấn luyện theo cách dán bounding boxKết quả thu được là Precision = 0.9178, Recall = 0.74444
Kết luận: Các đối tượng đươc phát hiện đúng khá chính xác, tuy nhiên tỉ lệ bỏ sót các đối tượng còn cao Số chai nhựa không nhãn không được phát hiện khá cao, đối tượng vật có hình chữ nhật không phải chai cũng được gán nhãn sai khá cao.
Từ kết luận trên, nhóm hướng tới việc cải thiện dữ liệu đầu vào cho mô hình phát hiện đối tượng dựa trên thư viện YOLO.
7.3.2 Lần thử nghiệm thứ hai
Nhóm chọn cách lọc lại bộ dữ liệu, xóa đi những dữ liệu mà trước đó có thể gây ảnh hưởng tới mô hình như những dữ liệu mà không rõ hình dạng của chai, ảnh chai bị mất viền. Bên cạnh đó việc gán nhãn cũng ảnh hưởng tới phần lớn mạng nơ-ron thần kinh, bằng cách dán nhãn lại chỉ dựa trên biên dạng của đối tượng chai nhựa Mô hình đã được xây dựng lại, bên dưới là ma trận nhầm lẫn thực tế của kết quả tốt nhất được lựa chọn thông qua nhiều lần huấn luyện mạng.
Hình 7.2 Huấn luyện theo cách dán ôm vật Kết quả thu được là Precision = 0.9411, Recall = 0.9411
Kết luận: Có sự cải thiện lớn trong việc phát hiện đối tượng khi mà chỉ số bỏ sót đối tượng đã giảm, trong đó tỉ lệ nhận sai vật cũng giảm Các đối tượng có biên dạng hình chữ nhật cũng không còn bị nhận nhầm.
Từ kết luận trên, nhóm quyết định sử dụng mô hình mạng nơ-ron này để áp dụng trong phần điều khiển.
Kiểm nghiệm ma trận chuyển đổi vị trí
Để kiểm chứng kết quả ma trận chuyển đổi vị trí, ta thực hiện phát hiện đối tượng bằng camera thông qua mô hình mạng nơ-ron Từ đó trích xuất vị trí của đối tượng mà so sánh với thực tế để tìm ra khoảng sai số.
Một cách chính xác hơn thì ta có thể kẻ các một lưới pixel, từ đó chọn những điểm tương ứng trên mặt phẳng không gian làm việc, thực hiện tính toán và đối chứng kết quả so với thực tế đo được.
Hình 7.3 Phương pháp kiểm thửBảng 7.6 Kết quả thực nghiệm trên hệ thống
Bảng 7.7 Kết quả thực tế và sai số Bảng 7.8: Đánh giá sai số ma trận xác định vị trí vật Tọa độ điểm ảnh của Dữ liệu trả về (mm) Thực tế (mm) Sai số (mm) đối tượng (pixel)
Nhận xét: Sai số nằm trong khoảng cho phép bởi đối tượng cần phát hiện vật có biên dạng khá lớn, vị trí đối tượng càng gần biên của khung ảnh thì sai số càng tăng.
Kết luận: Có thể sử dụng ma trận chuyển đổi vị trí để sử dụng trong hệ thống.
Kết quả toàn hệ thống
7.5.1 Không có băng tải Để có cái nhìn khái quát hơn về tính linh hoạt của robot và của hệ thống, nhóm quyết định triển khai phương án để bất cứ đối tượng tĩnh trong không gian làm việc và cho hệ thống tự động phân loại.
Bảng 7.9 Các giai đoạn hệ thống hoạt động khi không có băng tải
Từng giai đoạn trong hệ thống Ghi chú
Trường hợp 1: Đầu tiên, phát hiện đối tượng nằm yên ở vị trí bất kì.
Tiếp theo, robot gắp vật theo thư tự, vật nào có ID nhỏ hơn thì gắp trước.
Trường hợp 2: Cho cả chai và lon để chung với nhau.
Robot bỏ qua các đối tượng khác và chỉ phân loại chai có ID nhỏ hơn.
Robot tiếp tục gắp chai có ID tiếp theo.
Robot thả chai tại thùng chứa
Tiến hành thực nghiệm trên mô hình với băng tải để kiểm chứng tính liên tục của hệ thống Thả liên tục các chai nhựa và các vật dụng khác như lon nước, …
Bảng 7.10 Các giai đoạn hệ thống hoạt động khi có băng tải
Từng giai đoạn trong hệ thống Ghi chú Đầu tiên, bỏ chai lên băng tải, camera phát hiện chai
Khi qua vạch giới hạn để nhận tín hiệu thì lúc này robot gắp chai đi
Sau khi thả chai vào thùng rác, robot trở về vị trí đặt để chờ tín hiệu tiếp theo.
Khi đặt lon hay vật khác không phải chai nhựa thì camera sẽ không phát hiện và sẽ không truyền tín hiệu cho robot hoạt động.
Khi robot không nhận tín hiệu từ camera, thì lon sẽ di chuyển theo băng tải và đi ra ngoài. Đánh giá kết quả hệ thống với cấu trúc mạng nơ-ron lần 1:
Với cách dán nhãn dữ liệu là bounding box, tập dữ liệu gần 3100 ảnh, trong đó đã được phân chia theo tỷ lệ (training set = 70%, valid set = 20%, test set %).
Bảng 7.11 Bảng đánh giá hệ thống lần 1
Lần thử Số lượng chai, Số lượng chai Số lượng đối tượng không phải đối tượng khác nhận đúng chai bị nhận nhầm
Trung bình cộng của thông số đánh giá giữa các lần thử với nhau là:
Tỉ lệ nhận đối tượng khá chính xác nhưng đi kèm với đó tỉ lệ nhận sai đối tượng cũng khá cao.
Nhận xét: Cần cải thiện mô hình mạng nơ-ron. Đánh giá kết quả hệ thống với cấu trúc mạng nơ-ron lần 2: Đã có cải tiến bằng cách dán nhãn dữ liệu là lấy biên dạng vật, tập dữ liệu đã được lọc lại những ảnh gây nhiễu, chỉ còn lại gần 2800 ảnh, trong đó đã được phân chia theo tỷ lệ (training set = 70%, valid set = 20%, test set %).
Bảng 7.12.Bảng đánh giá hệ thống lần 2
Lần thử Số lượng chai, đối Số lượng chai Số lượng đối tượng không Thành công tượng khác nhận đúng phải chai bị nhận nhầm gắp
Trung bình cộng của thông số đánh giá giữa các lần thử với nhau là:
Nhận xét: Thông số cải thiện khá rõ ràng, chỉ ra rằng tỉ lệ gán nhầm nhãn cho đối tượng giảm rõ rệt Thông số phát hiện chính xác đối tượng giảm có thể hiểu là do việc phát hiện phải dựa trên chính xác biên dạng của đối tượng.
Kết luận: Sử dụng mô hình mạng nơ-ron thứ 2 mang tính hiệu quả cao hơn. Đánh giá kết quả hệ thống với cấu trúc mạng nơ-ron lần 2 với độ sáng cao hơn:
Bằng cách tăng độ sáng của môi trường làm việc, tương tự các lần thử trên, ta lập được bảng.
Bảng 7 13:Bảng đánh giá hệ thống với điều kiện môi trường khác (thay đổi ánh sáng)
Lần thử Số lượng chai, đối Số lượng chai Số lượng đối tượng không Thành công tượng khác nhận đúng phải chai bị nhận nhầm gắp
Trung bình cộng của thông số đánh giá giữa các lần thử với nhau là:
Nhận xét: Thông số giảm rõ rệt, có thể thấy mô hình được xây dựng còn có hạn chế đối với ánh sáng cường độ mạnh trong môi trường làm việc.
Kết luận: Cần cải thiện lại bộ dữ liệu để huấn luyện mô hình.