Danh sách sinh viên nhóm 5 STT Họ và tên MSSV 1 Đặng Việt Hùng 20101642 2 Vũ Văn Thạo 20102199 3 Lê Mạnh Quý 20102062 4 Mai Văn Thái 20102181 5 Vũ Phương Trung 20102388 6 Nguyễn Thành Trung 20102377 7[.]
Trang 1Danh sách sinh viên nhóm 5:
2 Xây dựng phần mềm tính toán động học thuận vị trí Robot Yêu cầu có giao diện nhập dữ liệu, hiển thị kết quả
3 Xây dựng phần mềm tính toán động học đảo vị trí Robot Yêu cầu có giao diện nhập dữ liệu, hiển thị kết quả
4 Xây dựng phần mềm tính toán ma trận Jacoby (trực tiếp và thông qua JH) Các chương trình phần mềm được yêu cầu viết trên Matlab
Trang 2Phần 1: Giới thiệu Robot nhóm nghiên cứu
Hình 1.1 Cấu hình robot θ - r - θ
Trang 3b Cổ tay Robot
Hình 1.2 Cơ cấu cổ tay ba bậc tự do
Cổ tay có nhiệm vụ định hướng chính xác bàn tay robot (cơ cấu tác động cuối) trong không gian làm việc Ví dụ bàn tay robot cần định hướng chính xác
so với chi tiết để gắp chi tiết
Thông thường cổ tay robot có 3 bậc tự do tương ứng với 3 chuyển động có cấu tạo điển hình như hình 1.2: Cổ tay xoay xung quanh trục thanh nối cuối cùng (Roll), cổ tay quay xung quanh trục thẳng đứng tạo chuyển động lắc phải, trái của bàn tay (Pitch), cổ tay quay xung quang trục nằm ngang tạo chuyển động lên xuống của bàn tay (Yaw)
c Bàn tay robot (Cơ cấu tác động cuối)
Bàn tay được gắn lên cổ tay robot đảm bảo cho robot thực hiện các nhiệm
vụ khác nhau trong không gian làm việc Cơ cấu bàn tay có hai dạng khác nhau
Trang 4tùy theo chức năng của robot trong dây chuyền sản xuất: cơ cấu bàn kẹp (gripper) và cơ cấu dụng cụ (tool)
Một số dạng bàn tay robot của Robot Unimate (Mỹ, 1961):
Hình 1.3 Cơ cấu kẹp
a) b)
Hình 1.4 Cơ cấu dụng cụ
a- Mỏ hàn hồ quang được gắn cố định trên cổ tay;
b- Giác hút chân không dùng để hút các con sứ cách điện được gắn cố định trên cổ tay
Trang 52 Các ứng dụng trong công nghiệp:
Một số robot công nghiệp có chứa cấu hình θ – r – θ trong cấu tạo:
a Robot công nghiệp đầu tiên – Unimate
Hình 1.5 Robot Unimate (1961)
Năm 1956, Engelberger xây dựng một công ty sản xuất robot đầu tiên có tên là Unimation (Universal Automation) nhằm sản xuất những robot công nghiệp đầu tiên dựa trên sáng chế của George Devol Năm 1961, họ cho ra đời robot đầu tiên có tên là Unimate Với thành công này, Engelberger được gọi là cha đẻ của robot học
Trên thực tế hầu hết các robot Unimate bán ra là để làm công việc lấy khuôn ra khỏi các máy dập khuôn và để hàn điểm trên ôtô Đây là hai loại công việc mà công nhân không bao giờ muốn làm
Unimate robot cho phép lập trình chuyển động hoàn toàn trên 6 trục và được thiết kế để có thể nâng trọng lượng 500 pound với tốc độ nhanh Sau hơn
20 năm cải tiến, robot này có độ tin cậy cao và rất dễ sử dụng
Năm 1969: Robot Unimate thâm nhập thị trường Nhật Bản, hãng Kawasaki (Nhật Bản) hợp tác sản xuất với hãng Unimation (Mỹ) cho ra đời Robot
Trang 6Kawasaki Unimate 2000, được coi là robot công nghiệp đầu tiên sản xuất tại Nhật Bản
Hình 1.6 Robot Kawasaki Unimate 2000 (1969)
b Stanford arm (Cánh tay Standford)
Hình 1.7 Cánh tay Standford
Trang 7Năm 1969, Victor Scheinman - một sinh viên chế tạo máy làm việc tại phòng thí nghiệm trí thông minh nhân tạo Stanford đã chế tạo ra cách tay
Stanford Thiết kế này đã trở thành chuẩn mực và vẫn đang ảnh hưởng nhiều đến những thiết kế của những cánh tay robot ngày nay Đây là cánh tay robot đầu tiên chạy bằng điện và điều khiển bằng máy tính thành công Robot này có 6 khớp, cho phép giải động học ngược cho robot Robot này có thể đi theo một lộ trình tùy ý và mở rộng khả năng cho các ứng dựng phức tạp hơn như robot lắp ráp và hàn hồ quang
Victor Scheinman sau đó đã bán thiết kế này cho Unimation, hãng này với
sự giúp đỡ của General Motors đã phát triển robot này thành dòng robot công nghiệp PUMA (Programmable Universal Machine for Assembly) được sử dụng rộng rãi trong các dây truyền lắp ráp tự động và rất nhiều các tác vụ công nghiệp khác
Trang 8c Robot phun cát ứng dụng trong ngành đóng tàu
Hình 1.8 Robot phun cát
Trung tâm khoa học an toàn lao động Tổng Liên đoàn lao động Việt Nam
đã phối hợp với Bộ môn Cơ điện tử &CTMĐB Học viện Kỹ thuật quân sự thực hiện đề tài khoa học: Nghiên cứu, chế tạo Robot phun cát di động
Robot phun cát di động là sự kết hợp của tay máy 4 bậc tự do (3) với mô đun di chuyển (1) Tay máy bao gồm 3 khớp quay và 1 khớp tịnh tiến, cho phép đầu phun cát dịch chuyển với tốc độ tối đa, cả khi cánh tay vươn dài hết cỡ Mô đun di chuyển có kết cấu 6 bánh lốp đều được dẫn động, chuyển động kiểu xe tăng, cho phép di chuyển trên nền cát dày đến 40mm Robot được trang bị bộ điều khiển (2), gồm mạch điều khiển và mạch công suất, có kết cấu gọn, dễ bảo dưỡng
Trang 93 Các thông số kĩ thuật cơ bản
Các thông số kỹ thuật của Robot phun cát di động Phiên bản 1.0:
-Tải trọng nâng được: 2 kg
-Vận tốc di chuyển ở các bước công nghệ: 0,5 m/s
-Vận tốc trung bình của đầu vòi phun cát: 0,4 m/s
-Mô đun chấp hành: cánh tay robot có 4 bậc tự do
-Mô đun di chuyển: dẫn động cả 6 bánh lốp
-Robot có thể di chuyển trên nền cát dày đến 40 mm
-Hoạt động trong môi trường cát bụi, tránh nước, nhiệt độ từ 0 đến 500 C Bản vẽ robot phun cát như sau:
Trang 10Hình 1.9 Bản vẽ robot phun cát
Dựa vào bản vẽ, ta xác định được: Các thông số động học cơ bản của robot này:
- Chiều dài thanh nối :
Thứ nhất: a1 = 0 m
Thứ hai: a2 = 0 m
Thứ ba: a3 = 200 mm = 0,2 m
Trang 11- Độ lệch của thanh nối:
d1 = 0 m
d2 = r2 (có r2max = 1218 – 320 = 898 mm = 0,898 m ) d3 = 0 m
- Góc xoắn của thanh nối:
Trang 12Hình 1.10 Xác định các trục tọa độ của Robot θ – r – θ
(với thông số cụ thể là robot phun cát) Lập bảng D – H:
Trang 13Phần 2: Xây dựng phần mềm tính toán
động học thuận vị trí Robot
1 Động học thuận robot tính thủ công
a Bảng D-H
b Các ma trận Ai
𝐴1=[
−𝑠𝜃1 0
𝑐𝜃1 0
𝑐𝜃1 0
𝑠𝜃1 0
0 1
0 0
0 0
0 1
] ; 𝐴2=[ 1 0 0 0 0 0 −1 0 0 1 0 0 0 𝑟2 0 1 ]; 𝐴3=[ −𝑠𝜃3 −𝑐𝜃3 𝑐𝜃3 −𝑠𝜃3 0 −0.2𝑠𝜃3 0 0.2𝑐𝜃3 0 0
0 0
1 0
0 1
] T= 𝐴1𝐴2𝐴3=
[ 𝑠𝜃1𝑠𝜃3 − 𝑐𝜃1𝑐𝜃3 −𝑐𝜃1𝑠𝜃3 − 𝑠𝜃1𝑐𝜃3 −𝑠𝜃1𝑐𝜃3− 𝑐𝜃1𝑠𝜃3 𝑐𝜃1𝑐𝜃3− 𝑠𝜃1𝑠𝜃3 0 −𝑟2(𝑐𝜃1𝑠𝜃3+ 𝑠𝜃1𝑐𝜃3) − 0.2𝑠𝜃3 0 𝑟2(𝑐𝜃1𝑐𝜃3 − 𝑠𝜃1𝑠𝜃3) + 0.2𝑐𝜃3 0 0
0 0
−1 0
0 1
]
Trang 142 Chương trình matlab
functionvarargout = theta_r_theta_DHT1(varargin)
% THETA_R_THETA_DHT1 M-file for theta_r_theta_DHT1.fig
% THETA_R_THETA_DHT1, by itself, creates a new THETA_R_THETA_DHT1 or raises the existing
% function named CALLBACK in THETA_R_THETA_DHT1.M with the given input arguments
% *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one
% instance to run (singleton)"
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help theta_r_theta_DHT1
% Last Modified by GUIDE v2.5 24-May-2014 09:12:47
% Begin initialization code - DO NOT EDIT
Trang 15% End initialization code - DO NOT EDIT
% - Executes just before theta_r_theta_DHT1 is made visible
function theta_r_theta_DHT1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to theta_r_theta_DHT1 (see VARARGIN)
% Choose default command line output for theta_r_theta_DHT1
% - Outputs from this function are returned to the command line
functionvarargout = theta_r_theta_DHT1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function theta1_Callback(hObject, eventdata, handles)
% hObject handle to theta1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of theta1 as text
% str2double(get(hObject,'String')) returns contents of theta1 as a double
% - Executes during object creation, after setting all properties
function theta1_CreateFcn(hObject, eventdata, handles)
% hObject handle to theta1 (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
ifispc&&isequal(get(hObject,'BackgroundColor'),
Trang 16set(hObject,'BackgroundColor','white');
end
function r2_Callback(hObject, eventdata, handles)
% hObject handle to r2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of r2 as text
% str2double(get(hObject,'String')) returns contents of r2 as a double
% - Executes during object creation, after setting all properties
function r2_CreateFcn(hObject, eventdata, handles)
% hObject handle to r2 (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
ifispc&&isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function theta3_Callback(hObject, eventdata, handles)
% hObject handle to theta3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of theta3 as text
% str2double(get(hObject,'String')) returns contents of theta3 as a double
% - Executes during object creation, after setting all properties
function theta3_CreateFcn(hObject, eventdata, handles)
% hObject handle to theta3 (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
ifispc&&isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
Trang 17functionhe_so_Px_Callback(hObject, eventdata, handles)
% hObject handle to he_so_Px (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of he_so_Px as text
% str2double(get(hObject,'String')) returns contents of he_so_Px as
a double
% - Executes during object creation, after setting all properties
functionhe_so_Px_CreateFcn(hObject, eventdata, handles)
% hObject handle to he_so_Px (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
ifispc&&isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionhe_so_Py_Callback(hObject, eventdata, handles)
% hObject handle to he_so_Py (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of he_so_Py as text
% str2double(get(hObject,'String')) returns contents of he_so_Py as
a double
% - Executes during object creation, after setting all properties
functionhe_so_Py_CreateFcn(hObject, eventdata, handles)
% hObject handle to he_so_Py (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
ifispc&&isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% - Executes on button press in pushbutton1
function pushbutton1_Callback(hObject, eventdata, handles)
theta1=str2double(get(handles.theta1,'string'));
Trang 18theta3=str2double(get(handles.theta3,'string'));
Px=(-R2)*(cos(theta1)*sin(theta3)+sin(theta1)*cos(theta3))-0.2*sin(theta3);Py=(R2)*(cos(theta1)*cos(theta3)-sin(theta1)*sin(theta3))+0.2*cos(theta3);set(handles.he_so_Px,'string',Px);
set(handles.he_so_Py,'string',Py);
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Hình 2.1 Giao diện tính toán Động học thuận robot
Trang 19Phần 3: Xây dựng phần mềm tính toán
động học ngược vị trí Robot
1 Động học ngược robot tính thủ công
Cho trước vị trí đầu công tác trong hệ tọa độ cố định, tìm các góc khớp và vị trí các khâu để thỏa mãn các điều kiện ban đầu của bài toán
Trong trường hợp với robot θ – r – θ từ:
function varargout = theta_r_theta2(varargin)
% THETA_R_THETA2 MATLAB code for theta_r_theta2.fig
% THETA_R_THETA2, by itself, creates a new THETA_R_THETA2 or raises the existing
Trang 20% applied to the GUI before theta_r_theta2_OpeningFcn gets called An
% unrecognized property name or invalid value makes property
application
% stop All inputs are passed to theta_r_theta2_OpeningFcn via
varargin
%
% *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one
% instance to run (singleton)"
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help theta_r_theta2
% Last Modified by GUIDE v2.5 25-May-2014 16:59:33
% Begin initialization code - DO NOT EDIT
% End initialization code - DO NOT EDIT
% - Executes just before theta_r_theta2 is made visible
function theta_r_theta2_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to theta_r_theta2 (see VARARGIN)
% Choose default command line output for theta_r_theta2
Trang 21% - Outputs from this function are returned to the command line.
function varargout = theta_r_theta2_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% - Executes on button press in pushbutton1
function pushbutton1_Callback(hObject, eventdata, handles)
set(handles.he_so_theta1,'string',theta1);
set(handles.he_so_theta3,'string',theta3);
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function he_so_x_Callback(hObject, eventdata, handles)
% hObject handle to he_so_x (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of he_so_x as text
% str2double(get(hObject,'String')) returns contents of he_so_x as a double
% - Executes during object creation, after setting all properties
function he_so_x_CreateFcn(hObject, eventdata, handles)
% hObject handle to he_so_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 ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end