Điều khiển chuyển động của Robot

Một phần của tài liệu Ứng dụng dobot magician trong hệ thống phân loại sản phẩm (Trang 43)

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

Một phần của tài liệu Ứng dụng dobot magician trong hệ thống phân loại sản phẩm (Trang 43)