Nhà sản xuất cung cấp cho người dùng hai phương thức để có thể điều khiển được Dobot Magician đó là sử dụng ứng dụng do nhà sản xuất phát triển Dobot Studio (phục vụ cho lĩnh vực giáo dục hoặc các ứng dụng đơn giản) và sử dụng thư viện API của nhà sản xuất cung cấp để có thể lập trình trên một môi trường lập trình dựa trên nhiều ngôn ngữ khác nhau như: Java, C#, Python, Qt, VB (phục vụ cho việc nghiên cứu phát triển hoặc các ứng dụng mang tính chất phức tạp).
2.7.1 Phần mềm Dobot Studio
Dobot Studio cung cấp cho người dùng các chức năng điều khiển cánh tay Dobot Magician trong các ứng dụng khác nhau có thể kể đến như gắp thả vật thể, khắc laser, in 3D, mô phỏng chuyển động, viết và vẽ các hình dạng dựa trên lập trình khối,... Ngoài ra, phần mềm cũng có khả năng hiển thị các cảnh báo lỗi và cách khắc phục.
Hình 2. 37 Giao diện điều khiển của phần mềm Dobot Studio
Module Chức năng
Teaching & Playback Dạy cho Robot cách di chuyển và lưu lại để có thể chuyển động lặp đi lặp lại
Write & Draw Điều khiển chuyển động để viết, vẽ hoặc khắc vật thể bằng laser
Blocky
Sử dụng ngôn ngữ lập trình khối tức kéo thả các khối lệnh có sẵn để tạo mã thực thi điều
27
Khoa ĐT CLC – ĐHSPKT TP.HCM
Script Điều khiển cánh tay Robot bằng các ngôn ngữ lập trình được hỗ trợ
LeapMotion Điều khiển chuyển động cánh tay Robot bằng thao tác của cánh tay người thực tế
Mouse Điều khiển chuyển động cánh tay bằng chuột máy tính
LaserEngraving Khắc laser lên vật thể
3DPrinter In các khối vật 3D
Example Các ví dụ mẫu của nhà sản xuất
Addmore Thêm các chức năng tùy chỉnh
Bảng 2. 1 Chức năng của từng Module trong giao diện điều khiển
Dobot Magician bao gồm 3 chế độ chuyển động đó là Jogging, Point to Point, Arc. Jogging: là chế độ dịch chuyển từng điểm nhỏ (di chuyển nhẹ, từ từ)
Hình 2. 38 Điều chỉnh trong hệ tọa độ Đề- các
- Nhấn X+ hoặc X- Robot sẽ di chuyển dọc theo trục X theo chiều âm hoặc dương
- Nhấn Y+ hoặc Y- Robot sẽ di chuyển dọc theo trục Y theo chiều âm hoặc dương
- Nhấn Z+ hoặc Z- Robot sẽ di chuyển dọc theo trục Y theo chiều âm hoặc dương
- Nhấn R+ hoặc R- Robot sẽ xoay dọc theo trục R theo chiều âm hoặc dương
Hình 2. 39 Điều chỉnh trọng hệ tọa độ khớp xoay
- Nhấn J1+ hoặc J1- Robot sẽ xoay động cơ chân đế theo chiều âm hoặc dương - Nhấn J2+ hoặc J2- Robot sẽ xoay động cơ khớp RearArm theo chiều âm hoặc dương
- Nhấn J3+ hoặc J3- Robot sẽ xoay động cơ khớp ForeArm theo chiều âm hoặc dương
- Nhấn J4+ hoặc J4- Robot sẽ xoay động cơ Servo theo chiều âm hoặc dương
28
Khoa ĐT CLC – ĐHSPKT TP.HCM
Point to Point: điều khiển vị trí cánh tay Robot dựa trên nguyên lý điểm tới điểm. Dobot Magician có 3 chế độ chuyển động đó là MOVJ, MOVL and JUMP.
- MOVJ: chuyển động khớp xoay,
từ điểm A đến điểm B. Mỗi điểm sẽ chạy từ góc ban đầu đến góc đích của nó bất chấp quỹ đạo di chuyển, được mô tả như hình 2.40 - MOVL: chuyển động thẳng từ điểm A đến điểm B. Khớp xoay sẽ thực hiện di chuyển một quỹ đạo thẳng từ điểm A đến điểm B như trên hình 2.40
- JUMP: chuyển động từ A đến B, khớp xoay sẽ di chuyển như ở chế độ MOVJ, quỹ đạo di chuyển bắt đầu từ điểm A, nâng lên một độ cao giới hạn, sau đó di chuyển theo chiều ngang, khi đến vị trí hình chiếu của điểm B thì hạ xuống B.
Hình 2. 40 MOVL/MOVJ mode
Hình 2. 41 JUMP mode
Arc: là chế độ dịch chuyển theo quỹ đạo hình vòng cung, được xác định bởi 3 điểm (điểm đầu A, điểm bất kì B, điểm cuối C).
Hình 2. 42 Arc Mode
29
Khoa ĐT CLC – ĐHSPKT TP.HCM
2.7.2 Phần mềm Visual Studio
Visual Studio là một môi trường phát triển tích hợp (IDE), là một trong những công cụ lập trình và thiết kế Website nổi tiếng nhất hiện nay được phát triển bởi Microsoft vào năm 1997. Nó có khả năng biên tập, sửa lỗi và thiết kế được nhiều ngôn ngữ lập trình khác nhau như C, C++, VB, C#, Python, Ruby, Javascript, CSS,… với khả năng linh hoạt trong việc tích hợp thư viện lập trình và các API của các bên liên quan.
Hình 2. 43 Giao diện phần mềm Visual Studio
Để có thể lập trình điều khiển Robot trên phần mềm Visual Studio sử dụng ngôn ngữ lập trình Python ta cần có thư viện bao gồm các hàm và câu lệnh điều khiển được cung cấp bởi nhà sản xuất Dobot. Một số câu lệnh chính được sử dụng như:
Hàm điều khiển Chức năng
SetPTPCmd Thực thi lệnh dịch chuyển theo chế độ Point to Point (điểm tới điểm)
SetEndEffectorSuctionCup Thiết lập cơ cấu chấp hành là đầu hút khí nén
SetWAITCmd Lưu chỉ số của lệnh cuối cùng
30
Khoa ĐT CLC – ĐHSPKT TP.HCM
ConnectDobot Kết nối Dobot Magician với máy tính
SetHOMEParams Thiết lập các thông số tại vị trí Home
SetPTPCoordinateParams Thiết lập các thông số tọa độ
SetPTPCommonParams Thiết lập các thông số chung khi chạy ở chế độ Point to Point (điểm tới điểm)
SetPTPJumpParams Thiết lập các thông số khi Dobot hoạt động theo chế độ chuyển động JUMP
SetHOMECmd Thiết lập lệnh di chuyển về vị trí Home
SetQueuedCmdStartExec Chạy các lệnh đã được đưa vào hàng chờ
SetQueuedCmdClear Xóa toàn bộ lệnh trong hàng chờ
SetEMotor Điều khiển động cơ băng chuyền
DisconnectDobot Ngắt kết nối Dobot với máy tính
31
Khoa ĐT CLC – ĐHSPKT TP.HCM
CHƯƠNG 3. TÍNH TOÁN THIẾT KẾ 3.1 Yêu cầu thiết kế
Hình 3. 1 Sơ đồ bố trí thiết bị phần cứng
Thiết kế tối ưu cho hệ thống phân loại sản phẩm dựa trên màu sắc có thể hoạt động ổn định lẫn tiết kiệm chi phí đầu tư ban đầu bao gồm có 5 cụm chính như sau:
Băng tải: vận chuyển các khối vật thể
Bơm khí: nén và xả khí để có thể gắp thả vật thể kích thước 25 x 25mm Cánh tay Robot: xếp các vật thể từ trên băng chuyền vào kho chứa
Kho chứa: chứa các khối vật thể, kích thước 4*3*4 (hàng * cột * độ cao – 4 hàng tương ứng với 4 màu sắc, mỗi hàng màu xếp 3 viên và từ 3 viên này ta xếp lên 4 viên nữa).
Giá đỡ Camera: dùng để gắn Camera chiếu xuống mặt băng chuyền.
3.2 Yêu cầu điều khiển
Trong quá trình hệ thống hoạt động, ta cần phải đảm bảo tốc độ băng chuyền ở mức tối ưu nhất để vừa đảm bảo năng suất làm việc, vừa đảm bảo tính chính xác khi phân loại màu sắc vì nếu cho băng chuyền hoạt động quá nhanh, Camera sẽ không thể bắt kịp và phân tích được từng khung hình của các khối vật thể khi chúng đi vào vùng quan sát của nó, gây ra tình trạng phân loại sai màu sắc, còn nếu băng chuyền hoạt động quá chậm thì sẽ không đảm bảo năng suất hệ thống.
Vật thể dù có được đặt như thế nào trên băng chuyền thì sau khi qua xử lý, chúng phải được cánh tay Robot xoay theo đúng hướng ta mong muốn trước khi được xếp vào kho, trong đề tài này ta sẽ xếp các vật thể vuông góc với kho. Ngoài ra, các vật thể có thể xếp chồng lên nhau theo từng khối màu, kích thước 1*3*4 viên (hàng * cột * độ cao). Sau khi gắp thả một vật thể, bộ điều khiển sẽ xóa ô nhớ tại vị trí đó đi và điều khiển cánh tay Robot tới vị trí kế tiếp tránh trường hợp xếp trùng vật thể tại cùng 1 vị trí.
32 Khoa ĐT CLC – ĐHSPKT TP.HCM 3.3 Linh kiện phần cứng 3.3.1 Camera Hình 3. 2 Webcam Logitech C920 Nhà sản xuất Logitech Độ phân giải - Video: FullHD 1080p/30fps, HD 720p/30fps - Photo: 3 MP Góc quay 780 Công nghệ - Auto low-light correction - Auto noise elimination - Auto Focus
Giao tiếp USB 2.0
Bảng 3. 1 Thông số kỹ thuật Camera
3.3.2 Băng tải
Hình 3. 3 Băng tải
Khối lượng tải 500g
Chiều dài băng tải 600mm
Tốc độ tối đa 120mm/s
Gia tốc tối đa 1100𝑚𝑚/𝑠2
Khối lượng 4.2kg
Kích thước 700mm x 215mm x 60mm
33
Khoa ĐT CLC – ĐHSPKT TP.HCM
3.3.3 Cánh tay Dobot Magician
Hình 3. 4 Quy cách thiết kế Dobot Magician
Dobot Magician là một cánh tay Robot đa chức năng với 4 bậc tự do (Base, Rear Arm, Fore Arm, End-effector) mô tả như hình 3.4, được phát triển để phục vụ trong môi trường giáo dục, hỗ trợ cho việc giảng dạy thực tế hơn. Nó có thể được lập trình trên nhiều dạng ngôn ngữ khác nhau (Java, C#, Python, Qt, VB, blockly graphic,…) hay phục vụ trong hệ thống nhúng kết hợp với STM32, Arduino, iOS, Android. Với nhiều cơ cấu chấp hành đa dạng, Dobot Magician có thể được tùy biến là máy in 3D, máy khắc laser, máy viết – vẽ chữ, máy gắp vật thể,… Ngoài ra, nó cũng được hỗ trợ phát triển bằng nhiều giao diện I/O khác nhau, điều này giúp cho khả năng sáng tạo của người dùng là không giới hạn.
34
Khoa ĐT CLC – ĐHSPKT TP.HCM Hệ tọa độ Đề-các: các tọa độ được xác định bởi trục đế.
Tọa độ gốc là tâm của 3 động cơ (Base, Rear Arm, Fore Arm).
Hướng của trục X vuông góc với đế về phía trước, hướng của trục Y vuông góc với đế về phía bên trái và hướng của trục Z là hướng thẳng đứng lên trên dựa vào quy tắc bàn tay phải.
Trục R là tâm của động cơ Servo so với tọa độ gốc của cánh tay Robot trong đó chiều dương của nó ngược chiều kim đồng hồ. Trục R chỉ tồn tại khi cơ cấu chấp hành là động cơ Servo được lắp đặt.
Hình 3. 6 Hệ tọa độ khớp xoay
Hệ tọa độ khớp xoay: các tọa độ được xác định bởi các khớp chuyển động. Nếu cơ cấu chấp hành không được lắp ráp vào hệ thống thì Dobot Magician chỉ chứa 3 khớp: J1, J2 và J3 (tất cả đều là các khớp xoay). Chiều dương của những khớp này ngược chiều kim đồng hồ.
Nếu động cơ Servo được lắp đặt ở cơ cấu chấp hành (Suction Cup Kit, Gripper Kit) thì lúc này Dobot Magician sẽ chứa 4 khớp: J1, J2, J3 và J4 (tất cả đều là các khớp xoay). Chiều dương của các khớp này ngược chiều kim đồng hồ.
35
Khoa ĐT CLC – ĐHSPKT TP.HCM
Hình 3. 7 Thông số kích thước Hình 3. 8 Tầm hoạt động (1)
Số bậc tự do 4
Khối lượng tải 500g
Tầm hoạt động 320mm
Độ lặp vị trí 0.2mm
Giao tiếp truyền thông USB/Wifi/Bluetooth
Nguồn cung cấp 100 - 240V, 50/60Hz
Nguồn đầu vào 12V/7A DC
Công suất tối đa 60W
Tầm nhiệt -100𝐶 ÷ 600𝐶
Khối lượng 3.4kg
Kích thước đế 158mm x 158mm
36
Khoa ĐT CLC – ĐHSPKT TP.HCM
Hình 3. 9 Tầm hoạt động (2) Hình 3. 10 Tầm hoạt động (3)
Trục Tầm hoạt động Tốc độ
Khớp xoay chân đế (Base) −900 ÷ 900 3200/𝑠 Khớp xoay tay đòn 1 (Rear Arm) 00 ÷ 850 3200/𝑠 Khớp xoay tay đòn 2 (Fore Arm) −100 ÷ 950 3200/𝑠 Khớp xoay cơ cấu chấp hành (Servo) 900 ÷ −900 4800/𝑠
Bảng 3. 4 Thông số các góc khớp
Phần mềm điều khiển DobotStudio, Repetier, GrblController3.6
SDK (Bộ phát triển phần mềm) Communication Protocool, Dobot Program Library
Giao tiếp Input/Output mở rộng 1. I/O x 10 (có thể cấu hình ngõ vào Analog hoặc ngõ ra PWM)
2. Nguồn điều khiển 12V x 4
3. Giao tiếp truyền thông (UART, Reset, Stop, 12V, 5V)
4. Stepper x 2
Bảng 3. 5 Ứng dụng
37
Khoa ĐT CLC – ĐHSPKT TP.HCM 3.3.4 Bộ bơm khí nén và đầu hút
Hình 3. 11 Bộ bơm khí nén và đầu hút
Phạm vi tác dụng của đầu hút 27.5mm
Loại điều khiển Khí nén
Lực tác dụng 8N
Nguồn cung cấp cho bộ hút 12V
38
Khoa ĐT CLC – ĐHSPKT TP.HCM
3.4 Sơ đồ kết nối phần cứng
Các thiết bị phần cứng được lắp ráp là dạng Module đi cùng với nhau do khoa Điện – Điện tử cung cấp nên nhóm chỉ có nhiệm vụ kết nối chúng lại thành một hệ thống hoàn chỉnh thông qua các giao thức có sẵn dựa trên sơ đồ kết nối phần cứng như trong hình 3.12. Tín hiệu từ Camera sẽ được nhận vào máy tính thông qua cổng kết nối USB. Tương tự, cánh tay Dobot Magician và máy tính cũng sẽ giao tiếp tín hiệu với nhau thông qua cổng USB. Từ các chân kết nối ở phần đế của cánh tay Robot, ta kết nối chúng đến các cơ cấu chấp hành tương ứng dựa trên tài liệu hướng dẫn của nhà sản xuất được mô tả như trong hình 3.13 và hình 3.14
Hình 3. 12 Sơ đồ kết nối phần cứng
Hình 3. 13 Các giao thức kết nối ở chân đế của Dobot Magician
- GP1: điều khiển bơm khí, cảm biến màu sắc, cảm biến hồng ngoại - GP2: tương tự như GP1, các chức năng do người dùng tự định nghĩa - Stepper1: điều khiển động cơ băng tải, động cơ đùn nhựa (chế độ in 3D)
- Stepper2: tương tự như Stepper1, các chức năng do người dùng tự định nghĩa
- SW1: nguồn cấp cho bơm khí, nguồn ra 12V
- SW2: nguồn ra 12V
- USB: giao thức kết nối với máy tính
- Reset: reset lại hệ thống, khi reset đèn báo sẽ chuyển sang màu vàng, sau 5 giây nếu đèn chuyển sang màu xanh lá thì cánh tay đã được reset thành công.
39
Khoa ĐT CLC – ĐHSPKT TP.HCM
- Key: nếu bấm nhanh sẽ chạy chương trình ngoại tuyến, nếu bấm giữ trong 2 giây
Robot sẽ tiến hành lấy vị trí Home
- Communication Interface: giao tiếp UART, kết nối Bluetooth, Wifi
- Power: nguồn cấp đầu vào
Hình 3. 14 Các giao thức kết nối trên cánh tay
- GP3: điều khiển tín hiệu động cơ Servo ở cơ cấu chấp hành cuối
- GP4: điều khiểntín hiệu tự động cân bằng
- GP5: điều khiểntín hiệu đầu laser
- SW3: điều khiển tín hiệu đầu nung nhựa (chế độ in 3D)
- SW4: quạt gió (chế độ in 3D), nguồn cấp đầu laser
40
Khoa ĐT CLC – ĐHSPKT TP.HCM
CHƯƠNG 4. THI CÔNG HỆ THỐNG 4.1 Lắp ráp phần cứng
Hình 4. 1 Lắp đặt Camera Hình 4. 2 Các chân kết nối ở đế Robot
Hình 4. 3 Lắp đặt đầu hút Hình 4. 4 Kết nối dây tín hiệu cho bộ hút
41
Khoa ĐT CLC – ĐHSPKT TP.HCM
4.2 Lập trình điều khiển
4.2.1 Thuật toán xử lý ảnh
Hình 4. 7 Thuật toán xử lý ảnh
Dựa vào thuật toán đã đề ra, ta thiết lập nên hai luồng xử lý cho hệ thống. Luồng 1 xử lý ảnh bao gồm các thuật toán nhận diện biên Canny; lấy đường thẳng HoughLine; nhận diện vật thể hình vuông; nhận diện vị trí & hướng vật thể trên băng chuyền; và phân biệt màu sắc vật thể. Luồng 2 điều khiển cánh tay Robot gắp thả vật thể vào kho chứa.
Ở luồng điều khiển 1, ảnh màu nhận được từ Camera sẽ được truyền vào hàm Detector, hàm này sẽ phát hiện vật thể theo từng khung ảnh, xử lý tín hiệu và trả ra một danh sách các vật thể hình vuông mà nó phát hiện được gọi là List of rects (danh sách các hình vuông) với cấu trúc dạng [rect1,
42
Khoa ĐT CLC – ĐHSPKT TP.HCM
Với từng thành phần con, cấu trúc sẽ có dạng rect = [[x, y], hướng, màu], trong đó: [x, y] (theo pixel) là tọa độ khối vật thể trên ảnh được lưu theo dạng danh sách. Hướng là góc của vật so với trục Ox do ta quy ước, tính theo đơn vị độ, giới hạn trong khoảng (−900, 900). Như trong hình 4.9, ta có thể thấy vật thể hợp với trục Ox góc 0 độ, trong hình 4.10 vật thể hợp với trục Ox góc θ độ.
Hình 4. 9 Vật thể lệch góc 0 độ Hình 4. 10 Vật thể lệch góc θ độ
Màu được xác định theo quy tắc Red = 0, Green = 1, Blue = 2, Yellow = 3 Sau khi có được danh sách các hình vuông, ta biết được hệ tọa độ các vật thể trong