Thế kỷ 21 là thế kỷ của khoa học kỹ thuật hiện đại và tiên tiến, nó đi sâu vào toàn bộ đời sống của con ngƣời, giúp con ngƣời trong mọi lĩnh vực, nó thay đổi cơ bắp con ngƣời từ những công việc đơn giản đến phức tạp, trong đó có ngành Cơ Điện Tử. Sự đi lên của ngành cơ khí gắn liền với sự ứng dụng công nghệ mới. Để đáp ứng nhu cầu ngày càng cao của xã hội và tiếp cận nền khoa học kỹ thuật trong tƣơng lai, thì con ngƣời đã tạo ra robot. Đó là sự thay đổi lực lƣợng sản xuất trong mọi ngành nghề bằng việc thay đổi sức lao động của ngƣời bằng máy móc, nhằm đảm bảo tăng năng suất lao động, sản lƣợng cũng nhƣ chất lƣợng sản phẩm. Do đó việc sử dụng các tay máy hay còn gọi là robot công nghiệp vào trong sản xuất đang đƣợc ƣa chuộng vì chúng đáp ứng đƣợc yêu cầu trên. Nhƣ chúng ta đã biết, robot công nghiệp có rất nhiều ƣu điểm đặc biệt là chất lƣợng và độ chính xác, ngoài ra còn kể đến hiệu quả và kinh tế cao, có thể làm việc trong môi trƣờng độc hại mà con ngƣời không làm việc đƣợc, các công việc yêu cầu cẩn thận không đƣợc nhầm lẫn, thao tác nhẹ nhàng tinh tế đòi hỏi trình độ của thợ bậc cao, và đặc biệt là robot không bị căng thẳng nhƣ con ngƣời nên có thể làm việc liên tục không ngừng nghỉ. Việc tìm hiểu nghiên cứu mô phỏng robot trong khuôn khổ môn học Lập trình mô phỏng các hệ cơ điện tử sẽ là cơ sở để chúng em tính toán, thiết kế robot trong công nghiệp phục vụ sản xuất. Cụ thể ở đây chúng em chọn đề tài mô phỏng hoạt động của Robot viết chữ.Em xin cảm ơn thầy Đỗ Đăng Khoa đã hƣớng dẫn chúng em để chúng em có thể hoàn thành project này một cách tốt nhất.
Trang 1LỜI NÓI ĐẦU Thế kỷ 21 là thế kỷ của khoa học kỹ thuật hiện đại và tiên tiến, nó đi sâu vào toàn
bộ đời sống của con người, giúp con người trong mọi lĩnh vực, nó thay đổi cơ bắp con người từ những công việc đơn giản đến phức tạp, trong đó có ngành Cơ Điện Tử
Sự đi lên của ngành cơ khí gắn liền với sự ứng dụng công nghệ mới Để đáp ứng nhu cầu ngày càng cao của xã hội và tiếp cận nền khoa học kỹ thuật trong tương lai, thì con người đã tạo ra robot Đó là sự thay đổi lực lượng sản xuất trong mọi ngành nghề bằng việc thay đổi sức lao động của người bằng máy móc, nhằm đảm bảo tăng năng suất lao động, sản lượng cũng như chất lượng sản phẩm Do đó việc sử dụng các tay máy hay còn gọi là robot công nghiệp vào trong sản xuất đang được ưa chuộng vì chúng đáp ứng được yêu cầu trên Như chúng ta đã biết, robot công nghiệp có rất nhiều ưu điểm đặc biệt là chất lượng và độ chính xác, ngoài ra còn kể đến hiệu quả và kinh tế cao, có thể làm việc trong môi trường độc hại mà con người không làm việc được, các công việc yêu cầu cẩn thận không được nhầm lẫn, thao tác nhẹ nhàng tinh tế đòi hỏi trình độ của thợ bậc cao, và đặc biệt là robot không bị căng thẳng như con người nên có thể làm việc liên tục không ngừng nghỉ
Việc tìm hiểu nghiên cứu mô phỏng robot trong khuôn khổ môn học Lập trình mô phỏng các hệ cơ điện tử sẽ là cơ sở để chúng em tính toán, thiết kế robot trong công
nghiệp phục vụ sản xuất Cụ thể ở đây chúng em chọn đề tài mô phỏng hoạt động của Robot viết chữ.Em xin cảm ơn thầy Đỗ Đăng Khoa đã hướng dẫn chúng em để chúng
em có thể hoàn thành project này một cách tốt nhất
Hà Nội, ngày 10 tháng 6 năm 2017
Nhóm sinh viên thực hiện
1 Nguyễn Đức Tiến
2 Phạm Ngoc Tùng
3 Vũ Nhật Hiếu
Trang 2BẢNG PHÂN CÔNG NHIỆM VỤ VÀ ĐÁNH GIÁ CÁC THÀNH VIÊN
Phân công nhiệm vụ cho báo cáo trong quá trình học:
STT Họ và tên Phân công nhiệm vụ
1 Vũ Nhật Hiếu Tìm hiểu cách tạo file *STL và lớp CElement
2 Nguyễn Đức Tiến Tìm hiểu lớp CRobot và làm slide báo cáo
3 Phạm Ngọc Tùng Tìm hiểu cách mở file *STL vào OpenGL và lớp
CModel
Phân công nhiệm vụ cho project cuối kỳ:
STT Họ tên Phân công nhiệm vụ Đánh giá của giáo viên
1 Vũ Nhật Hiếu Giải bài toán động học
ngược, động học thuận, thiết kế quỹ đạo
2 Nguyễn Đức Tiến Xử lí file Solid xuất bản vẽ,
làm báo cáo,slide,thuyết trình
3 Phạm Ngọc Tùng Code chính, thiết kế đồ họa
và môi trường mô phỏng OpenGL
Trang 3
Mục lục
LỜI NÓI ĐẦU 1
CHƯƠNG 1: TỔNG QUAN 5
1.1 Giới thiệu chung 5
1.2 Giới thiệu về dự án 6
1.3 Yêu cầu bài toán 6
1.4 Ứng dụng của robot 6
CHƯƠNG 2: MÔ HÌNH HOÁ ROBOT 3DOF 8
2.1 Phân tích mô hình robot 8
2.2 Bản vẽ chi tiết và các tính chất cơ học khác của các khâu Robot 8
2.3 Mô hình ROBOT 13
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ ROBOT 14
3.1 Mô hình Robot đơn giản 14
3.2 Bản D-H và các ma trận biến đổi toạ độ thuần nhất 14
3.3 Bài toán động học thuận 16
3.3.1 Xây dựng quy luật chuyển động thao tác của robot theo mục đích ứng dụng 17 3.4 Bài toán động học ngược 18
3.5 Thiết kế quỹ đạo 19
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG 22
4.1 Giới thiệu về môi trường mô phỏng OPENGL 22
4.2 Xây dựng bài toán mô phỏng 22
Trang 44.4 Nhúng file *.STL vào môi trường OPENGL 37
4.4 Các lớp có trong chương trình mô phỏng 42
4.5 Thiết kế Dialog 44
KẾT LUẬN 49
TÀI LIỆU THAM KHẢO 50
Trang 5CHƯƠNG 1: TỔNG QUAN
1.1 Giới thiệu chung
Ngày nay, robot công nghiệp có vai trò rất quan trọng và được ứng dụng rộng rãi trong quá trình sản xuất của nền công nghiệp hiện đại Để chế tạo ra một mô hình robot và đem ra phục vụ sản xuất phải trải qua rất nhiều giai đoạn như: Tìm hiểu về các loại robot và các đặc tính hoạt động của nó, tính toán một cách chính xác các khâu của các cơ cấu, các phương trình hoạt động và thiết kế các mô hình 3D sao cho tối ưu
và hiệu quả nhất Một mô hình robot hoạt động trơn tru và đáp ứng được các yêu cầu
kỹ thuật đề ra đòi hỏi việc chế tạo là hết sức tỉ mỉ và chi tiết từng bước một Trong một
mô hình robot bao gồm rất nhiều phần như Cơ khí để chế tạo ra các chi tiết, điện tử để điều khiển hoạt động và tin học để lập trình cho các cơ cấu hoạt động theo các quỹ đạo
và yêu cầu kỹ thuật đề ra Một phần cũng rất quan trọng mà mô hình nào cũng phải thực hiện đó là mô phỏng quá trình hoạt động của nó
Sau khi hoàn thiện mô hình robot thì mô phỏng chính là kiểm tra trên máy tính xem mô hình có hoạt động tốt hay không, có thực hiện được các yêu cầu đề ra hay không, sau đó đưa ra vào các thông số đã tính toán, giả lập quá trình hoạt động của đối tượng một cách trực quan nhất Trên cơ sở đó có thể kiểm nghiệm được quá trình hoạt động của cơ cấu có đúng theo kết quả tính toán và thiết kế hay không Mặt khác cũng
có thể thay đổi một cách linh hoạt các số liệu, các thông số ban đầu để tìm ra lời giải cho bài toán tối ưu cơ cấu Mô phỏng còn đóng vai trò rất lớn trong việc giảng dạy, báo cáo, truyền đạt thông tin về sản phẩm cho mọi người Giúp cho nhà thiết kế có cái nhìn tổng quan về sản phẩm để từ đó có thể cải tiến sản phẩm, hoặc đưa ra quá trình sản xuất đơn giản, tối ưu cho sản phẩm Vì vậy, có thể thấy mô phỏng là khâu rất quan trọng, không thể thiếu trong quá trình sản xuất robot công nghiệp
Trong lĩnh vực cơ khí có rất nhiều phần mềm nổi tiếng như: AutoCAD, Inventor, SolidWorks, Catia Dùng để tính toán, thiết kế và mô phỏng , kiểm tra các điều kiện làm việc của các chi tiết Tuy nhiên, các phần mềm này còn bị hạn chế khi cần mô phỏng kết cấu hoạt động theo một quy trình tính toán thiết kế cụ thể ví dụ như hoạt
Trang 6động của robot theo 1 quỹ đạo cụ thể Khi đó, để có thể chủ động , linh hoạt trong quá trình tính toán và thiết kế thì đơn giản và tiện lợi là lập trình mô phỏng, qua đó ta có thể xây dựng và đáp ứng đúng với nội dung và mục đích thiết kế
1.2 Giới thiệu về dự án
Để lập trình mô phỏng được hoạt động của robot thì bọn em đã sử dụng Visual C++ vào thư viện đồ họa OpenGL để xấy dựng được bài toán mô phỏng phù hợp với yêu cầu Cụ thể ở đây chúng em đã lựa chọn robot viết chữ có 3 bậc tự do, có các ưu điểm như sau:
- Tiết kiệm diện tích khâu đế
- Dễ dàng thực hiện với đối tượng nằm trong mặt phẳng nằm ngang
- Kết câu đơn giản nhưng vẫn đảm bảo tính linh hoạt
1.3 Yêu cầu bài toán
Yêu cầu vị trí: Robot thao tác trong không gian đúng với quỹ đạo thao tác đặt ra
Yêu cầu về hướng:Hướng của đầu hàn tạo với mặt của chi tiết những góc theo yêu cầu
Với cấu trúc robot có 4 bậc tự do trở nên thao tác linh hoạt, tuy nhiên việc tính toán sẽ trở lên khó khăn, phức tạp hơn Do đó nếu chọn các cấu trúc robot này sẽ làm phức tạp quá trình tính toán, gây tốn kém
Để đủ đảm bảo yêu cầu bài toán đặt ra ta chọn cơ cấu robot có 3 bậc tự dođể tiến hành quá trình tính toán và thiết kế
Phần mềm sử dụng là Visual Studio và môi trường đồ hoạ OpenGL Yêu cầu đặt ra phải mô phỏng chính xác chuyển động của Robot thông qua việc giải quyết các bài toán động học thuận và động học ngược, ứng dụng các kiến thức đã được học trong môn học Robotics và Lập trình mô phỏng Robot và các hệ trong cơ điện tử
Trang 7cũng có thể thay thế cho con người trong các công việc độc hại, nguy hiểm hay môi trường khắc nghiệt Đặc biệt robot có thể làm việc với độ chính xác cao
Trang 8
CHƯƠNG 2: MÔ HÌNH HOÁ ROBOT 3DOF
2.1 Phân tích mô hình robot
Số bậc tự do cần thiết:
- Để đảm bảo robot có khả năng đưa đầu chạm tới mọi vị trí trong không gian làm việc thì robot cần từ 3 bậc tự do trở lên
- Các khâu có trong mô hình robot:
Khâu Chuyển động Chức năng
0 Cố định Dùng để gá đặt ,định vị robot và liên kết với khâu 1
1 Quay Liên kết với khâu 0 và khâu 2 , tạo ra chuyển động
quay cho khâu 2
2 Quay Liên kết với khâu 1 và khâu 2 ,tạo ra chuyển động
tịnh tiến cho khâu 3
3 Tịnh Tiến Liên kết với khâu 2, và giúp xác định điểm đầu bút
2.2 Bản vẽ chi tiết và các tính chất cơ học khác của các khâu Robot
2.2.2 Bản vẽ chi tiết các khâu
- Khâu 0:
Trang 9- Khâu 1:
- Khâu 2 :
Trang 10- Khâu 3:
2.2.2 Tính chất cơ học của các khâu robot
Chọn vật liệu, khối lượng và momen của từng khâu:
- Chọn vật liệu các khâu là thép cacbon thường (plain carbon steel)
Tính chất cơ học các khâu:
Trang 11- Khâu 0:
Hình 1: Tính chất cơ học của khâu 0
- Khâu 1:
Trang 132.3 Mô hình ROBOT
Trang 14CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ ROBOT 3.1 Mô hình Robot đơn giản
Trang 15Các đặc trƣng kỹ thuật:
1( )1
( )
a l m
2( )2
( )
a l m
1
( )
d m
a a A
a a A
Trang 16E E E
Trang 173 1 1 2 2 1 2 1 2 3 1 1 1 2 1 1 2 2 1 2
3 1 1 2 2 1 2 1 2 3 1 1 1 2 1 1 2 2 1 2
3 2 2 2
sin sin sin cos sin ( cos cos cos sin ) cos sin
cos sin cos cos cos ( sin cos sin sin ) sin sin
sinsin
x y z
Trang 18- Không gian làm việc của robot
Giả sử cho giới hạn chuyển động của các khâu tại các khớp:
0 0 1
0 0 2
3
180 180
90 900,1 0.1
Trang 193.5 Thiết kế quỹ đạo
Sau khi đã có không gian làm việc của robot, ta xây dựng cho robot một quỹ đạo chuyển động trong không gian thao tác
Để thỏa mãn điều kiện về vận tốc đầu và cuối ta thiết lập quan hệ x = x(t),
Trang 201 2
00
t t
t t x x a
t t
x x t t a
t t
x x a
t t
t t y y a
t t
y y t t a
t t
y y a
t t
t t z z a
t t
z z t t a
t t
z z a
Tạo độ suy rộng biến khớp q( , 1 2,d3)
Nhắc lại tọa độ của điểm thao tác khâu cuối, ma trận:
Trang 21Trong đó a1 = 0.018m, a2 = 0.02m là chiều dài khâu 1 và khâu 2
Giải hệ phương trình bằng phương pháp lặp Newton-Raphson sử dụng phần mềm Matlab
Ma trận Jacobi của hệ phương trình là đạo hàm riêng các phương trình theo biến
1 2 3
( , , )
q d
Trang 22CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG
4.1 Giới thiệu về môi trường mô phỏng OPENGL
Hình x: Logo chính thức của OPENGL
OpenGL (tiếng Anh Open Graphics Library) là một tiêu chuẩn kỹ thuật đồ họa có mục đích định ra một giao diện lập trình ứng dụng (tiếng Anh: API) đồ họa 3 chiều OpenGL cũng có thể được dùng trong các ứng dụng đồ họa 2 chiều Giao diện lập trình này chứa khoảng 250 hàm để vẽ các cảnh phức tạp từ những hàm đơn giản
Nó được dùng rộng rãi trong các trò chơi điện tử Ngoài ra nó còn dùng trong các ứng dụng CAD, thực tế ảo, mô phỏng khoa học, mô phỏng thông tin, phát triển trò chơi OpenGL còn có một đối thủ cạnh tranh là DirectX của Microsoft
Không gian trong OpenGL được miêu tả qua hình học xạ ảnh Một điểm trong không gian này có tất cả bốn tọa độ Cách thể hiện các điểm trong không gian bằng 4 tọa độ cho phép xử lý các điểm vô tận một cách tổng quát Vì vậy mã nguồn các ứng dụng đã được đơn giản hóa đi nhiều
4.2 Xây dựng bài toán mô phỏng
4.2.1 Khởi tạo Project trong OPENGL
Bước 1: Khởi động Visual Studio C++(Visual Studio2015)
Trang 23Bước 2:File/NewProject/MFCApplication và đặt tên cho project RobotSimulator
Trang 24Bước 3: Chọn tùy chỉnh cho Project là Single Document và MFC Standard.Rồi chọn Finish
Trang 25Mã nguồn của chương trình MFC cơ bản:
Thêm lớp COpenGLInit vào project
Copy các tệp OpenGLInit.h và OpenGLInit.cpp vào thư mục OpenGL nằm
trong thư mục của project
Trang 26 Tạo một Filter OpenGL trong project
Thêm các tệp OpenGLInit.h và OpenGLInit.cpp vào trong filter OpenGL
Sử dụng lớp COpenGLInit
Thêm khai báo sử dụng lớp COpenGLInit và biến vào lớp RobotSimulatorView
Chỉnh sửa hàm PreCreateWindow
Thêm style ClipSiblings và ClipChildren vào CreateStructcs
Thêm hàm xử lý sự kiện OnCreate
Gọi hàm OnCreate của lớp COpenGLInit
Trang 27 Thêm hàm xử lý sự kiện OnSize
Gọi hàm OnSize của lớp COpenGLInit để resize phần nội dung vẽ
*Thêm hàm xử lý sự kiện OnEraseBkgnd
Thay đổi giá trị trả về là TRUE
Chỉnh sửa hàm OnDraw
Gọi hàm OnDraw của lớp COpenGLInit để hiển thị nội dung phần vẽ trong lớp OpenGLInit
Trang 28 Thêm hàm xử lý sự kiện OnTime
Gọi hàm RedrawWindow để cập nhật phần vẽ vào nội dung vẽ
Thêm hàm xử lý sự kiện OnDestroy
Dừng Timer hiện tại lại
Gọi hàm OnDestroy của lớp COpenGLInit
4.2.2 Khởi tạo ánh sáng và vị trị đặt nguồn sáng
- Sử dụng class Light để thiết lập ánh sáng và vị trí đặt nguồn sáng
voidCLight::InitLight()
Trang 29{
// light
GLfloat ambientLight[] = {0.5f,0.5f,0.5f,1.0f};//moi truong
GLfloat diffuseLight[] = {0.8f,0.8f,0.8f,1.0f};//khuyech tan
GLfloat specularLight[] = {0.4f,0.4f,0.4f,1.0f};//phan chieu
GLfloat positionLight[] = {20.0f,20.0f,20.0f,0.0f};
glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);
glLightfv(GL_LIGHT0,GL_SPECULAR,specularLight);
Trang 30CMaterial(constCColor&ambient, constCColor&diffuse,
constCColor&specular, constCColor&emission = CColor(0, 0, 0, 1),
floatshininess=0.0f);
CMaterial(constCMaterial&material);
public:
CMaterial&operator=(constCMaterial&material);
void SetData(constCColor&ambient, constCColor&diffuse,
constCColor&specular, constCColor&emission=CColor(0, 0, 0, 1), floatshininess = 0.0f);
void Reset();
public:
void InitMaterial();
};
Trang 314.3 Làm việc với file *STL
4.3.1 Giới thiệu
Các chương trình CAD như Solidworks sử dụng kĩ thuật tam giác hóa
(Triangulation) có thể xuất ra những mô hình lưới với định dạng *.STL Các chương trình mô phỏng có thể đọc file *.STL và hiển thị trong môi trường đồ họa 3D Các mô hình tam giác hóa càng chi tiết, càng mịn thì file càng nặng và chương trình chạy càng chậm Nếu giảm kích thước file *.STL đi thì đồng nghĩa với việc bề mặt trông thô và gãy khúc
4.3.2 Cấu trúc file *.STL
Nội dung file *.STL
Trang 324.3.3 Xuất file *.STL từ phần mềm Solidwork
Việc thực hiện xuất file *.STL từ phần mềm Solidwork cần có 1 hệ tọa độ gắn với mô hình tượng cần xuất Trong project này sẽ sử dụng hệ tọa độ địa phương, robot có 3 khâu tương ứng sẽ có 3 hệ tọa độ được gắn vào3 khâu Các hệ tọa độ
này được xác định bằng phương pháp DH Việc load các file *.STL vào trong
OpenGL, sẽ thực hiện theo tác bước sau: Dùng các lệnh dịch chuyển, xoay để
chuyển ma trận hiện hành hiện tại thành ma trận hiện hành ứng với hệ tọa độ khâu
1, rồi thực hiện lệnh load file *.STL của khâu 1 để vẽ mô hình 3D của khâu 1, sau
đó tiếp tục dịch chuyển, xoay để đến hệ tọa độ của khâu 2 để vẽ tiếp mô hình 3D của khâu 2 Việc dịch chuyển, xoay sẽ dựa vào bảng DH, cấu trúc động học của
Robot
Các bước xuất file *.STL trên môi trường solidwork 2015
Bước 1: Mở mô hình đã thiết kế trên môi trường Solidwork
Trang 33Bước 2: Đặt hệ tọa độ cho các khâu theo qui tắc DH
- Vào Insert/Features/Move/Copy…
- Chọn đối tượng cần đặt hệ tọa độ :
Trang 34- Chọn hướng quay và khoảng cách dịch phù hợp với quy tắc đặt hệ tọa độ
DH
- Chọn Insert/Refence Geometry/ Coordinate System… và điểm cần đặt hệ
tọa độ
Trang 35- Kết quả
Hình ảnh
Trang 36Bước 3: File -> Save As sẽ ra hộp thoại như sau Trong Save as type chọn dịnh dạng STL
Bước 4: Thay đổi 1 số tùy chọn bằng cách chọn Option
Bước 5: Save để lưu file
Trang 374.4 Nhúng file *.STL vào môi trường OPENGL
Có nhiều cách để đưa file *.STL vào OpenGL, trong project này đưa ra cách làm như sau:
Thêm một số lớp hỗ trợ OpenGL vào project
Thêm các tệp
- Color.h & Color.cpp:
- Light.h & Light.cpp
- Material.h & Material.cpp
- Vec3D.h
- OpenGLWnd.cpp & OpenGLWnd.h
- SaveRestore.cpp & SaveRestore.h
Thêm lớp đọc file STLvào project
- STL_File.h & STL_File.cpp
- Vector4D.h