Y = đỊ5Ị †2Sl12 Là những tọa độ điểm của end-efTector trong khung tọa độ.. Phần xoay của cung cấp hướng của ozxay›Za so với khung tọa độ.. b Mô phỏng Matlab Code function varargout =
Trang 1DAI HOC QUOC GIA THANH PHO HO CHI MINH TRUONG DAI HOC BACH KHOA
BAI TAP CHUONG 3
MON HOC: Ki THUAT ROBOT
LOP L01 - NHOM 09 - HK231
NGAY NOP: 08/10/2023 Giảng viên hướng dẫn: TS Trần Ngọc Huy
Sinh viên thực hiện Mã số sinh viên
Nguyễn Trân Đức Thiện 2010646
Thành phố Hồ Chí Minh — 2023
Trang 23.1, Planar Elbow Manipulator
a) Ly thuyét
Fig 3.6 Two-link planar manipulator The z-axes all point out of the page, and are not shown in the figure
Dựa vào bảng DH đã cung cấp trong slide:
Table 3.1 Link parameters for 2-link planar manipulator
| Link | a; | œ¿ | d; | 6, |
1 đi | 0 |0 |0
2 đa | 0 |0 |0
* variable
Ta có thé thu duoc ma trận T có đạng:
C12 —S]13 0 đ1€] -F đ2C12
0 — | $12 C12 O ays; + a2512
Chú ý rằng hai mục đầu tiên của cột cuối cùng của là các thành phần x và y của gốc trong khung cơ sở; đó là,
Trang 3Y = đỊ5Ị †(2Sl12
Là những tọa độ điểm của end-efTector trong khung tọa độ Phần xoay của cung cấp hướng của ozxay›Za so với khung tọa độ
b) Mô phỏng Matlab
Code
function varargout = robot (varargin)
gui Singleton = 1;
gui _State = struct('gui Name", mfilename,
‘gui_Singleton', gui _Singleton,
"gui ObeningFcn', @robot OpeningFcn, 'gui_OutputFen', @robot_OutputFen,
‘gui_LayoutFen', []l ,
‘gui_Callback', [])z
if nargin && ischar(varargin{l})
gui _State.gui Callback = str2func(varargin{l});
end
if nargout
[varargout{1:nargout}] = gui mainfcn(gui State, varargin{:}); else
gui_mainfcen(gui State, varargin{:});
end ~ ~
function robot_OpeningFcn(hObject, eventdata, handles, varargin) nandles.output = hObject;
% Update handles structure
guidata (hObject, handles);
% UIWAIT makes robot wait for user response (see UIRESUME)
uiwait(handles.figurel);
% - Outputs from this function are returned to the command line function varargout = robot_OutputFen (hObject, eventdata, handles)
% Get default command line output from handles structure
varargout{l} = handles.output;
function thetal Callback (hObject, eventdata, handles)
function thetal CreateFcn(hObject, eventdata, handles)
if ispce && isequal (get (hObject, 'BackgroundColor'),
get (0, 'defaultUicontrolBackgroundColor') )
set (hObject, 'BackgroundColor', 'white');
Trang 4end
function theta2 Callback(hObject, eventdata, handles)
function theta2 CreateFcn(hObject, eventdata, handles)
if ispce && isequal (get (hObject, 'BackgroundColor'),
get (0, 'defaultUicontrolBackgroundColor') )
set (hObject, 'BackgroundColor', 'white');
end
function Pos_X Callback{(hObject, eventdata, handles)
function Pos X CreateFcn (hObject, eventdata, handles)
% hObject “handle to Pos _X (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows
% See ISPC and COMPUTER
if ispce && isequal (get (hObject, 'BackgroundColor'),
get (0, 'defaultUicontrolBackgroundColor') )
set (hObject, 'BackgroundColor', 'white');
end
function Pos _Y Callback(hObject, eventdata, handles)
function Pos_Y CreateFcn (hObject, eventdata, handles)
if ispce && isequal (get (hObject, 'BackgroundColor'),
get (0, 'defaultUicontrolBackgroundColor') )
set (hObject, 'BackgroundColor', 'white');
end
S
% - Executes on button press in btn_forward
function btn_forward_Callback(hObject, eventdata, handles)
syms dl d2 al a2 thetal theta2
Th_1 = str2double(handles.thetal.String) *pi/180;
Th_2 = str2double(handles.theta2.String) *pi/180;
dl = 0;
d2 = 0;
al = 4;
a2 = 2;
S(1) = Link([O dl al O 0));
$s(1).glim=[-pi/2 pi/2];
S(2) = Link([0 d2 a2 0 0]);
$S(2).qlim=[-pi/2 pi/2];
Rob = SerialLink (S, 'name', 'Rob');
Rob.plot([Th 1 Th 2], ‘workspace’, [-10 10 -10 10 0 15]);
T = Rob fkine([Th_1 Th_2]);
lhandles.Pos X.String = num2str(floor(T(1,4)));
Trang 5lhandles.Pos_Y.String = num2str(floor(T(2,4)))z lhandles.Pos_ Z.String = num2str(floor(T(3,4)))z
-_ Giao điện cho việc mô phỏng cánh tay robot
ry robot.fig
File Edit View Layout Tools Help
(=) oc
® Theta1
jor ie
œ3 Ell Theta2
mm E]
Tt
id, (& x axes
_a “oe
Forward
Trang 6
- Kétqua mé phéng
Trang 7
on
=
mã
15
10
ti
ae | a
eo
Trang 8-
| 10
5
10 -10
Trang 9
-10
Trang 10= aiS¡ † 82S12 X=aici + arty
e Nhan xét:
Kết quả mô phỏng so với lý thuyết hoàn toàn trùng khớp
3.2 Three-Link Cylindrical Robot
a) Lý thuyết
'Three-Link Cylindrical Robot là một cánh tay robot 3 bậc tự do RPP voi | truc xoay và
2 trục tịnh tiền
Cylindrical robot
~Z
a ——— _ ——
/ ~Z —
™N _ — Z
— ⁄ ⁄ _ —
⁄
Z
71 `
Workspace cua robot
Ta chọn đặt tọa độ gốc OsXoYøZs ở tâm khớp thứ
nhật như hình vẽ trên Trục z¿ theo chiếu tiên của
Ú,
Trang 11Tại khớp 2, ta chọn z¡ trùng z¿, Ô¡ tại tâm khớp 2, xị và y¡ song song với xọ Và Vo
Tại khớp 3, chọn x2 là chiều tiễn của link 3, vì z2 và z1 cắt nhau nên gốc O2 được đặt tại
giao điểm này Hướng của x2 được chọn song song với xI sao cho 2 bằng 0
Cuối cùng tác tử được chọn ở cuối link 3 như hình
Các thông số DH được thể hiện ở bảng sau:
Liên
1
2
3
Ma tran A tuong ung:
cq 7s, 0 0 A= s, ¢c, 0 0
0 0 1d,
0 0 0 1
1 0 0 0
0 0 1 0 A,=
0 -1 0 4,
0 0 0 1
100 0
010 0 A,=
00 1 d,
000 1
c 0 -s, ng,
7 =A,A,A, — sy 0 | cd,
Trang 12
Trong đó x=T(1,4) = ˆ sấ
y=T(2,4)= S6
d 2
2-1(3,4)=%*
b) Mô phỏng Matlab
- Su dung Robotics Toolbox trong Matlab dé m6 phong robot
- - Thư viện Robotics Toolbox trong MATLAB là một bộ công cụ mạnh mẽ được
sử dụng đề mô hình hóa, mô phỏng và điều khiển các robot manipulator Nó
cung cấp các hàm và lớp đối tượng dé thực hiện tính toán hình học và hình học
động học của robot, giúp giải quyết các vẫn đề liên quan đến robot
- _ Tải ñle RVC1.m để khởi tạo thư viện
- Run file startup rve dé khdi tạo thư viện
- Tao GUI bang lệnh guide
- Tao giao dién nhw hinh:
la /
OGen sha OS >
(x)
Í%] oom
ou
= & |
(fs | =x
- Callback push forward:
Trang 13= forward =
Cut Ctrl+X
Copy Ctrl+C
Paste Ctrl+V
Clear
Duplicate Ctrl+D
Bring to Front Ctrl+F
Send to Back Ctrl+B
A GUIDE Wi removed, apps will continue to run but th:
Editor See
Lập trình phần dưới đây sau lệnh
function forward _Callback(hObject, eventdata, handles)
syms al a2 a3 Theta_1 d2 d3
$link lenghts
al = 3;
a2 = 3;
a3 = 3;
% Doi don vi goc theta tu rad > do
Th_1 = str2double(handles.Theta_1.String) *pi/180;
b2 = str2double (handles.d2.String);
D3 = str2double (handles.d3.String);
%D-H
HO 1 = Link([0, al, 0, 0, Ô]);
HO 1l.qlim =[-pi/2 pi/2];
H1 2 = Link([0, 0, 0, -pi/2, 1, a2]);
Hl 2.qlim = [0 D2];
H2 3 = Link([0, 0, 0, 0, 1, a3]);
H2 3.glim = [0 D3];
Robot = serialLink([HO 1 H1 2 H2 3], 'name',
"RPP Robot");
Robot.plot([Th_1 b2 D3], ‘workspace', [-10 10 -10
10 0 10]);
% Tim toa do X Y Z tuong ung theo ma tran T da cho trong vi du 3.2
Trang 14
handles.Pos_X.String -sin(Th_1)* D3;
handles.Pos_Y.String = cos(Th_1)*D3;
handles.Pos 2.String = al+D2;
- Figure khirun file code thành công
A aemo
Trang 15
c) Kiểm chứng số liệu tính toán:
[xyzJ=[ 54 cd, d+d ] = 5 cD, a, +D, |
Voi al, a2, a3 la cac gia tri offset
Ta cho chạy với giá trị trong bang sau:
Thetal D2 D3 „z) Tính toán
„z) Mô
047 -1L.41 141 5 -3 0
Trang 16Nhận xét:
- _ Giá trị mô phỏng lệch đúng với giá trị thực tế khi tính toán
3.3
a) Thiết kế cơ khí:
É M7: Ap R2017D - ø x
Nast EX 3.381% (Simulink Model)
1 CommandWindzw ®
Ly pe»
b) Sơ đồ khối:
®- Sơ đồ khối tông quát bao gồm phân Input, khối thiét ké tay may va Output:
Trang 17®
File Edit View Display Diagram Simulation Analysis Code Too Help
B-o-a@ 8 @ - Eã - «6 4 @ i> = [j- »› ed > @O-ib-
em
Q
&
BS
Tà ThetaSd ~~ Se mm x
Y
sna z
a
=
© Khdi thiết kế tay máy:
*& Mưti_EX 3_3/5ubSystem1 * - Simulink
File Edit View Display Diagram Simulation Analysis Code Tools Help
8-3-8 eo ¢HO@-3-S@dOd = A- w
‘Sebsystemt
© [Fajen ox.» » yl sorte
Normal + @~- #2 ~
) Chạy mô phông:
Input gồm 3 góc theta mong muốn
Output gom 3 góc theta cac sensor do được và tọa độ điểm cuối
Trang 18File Edit View Display Diagram Simailation Analysis Code Tools Help
Bro-B Oo 0H O-B-@ 4Od © Bem mm - Ora
ROD
® maser
® Hoạt động của mô hình:
#& M7Láp R2017p
older
Name
8 33 soi
[HA Am
Mult_EX 2 Jarcautorove
33 Multbođy.t 3.390:
'RRR Rcoctfi
© Brie
‘Command Window 1> ®
M+! Click and drag to move Mechsrics Explorerz