Băng tải chạy với một tốc độ không đổi cho trước. Xét trường hợp robot đã gắp
được vật đầu tiên và xếp vào vị trí đầu băng tải. Khi gắp các vật tiếp theo, robot sẽ tính toán vị trí của các vật ấy dựa vào vị trí vật đầu tiên và sẽ chạy đến đúng vị trí để thả vật. Nếu vị trí của vật cần đặt nhỏ hơn giới hạn dưới của băng tải, robot sẽ đợi đến khi vị trí tính toán của vật nằm trên băng tải. Nếu vị trí của vật cần đặt lớn hơn giới hạn trên của băng tải, robot sẽ bắt đầu xếp lại hình mới. Quá trình xếp vật chia làm 2 giai đoạn nên sẽ xuất hiện 2 quãng đường di chuyển là quãng đường khi robot đến vị trí vật và quảng đường khi robot hạ thấp vật xuống đặt đúng vị trí.
Xét ví dụ:
Xếp vật được bố trí khoảng cách và thứ tự như hình vẽ. - Tốc độ băng tải: = 100 mm/min
- Quãng đường di chuyển thêm của vật: = 10mm; = 2mm
- Vị trí tại điểm gắp vật của robot: ( ; ; ) = (150; 500; 300)
-Thời điểm gắp được 6 vật lần lượt là:
= 0 ; =18 ; =35 ; =65 ; =93 ;
= 128
- Vị trí thả vật đầu tiên: ( ; ; ) = ( ; 400; 200)
- Góc lệch của chữ (tính theo góc lượng giác) lần lượt là:
=0; =18; =35; =65; =
93 ; =128
- Quãng đường giới hạn đặt vật trên băng tải: =400 ; = 600
- Thời gian tăng tốc và giảm tốc của robot: =1000 ;: = 1000
Vật chuyển động trên băng tải được đặt trùng với trục Oy. Chiều cao mỗi vật
ℎ = 10 , độ cao khi thả vật tiếp theo cao hơn vật đầu ℎ = 10 . Tốc độ tối đa của mỗi trục =2000 degree/min. Chu kỳ gắp xếp mỗi vật nhỏ hơn 15s. Bỏ qua thời gian xử lý của CPU và giới hạn không gian làm việc của robot.
Dự đoán kết quả của bài toán trên và đưa ra hướng giải quyết để xếp đủ 6 vật tạo thành chữ HCMUTE. Nhận xét tính khả thi và giới hạn của bài toán.
Lưu đồ giải thuật tổng quát:
Hình 4.13 Lưu đồ tổng quát xếp vật xen kẽ
Xếp vật thứ nhất: - Vị trí chữ đầu tiên (chữ M): 25 = 2 =12.5 = 400 = 200
- Tọa độ z của các chữ là cố định, ta tính tọa độ (x; y) của các chữ còn lại dựa trên chữ M đầu tiên để được thứ tự HCMUTE:
( ; ) = (12.5 ;435 ) ( ; ) = (−12.5 ; 417.5 )
( ; ) = (−12.5 ; 382.5 )
( ; ) = (12.5 ;365 )
( ; ) = (−12.5 ; 347.5 )
- Xếp chữ đầu tiên không quan tâm nên có thể dùng phương pháp nội suy theo vector tốc độ nhưng phải đảm bảo quá trình không vượt quá 15s. Vị trí tọa độ các trục tại vị trí gắp vật: = 150 = 500 = 300 = −90 Vị trí tọa độ các trục tại vị trí đặt chữ M: = 12.5 = 400 = 200 = −90 = 073.30080 = 317.98449 = 354.75099 = 000.00000 = 047.26450 = 000.00000 = 088.21010 = 321.32399 = 322.19499 = 000.00000 = 076.48090 = 090.00000
Tốc độ tối thiểu của robot: ≥ ∆ = ∆ = 360.000( / )
Chọn tốc độ chạy cho robot = 400.000( / )
Chọn trục nội suy bất kỳ (số lượng di chuyển của trục được chọn khác 0), giả sử chọn trục 3, ta sẽ điều khiển nội suy 4 trục 1, 2, 3, 5 kết hợp với điều khiển bắt đầu đồng thời với trục 6 để vừa di chuyển xếp chữ, vừa quay đúng chiều của chữ.
50
Chọn thời gian tăng giảm tốc cho trục 6 đều là 800ms, ta có: 2. + 2. ⇒ Xếp vật thứ 2: - Tọa độ vị trí chữ thứ 2 (chữ E): = −12.5 = Vì chữ E nằm trong phạm vi xếp.
-Tính vận tốc của robot theo phương pháp nội suy theo trục có chuyển động lớn nhất. Tính toán tốc độ trục 6 để quay vật đúng hướng và thời gian chuyển động bằng với 4 trục 1, 2, 3, 5 để có thể kết thúc đồng thời.
Vị trí của các trục tại điểm E sau khi đợi:
= −12.5 = 400 = 220
= −90 Thời gian chuyển động của robot:
= 091.78990 = 325.18099 = 321.53099 = 000.00000 = 073.28800 = 072.00000
Tốc độ của robot:
2.
⇒
51
Tốc độ của trục 6:
Chọn thời gian tăng giảm tốc cho trục 6 đều là 800ms, ta có:
- Hạ thấp cơ cấu và đặt vật: Thời gian chuyển động của robot:
Vị trí đặt của chữ E:
Tốc độ robot:
Tính toán tương tự cho các chữ còn lại. Xếp vật thứ 3:
- Tọa độ vị trí chữ thứ 3 (chữ H):
- Tốc độ robot trong 2 giai đoạn: Giai đoạn chạy đến vị trí chữ: Giai đoạn hạ thấp đặt vật: Xếp vật thứ 4:
- Tốc độ robot trong 2 giai đoạn: Giai đoạn chạy đến vị trí chữ:
52
Giai đoạn hạ thấp đặt vật: Xếp vật thứ 5:
- Tọa độ vị trí chữ thứ 5 (chữ T):
- Tốc độ robot trong 2 giai đoạn: Giai đoạn chạy đến vị trí chữ: Giai đoạn hạ thấp đặt vật: Xếp vật thứ 6:
- Tọa độ vị trí chữ thứ 6 (chữ U):
Vì >
trình sẽ tính toán xoay vòng lại như ban đầu. 4.5 Các chức năng được sử dụng trong ISM-1100
Ta sử dụng camera ISM-1100 thông qua phần mềm In-sight Explorer do Cognex sản xuất. In-sight Explorer có 2 giao diện để người dùng có thể tương tác:
- EasyBuilder:
+ Ưu điểm: có giao diện trực quan, dễ tương tác, thân thiên với người dùng.
+ Nhược điểm: không thể can thiệp sâu vào cài đặt thông số trong các chức năng, mức FPS thấp do thành phần trong chức năng được nhà sản xuất tạo sẵn.
Hình 4.15 Giao diện EasyBuilder
- Spreedsheet:
+ Ưu điểm: có thể tác động sâu vào từng thành phần, thông số trong các chức năng, có thể tinh chỉnh để nâng cao mức FPS, tính toán trực tiếp dữ liệu đầu ra của các chức năng, thiết kế theo cell (row, collum) giúp dễ kiểm soát.
+ Nhược điểm: khó sử dụng, cần hiểu sâu các chức năng.
Hình 4.16 Giao diện Spreedsheet
Để tăng cao tính hiệu quả cho hệ thống. Nhóm quyết định nghiên cứu và sử dụng giao diện Spreedsheet giúp việc kiểm soát các chứng năng và mức FPS ở mức tốt nhất.
4.5.1 In-Sight Pattern Match
Chức năng In-Sight Pattern Match là công cụ xác định vị trí vật có nét đặc trưng giống với vật mẫu (trained pattern) đã được train sẵn trước đó. Quá trình xác định vị trí vật bao gồm 2 giai đoạn: training và finding
+ Quá trình training: tạo một khu vực chứa vật cần định vị trí, phần mềm sẽ tự trích xuất nét đặc trưng của vật và tạo thành vật mẫu.
+ Quá trình finding: khi cập nhật ảnh mới, hệ thống sẽ xác định vị trí của vật thể có nét đặc trưng giống nhất so với vât mẫu theo các thông số đã cài đặt.
Chức năng TrainPatMaxPattern
Thu thập các đặc trưng hình học được tạo bởi các điểm ranh giới giữa 2 vùng có giá trị
pixel không bằng nhau.
Do vật được thiết kế gồm phôi hình tròn và các chữ cái được dán lên mặt phôi nên ta sẽ train phần viền bên ngoài của vật.
Các bước cài đặt để train 1 vật: B1. Thu thập ảnh đầu vào
B2. Tạo vùng chứa vật (mặc định là chữ nhật) : do vật là hình tròn nên ta sẽ sử vùng chứa có dạng tròn cụ thể là Annulus ( một chức năng giúp ta tạo ra 2 đường tròn đồng tâm cố định và vùng xác định là hiệu 2 đường tròn)
B3. Chọn phương pháp train vật Có 2 phương pháp:
+ PatMax: độ chính xác cao, thời gian thực thi lâu
+ PatQuick: độ chính xác không cao bằng Patmax, nhưng thời gian thực thi nhanh.
Hình 4.17 Thông số cài đặt TrainPatMaxPattern
Chức năng FindPatMaxPatterns
Xác định vị trí vật có nét đặc trưng giống với vật mẫu đã train và dựa vào các thông số được cài đặt.
- Các thông số được cài đặt:
+ Điểm cố định (fixture): vùng tìm vật sẽ thay đổi vị trí theo sự thay đổi của điểm cố định
+ Vùng tìm vật (find region)
+ Vật mẫu (pattern): vật mẫu đã
được train ở TrainPatMaxPattern Hình 4.19 Thông số cài đặt FindPatmaxPattern
+ Xác định khoảng góc tìm (start/end
angle): vật tìm được phải có góc nằm trong khoãng quy định
4.5.2 Optical Character Recognition max (OCRmax)
In-Sight OCRmax là công cụ đọc và xác thực chữ, chuỗi trong vùng xác định (Region of Interest-ROI), sau khi đã được train font chữ.
Chức năng OCRmax thực hiện thông qua 2 quá trình: phân đoạn ảnh (segmentation), phân lớp ảnh (classification)
Đầu tiên, segmentation sẽ thực hiện và sử dụng kĩ thuật lấy ngưỡng để xác định vùng ảnh chứa chữ. Sau đó chữ sẽ được train và lưu vào một font database. Classification có chức năng “đọc” những chữ đã được xác định ở segmentation và luôn thực hiện trong quá trình chạy OCRmax. Camera phát hiện được chữ chỉ khi so sánh thành công vùng ảnh chưa chữ với font chữ đã lưu trong database.
Các bước Train chữ B1. Tùy chỉnh vùng B2. Gán nhãn (lable) B3. Fix segmentaion
B4. Train font để lưu vào font database
Hình 4.20 Ảnh lấy vùng và fix segmentation
Hình 4.21 Ảnh train chữ thành công và lưu vô database
- Cài đặt thông số cho Segmentation:
+ Tính chất chữ : chọn chữ đen nền trắng hoặc chữ trắng nền đen
+ Độ dài, chiều cao chữ: tùy chọn giá trị min max theo giá trị pixel
Hình 4.22 Thông số cài đặt segmentation
- Cài đặt thông số chính cho OCRmax:
+ điểm cố định (fixture): vùng phát hiện sẽ thay đổi vị trí theo sự thay đổi của điểm cố định
+ Vùng phát hiện vật (region)
+ Chọn chế độ: read/ verify
+ Ngưỡng chấp nhận ( accept thresh): khi phát hiện được chữ sẽ trả về 1 giá trị score 0-100 (giá trị đánh độ chính xác với font chữ đã train)
Hình 4.23 Thông số cài đặt OCRMax
4.5.3 CalibrateGrid
CalibrateGrid là chức năng cho phép chuyển đổi giá trị pixel trên khung ảnh thành giá trí thực tế. Đầu tiên, ảnh thu nhận một lưới hiệu chuẩn. Sau khi thu thâp, CalibrateGrid sẽ tự động xác định tối đa các điểm trên lưới hiệu chuẩn. Khoảng cách giữa các điểm trên lưới hiệu chuẩn sẽ được đặt trước với độ phân giải là 1.0 mm. Cuối cùng, CalibrateGrid sẽ tính toán, hiệu chuẩn giá trị pixel thành giá trị thực với đơn vị là milimeter.
Hình 4.25 Lưới hiệu chuẩn Hình 4.24 Xác định gốc tọa
độ của lưới
Chương 5 Kết quả nghiên cứu và đánh giá
5.1 Kết quả nghiên cứu
Sau khoảng thời gian nghiên cứu, nhóm đã đạt được những kết quả sau:
- Thiết kế, thi công thành công mô hình gồm tủ điện, cánh tay robot 6 trục kết hợp với camera và băng tải.
-Tính toán được phương trình động học cho robot 6 trục cũng như các phương thức dời ảnh về cùng hướng với trục robot.
- Điều khiển robot chạy ổn định với độ chính xác cao với chế độ tự động hoặc
manual.
- Tìm hiểu được các công cụ xử lý ảnh trong camera và ứng dụng chúng để phát hiện được vị trí, góc xoay và chữ ở trên vật.
- Tính toán được các giải thuật cho robot như dí bắt vật chuyển động, sắp xếp vật trên bang tải đang chuyển động.
5.2 Đánh giá
Dựa vào các yêu cầu đề ra, nhóm đánh giá đã hoàn thiện mô hình ở mức tốt, hoàn thành các mục tiêu đã đề ra và phát triển được thêm các thuật toán chuyển động mới cho robot để giúp tăng tính ứng dụng của mô hình vào thực tế.
Chương 6 Kết luận và hướng phát triển
6.1 Kết luận
Sau quá trình tìm hiểu và thi công mô hình, nhóm đã hoàn thành khá tốt những mục tiêu ban đầu đề ra, thuật toán điều khiển cho mô hình đáp ứng nhanh và tương đối ổn định, giải thuật có thể ứng dụng được trong các bài toán gắp xếp sản phẩm bằng các loại mã và nhiều bài toán khác trong công nghiệp. Mặc dù còn gặp một số thiếu sót liên quan đến kết cấu cơ khí nhưng nhóm đã cố gắng hạn chế đến mức thấp nhất.
- Về mặt lý thuyết:
Nhóm đã có sự tìm hiểu và nắm bắt tổng thể về nguyên lý hoạt động và lý thuyết điều khiển vị trí của động cơ servo, tìm hiểu cách thức giao tiếp giữa các thiết bị hiện đại như camera Cognex, module điều khiển chuyển động Q173DSCPU, HMI dòng GOT1000 với PLC Mitsubishi. Trong quá trình xây dựng mô hình cơ khí, nhóm đã học được thêm một số kỹ năng khác như cách đọc bản vẽ cơ khí, cách gia công kim loại.
- Về phần cứng:
+ Phần cứng tương đối chắc chắn, chịu được áp lực khi hoạt động với tần suất cao.
+ Cơ cấu dễ dàng tháo lắp, an toàn với người vận hành.
- Về phần mềm:
+ Chương trình được viết một cách hoàn chỉnh, dễ dàng cho người vận hành.
+ Ứng dụng cơ bản các công cụ xử lý ảnh trong phần mềm In-sight Explorer
+ Hệ thống HMI hiển thị các thông số tốc độ, vị trí giúp theo dõi các trạng thái hoạt động của hệ thống tiện lợi hơn.
6.2 Hướng phát triển
- Nâng cao kết cấu cơ khí để tăng độ chính xác của mô hình.
- Xây dựng mô hình trong môi trường có các điều kiện xung quanh ít thay đổi. Dùng chiếu sáng nhân tạo để tăng độ ổn định cho camera và giảm tỉ lệ sai sót của mô hình.
- Sử dụng thêm camera để tăng độ linh động của mô hình trong việc xác định nhiều vật liên tiếp nhau.
- Cải tiến ngôn ngữ lập trình SFC sang mã G-code để phù hớp với việc điều khiển và lập trình các loại máy móc hiện nay.
Tài liệu tham khảo
Tiếng việt
[1] Giáo trình kĩ thuật robot – Trường Đại học Sư phạm Kỹ thuật TP.HCM _ PGS.TS Nguyễn Trường Thịnh
[2] ĐHUE Giáo Trình Xử Lý Ảnh Số - Ts.Nguyễn Đăng Bình
[1] Cognex Corporation, In-Sight 5000 Series Vision System Installation Manual
[2] I/O Module Type Building Block User's Manual
[3] GT Designer 3 Screen Design Manual
[4] Mitsubishi Electric, Mitsubishi Programmable Logic Controller Training Manual
[5] Mitsubishi Electric (2002), Programable Logic Controller User’s Manual (Melsec System Q)
[6] Mitsubishi Electric, MR-J4-B Servo Amplifier Instruction Manual
[7] Mitsubishi Electric, MR-J4W2-B Servo Amplifier Instruction Manual
[8] Mitsubishi Electric, AC Servo School Textbook - AC Servo Practice Course
[9] Mitsubishi Electric, Mitsubishi Programmable Controller Training Manual Q series basic course (for GX Works2)
[10] Q04UDEHCPU PLC User's Manual (Communication via Built-in Ethernet Port)
[11] Q173D(S) & Q172D(S) Programming Manual (Common)
[12] Q173D(S) & Q172D(S) SV13&22 Programming Manual (Motion SFC)
[13] Q173D(S) & Q172D(S) SV13&22 Programming Manual (Real Mode)
[14] Q173DS & Q172DSCPU School Textbook (Advanced Synchronous Control)
[15] QJ71C24_-_ User's Manual (Hardware)