1.1. Cài đặt toolbox robotics
Toolbox robotics được tác giả Peter Corke cung cấp miễn phí tại trang chủ: http://www.petercorke.com/RVC
Người sử dụng có thể vào đó và lựa chọn phiên bản phù hợp với phiên bản Matlab của mình, hiện tại phiên bản ổn định mới nhất là bản 9.9 với nhiều cải tiến trong việc mơ phỏng và tính tốn, hỗ trợ một số phần mềm mới.
Sau khi tải về ta sẽ thu được một file có tên robot-9.9.zip, ta giải nén file đó sẽ thu được thư mục tên là ‘rvctool’ và trong thư mục đó có một file startup_rvc.m dùng để tạo đường dẫn đến thư mục đó, ta sẽ chuyển nó vào thư mục gốc của Matlab, dẫn tới thư mục toolbox và lưu tại đó. Tiếp theo ta vào Matlab chuyển tới thư mục toolbox>rvctools, sau đó gõ startup_rvc trên cửa sổ command.
Ngay sau khi gõ xong, Matlab sẽ thơng báo thành cơng. Để kiểm tra ta có thể gõ ‘mdl_puma560’ để kiểm tra. Nếu khơng có báo bất kỳ lỗi gì thì ta đã cài thành cơng toolbox.
Ngồi cách trên ta có thể làm trực tiếp bằng cách kích vào icon ‘Set Path’ trên thanh cơng cụ của Matlab.
Hình 0.2: Cài đường dẫn cho toolbox
Sau đó 1 bảng hiện lên ta chọn phần ‘Add with Subfolders’
Hình 0.3: Lựa chọn thư mục dẫn
Sau khi kích xong ta sẽ dẫn đến vị trí mà ta vừa lưu toolbox robotics và chọn thư mục rvctools. Cuối cùng kích Save để lưu đường dẫn lại, vậy là ta đã cài xong toolbox.
1.2. Ví dụ thiết lập một robot chuỗi bằng toolbox robotics
Việc thiết lập robot tay máy bằng toolbox được sử dụng bằng lớp hàm SerialLink trong toolbox. Ví dụ ta muốn tạo một robot 2 bậc tự do phẳng ta làm như sau:
Bước 1: Thiết lập các thông số D-H của robot
Bảng 0.1: Bảng thông số D-H robot 2 khâu phẳng
Khâu θi di ai αi
1 q1 0 1 0 2 q2 0 1 0 Ta lần lượt gõ các lệnh sau: >> L(1) = Link([0 0 1 0]); >> L(2) = Link([0 0 1 0]); >> L L =
theta=q1, d=0, a=1, alpha=0 (R,stdDH) theta=q2, d=0, a=1, alpha=0 (R,stdDH)
Hàm 'Link' được sử dụng ở trên có tất cả 5 thơng số, 4 thông số đầu tiên lần lượt là các thông số D-H với thứ tự như bảng 0.1, thơng số cuối cùng cho biết khớp đó là khớp trượt hay khớp quay. Mặc định là khớp quay nên ta không cần điền, nếu muốn đổi thành khớp tịnh tiến ta chỉ cần thêm chỉ số 1 vào.
Sau khi thiết lập xong các thông số động học D-H ta tiến hành tạo robot bằng lệnh ‘SerialLink’ với câu lệnh như sau:
two_link = SerialLink(L, 'name', 'two link');
Robot được tạo ra với tên gọi là 'two link', ta chỉ cần gõ:
Hình 0.4: Mơ hình robot phẳng 2 bậc tự do
Giải động học thuận cho robot:
Việc giải động học thuận cho robot hồn tồn có thể thực hiện bằng câu lệnh đơn giản sau: tên_robot.fkine(qn)
Trong đó: tên_robot chính là robot mà ta vừa thiết lập phần bên trên
qn là 1 mảng 1xn, mảng này chứa giá trị các góc khớp tính bằng radian Với ví dụ trên ta có 2 biến mảng góc khớp là: q1 = [0 0] và q2 = [π/4 –π/4].
Kết qủa thu được là ma trận thuần nhất của khâu cuối:
>> two_link.fkine(q1) ans = 1 0 0 2 0 1 0 0 0 0 1 0 1 0 0 1 >> twolink.fkine(q2) ans = 1.0000 0 0 1.7071 0 1.0000 0 0.7071 0 0 1.0000 0 0 0 0 1.0000
Hình 0.5: Hình ảnh tương ứng với q1 và q2 ở ví dụ trên; hình a tương ứng với vị trí
q1 = [0 0]; hình b tương ứng với vị trí q2 = [π/4 –π/4].
Giải động học ngược cho robot:
Robotics toolbox cho phép giải động học ngược tay máy robot đối với robot đủ dẫn động bằng phương pháp giải tích đối với robot có dạng khớp cầu(3 khớp cuối có trục khớp giao nhau) bằng lệnh ‘ikine6s’. Tuy nhiên lệnh này khơng phải lúc nào cũng dùng được.
Vì vậy ta sẽ dùng phương pháp số để giải, ở đây toolbox cung cấp cho ta hàm ‘ikine’phù hợp để giải cho robot dư dẫn động hay đủ dẫn động.
Các thuộc tính chính của hàm ikine:
• 'pinv' sử dụng ma trận tựa nghịch đảo (mặc định) • 'ilimit',L Số lần lặp lớn nhất (mặc định là 1000) • 'tol',T Sai số (mặc định là 1e-6)
• 'alpha',A Đặt số bước(mặc định là 1)
Với trường hợp robot đủ dẫn động việc giải bằng phương pháp này chỉ cần nhập ma trận thuần nhất, điều kiện góc khớp khởi tạo là có thể tìm ra kết quả
Tên_robot.ikine(T,qkt)
Trong đó: T là ma trận thuần nhất được tính từ dựa vào hướng và vị trí điểm cuối. qkt là điều kiện ban đầu của các góc khớp.
Với trường hợp robot dư dẫn động ngồi việc có 2 chỉ số kia ta cần có thêm 1 vector mặt nạ chứa chỉ số của ba phép quay và ba phép tịnh tiến lần lượt là: tx,ty,tz,rx,ry,rz trong hệ tọa độ điểm cuối.
Ở ví dụ trên ta sử dụng có thể giải động học ngược cho robot ứng với ma trận điểm cuối (0,4;0.5;0.6) như sau:
>> T = transl(0.4,0.5,0.6);
>> q = two_link.ikine(T, [0 0], [1 1 0 0 0 0]) q =
-0.3488 2.4898
Với robot 2 bậc tự do phẳng này ta chỉ xét điểm thao tác tịnh tiến theo trục x và trục y nên ta đặt bằng 1, cịn các chỉ số khác ta khơng tính nên đặt bằng 0.