Bước 1: Lắp đặt và kết nối phần cứng
Ta lắp đặt các thiết bị phần cứng như hình 4.16 dựa trên sơ đồ bố trí hệ thống ở hình 3.1. Do hệ thống không có hệ đo lường chuẩn đi kèm nên việc chú ý đến khoảng cách từ đế đặt Robot đến đế băng chuyền và đặt chúng sao cho hai thiết bị song song với nhau là điều rất quan trọng nhằm cải thiện độ chính xác của hệ thống khi hoạt động. Sau đó, từ mặt đế Robot ta kết nối các chân tín hiệu của các cụm thiết bị như mô tả ở hình 3.12:
- USB: kết nối với cổng USB của máy tính - Stepper1: kết nối với động cơ băng chuyền - GP1: kết nối với bơm khí nén
- GP3: kết nối với động cơ Servo ở cơ cấu chấp hành - SW1: nguồn 12V cung cấp cho bơm khí
- Camera: kết nối với cổng USB của máy tính
49
Khoa ĐT CLC – ĐHSPKT TP.HCM Bước 2: Canh chỉnh hệ thống
Hình 4. 17 Mép kho chứa song song với giá đỡ trục
Hình 4. 18 Khoảng cách từ tâm giá đỡ đến rìa Camera Hình 4. 19 K/c từ mặt bàn đến Camera
50
Khoa ĐT CLC – ĐHSPKT TP.HCM
Do bộ thiết bị không có hệ đo lường đi kèm vì vậy ta phải tự canh chỉnh hệ thống bằng tay và mắt thường dựa trên cảm tính.
Đầu tiên, điều chỉnh giá đỡ trục Camera sao cho nó song song với mép kho chứa. Lắp Camera vào gá và thiết lập khoảng cách từ tâm giá đỡ đến rìa gá như hình 4.18. Sau đó, điều chỉnh khoảng cách từ Camera đến mặt bàn, từ Camera đến băng tải như hình 4.19. Cuối cùng, thiết lập khoảng cách từ tâm đế Robot đến tâm băng tải và khoảng cách từ hình chiếu tâm Camera đến hình chiếu tâm Robot như hình 4.20.
Bước 3: Lấy danh sách màu mẫu Để hệ thống có thể vận hành một cách chính xác trong nhiều môi trường hoạt động khác nhau như: môi trường ánh sáng tự nhiên, môi trường ánh sáng nhân tạo, môi trường có các vùng ánh sáng phức tạp,… ta sẽ viết riêng một chương trình điều khiển nhằm đáp ứng cho việc lấy mẫu màu các khối vật thể tùy theo từng điều kiện hoạt động. Từ đó có thể giảm thiểu được sai sót và cải thiện được tính chính xác trong việc nhận diện màu sắc vật thể. Ta bố trí bốn khối vật thể với 4 màu sắc khác nhau, đặt chúng dưới tâm hình chiếu của Camera như hình 4.21 để khi xếp vào kho, vật thể sẽ được xếp theo thứ tự là đỏ,
xanh lá, xanh dương, vàng từ trên xuống. Hình 4. 21 Vị trí các khối màu để lấy mẫu
Hình 4. 22 Lấy mẫu màu sắc
Chạy chương trình để lấy màu mẫu của bốn khối vật thể trong CMD bằng cách trỏ đến thư mục chứa chương trình và sử dụng câu lệnh
python color_sample.py
để bắt đầu lấy mẫu màu vật thể. Sau khi lấy mẫu màu vật thể xong, chương trình sẽ trả ra kết quả như hình, ta ấn ESC để các màu mẫu được lưu và thoát chương trình.
51
Khoa ĐT CLC – ĐHSPKT TP.HCM Bước 4: Phân loại màu sắc vật thể
Sử dụng lệnh python main.py
để chạy chương trình chính. Đầu tiên, cánh tay Robot sẽ được thiết lập về vị trí Home đảm bảo xác định đúng tâm của cơ cấu chấp hành Robot trên băng chuyền và tránh sai số khi mới khởi động. Sau đó, băng chuyền sẽ bắt đầu hoạt động. Ta chờ cho đến khi cửa sổ Camera của OpenCV hiện lên là có thể bắt đầu thả vật thể lên băng chuyền và hệ thống sẽ bắt đầu
xử lý và phân loại. Hình 4. 23 Các cửa sổ hoạt động của chương trình chính
Sau khi kho chứa được lấp đầy như hình 4.24 thì dù cho ta có thả thêm vật thể vào băng chuyền hay trên băng chuyền lúc đó vẫn đang còn vật thể, cánh tay Robot vẫn sẽ không gắp chúng và băng chuyền sẽ được dừng lại. Chỉ cho đến khi chương trình được Reset thì hệ thống sẽ bắt đầu nhận diện lại màu sắc vật thể như quy trình đã đề ra ban đầu.
52
Khoa ĐT CLC – ĐHSPKT TP.HCM
CHƯƠNG 5. KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ
5.1 Kết quả vận hành
Nhóm thực hiện đã lắp ráp và lập trình thành công hệ thống “Ứng dụng Dobot Magician trong hệ thống phân loại sản phẩm” bao gồm hệ thống băng tải vận chuyển vật thể, Camera để thu thập hình ảnh và cánh tay Dobot Magician có nhiệm vụ gắp thả vật thể vào kho chứa và thu nhận được các kết quả như sau:
Phát hiện biên và cạnh vật thể Sau khi áp dụng thuật toán phát hiện biên vật thể Canny và phát hiện đường thẳng Houghline, kết quả nhận được được hiển thị trên màn hình máy tính như mô tả ở hình 5.1. Mục đích của việc làm này nhằm tăng tốc thời gian xử lý và giảm dung lượng bộ nhớ. Kết quả đạt được gần như chính xác với yêu cầu đề ra ban đầu. Trong một vài trường hợp, Camera không thể nhận diện được vật thể do tác động ảnh sáng của môi trường gây nên tình trạng đổ bóng, độ tương phản của vật thể trên mặt băng
chuyền thấp Hình 5. 1 Phát hiện biên và cạnh vật thể
Nhận diện màu sắc vật thể Sau khi qua xử lý, kết quả nhận diện màu sắc vật thể sẽ được thể hiện lên màn hình máy tính, song song với màn hình phát hiện cạnh vật thể và màn hình Camera gốc. Chương trình xử lý nhận diện được màu nào thì màn hình sẽ hiển thị lên màu đó, nếu có nhiều vật thể cùng lúc thì kết quả hiển thị màu sẽ lần lượt hiển thị theo thứ tự vật thể gần Robot nhất đến vật thể xa Robot nhất. Trong hình 5.2, ô màu tím (1) biểu thị vị trí (x,y) của vật thể trên băng chuyền (đơn vị tính là pixel) và ô màu cam (2) biểu thị giá trị góc θ (độ) của vật thể so với trục ngang của băng chuyền (trục Ox).
Hình 5. 2 Nhận diện màu sắc
53 Khoa ĐT CLC – ĐHSPKT TP.HCM Màu Số lần nhận dạng Số lần nhận dạng sai Tỷ lệ Đỏ 240 1 99.6% Xanh lá 240 0 100% Xanh dương 240 4 98.3% Vàng 240 1 99.6% Bảng 5. 1 Tỷ lệ nhận dạng màu sắc
Nhận diện vị trí và gắp vật thể trên băng chuyền
Hình 5. 3 Gắp vật thể màu đỏ Hình 5. 4 Gắp vật thể màu xanh lá
Hình 5. 5 Gắp vật thể màu xanh dương Hình 5. 6 Gắp vật thể màu vàng
Kết quả cho thấy cánh tay Robot đã nhận diện được vật thể tương đối chính xác trên băng chuyền, tuy nhiên vẫn có độ lệch sai số nhất định. Sau khi đo trung bình 10 lần ngẫu nhiên, nhóm thực hiện tìm được giá trị độ lệch trong khoảng 5 - 6mm giữa
54
Khoa ĐT CLC – ĐHSPKT TP.HCM
tâm đầu hút so với tâm vật thể. Có nhiều nguyên nhân gây nên tình trạng này điển hình là các khoảng cách được thiết lập có sai số, cánh tay Robot có độ rơ, số xung cấp cho băng chuyền quay một vòng chưa chính xác dẫn đến chương trình tính sai thời gian vật thể đi từ tâm Camera đến tâm Robot và gây ra độ lệch,…
Lần đo Độ lệch (mm) 1 6 2 5 3 7 4 4 5 7 6 5 7 6 8 7 9 5 10 4 Độ lệch trung bình 5.6 (mm)
Bảng 5. 2 Độ lệch đầu hút so với tâm vật thể
Gắp thả vật thể trên băng chuyền vào kho chứa
55
Khoa ĐT CLC – ĐHSPKT TP.HCM
Hình 5. 9 Vị trí kho góc nhìn nghiêng Hình 5. 10 Vị trí kho nhìn từ trên xuống
Có thể thấy, cánh tay Dobot Magician đã gắp tương đối chính xác vật thể từ băng chuyền, sau khi điều chỉnh lại hướng xoay vật thể sao cho nó vuông góc với kho chứa thì cánh tay Robot bắt đầu xếp vật thể vào kho chứa một cách tương đối chính xác. Cũng do ảnh hưởng bởi các yếu tố sai số nêu trên nên các vật thể khi xếp vào kho vẫn có độ lệch nhất định. Sau khi đo đạc và tính ngẫu nhiên trung bình 10 lần thì nhóm thực hiện tìm được sai số độ lệch của các vật thể nằm trong khoảng 1.8mm.
Lần đo Độ lệch (mm) 1 2 2 1 3 1 4 2 5 1 6 2 7 2 8 3 9 1 10 3 Độ lệch trung bình 1.8 (mm)
56
Khoa ĐT CLC – ĐHSPKT TP.HCM
5.2 Sai số hệ thống
Ta tính sai số hệ thống bằng cách đo các góc của vật thể ngẫu nhiên 10 lần và tính giá trị trung bình của từng phép thử để suy ra được giá trị sai số trung bình.
Góc 100
Hình 5. 11 Góc 10 độ thực tế Hình 5. 12 Góc 10 độ chương trình đo được
∆𝑠𝑎𝑖 𝑠ố 𝑛𝑔ẫ𝑢 𝑛ℎ𝑖ê𝑛 1 = |𝑔ó𝑐𝑡ℎự𝑐 𝑡ế− 𝑔ó𝑐𝑐𝑡𝑟ì𝑛ℎ đ𝑜 đượ𝑐| = |10 − 9.8082| = 0.1918
Góc 160
Hình 5. 13 Góc 16 độ thực tế Hình 5. 14 Góc 16 độ chương trình đo được
57
Khoa ĐT CLC – ĐHSPKT TP.HCM Góc 27.50
Hình 5. 15 Góc 27.5 độ thực tế Hình 5. 16 Góc 27.5 độ chương trình đo được
∆𝑠𝑎𝑖 𝑠ố 𝑛𝑔ẫ𝑢 𝑛ℎ𝑖ê𝑛 3 = |𝑔ó𝑐𝑡ℎự𝑐 𝑡ế− 𝑔ó𝑐𝑐𝑡𝑟ì𝑛ℎ đ𝑜 đượ𝑐| = |27.5 − 26.8988| = 0.6012
Góc 340
Hình 5. 17 Góc 34 độ thực tế Hình 5. 18 Góc 34 độ chương trình đo được
58
Khoa ĐT CLC – ĐHSPKT TP.HCM Góc 450
Hình 5. 19 Góc 45 độ thực tế Hình 5. 20 Góc 45 độ chương trình đo được
∆𝑠𝑎𝑖 𝑠ố 𝑛𝑔ẫ𝑢 𝑛ℎ𝑖ê𝑛 5 = |𝑔ó𝑐𝑡ℎự𝑐 𝑡ế− 𝑔ó𝑐𝑐𝑡𝑟ì𝑛ℎ đ𝑜 đượ𝑐| = |45 − 45.0016| = 0.0016
Góc 520
Hình 5. 21 Góc 52 độ thực tế Hình 5. 22 Góc 52 độ chương trình đo được
59
Khoa ĐT CLC – ĐHSPKT TP.HCM Góc 65.50
Hình 5. 23 Góc 65.5 độ thực tế Hình 5. 24 Góc 65.5 độ chương trình đo được
∆𝑠𝑎𝑖 𝑠ố 𝑛𝑔ẫ𝑢 𝑛ℎ𝑖ê𝑛 7 = |𝑔ó𝑐𝑡ℎự𝑐 𝑡ế− 𝑔ó𝑐𝑐𝑡𝑟ì𝑛ℎ đ𝑜 đượ𝑐| = |65.5 − 65.359| = 0.141
Góc 70.50
Hình 5. 25 Góc 70.5 thực tế Hình 5. 26 Góc 70.5 độ chương trình đo được
60
Khoa ĐT CLC – ĐHSPKT TP.HCM Góc 88.50
Hình 5. 27 Góc 88.5 độ thực tế Hình 5. 28 Góc 88.5 độ chương trình đo được
∆𝑠𝑎𝑖 𝑠ố 𝑛𝑔ẫ𝑢 𝑛ℎ𝑖ê𝑛 9 = |𝑔ó𝑐𝑡ℎự𝑐 𝑡ế− 𝑔ó𝑐𝑐𝑡𝑟ì𝑛ℎ đ𝑜 đượ𝑐| = |88.5 − 89.3024| = 0.8024
Góc 900
Hình 5. 29 Góc 90 độ thực tế Hình 5. 30 Góc 90 độ chương trình đo được
61
Khoa ĐT CLC – ĐHSPKT TP.HCM
Lần đo Góc thực tế
(độ)
Góc chương trình
đo được (độ) Sai số (độ)
Tỷ lệ chính xác (%) 1 10 9.8082 0.1918 98.1% 2 16 15.8759 0.1241 99.2% 3 27.5 26.8988 0.6012 97.8% 4 34 34.4242 0.4242 98.8% 5 45 45.0016 0.0016 100% 6 52 51.9575 0.0425 99.9% 7 65.5 65.359 0.141 99.8% 8 70.5 70.9657 0.4657 99.3% 9 88.5 89.3024 0.8024 99.1% 10 90 90 0 100% Giá trị trung bình 0.207234 99.2% Bảng 5. 4 Sai số góc lệch 5.3 Khắc phục lỗi 5.3.1 Không gắp chính xác vật thể
Có hai nguyên nhân chính dẫn đến trường hợp đầu hút không hút được các vật thể chính xác:
Nguyễn nhân thứ nhất là khoảng cách từ tâm hình chiếu Camera đến tâm hình chiếu Robot trên mặt băng chuyền không chính xác ở mức 330mm (có thể thay đổi trong ngưỡng 330mm đến 330.5mm)
Nguyên nhân thứ hai đó là ta không biết được số xung chính xác của động cơ băng chuyền, hiện đang được chọn ở giá trị 17390 xung nhưng giá trị này có thể được thay đổi nằm trong ngưỡng 17365 đến 17420 xung (đã qua quá trình thực nghiệm). Nếu nằm ngoài giá trị xung này thì cánh tay Robot sẽ không còn có thể gắp được vật thể nữa.
62
Khoa ĐT CLC – ĐHSPKT TP.HCM