CHƯƠNG IV: GIAO TIẾP VÀ ĐIỀU KIỂN ROBOT

Một phần của tài liệu BÁO cáo THỰC tập tốt NGHIỆP sử DỤNG xử LÝ ẢNH CHO ỨNG DỤNG BIN PICKING CHO TAY MÁY (Trang 43 - 50)

IV. Kiểm tra động học nghịch.

CHƯƠNG IV: GIAO TIẾP VÀ ĐIỀU KIỂN ROBOT

Sau khi tính toán vị trí tâm và vector pháp tuyến của chi tiết cần gắp, bước tiếp theo cần thực hiện là xác định tọa độ của vật so với gốc tọa độ Robot thông qua calibration . Do vị trí và hướng của vật là hoàn toàn ngẫu nhiên nên không biết trước được tọa độ vật so với gốc tọa độ Robot nên không thể cố định vị trí gắp, vì thế, bước giao tiếp với Robot để truyền tọa độ cho Robot sau khi tính toán là cần thiết.

I. Tổng quan về giao tiếp Robot NACHI MZ07:

Bộ điều khiển được sử dụng cho Robot NACHI MZ07 là CFD Controller. Bộ

điều khiển này được hãng NACHI Robotics hỗ trợ 2 phương thức giao tiếp là sử dụng thư viện OpenNR và Socket Communication.

Thư viện OpenNR:

Là một thư viện mạnh được hãng NACHI Robotics thiết kế dành riêng cho việc

điều khiển Robot bằng máy tính. Thư viện hỗ trợ nhiều tính năng như giám sát/điều khiển tọa độ Robot, giám sát Torque, kết hợp điều khiển/ nhận dữ liệu từ một số ngoại vi bên thứ 3 như

camera, cảm biến, …, thư viện hỗ trợ các ngôn ngữ như C, C++, VB, C#, các câu lệnh rất đơn giản và trực quan. Tuy nhiên, để sử dụng được thư viện này cần có bản quyền cấp phép từ chính hãng và chỉ sử dụng được duy nhất cho một máy tính được chỉ định dựa trên địa chỉ MAC.

Socket Communication:

CFD Controller hỗ trợ thêm một phương thức giao tiếp cho người dùng tùy chỉnh là Socket Communcation. Socket

Communication trên CFD Controller hỗ trợ cả 2 protocol là TCP và UDP. Chức năng chính của Socket Communcation trên CFD

Controller là dùng để giám sát tọa độ, I/O, Torque, … bằng máy tính, nhưng có thể sử dụng giao thức này truyền nhận dữ liệu để điều khiển Robot.

Do giới hạn về bản quyền phần mềm, đề tài sử dụng Socket Communication để truyền dữ liệu điều khiển Robot.

II. Giới thiệu về Socket Communication:

Socket là một dạng giao diện lập trình ứng dụng (API-

Application Programming Interface). Nó được giới thiệu đầu tiên trong ấn bản UNIX - BSD 4.2 dưới dạng các hàm hệ thống theo cú pháp ngôn ngữ C (socket(), bind(), connect(), send()receive(), read(), write(), close(), ...). Ngày nay, Socket được hỗ trợ trong hầu hết các hệ điều hành như MS Windows, Linux và được sử dụng trong nhiều ngôn ngữ lập trình khác nhau: như C, C++, Java, Visual Basic, Visual C++, Visual C#, ... Có hai kiểu socket:

Socket kiểu AF_UNIX chỉ cho phép giao tiếp giữa các quá trình trong cùng một máy tính.

Socket kiểu AF_INET cho phép giao tiếp giữa các quá trình trên những máy tính khác nhau trên mạng.

Các khái niệm cần thiết:

Internet Protocol (IP) và Packet: IP là một giao thức

truyền tải các gói (Packet) giữa các điểm. IP sẽ sử dụng các địa chỉ IP (IP address) để nhận dạng các thiết bị đầu cuối. Packet là gói dữ liệu được truyền tải, gồm 2 phần:

+ Header: chứa các thông tin dùng để điều khiển như phiên bản (IPv4/IPv6), độ dài dữ liệu, kiểu protocol (TCP, UDP, …), địa chỉ đích/nguồn,

checksum, …

+ Body: dữ liệu cần truyền đi (video, voice, string, …).

TCP/UDP: là những quy ước truyền nhận dữ liệu, giao thức

trung gian nằm giữa Application và IP, nằm trên IP:

+ TCP (Transmission Control Protocol): phát hiện các lỗi khi truyền tải dữ liệu của IP. Khi hoàn thành việc nhận các gói dữ liệu nó sẽ sắp xếp lại và chuyển lên lớp Application, nếu có một gói bị hỏng hoặc chưa được truyền, TCP sẽ yêu cầu gửi lại duy nhất gói đó, giúp giảm sự quá tải trong mạng. Trong quá trình truyền tải dữ liệu đòi hỏi sự kết nối liên tục. Do đó, TCP được gọi là giao thức đáng tin cậy (reliable) và hướng kết nối (connectionoriented). Ưu điểm về độ tin cậy của TCP cũng chính là nhược điểm của nó trong tốc độ truyền dữ liệu chậm, không phù hợp truyền tải dữ liệu tức thời như VoIP hay Video stream.

+ UDP (User Datagram Protocol): truyền tải dữ liệu qua mạng thông qua các Datagram.

 khác với TCP, giao thức này không quan tâm việc dữ liệu có truyền đến đích và theo thứ tự hay không. Thay vào đó, tốc độ của nó sẽ nhanh hơn TCP nhiều. Vì thế UDP phù hợp truyền tải dữ liệu không đòi hỏi sự an toàn, chính xác nhưng cần tốc độ cao như Video stream, VoIP, game online data. Do không cần phải duy trì kết nối như TCP nên UDP được gọi là giao thức không hướng kết nối (Connectionless hoặc Stateless)

Hình 4. 1 TCP và UDP

III. Giải thuật:

Các khái niệm cần thiết:

Robot Language Program (RLP): Chương trình/hàm

người dùng định nghĩa cho CFD Controller biên dịch và chạy dựa trên các câu lệnh cung cấp sẵn như di chuyển Robot, kích I/O, kích valve khí nén có sẵn trong Robot, chạy internal PLC, ... Do yêu cầu về giám sát và an toàn, RLP chỉ cho phép chạy tuần tự và chỉ chạy được duy nhất một RLP tại một thời điểm (việc gọi một RLP từ một RLP khác vẫn được xem như là việc chạy tuần tự một chương trình vì luồng điều khiển chỉ theo một hướng) cho đến khi RLP đó kết thúc mới cho phép chạy RLP khác.

User Task: Chương trình/hàm người dùng định nghĩa cho

CFD Controller biên dịch và chạy dựa trên các câu lệnh cung cấp sẵn (các câu lệnh di chuyển Robot, kích I/O, chạy internal PLC bị cấm). Chương trình/hàm này có thể chạy độc lập hoặc song song với RLP, có thể chạy tối đa 4 User Task cùng một thời điểm, nếu có xung đột sẽ ưu tiên User Task có Priority cao hơn. Chức năng chính của các User Task dùng để tạo giao diện giám sát và xử lý lỗi trên Teach Pendant. Các câu lệnh khởi tạo Socket

Communication và truyền nhận dữ liệu chỉ có thể được gọi từ các User Task.

Lựa chọn mô hình giao tiếp:

Mô hình giao tiếp bao gồm 2 điểm (PC và CFD Controller), dữ liệu truyền đi bao

gồm 6 thông số tọa độ có tổng dung lượng tối đa 54byte - rất bé nên tốc độ truyền không quá quan trọng. Ngoài ra, việc điều khiển Robot bằng PC đòi hỏi yêu cầu đặc biệt về sự an toàn, vì thế dữ liệu nhận được cần được kiểm tra đầy đủ trước khi di chuyển Robot. Dựa trên đặc điểm và các yêu cầu trên, mô hình Unicast sử dụng Protocol TCP là phù hợp nhất.

Trong hai lưu đồ trên, User Task có chức năng truyền và nhận dữ liệu từ máy tính. RLP thực hiện lệnh di chuyển Robot khi đã nhận xong dữ liệu. Hai chương trình này sử dụng biến số nguyên toàn cục V100 để làm cờ báo cho nhau.

Một phần của tài liệu BÁO cáo THỰC tập tốt NGHIỆP sử DỤNG xử LÝ ẢNH CHO ỨNG DỤNG BIN PICKING CHO TAY MÁY (Trang 43 - 50)

Tải bản đầy đủ (DOCX)

(61 trang)
w