- Đăng vào
Robot hai chân - Phân tích động học thuận
Bài viết này giới thiệu các bạn phân tích động học thuận của robot hai chân với tổng cộng 12 bậc tự do và mô phỏng trong Matlab. Thông số động học của robot là của robot UXA-90, đây là một phần nhỏ trong dự án mà mình đang thực hiện.
Phân tích động học thuận
Thông số động học cơ bản của robot được trình bày trong Hình 1
![UXA-Kinematic](/_next/image?url=%2Fstatic%2Fimages%2Frobot-hai-chan-phan-tich-dong-hoc-thuan%2FUXA-Kinematic.png&w=3840&q=75)
Hình 1
Trong phạm vi bài viết này chỉ giải quyết động học cho hai chân, phần thân trên mình xem như cố định, tọa độ đặt lên hai chân được thể hiện trong Hình 2. Tọa độ đặt lên mỗi khớp được đặt theo quy ước Denavit-Hartenberg với các thông số trong Bảng 1. Hệ tọa độ toàn cục (world coordination) là Hệ tọa độ robot đặt tại giữa hông
![](/_next/image?url=%2Fstatic%2Fimages%2Frobot-hai-chan-phan-tich-dong-hoc-thuan%2FUXA-Coordinate.png&w=3840&q=75)
UXA Coordinateion
Bảng 1. Thông số DH của robot hai chân
![](/_next/image?url=%2Fstatic%2Fimages%2Frobot-hai-chan-phan-tich-dong-hoc-thuan%2FDH-Parameter.png&w=3840&q=75)
Trong đó: , , ,
Theo quy ước DH-Modified, ma trận chuyển đổi từ tọa độ sang tọa độ
Phương trình động học thuận của chân trái là (2) và chân phải là (3)
Lập trình bằng Matlab
Để lập trình mô phỏng trong Matlab, chúng ta tạo đối tượng uLINK trong là một mảng kiểu struct gồm các thuộc tính :
- : tên của khớp
- : khối lượng của link
- và là id của link liên quan với link hiện tại, mục đích là để thực hiện các giải thuật đệ quy trong tính toán động học của robot
- : ma trận biến đổi của khâu
- : ma trận xoay được thiết đặt cho việc vẽ mô hình, không liên quan đến bài toán động học
- (upper boundary) và (lower boundary) là giới hạn góc quay của khớp
Khởi tạo một đối tượng uLINK trong Matlab
uLINK = struct('name','BODY','m',3.5,'sister',0,'child',2,'q',0,'DH',[0, 0, 0, 0],'T',eye(4),'rot',rotz(90),'ub',pi/2,'lb',-pi/2);
![](/_next/image?url=%2Fstatic%2Fimages%2Frobot-hai-chan-phan-tich-dong-hoc-thuan%2FID-UXA.png&w=1920&q=75)
Hình 3
Hình 3 thể hiện cấu tên và ID các link của robot
Đoạn code dưới dây thể hiện tác dụng của việc sister và child của từng link trong chương trình mô phỏng. Cấu trúc này cho phép việc lập trình trở nên ngắn gọn hơn.
function FindMother(j)
global uLINK
% recursive structure
if j ~= 0
if j == 1
uLINK(j).mother = 0;
end
if uLINK(j).child ~= 0
uLINK(uLINK(j).child).mother = j;
FindMother(uLINK(j).child);
end
if uLINK(j).sister ~= 0
uLINK(uLINK(j).sister).mother = uLINK(j).mother;
FindMother(uLINK(j).sister);
end
end
Hình 4
Code mô phỏng động học thuận các bạn download ở cuối bài viết. Download xong thì chay file UXA_FK_demo.m. Kết quả mô phỏng
![](/_next/image?url=%2Fstatic%2Fimages%2Frobot-hai-chan-phan-tich-dong-hoc-thuan%2FKet-qua-mo-phong.png&w=750&q=75)
Hình 5. Kết quả mô phỏng động học