Tải bản đầy đủ (.doc) (47 trang)

Đồ án cánh tay robot puma

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.74 MB, 47 trang )

Lời nói đầu
Trong sự nghiệp cơng nghiệp hóa, hiện đại hóa đất nước vấn đề tự động hóa
sản xuất có vai trò đặc biệt quan trọng .
Nhằm nâng cao năng suất dây chuyền công nghệ, nâng cao chất lượng và
khả năng cạnh tranh của sản phẩm, cải thiện điều kiện lao động , nâng cao năng
suất lao động…đặt ra là hệ thống sản xuất phải có tính linh hoạt cao. Robot công
nghiệp là một bộ phận quan trọng để tạo ra những hệ thống tự động đó.
Robot cơng nghiệp đã có mặt trong sản xuất từ nhiều năm trước, ngày nay
robot công nghiệp được dùng ở nhiều lĩnh vực sản xuất. đó là xuất phát từ những
ưu điểm mà robot đó đã được chọn và đúc kêt lại trong quá trình sản xuất,robot có
những tính năng mà con người khơng thể có được, khả năng làm việc ổn định,làm
việc trong mơi trường độc hại… Do đó việc đầu tư nghiên cứu, chế tạo ra ngững
loại robot phục vụ cho công cuộc tự động hóa sản xuất là rất cần thiết cho hiện tại
và trong tương lai.
Môn học ĐỒ ÁN CƠ ĐIỆN TỬ giúp chúng em bước đầu làm quen,tìm hiểu,
học cách chế tạo và rất có ích cho chúng em sau này.
Trong q trình học mơn ĐỒ ÁN CƠ ĐIỆN TỬ chúng em cịn nhiều thiếu
sót mong các thầy chỉ bảo thêm cho chúng em.
Chân thành cảm ơn
Nhóm sinh viên :
Nguyễn Đình Quảng
Nguyễn Đăng Thi
Nguyễn Văn Thảo
Ngơ Văn Thắng

1


I-Xây dựng sơ đồ động học và các ma trận biểu diễn cấu trúc
1-Sơ đồ động học của PUMA.


2- Các ma trận chuyển biểu diễn cấu trúc của PUMA.

Trong đó: để tiện theo dõi ta ký hiệu
Cx =cos(x): x là các biến khớp
Sx= sin(x)
II-Tính Tốn Động Học Thuận:

2


Bảng thông số DH:
khâu
1

-90

0

0

2

0

a2

d2

3


90

a3

0

4

-90

0

d4

5

90

0

0

6

0

0

d6


3


các hệ số trong ma trận:

các hệ số trong

là:

4


các hệ số trong

là:

5


III. PHƯƠNG TRÌNH ĐỘNG HỌC NGƯỢC ROBOT PUMA
Bài tốn động học ngược là rất khó, đối với tay máy 6 khớp có ba khớp cuối
đồng quy tại một điểm, ta có thể tách bài tốn động học ngược thành hai bài tốn
đơn giản hơn là động học ngược vị trí và động học ngược hướng
+ Tìm vị trí giao điểm các trục cổ tay (tâm cổ tay)
+ Tìm hướng của cổ tay.
Ta biểu diễn thành hai hệ phương trình như sau:
Trong đó và là hướng và vị trí của dụng cụ, được biểu diễn đối với hệ tọa độ cố
định bên ngồi (world coordinate system). Ta phải giải bài tốn trên đối với các ẩn
.
Cơ cấu 6 khớp quay có 3 khớp cuối giao nhau có phương pháp giải như sau:

Vị trí của tâm cổ tay,PC xác định qua vị trí cơng cụ (The given tool position)
và phương của Tool pointing (

).Do đó vị trí của tâm cổ tay phụ thuộc vào 3 biến

khớp đầu tiên.
The relative wrist oriention
Các biến khớp
orientation)

xác định từ ma trận định hướng cổ tay (The arm

và ma trận định hướng công cụ (The given tool orientation)

.

+ Ma trân trạng thái (The given tool pose)
+ Solve porions của động học ngược để tìm ra
+ Định vị trí của tâm cổ tay



.

có tọa độ cho trước như sau:

6


trong đó


và là hướng và vị trí của dụng cụ, được biểu

diễn đối với hệ tọa độ cố định bên ngoài (world coordinate system).
as

(cột cuối cùng của
+ Thiết lập

) – (tool offset length)*

= cột cuối cùng của

Tính



)

để tìm ra các biến khớp

sau khi đã thay giá trị của các biến khớp vào

+So sánh

vào

để rút ra

Tọa độ của điểm C trong hệ tọa độ

6

(3 cột của ma trận

:

rC =

Tọa độ của C trong hệ tọa độ

rC =

.6rE =

(*)

Ma trận chuyển từ hệ tọa độ 0

0

:

3:

R3= A1.A2.A3 =

Tọa độ của C trong

:


7


rC =0R3.4rC =

(**)

Đối chiếu (*) và (**) ta được hệ 3 phương trình 3 ẩn :

Nhân (2) với cos

trừ đi (1) nhân với sin

:

Nhân (2) với sin

cộng với (1) nhân vói cos

và kết hợp với (3) ta có hệ

Bình phương 2 vế cộng lại ta được:

Khai triển hệ phương trình liên kết ta được:

8


Ta có


=

=

=

Mặt khác:
=

Chỉ cần quan tâm tới phần định hướng tức là ma trận [3,3].
So sánh các phần tử của 2 ma trận [3,3] :
cos

Nếu sin

9


Vậy bài toán động học ngược cho ta kết quả như sau:

10


V.THIẾT KẾ MƠ HÌNH ROBOT PUMA DÙNG SOLIDWORK.
1. Nhiệm vụ của robot.
Gắp một vật nặng khối lượng dưới 1Kg di chuyển trong miền làm việc
2. Phân tích và lựa chọn kết cấu.
2.1 Lựa chọn ổ bi, ổ lăn cho cơ cấu.
- Do tính chất làm việc chịu tải tương đối nhẹ (tải trọng có khối lượng dưới 1kg)
của Robot nên ta sẽ chọn ổ lăn cho các khâu như sau:

+ Khâu 1: Dùng Ổ bi đỡ một dãy có kí hiệu 305.
+ Khâu 2: Dùng Ổ bi đỡ một dãy có kí hiệu 1000902.
+ Khâu 3: Dùng Ổ bi đỡ một dãy có kí hiệu 1000901.
+ Khâu 4: Dùng Ổ bi đỡ một dãy có kí hiệu 1000901.
+ Khâu 5: Dùng Ổ bi đỡ một dãy có kí hiệu 1000099.
2.2 Lựa chọn động cơ cho Robot.
Do yêu cầu điều khiển chính xác vị trí điểm tác động cuối của robot, ta chọn
động cơ cho các khớp quay là loại động cơ Servo.

11


Đây là loại động cơ cho phép ta điều khiển chính xác cả tốc độ và vị trí của
rotor. Động cơ tích hợp một mạch encoder, phản hồi trạng thái vị trí của trục ra,
dựa vào đó ta giảm thiểu được sai số do tải trọng bên ngoài thay đổi…

Dựa vào yêu cầu làm việc của robot, ta chọn được động cơ cho các
khớp như sau:
Khớp

Số hiệu DC

Khớp

Số hiệu

1

T720-012


4

T406-012

2

T511-012

5

T404-012

3

T506-012

6

T402-011

12


Kích thước và thơng số kỹ thuật các động cơ như sau:

13


14



3. Thiết kế mơ hình dùng phần mềm SolidWorks
Bản vẽ chi tiết phần thiết kế (2D và 3D) của các khâu của robot được kèm
theo ở phần phụ lục. Say đây là một số hình ảnh mơ hình 3D của robot.

15


VI. MÔ PHỎNG ĐỘNG HỌC ROBOT PUMA DÙNG VISUAL C++ VÀ OPENGL

Giao diện phần mềm mô phỏng được xây dựng như sau:

16


Phần mềm được xây dựng bằng visual C++. Phần đồ họa được lập trình
bằng các thư viện OpenGL. Giao diện chương trình gồm hai phần chính. Khung
bên phải chứa các nút lệnh điều khiển, và chọn các nhiệm vụ của Robot cần thực
hiện. Khung bên phải dùng để thể hiện mơ hình của robot được dùng để mơ phỏng.
Mơ hình robot được vẽ bằng phần mềm SolidWork và xuất ra file cad 3D dưới
dạng STL sau đó dùng Visual C++ đọc các file này vào chương trình. Sau đó dùng
các hàm OpenGL để vẽ các mơ hình này.
Phần động học thuận và ngược trong chương trình được tính trong các hàm
thành viên SolveInverseKinematic và SolveForwardKinematic của lớp
CSerialRobot.
Các hàm này như sau:
void CSerialRobot::SolveInverseKinematic(const CFrame& end ,float* jointVar)
{
CVector nn =end.GetXDir ().GetDirection ();


17


CVector ss=end.GetYDir ().GetDirection ();
CVector aa=end.GetZDir ().GetDirection ();
//CVector aa =CrossProduct (nn,ss);
CPoint3D pp =end.GetOrigin ();
float nx=nn.GetX ();
float ny=nn.GetY ();
float nz=nn.GetZ ();
float sx =ss.GetX ();
float sy =ss.GetY ();
float sz =ss.GetZ ();
float ax =aa.GetX ();
float ay =aa.GetY ();
float az =aa.GetZ ();
float px =pp.GetX ();
float py=pp.GetY ();
float pz=pp.GetZ ();
//joint vars are contained here
float tt1,tt2,tt3,tt4,tt5,tt6;
//link and joint configue
float a2=ROBOT_A2;
float a3=ROBOT_A3;
float d1 =ROBOT_D1;
float d2=ROBOT_D2;
float d4=ROBOT_D4;
float d6=ROBOT_D6;
// calculate theta 1


18


float m =px -ax*d6;
float n =py -ay*d6;
tt1= acosf(d2/sqrt(m*m+n*n)) -atan2(m,n);
float s1=sinf(tt1);
float c1=cosf(tt1);
float K1 = n*s1 + m * c1;
float K2 = pz -az*d6 -d1;
//calulate theta 3
float p=K1*K1+K2*K2 -(a3*a3+a2*a2 +d4*d4);
float q=2*a2*sqrt(d4*d4+a3*a3);
tt3= acosf(p/q) + atan2(d4,a3);
//check the criteria
float c3=cosf(tt3);
float s3=sinf(tt3);
//calculate theta 2
p=a3*c3 +a2 +s3 *d4;
q=d4*c3-a3*s3;
float delta =p*p +q*q;
float deltac =p*K1 +q*K2;
float deltas =q*K1 - p*K2;
tt2= atan2(deltas,deltac);
float s2=sinf(tt2);
float c2=cosf(tt2);
//calculate theta 5;

19



float s23 =sinf(tt2+tt3);
float c23 =cosf(tt2+tt3);
m=c1*ax+s1*ay;
tt5 = acosf(s23*m- c23*az);
float c5= cosf(tt5);
float s5= sinf(tt5);
//calculate theta4
m=c1 *ax +s1*ay;
n=-s1*ax +c1*ay;
if(tt5!=0)
{
tt4 =atan2(n/s5, (c23*m - s23*az)/s5);
}
else
{
tt4=0;
}
//calculate theta 6
tt6 =atan2((s23*(c1*sx +s1*sy)+c23*sz)/s5,
-(s23*(c1*nx +s1*ny)+c23*nz)/s5);
tt1=r2d(tt1);
tt2 =r2d(tt2);
tt3 =r2d(tt3);
tt4 =r2d(tt4);
tt5 =r2d(tt5);

20




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×