Professional Documents
Culture Documents
Nghiên C U Robot D NG Ngư I
Nghiên C U Robot D NG Ngư I
I. Tìm hiểu và trình bày về một robot dạng người (Xuất xứ, Thông số vật lý,
Tính năng/hạn chế, Minh họa)
II. Mô phỏng dựa trên mô hình robot dạng người Hình 2.19
II.1. Động học thuận:
- Loại bỏ bậc tự do theo nhóm
- Vẽ hình, lập bảng tham số, vẽ sơ đồ cây
- Mô phỏng theo các tham số tiền định cho một số tư thế hợp lý
II.2. Động học ngược:
(Mô hình đầy đủ, tham số tiền định)
- Tạo tư thế mong muốn theo yêu cầu (đưa ra công thức cho tư thế đặc thù nếu có)
- Tính vận tốc khớp theo vận tốc bàn chân
- Tìm 1 tư thế kì dị
1
I. Tìm hiểu và trình bày về một robot dạng người
1. Xuất sứ:
- Robot humanoid HR-OS5 là sản phẩm của công ty Trossen Robotics, một
công ty công nghệ của Hoa Kỳ
2. Thông số vật lý
- Chiều cao: 68.5cm
- Cân nặng: 6kg
- Bậc tự do: 20
- Tốc độ đi bộ: 30 cm/s
- Thời gian hoạt động: 45 phút
- Vật liệu:
+ Bộ khung bên trong được sản xuất từ nhôm máy bay 5052 theo mô-đun
và có thể mở rộng
+ Lớp vỏ bên ngoài: chất liệu nilin in 3D
2
3. Tính năng/ hạn chế:
- Tính năng:
+ Thiết kế với tỷ lệ và cử động giống con người, giúp ích cho nhiệm vụ
nghiên cứu về lĩnh vực robot và tương tác con người – robot
+ Trang bị nhiều cảm biến tiên tiến giúp robot nhận biết và tương tác với
môi trường xung quanh.
+ Có khả năng di chuyển, duy trì thăng bằng và thực hiện chuyển động
hai chân – điều quan trọng cho các nhiệm vụ yêu cầu di động
+ Được trang bị hệ thống thị giác để nhận biết và theo dõi các đối tượng
và người
+ Được trang bị các bộ công cụ cuối khác nhau cho các nhiệm vụ: lấy và
cầm đồ vật, thao tác các dụng cụ
+ Mã nguồn mở, tương thích với ROS
- Hạn chế:
+ Giá thành cao
+ Hạn chế về thời gian hoạt động
+ Cân nặng và kích thước cồng kềnh
4. Minh họa: https://www.youtube.com/embed/ncI5ccnI1oM
5. Tham khảo: https://www.trossenrobotics.com/HR-OS5
II. Mô phỏng dựa trên mô hình robot dạng người Hình 2.19
II.1. Động học thuận:
- Loại bỏ bậc tự do 8:
3
- Vẽ lại hình, lập bảng tham số, vẽ sơ đồ cây:
+ Vẽ lại hình:
+ Sơ đồ cây:
4
+ Lập bảng tham số:
ID Name Sister Child
1 BODY 0 2
2 RLEG_J0 8 3
3 RLEG_J1 0 4
4 RLEG_J2 0 5
5 RLEG_J3 0 6
6 RLEG_J4 0 7
7 RLEG_J5 0 0
8 LLEG_J1 0 9
9 LLEG_J2 0 10
10 LLEG_J3 0 11
11 LLEG_J4 0 12
12 LLEG_J5 0 0
5
Sau khi loại bỏ khớp 8:
clc
close all
clear all % claer work space
global uLINK
ToDeg = 180/pi;
ToRad = pi/180;
UX = [1 0 0]';
UY = [0 1 0]';
UZ = [0 0 1]';
hh=0.6;
6
uLINK = struct('name','BODY' , 'm', 10, 'sister', 0, 'child',
2, 'b',[0 0 0.7]','a',UZ,'q',0);
uLINK(BODY).v = [0 0 0]';
uLINK(BODY).w = [0 0 0]';
for n=1:length(uLINK)
uLINK(n).dq = 0; % joitn speed [rad/s]
end
DrawAllJoints(1);
view(38,14)
axis equal
zlim([-0.4 1.3])
grid on
- Mô phỏng theo các tham số tiền định cho một tư thế hợp lí: Tư thể bước đi
+ qR1 = [0 0 0 10 -10 0]; qL1 = [0 -30 15 0 0]
8
+ Code matlab cho tư thế đã chọn:
% fk_random.m
% 2004 Dec.17 s.kajita AIST
clc
close all
clear all % claer work space
global uLINK % allow access from external functions
SetupBipedRobot_8;
figure
for n=0:4
uLINK(LLEG_J1+n).q = qL1(n+1);
end
clf
DrawAllJoints(1);
view(38,14)
axis equal
zlim([0.1 1.3])
grid on
9
Công thức đưa ra:
L=0.6;
zF=0.4;
xF=sqrt(L^2-(L-zF)^2);
-
% Analytical inverse kinematics with random target
% fk_random.m
% 2004 Dec.17 s.kajita AIST
close all
clear % clear work space
global uLINK % allow access from external functions
uLINK(LLEG_J2).q = -10.0*ToRad;
uLINK(LLEG_J3).q = 20.0*ToRad;
uLINK(LLEG_J4).q = -10.0*ToRad;
rand('state',0);
L=0.6;
zF=0.4;
xF=sqrt(L^2-(L-zF)^2);
figure
% while 1
uLINK(BODY).p = [0.0, 0.0, 0.6]';
uLINK(BODY).R = eye(3);
for n=0:5
uLINK(RLEG_J0+n).q = qR2(n+1);
uLINK(LLEG_J0+n).q = qL2(n+1);
end
ForwardKinematics(1);
clf
DrawAllJoints(1);
view(38,10)
axis equal
zlim([-0.2 1.2])
grid on
close all
clear % clear work space
global uLINK % allow access from external functions
11
%%%%%%%%%%% set non singular posture %%%%%%%%%%%%
uLINK(RLEG_J2).q = -10.0*ToRad;
uLINK(RLEG_J3).q = 20.0*ToRad;
uLINK(RLEG_J4).q = -10.0*ToRad;
uLINK(LLEG_J2).q = -10.0*ToRad;
uLINK(LLEG_J3).q = 20.0*ToRad;
uLINK(LLEG_J4).q = -10.0*ToRad;
rand('state',0);
L=0.6;
zF=0.4;
xF=sqrt(L^2-(L-zF)^2);
figure
% while 1
uLINK(BODY).p = [0.0, 0.0, 0.6]';
uLINK(BODY).R = eye(3);
for n=0:5
uLINK(RLEG_J0+n).q = qR2(n+1);
uLINK(LLEG_J0+n).q = qL2(n+1);
12
end
ForwardKinematics(1);
clf
DrawAllJoints(1);
view(38,10)
axis equal
zlim([-0.2 1.2])
grid on
- Tính vận tốc khớp dq dựa khi biết vận tốc bàn chân v
- Code Matlab cho mô hình đầy đủ
13
% Analytical inverse kinematics with random target
% fk_random.m
% 2004 Dec.17 s.kajita AIST
close all
clear % clear work space
global uLINK % allow access from external functions
idx = FindRoute(LLEG_J5);
%SetJointAngles (idx, [0 0 -pi/3 pi/1.5 -pi/3 0])
SetJointAngles (idx, [0 0 1 0 9 1])
J = CalcJacobian (idx);
dq = J\ [0 0 0.2 0 0 0]'
inv (J)
clf
DrawAllJoints(1);
view(38,10)
axis equal
zlim([-0.2 1.2])
grid on
- Khi chạy code với trường hợp không kỳ dị v = [0 0 -pi/3 pi/1.5 -pi/3 0] ta
được hình dáng robot với vận tốc khớp dq là
14
dq=[0 0 -0.384900179459751 0.769800358919501 -0.384900179459751 -
0.384900179459751 0]T
- Ta chọn 1 tư thế kì dị khác với hình 2.33 với SetJointAngles [0 0 1 0 9 1]
Ta được hình dáng sau:
15
16