MỤC LỤC
LỜI CẢM ƠN.............................................................................................................i
LỜI CAM ĐOAN.......................................................................................................ii
MỤC LỤC.................................................................................................................iii
DANH MỤC HÌNH ẢNH...........................................................................................vi
DANH MỤC BẢNG.................................................................................................viii
CHƯƠNG 1. TỔNG QUAN.......................................................................................1
1.1. Đặt vấn đề..........................................................................................................1
1.2. Mục tiêu nghiên cứu...........................................................................................2
1.3. Nội dung nghiên cứu..........................................................................................2
1.4. Giới hạn đề tài....................................................................................................3
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT............................................................................4
2.1. Tổng quan về PLC..............................................................................................4
2.1.1. Giới thiệu về PLC............................................................................................4
2.1.2. Đặc điểm của PLC...........................................................................................5
2.1.3. Vai trò của PLC................................................................................................6
2.2. Tổng quan PLC dòng Q của Mitsubishi .............................................................6
2.2.1. Giới thiệu các sản phầm thuộc Q-Series:........................................................6
2.3. Tổng quan về động cơ AC Servo......................................................................10
2.3.1. Giới thiệu về AC Servo...................................................................................10
2.3.2. Phân loại động cơ Servo................................................................................10
2.3.3. Cấu tạo động cơ Servo..................................................................................10
2.3.4. Chức năng.....................................................................................................11
2.3.5. Ưu điểm và nhược điểm động cơ AC Servo..................................................11
2.4. Encoder.............................................................................................................11
2.4.1. Khái niệm.......................................................................................................11
2.4.2. Phân loại Encoder..........................................................................................12
2.4.3. Bộ điều khiển động cơ servo.........................................................................12
2.4.4. Phương pháp điều khiển vị trí động cơ servo................................................13
2.5. Mô hình hoá và tính toán phương trình động học cho robot scara..................14
2.5.1. Đặt hệ trục toạ độ cho robot...........................................................................15
2.5.2. Lập bảng DH (Denavit – Hartenberg).............................................................16
2.5.3 Xây dựng phương trình động học cho robot ..................................................16
2.5.4. Mô phỏng và kiểm chứng kết quả tính toán trên Matlab................................19
2.5.5. Không gian làm việc của robot ......................................................................23
2.6. Công nghệ thị giác máy tính..............................................................................24
2.6.1. Giới thiệu về thị giác máy................................................................................24
2.6.2. Định nghĩa và vai trò của ảnh.........................................................................24
2.6.3. Các thuật toán xử lý ảnh ứng dụng trong hệ thống........................................25
2.6.4. Thư viện OpenCV trong python......................................................................38
2.6.5 Chuyển đổi giữa hệ tọa độ camera và robot...................................................39
2.7. Truyền thông giao tiếp MC-Protocol .................................................................40
2.7.1. Tổng quan về giao tiếp Ethernet ...................................................................40
2.7.2. Tổng quan về truyền thông giao tiếp MC-Protocol ........................................43
2.7.3. Truyền nhận data với MC-Protocol (frame 3E)..............................................43
2.8. Ngôn ngữ lập trình Motion SFC........................................................................45
2.8.1. Sơ lược về SFC.............................................................................................45
2.8.2. Cơ cấu chương trình SFC chuyển động........................................................46
2.8.3. Biểu tượng điều khiển của SFC.....................................................................47
CHƯƠNG 3. THIẾT KẾ, THI CÔNG HỆ THỐNG...................................................49
3.1. Thiết kế phần cứng...........................................................................................49
3.1.1 Yêu cầu phần cứng........................................................................................49
3.1.2 Bố trí phần cứng.............................................................................................49
3.2. Thiết bị phần cứng............................................................................................51
3.2.1. Robot Scara YK600XG hãng YAMAHA.........................................................51
3.2.2. Mặt giá đỡ.....................................................................................................52
3.3. Thiết kế bộ điều khiển......................................................................................53
3.3.1. Lựa chọn thiết bị ...........................................................................................53
3.3.3. Sơ đồ nối dây thiết bị ....................................................................................61
3.4 Thiết kế phần mềm, giải thuật điều khiển..........................................................62
3.4.1. Mô tả yêu cầu hệ thống:................................................................................62
3.4.2. Điều khiển tốc độ từng trục robot..................................................................63
CHƯƠNG 4. VẬN HÀNH HỆ THỐNG....................................................................65
4.1. Kiểm chứng tính toán động học........................................................................65
4.1.1 Kiểm chứng động học thuận...........................................................................65
4.1.2 So sánh sai số giữa mô phỏng hệ thống với thực tế......................................67
4.1.3 Điều khiển robot .............................................................................................67
4.2. Giao diện điều khiển.........................................................................................68
4.2.1. Giới thiệu phần mềm.....................................................................................68
4.2.2. Giao diện điều khiển......................................................................................68
CHƯƠNG 5. KẾT LUẬN VÀ ĐÁNH GIÁ................................................................73
5.1 Đánh giá............................................................................................................73
5.2 Vấn đề còn tồn động.........................................................................................74
5.3 Hướng phát triển...............................................................................................74
TÀI LIỆU THAM KHẢO...........................................................................................75
LỜI CẢM ƠN
Nhóm chúng em xin được gửi lời cảm ơn chân thành đến các thầy cô khoa Đào tạo chất lượng cao, trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh đã truyền đạt cho chúng em nhiều kiến thức bổ ích trong suốt thời gian học trên lớp.
Nhóm em cũng xin chân thành cám ơn: ThS. …………….. đã tận tình hướng dẫn để nhóm hoàn thành đồ án tốt nghiệp đúng tiến độ. Từ những góp ý, lời khuyên cũng như cho nhóm em những ý tưởng mới, những lời động viên từ thầy đã giúp đỡ chúng em rất nhiều trong suốt quá trình hoàn thiện đồ án tốt nghiệp.
Và chúng em muốn gửi lời cảm ơn chân thành nhất đến với gia đình và bạn bè. Những người luôn động viên, lo lắng trong suốt quá trình làm luận văn tốt nghiệp này. Đấy chính là động lực giúp chúng tôi phấn đấu, nỗ lực và không ngừng hoàn thiện trên con đường tri thức của mình. Nhóm rất mong nhận được những sự đóng góp ý kiến của quý thầy cô để báo cáo đồ án được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
LỜI CAM ĐOAN
Nhóm tác giả xin cam kết đề tài này là do nhóm tác giả tự thực hiện vào những tài liệu tham khảo trước đó và không sao chép từ tài liệu hay từ công trình trước đó.
TP. Hồ Chí Minh, ngày … tháng … năm 20…
Nhóm tác giả thực hiện
1) …………………
2) …………………
CHƯƠNG 1. TỔNG QUAN
1.1. Đặt vấn đề
Với khoa học công nghệ tiên tiến hiện nay, lĩnh vực kĩ thuật về robot đã không còn mới lạ với chúng ta. Hầu hết mọi lĩnh vực trong đời sống đều đã, đang và sẽ có sự góp mặt của robot.
Việc sử dụng cánh tay robot có vai trò quan trọng trong việc giảm thiểu thời gian làm việc, gia tăng năng suất cũng như chất lượng sản phẩm.
Hiện nay có rất nhiều cánh tay robot, sử dụng cho nhiều mục đích khác nhau (vẽ, khoan, phân loại sản phẩm…). Ở đề tài tốt nghiệp này, nhóm đã chọn robot SCARA để thực hiện việc nghiên cứu.
1.3. Nội dung nghiên cứu
Chương 1: Tổng quan
Ở chương này đưa ra các vấn đề, lý do chọn đề tài, đưa ra mục tiêu nghiên cứu cũng như giới hạn đề tài.
Chương 2: Cơ sở lý thuyết
Trình bày lý thuyết về PLC, giới thiệu các dòng Q PLC, Servo Driver, ngôn ngữ lập trình SFC, thị giác máy tính.
Chương 3: Thiết kế và thi công hệ thống
Trình bày các bước thi công phần cơ, phần điện, sơ đồ đấu nối, giới thiệu thiết bị sử dụng, tính toán động học, thuật toán gắp vật và giải thuật điều khiển.
Chương 4: Giải thuật và vận hành hệ thống
Kiểm chứng động học của Robot, giới thiệu giao diện điều khiển và chế độ điều khiển
Chương 5: Kết luận và hướng phát triển
Đánh giá kết quả sau khi thực hiện đồ án, đưa ra những vấn đề còn tồn đọng và hướng phát triển Robot.
1.4. Giới hạn đề tài
Gắp vật bằng nam châm điện nên chỉ gắp vật làm từ kim loại.
Robot chỉ đang hoạt động trong môi trường lí tưởng, ít nhiễu, chưa đem vào môi trường công nghiệp để sử dụng.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. Tổng quan về PLC
2.1.1. Giới thiệu về PLC
- Khái niệm: PLC (Programmable Logic Controller) còn có tên gọi khác là bộ điều khiển lập trình, là thiết bị điều khiển lập 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. PLC sử dụng bộ nhớ khả trình để lưu trữ chương trình và thực hiện yêu cầu điều khiển. PLC có thể coi là một máy tính được thiết kế hoạt động tin cậy trong môi trường công nghiệp.
- Cấu tạo: PLC được cấu tạo bao gồm các thành phần chính như bộ xử lý trung tâm (CPU), khối ngõ vào (Module input, Analog input), khối ngõ ra (Module output, Analog output).
- 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…
2.1.2. Đặc điểm của PLC
- Ưu điểm: PLC có rất nhiều ưu điểm nổi bật so với các mạch điều khiển dạng tiếp điểm truyền thống, cụ thể là:
Khả năng điều khiển chương trình linh hoạt. Muốn thay đổi yêu cầu hoạt động, đối tượng điều khiển chỉ cần thay đổi chương trình bằng việc lập trình.
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 hàm có chức năng chuyên dụng: bộ phát xung tốc độ cao, bộ đếm tốc độ cao, bộ điều khiển PID…
2.2. Tổng quan PLC dòng Q của Mitsubishi
2.2.1. Giới thiệu các sản phầm thuộc Q-Series.
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. Điều này cho phép người dùng cấu hình hệ thống theo những gì mình cần, khi nào mình cần, nơi mình cần triển khai. Có thể phối hợp PLC CPU (cơ bản & 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. Điều này tạo cho người sử dụng sự chọn lựa hướng điều khiển, ngôn ngữ lập trình – tất cả cùng chung trên một nền tảng duy nhất.
- Cấu trúc PLC dòng Q:
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.
- Vòng quét PLC:
Mỗi vòng quét được bắt đầu bằng việc đọc cách tín hiệu đầu vào, sau đó việc thực hiện chương trình. Việc thực hiện chương trình sẽ được thực hiện lệnh đầu tiên (trên cùng) đến lệnh kết thúc. Tiếp đến là thực hiện truyền thông nội bộ và thực hiện tự kiểm tra lỗi. Cuối cùng là cập nhật trạng thái tới đầu ra Output.
2.3. Tổng quan về động cơ AC Servo
2.3.1. Giới thiệu về AC Servo
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.
2.3.3. Cấu tạo động cơ Servo
Về mặt cấu tạo, động cơ servo AC được tạo nên từ 3 thành phần:
Bộ điều khiển: bao gồm các bộ phận như màn hình, nút bấm, các thiết bị tiếp nhận và phát đi thông tin. Chúng có chức năng tiếp nhận các thông tin về tốc độ, vị trí, momen được truyền. Sau đó hiển thị kết quả lên màn hình.
Bộ khuếch đại Servo: có chức năng tiếp nhận thông tin dưới dạng code từ bộ mã hoá. Sau đó chúng sẽ di chuyển về bộ điều khiển để hiển thị trên màn hình.
2.3.5. Ưu điểm và nhược điểm động cơ AC Servo
- Ưu điểm:
Điều khiển tốc độ chính xác, đ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 (tuỳ thuộc vào độ chính xác của bộ mã hoá). 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í.
- Nhược điểm:
Điều khiển tương đối phức tạp, 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.
2.4. Encoder
2.4.1. Khái niệm
Encoder (Rotary Encoder) là một bộ cảm biến chuyển động cơ học tạo ra tín hiệu analog hoặc tín hiệu kĩ thuật số (digital) đáp ứng với chuyển động. Loại thiết bị cơ điện này có khả năng biến đổi chuyển động (chuyển động tịnh tiến, chuyển động quay của trục,…) thành tín hiệu đầu ra số hoặc xung.
2.4.3. Bộ điều khiển động cơ servo
Bộ điều khiển (servo driver) là một phần trong hệ thống servo có nhiệm vụ nhận tín hiệu lệnh điều khiển xung/analog từ PLC và truyền lệnh đến động cơ servo để điều khiển động cơ servo hoạt động theo lệnh, đồng thời nhận tín hiệu phản hồi liên tục về vị trí và tốc độ hiện tại của động cơ servo từ encoder.
AC servo driver phân loại theo phương thức điều khiển:
Phương pháp điều khiển bằng xung: PLC sẽ phát xung tốc độ cao cho servo driver và động cơ sẽ chạy đúng số xung và tần số xung do PLC phát ra.
2.4.4. Phương pháp điều khiển vị trí động cơ servo
Thiết lập bộ truyền động:
- Number of pulses per rotation (Số xung trên mỗi vòng quay): 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…
- 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.
2.5. Mô hình hoá và tính toán phương trình động học cho robot scara
2.5.1. Đặt hệ trục toạ độ cho robot
Robot thực chất là một chuỗi các khâu và các khớp nối tiếp nhau. Đối với Scara robot, trục 1 và trục 2 là khớp xoay, trục 3 là khớp trượt (tịnh tiến). Để đặt hệ trục toạ độ cho robot cần tuân theo một số quy tắc:
+ Đánh số thứ tự từ 0 dến n (n là số khâu robot). Đáy thường là khâu thứ 0.
+ Khâu thứ i được gắn với liên kết thứ i.
+ Đặt trục được trọn dọc theo trục khớp i.
+ Khâu thứ 0 thường được chọn chung với khâu thứ 1 khi biến khớp đầu bằng 0.
+ Khâu thứ n được chọn tự do, đảm bảo càng nhiều số liên kết càng tốt.
2.5.3 Xây dựng phương trình động học cho robot
2.5.3.1 Động học thuận
Sử dụng phương pháp đại số để tính toán động học thuận cho robot scara.
Thay thế các thông số trong bảng D-H vào công thức tổng quát (2.1), ta được các ma trận chuyển vị.
2.5.3.2 Động học nghịch
Tính toán động học nghịch nhằm xác định các giá trị không gian khớp robot từ các ví trí toạ độ điểm trong không gian xyz. Phương trình động học nghịch có 2 phương pháp để tính là đại số và hình học. Trong đề tài này sử dụng phương pháp đại số.
Quy ước chiều chuyển động của vật như hình. Nếu quay theo chiều dương, góc sẽ tăng dần từ 0.00000 đến 359.99999 ngược lại sẽ giảm từ 359.99999 về 0.00000 khi chọn đơn vị điều khiển là “độ” trong quy ước của bộ điều khiển chuyển động Q172DSCPU.
Sau khi tính toán, ta có được 2 bộ nghiệm tương ứng với mỗi cấu hình của robot:
Bộ nghiệm 1.
Bộ nghiệm 2.
2.5.4. Mô phỏng và kiểm chứng kết quả tính toán trên Matlab
- Kiểm chứng tính toán động học nghịch:
Đầu vào là vị trí toạ độ điểm đầu cuối muốn robot di chuyển đến. Sau khi tính toán, ta có kết quả 2 bộ nghiệm là góc quay của các khớp robot như trên.
Lấy kết quả 2 bộ nghiệm vừa tính toán thế ngược lại động học thuận, ta thấy kết quả cho ra gần đúng với vị trí nhập ban đầu với sai số rất ít.
Cách kiểm chứng tương đương ở vị trí 1, kết quả tính toán gần chính xác với sai số rất ít.
* Nhận xét: Qua việc kiểm chứng cho thấy tính toán động học cho robot là đáng tin cậy. Đồng thời qua việc mô phỏng cấu hình, ta có thể thấy cả 2 bộ nghiệm đều đáp ứng khá tốt và không bị giới hạn vật lý. Do cấu hình của robot scara đơn giản, linh hoạt cho nên không có sự khác biệt quá nhiều giữa 2 bộ nghiệm. Do đó có thể lựa chọn cả 2 bộ nghiệm vào tính toán tuỳ theo yêu cầu đặt ra.
2.5.5. Không gian làm việc của robot
Không gian làm việc là khoảng không gian robot có thể di chuyển mà không bị va chạm cơ khí lẫn nhau. Nó phụ thuộc vào cấu trúc cơ khí, chiều dài các thanh liên kết. Mỗi cấu hình robot sẽ có không gian làm việc khác nhau và tuỳ theo mục đích sử dụng mà chúng ta bố trí robot hoặc các thiết bị khác cho phù hợp. Dưới đây là bản giới hạn các khớp và không gian làm việc của robot scara YK600XG YAMAHA mà hãng cung cấp.
2.6. Công nghệ thị giác máy tính
2.6.1. Giới thiệu về thị giác máy
Thị giác máy (Computer Vision) là một lĩnh vực nghiên cứu và ứng dụng trong lĩnh vực trí tuệ nhân tạo (AI) tập trung vào khả năng của máy tính để hiểu và giải quyết các vấn đề liên quan đến hình ảnh và video. Mục tiêu của thị giác máy là giúp máy tính nhìn và hiểu thế giới xung quanh chúng ta như con người.
2.6.2. Định nghĩa và vai trò của ảnh
Trong công nghệ thị giác máy tính, ảnh được xem là một nguồn dữ liệu quan trọng và chủ yếu để phân tích và xử lý. Đây là một dạng dữ liệu hình ảnh tĩnh được biểu diễn dưới dạng ma trận điểm ảnh, trong đó mỗi điểm ảnh đại diện cho một mức độ ánh sáng tại một vị trí cụ thể trên ảnh. Ảnh là nguồn dữ liệu quan trọng trong công nghệ thị giác máy tính và đóng vai trò quan trọng trong việc phân tích, nhận dạng và hiểu thông tin hình ảnh, từ đó đưa ra quyết định và hành động dựa trên dữ liệu hình ảnh đó.
2.6.3. Các thuật toán xử lý ảnh ứng dụng trong hệ thống
2.6.3.1. Mô hình thị giác máy tính YOLO (You Only Look Once)
- Giới thiệu:
Loạt mô hình YOLO đã trở nên nổi tiếng trong lĩnh vực thị giác máy tính những năm gần đây. Sự nổi tiếng của YOLO là do độ chính xác đáng kể của nó trong khi vẫn duy trì kích thước mô hình tương đối nhỏ. Các mô hình YOLO có thể được đào tạo trên một GPU duy nhất, giúp nhiều nhà phát triển có thể tiếp cận mô hình này. Những người thực hành học máy có thể triển khai nó với chi phí thấp trên phần cứng hoặc trên đám mây.
YOLOv8 là mô hình YOLO tiên tiến nhất có thể được sử dụng cho các tác vụ phát hiện đối tượng và phân loại hình ảnh. YOLOv8 được phát triển bởi Ultralytics, cũng chính là nhóm đã tạo ra mô hình YOLOv5 đã đạt được những thành công nhất định trước đây. YOLOv8 bao gồm nhiều thay đổi và cải tiến về kiến trúc và trải nghiệm người dùng so với YOLOv5.
YOLOv8 đang tiếp tục được phát triển một cách tích cực bởi vì Ultralytics
- Cách YOLO hoạt động:
Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh. ẢNh đầu vào được chia thành thành S ×S ô thường thì sẽ là 3×3, 7×7, 9×9... việc chia ô này có ảnh hưởng tới việc mô hình phát hiện đối tượng, mình xin trình bày ở phần sau.
- Hàm tính IOU:
Trên ta có đề cập prediction được định nghĩa Pr(Object)∗ IOU(pred,truth), ta sẽ làm rõ hơn IOU(pred, truth) là gì. IOU (INTERSECTION OVER UNION) là hàm đánh giá độ chính xác của object detector trên tập dữ liệu cụ thể. IOU được tính bằng.
- Localization loss:
Localization loss là hàm lỗi dùng để tính giá trị lỗi cho boundary box được dự đoán bao gồm tọa độ tâm, chiều rộng, chiều cao của so với vị trí thực tế từ dữ liệu huấn luyện của mô hình. Lưu ý rằng chúng ta không nên tính giá trị hàm lỗi này trực tiếp từ kích thức ảnh thực tế mà cần phải chuẩn hóa về [0, 1] so với tâm của bounding box.
- Confidence loss:
Confidence loss là độ lỗi giữa dự đoán boundary box đó chứa object so với nhãn thực tế tại ô vuông đó. Độ lỗi này tính trên cả những ô vuông chứa object và không chứa object.
Với ví dụ trên thì S =7, B =2, còn λnoobject là trọng số thành phần trong paper gốc tác giả lấy giá trị là 0.5. Đối với các hộp j của ô thứ i nếu xuất hiệu object thì Ci =1 và ngược lại
2.6.3.2. tiền xử lí ảnh
- Grayscale:
Grayscale là 1 hệ thống màu có mô hình màu đơn giản nhất với 256 cấp độ xám biến thiên từ màu đen đến màu trắng. Kết quả được xuất ra sẽ có màu trắng đen. Được sử dụng cả trong công nghiệp in lẫn dùng trong việc thể hiện ảnh lên các thiết bị số. Ảnh xám (Gray image) hay còn gọi là ảnh đơn sắc (Monochromatic), mỗi giá trị điểm ảnh (Pixel) trong ma trận điểm ảnh mang giá trị từ 0 đến 255. Trong không gian màu RGB, để có 1 ảnh xám cần có phải có giá trị kênh màu Red(x, y) = Green(x, y) = Blue(x, y) (với x, y lần lượt là tọa độ của điểm ảnh).
- Làm mờ ảnh bằng phép biến đổi Gaussian(GaussianBlur):
Phép biến đổi Gaussian, hay còn được gọi là làm mờ Gaussian, là một phương pháp thường được sử dụng để làm mờ ảnh. Nó dựa trên phân bố Gaussian để tạo ra hiệu ứng làm mờ. Làm mờ ảnh để giảm nhiễu và làm mịn các chi tiết.
Phép biến đổi Gaussian hoạt động bằng cách áp dụng một bộ lọc Gaussian lên mỗi điểm ảnh trong ảnh gốc. Bộ lọc này có một hàm phản hồi không gian (spatial response) theo hình dạng của phân bố Gaussian. Quá trình này tạo ra một hiệu ứng làm mờ mượt và làm giảm độ tương phản giữa các điểm ảnh gần nhau.
- Bounding box:
Khác với contour là một đường cong nối liền các điểm có cùng cường độ hoặc màu sắc. Bounding box là một đường biên đóng bao quanh vật thể. Bounding box có thể có nhiều hình dạng khác nhau trong đó có các hình dạng chính như: chữ nhật, tam giác, tròn, ellipse. Một bounding box có thể được xác định thông qua một contour. Bên dưới là các bounding box phổ biến.
Vẽ bounding box hình chữ nhật xoay diện tích nhỏ nhất bao quanh một contour
Để vẽ một bounding box có diện tích tối thiểu bao quanh một contour xác định chúng ta sử dụng hàm cv2.minAreaRect()
. Hàm này sẽ trả về một cấu trúc Box 2 chiều bao gồm các thông số: Tọa độ đỉnh trên cùng bên trái (x, y), (width, height), góc xoay. Nhưng để vẽ hình chữ nhật thì ta cần tọa độ của 4 góc. Thông qua hàm cv2.boxPoint()
ta sẽ chuyển các hình dữ nhật thành các box 2D.
- Tìm bounding box trong Object detection:
Trong Object Detection, để huấn luyện các mô hình chúng ta sẽ cần phải gán nhãn cho các vật thể trong hình và tìm ra tọa độ tâm, kích thước width, height của bounding box bao quanh vật thể. Nếu gãn nhãn bằng tay sẽ khá mất thời gian và công sức. Có một các nhanh hơn tự động khoanh vùng các bounding box của các vật thể trong ảnh trong opencv. Hãy cùng xem.
Như vậy hầu hết các chữ số đã được tìm ra bouding box mà không phải tốn công sức từ người. Việc còn lại của chúng ta chỉ là gán nhãn cho từng bounding box. Theo cách này chúng ta có thể tiết kiệm được khoảng 80% thời gian so với xây dựng một bộ dữ liệu huấn luyện thủ công.
Ta nhận thấy có một số bounding box overlap nhau như các bounding box quanh số 0, 5, 9. Chúng ta có thể sử dụng hàm non-max suppression như bên dưới để triệt tiêu các bounding box overlap nhau và chỉ giữ lại các bounding box lớn nhất.
2.6.5 Chuyển đổi giữa hệ tọa độ camera và robot
Khi phát hiện một vật, tọa độ mà chúng ta nhận được sẽ được ánh xạ từ hệ tọa độ gốc của camera. Tuy nhiên, chúng ta cần chuyển đổi tọa độ từ camera thành tọa độ của robot để thực hiện các tính toán và để robot có thể gắp vật đó.
Chuyển đổi tọa độ vật trong hệ camera sang hệ robot bằng cách sử dụng vectơ chuyển đổi đồng nhất. Với ma trận chuyển đổi đồng nhất như phương trình dưới.
2.7. Truyền thông giao tiếp MC-Protocol
2.7.1. Tổng quan về giao tiếp Ethernet
2.7.1.1. OSI và TCP/IP:
- OSI: là mô hình tham chiếu kết nối hệ thống mở. Mô hình này được tạo nên nhờ vào nguyên lý phân tầng, giải thích về kỹ thuật kết nối giữa các máy tính và thiết lập giao thức mạng giữa các máy tính đó. Mô hình OSI còn được gọi là mô hình bảy tầng.
- Mô hình OSI: chia giao tiếp mạng thành 7 tầng. Từ tầng 1 đến tầng 4 là là những lớp thuộc cấp thấp, nó thực hiện nhiệm vụ di chuyển dữ liệu. Từ tầng 5 đến tầng 7 là lớp thuộc cấp cao, thực hiện nhiệm vụ đặc thù và chuyển tiếp dữ liệu.
- Mô hình TCP/IP: có sự kết hợp giữa các giao thức riêng biệt. Nhiệm vụ của mỗi giao thức là giúp máy tính có thể kết nối, truyền thông tin qua lại với nhau. TCP là giao thức điều khiển truyền nhận còn Internet Protoco (IP) là giao thức liên mạng. TCP/IP gồm 4 tầng đó là tầng ứng dụng, tầng mạng, tầng giao vận và tầng vật lý. Trong đó FTP, HTTP, HTTPS là ba giao thức được dùng nhiều nhất của TCP/IP. FTP là giao thức giúp cho máy tính có thể gửi dữ liệu không giới hạn đến một hay nhiều máy tính khác.
2.7.1.3. TCP và UDP Protocol:
- TCP (Transmission Control Protocol): là một giao thức mạng dùng trong truyền dữ liệu qua một mạng khác, được nhận xét là khá quan trọng. Một giao thức trong phạm vi mạng bao gồm những quy tắc và thứ tự quản lý quá trình truyền dữ liệu sao cho người dùng trên toàn cầu dù ở đâu, trên nền tảng gì, phần mềm nào đều được phép thao tác theo cùng một phương thức tương tự nhau thì được gọi là TCP.
- Các ứng dụng của TCP:
+ TCP hỗ trợ người dùng cài đặt và tùy chỉnh kết nối giữa các loại máy tính không giống nhau.
+ Vận hành riêng biệt với hệ điều hành.
+ Hỗ trợ linh hoạt cho nhiều giao thức định tuyến.
+ TCP hỗ trợ kết nối Internet giữa các tổ chức.
2.7.3. Truyền nhận data với MC-Protocol (frame 3E)
Quá trình truyền nhận dữ liệu với MC-Protocol thông qua frame 3E (Extended) bao gồm các bước sau:
- Chuẩn bị frame:
+ Đặt địa chỉ của thiết bị đích: Địa chỉ của thiết bị mà bạn muốn truyền dữ liệu tới được chỉ định trong frame.
+ Xác định mã chức năng (Function Code): Chọn mã chức năng phù hợp với hoạt động mong muốn như đọc dữ liệu, ghi dữ liệu, kiểm soát thiết bị, vv.
+ Xác định các thông số khác: Tùy thuộc vào mã chức năng, bạn có thể cần xác định các thông số bổ sung như địa chỉ bắt đầu, số lượng dữ liệu, v.v.
- Tạo frame:
+ Tạo frame dữ liệu dạng 3E: Frame 3E là một frame dạng ASCII được mã hóa dưới dạng chuỗi ký tự.
- Nhận và xử lý frame:
+ Nhận tín hiệu truyền: Thiết bị đích nhận tín hiệu truyền chứa frame dữ liệu.
+ Phân tích frame: Thiết bị đích phân tích frame dữ liệu để trích xuất các thông tin như địa chỉ thiết bị, mã chức năng và các tham số khác.
+ Xử lý frame: Thiết bị đích thực hiện các thao tác tương ứng với mã chức năng và thông số được truyền trong frame.
+ Tạo và gửi phản hồi (response): Thiết bị đích tạo ra phản hồi dữ liệu (response) tương ứng và gửi lại thiết bị gửi.
- Xác nhận và xử lý phản hồi:
+ Thiết bị gửi nhận phản hồi từ thiết bị đích.
+ Phân tích phản hồi: Thiết bị gửi phân tích phản hồi để xác định kết quả hoạt động đã được thực hiện thành công hay không.
+ Xử lý phản hồi: Thiết bị gửi xử lý phản hồi và tiếp tục thực hiện các thao tác tiếp theo nếu cần.
2.8. Ngôn ngữ lập trình Motion SFC
2.8.1. Sơ lược về SFC
Ngôn ngữ lập trình Motion SFC (Sequential Function Chart) là một ngôn ngữ được sử dụng trong lĩnh vực điều khiển và lập trình hệ thống tự động hóa. Nó được sử dụng để mô hình hóa và điều khiển các quá trình chuyển động, đảm bảo hoạt động mượt mà và chính xác của các thiết bị tự động.
Motion SFC được phát triển dựa trên các khái niệm của chuẩn IEC 61131-3, cung cấp một giao diện đồ họa để mô hình hóa các chương trình điều khiển. Nó thường được sử dụng để lập trình các hệ thống điều khiển chuyển động phức tạp, chẳng hạn như robot công nghiệp, máy gia công, hệ thống vận chuyển tự động, và các ứng dụng tự động hóa khác
2.8.3. Biểu tượng điều khiển của SFC
Việc điều khiển trình tự quy trình hoặc chuyển tiếp được biểu diễn bởi việc nối các phần với nhau bằng các đường nối trong chương trình motion SFC. Các thành phần của SFC được hiển thị như bảng dưới.
CHƯƠNG 3. THIẾT KẾ, THI CÔNG HỆ THỐNG
3.1. Thiết kế phần cứng
3.1.1 Yêu cầu phần cứng
Hệ thống robot scara được thiết kế gồm 2 phần: phần cơ khí và phần điện. Để hệ thống hoạt động một cách chính xác và ổn định cần đảm bảo phần cơ khí được thiết kế chắc chắn, phần đế cho robot phải cứng cáp, có khối lượng nhất định chịu được tải trọng và lực khi vận hành robot tránh rung lắc, phần điện được thiết kế gọn gàng, thẩm mĩ, khoa học để dàng bảo trì sửa chữa.
3.1.2 Bố trí phần cứng
Dựa vào không gian làm việc của robot cũng như yêu cầu bài toán, các thiết bị gồm robot scara, khu đặt vật phẩm được bố trí như hình.
3.2. Thiết bị phần cứng
3.2.1. Robot Scara YK600XG hãng YAMAHA
Robot scara nhóm sử dụng gồm bộ khung có sẵn từ hãng YAMAHA với các trục được thay thế bằng động cơ servo AC của hãng Mitsubishi. Phần cơ được xây dựng chắc chắn, ổn định sẽ là nền tảng để phát huy ưu điểm về tốc độ của robot scara.
3.2.2. Mặt giá đỡ
Để chịu được tải trọng nặng của robot, tủ điện cũng như các thiết bị khác, đảm bảo được tính chắc chắn khi vận hành robot, hạn chế tối đa rung lắc. Nhóm sử dụng một tấm nhôm kích thước 143.5x70.5x1 cm làm phần đế bắt cho robot, băng tải và khu đặt vật phẩm. Các thiết bị được bắt bu lông một cách chắc chắn.
3.3. Thiết kế bộ điều khiển
3.3.1. Lựa chọn thiết bị
3.3.2.1 Bộ điều khiển
- Bộ điều khiển chính Q26UDVCPU Mitsubishi:
Q26UDVCPU là PLC dòng Q được xem là bộ điều khiển lập trình mạnh mẽ nhất của hãng Misubishi tại thời điểm hiện tại. Với kích thước nhỏ gọi, dễ dàng lắp đặt, tốc độ xử lý nhanh chóng, tích hợp các kỹ thuật tiên tiến nhất. Là dòng có hiệu năng cao, PLC dòng Q phù hợp với các ứng dụng điều khiển cao cấp, điều khiển chuyển động đồng bộ phức tạp.
- Bộ điều khiển chuyển động Q172DSCPU:
Để điều khiển 4 trục Robot Scara một cách chính xác, phát huy được ưu điểm tốc độ cao của nó và đồng bộ chuyển động với bàn xoay thì bộ điều khiển chuyển động Q172DSCPU là sự lựa chọn tối ưu với khả năng điều khiển đồng thời lên đến 16 trục, nhỏ gọn dễ dàng lắp đặt.
3.3.2.3. Động cơ servo AC
- Động cơ Servo mã HF-KP053:
- Động cơ Servo mã HG-MR43BJ:
- Động cơ Servo mã HF-KP23G7:
3.3.2.5. Các thiết bị khác
- Nam châm điện ELE-P25/20 24V:
- MCB 2P:
3.3.2.6 Depth Camera D435 (Camera 3D)
Máy ảnh độ sâu Intel® RealSense ™ Dòng D400 sử dụng tầm nhìn âm thanh nổi để tính toán độ sâu. D435 là một máy ảnh độ sâu hỗ trợ USB và bao gồm một cặp cảm biến độ sâu, cảm biến RGB và máy chiếu hồng ngoại. Đó là lý tưởng để các nhà sản xuất và nhà phát triển thêm khả năng cảm nhận chiều sâu vào nguyên mẫu của họ.
Bộ xử lý tầm nhìn mạnh mẽ sử dụng công nghệ quy trình 28 nanomet (nm) và hỗ trợ lên đến 5 làn giao diện máy ảnh MIPI nối tiếp 2 làn để tính toán hình ảnh có độ sâu thời gian thực và tăng tốc đầu ra.
Thuật toán độ sâu âm thanh nổi tiên tiến mới để nhận biết độ sâu chính xác.
Một bộ cảm biến hình ảnh cho phép ghi lại sự chênh lệch giữa các hình ảnh có độ phân giải lên đến 1280 x 720.
Hỗ trợ cho Intel® RealSense ™ SDK 2.0 đa nền tảng, mã nguồn mở.
Bộ xử lý tín hiệu hình ảnh màu chuyên dụng để điều chỉnh hình ảnh và chia tỷ lệ dữ liệu màu.
3.3.3. Sơ đồ nối dây thiết bị
Sơ đồ nối dây tổng quát thiết bị như hình 3,8.
3.4 Thiết kế phần mềm, giải thuật điều khiển
3.4.1. Mô tả yêu cầu hệ thống:
Các vật sẽ được đặt lên băng tải, vật được đưa vào khu vực làm việc của robot. Dựa vào hình dạng và chiều cao của vật, camera 3D sẽ có nhiệm vụ nhìn thấy vật và đưa thông số về CPU xử lý. Tiếp theo, robot sẽ nhận được vị trí và thực hiện gắp vật. Vật sẽ được đưa đến khu vật phẩm được quy ước dựa theo loại và chiều cao của vật. Khi hoàn thành quá trình gắp vật, robot trở lại vị trí chờ và chờ vật tiếp theo được đặt vào băng tải.
3.4.2. Điều khiển tốc độ từng trục robot
Sau khi có được quỹ đạo di chuyển phù hợp với môi trường làm việc của robot, ta tiến hành tính toán vận tốc di chuyển của từng khớp robot cho từng quỹ đạo.
Để điều khiển vận tốc từng khớp của robot đồng thời với nhau thì ta có các phương pháp điều khiển nội suy trong PLC Motion. Có 3 cách điều khiển nội suy:
Nội suy theo vector tốc độ: dựa vào tốc độ cho trước, bộ điều khiển Motion CPU sẽ tính toán tốc độ từng trục tỉ lệ với quãng đường dịch chuyển của chúng, đảm bảo rằng các trục sẽ bắt đầu và kết thúc đồng thời.
Nội suy theo trục được chọn làm trục tham chiếu: ta sẽ chọn trước tốc độ và trục làm tham chiếu. Bộ điều khiển CPU Motion sẽ tính toán thời gian chuyển động của trục tham chiếu để làm dữ liệu sau đó suy ra vận tốc của các trục còn lại dựa trên quãng đường di chuyển độc lập của chúng, đảm bảo cho các trục bắt đầu và kết thúc đồng thời.
CHƯƠNG 4. VẬN HÀNH HỆ THỐNG
4.1. Kiểm chứng tính toán động học
4.1.1 Kiểm chứng động học thuận
Tiến hành chạy robot scara với các cấu hình góc đặc biệt để kiểm chứng tính đúng đắn của phương trình động học.
4.1.2 So sánh sai số giữa mô phỏng hệ thống với thực tế.
Để điều khiển robot, động học nghịch được sử dụng rất nhiều trong thuật toán của đề tài. Cho nên cần kiểm tra đảm bảo tính chính xác của phương trình, sai số giữa mô phỏng và thực tế. Để kiểm tra tính chính xác của phương trình, ta dùng phần mềm Matlab như đã trình bày ở mục (2.5.4). Sau khi mô phỏng, ta tiến hành chạy động học nghịch robot ở mô hình thực tế. Từ đó, so sánh các giá trị góc của các khớp từ Matlab với giá trị góc trả về từ Encoder của động cơ.
* Nhận xét: Sai số giữa mô phỏng từ Matlab và Encoder trả về cho sai số rất nhỏ.
4.2. Giao diện điều khiển
4.2.1. Giới thiệu phần mềm
Nhóm sử dụng giao diện SoftGOT2000, là giao diện hiển thị trên thiết bị giám sát, sử dụng phầm mềm tiên tiến hơn so với thiết bị điều khiển HMI nên giao diện trực quan hơn, có hình ảnh để nhận diện.
4.2.2. Giao diện điều khiển
4.2.2.1. Màn hình giới thiệu và đăng nhập
Ở màn hình này, giới thiệu một số thông tin cơ bản, tên đề tài, họ tên giảng viên, sinh viên. Để điều khiển hệ thống, nhấn nút LOGIN và nhập mật khẩu.
4.2.2.3. Màn hình Jog Operation
Có chức năng là Jog từng trục với tốc độ đặt. Sau khi nhập tốc độ ở cột Jog Speed, người dùng có thể chọn hướng di chuyển của trục ở cột Jog (chiều dương là ngược chiều kim đồng hồ và ngược lại). Sau đó khi đã tới vị trí mong muốn người dùng có thể lựa chọn nhấn nút Home ở từng trục để đặt lại vị trí Home cho trục đó.
4.2.2.5. Màn hình Inverse Kinematic
Màn hình sử dụng cho việc kiểm tra động học nghịch bằng cách nhập các toạ độ x,y,z hệ thống sẽ tính ra các giá trị góc. Để chạy đến toạ độ đó, người dùng nhập tốc độ ở cột Set Speed sau đó nhấn Inverse. Sau khi chạy xong kiểm tra giá trị cột Current Angle có bằng cột Inverse Angle không, nếu bằng thì robot đã chạy đúng vị trí.
CHƯƠNG 5. KẾT LUẬN VÀ ĐÁNH GIÁ
5.1 Đánh giá
Sau 15 tuần nghiên cứu và thực hiện đề tài “Ứng dụng điều khiển Robot Scara gắp vật với camera 3D”, nhóm em cũng đã hoàn thành đồ án tốt nghiệp đúng với tiến độ đã đề ra. Sau đây là đánh giá kết quả đề tài:
- Gắp vật di chuyển trên băng tải.
- Phân loại được các vật có độ cao khác nhau.
- Phân loại được các vật có hình dạng khác nhau
* Về lý thuyết:
Hiểu biết về nguyên lý hoạt động của động cơ Servo AC, biết tìm tỉ số gear, hiểu biết về PLC, driver, motion module Q172DSCPU của Mitsubishi.
Mô hình hoá và tính toán động học cho robot scara.
* Về phần cứng:
Được kế thừa từ các khoá trước và gia công, xây dựng lại cơ khí để phù hợp với mục đích đề tài. Xây dụng, đấu nối phần tủ điều khiển.
Phần cứng tương đối chắc chắn, cơ cấu dễ dàng tháo lắp, dễ thay thế hay sửa chữa nếu có sự cố.
* Về phần mềm:
Xây dựng được giao diện điều khiển dễ quan sát và sử dụng, có đầy đủ tính năng để hiệu chỉnh robot.
Xây dựng được chương trình điều khiển giải quyết được bài toán đặt ra, trong quá trình vận hành, cho chạy thực nghiệm nhiều lần để rút ra các thông số hiệu chỉnh cho phù hợp, đạt độ ổn định tốt nhất.
Khi tiến hành thực nghiệm để kiểm chứng sai số, Cho chạy thử gắp thả sản phẩm liên tục 10 lần, đo đạc lấy sai lệch giữa vị trí gắp các vật được đặt trên băng tải và sai số vị trí điểm đầu cuối Robot lệch so với lúc ban đầu.
5.2 Vấn đề còn tồn động
Thuật toán điều khiển chưa tối ưu, trong tính toán có làm tròn dẫn đến sai số khi vận hành.
Khi tăng tốc độ băng tải càng nhanh, độ chính xác càng giảm do chênh lệch thời gian tăng tốc và giảm tốc, thời gian trì hoãn khi cho nam châm hút vật.
Camera bị ảnh hưởng bởi ánh sáng môi trường.
Chỉ phân loại các vật bằng kim loại (Nam châm có thể hút)
5.3 Hướng phát triển
Cải thiện thuật toán điều khiển vận tốc, quy hoạch quỹ đạo đường tròn, tính toán thời gian tăng tốc giảm tốc hạn chế sai số để robot gắp vật chính xác mượt mà hơn khi tăng tốc độ băng tải.
Xây dựng giao diện điều khiển Websever.
TÀI LIỆU THAM KHẢO
[1]. Trần Đức Thiện (2021), giáo trình Thực tập Robot, Trường Đại học Sư phạm Kỹ Thuật TP. Hồ Chí Minh.
[2]. MELSEC-Q/L, serial communication module user's manual (application)
[3]. Q173D(S)CPU/Q172D(S)CPU motion controller (SV13/SV22) programming manual (real mode).
[4]. MELSERVO-J4, sscnet iii/h interface model MR-J4-_B_(-RJ) servo amplifier instruction manual.
[5]. John J.Craig, Introduction to Robotics-Mechanic and Control (Third Edition).
[6]. Mehmet Erkan KÜTÜK, Forward and Inverse Kinematics Analysis of Denso Robot, Mechanical Engineering Department, University of Gaziantep.
[7]. YK600XG YAMAHA Medium type
[8]. Q173CPU(N)/Q172CPU(N) Motion Controller (SV13/SV22) Programming Manual (Motion SFC).
"TẢI VỀ ĐỂ XEM ĐẦY ĐỦ ĐỒ ÁN"