BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
CÔNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
THIẾT KẾ VÀ ĐIỀU KHIỂN ĐỘNG HỌC CÁNH TAY ROBOT EEZYbotARM MK2
S
K
C
0
0
3
9
5
9
MÃ SỐ: SV2020-160
S KC 0 0 7 3 3 3
Tp. Hồ Chí Minh, tháng 08/2020
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
THIẾT KẾ VÀ ĐIỀU KHIỂN ĐỘNG HỌC CÁNH TAY ROBOT
EEZYbotARM MK2
SV2020-160
Chủ nhiệm đề tài: VÕ MINH TÀI
TP Hồ Chí Minh, 08/2020
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
THIẾT KẾ VÀ ĐIỀU KHIỂN ĐỘNG HỌC CÁNH TAY ROBOT
EEZYbotARM MK2
SV2020-160
Thuộc nhóm ngành khoa học: Điều khiển học kỹ thuật
SV thực hiện: Võ Minh Tài Nam, Nữ: Nam
Dân tộc: Kinh
Lớp, khoa: 16151CL3 - Đào tạo Chất Lượng Cao Năm thứ:4/Số năm đào tạo: 4
Ngành học: Công nghệ Kỹ thuật Điều khiển và Tự động hóa
Người hướng dẫn: Th.S Nguyễn Trần Minh Nguyệt
TP Hồ Chí Minh, 08/2020
MỤC LỤC
LỜI CẢM ƠN .................................................................................................... 1
LỜI NÓI ĐẦU .................................................................................................... 2
TÓM TẮT .......................................................................................................... 3
1. Tính cấp thiết của đề tài ......................................................................... 4
2. Tổng quan nghiên cứu ............................................................................ 4
2.1 Tình hình nghiên cứu trong nước ......................................................... 4
2.2 Tình hình nghiên cứu ngoài nước......................................................... 5
3. Mục tiêu ................................................................................................. 8
4. Đối tượng, phạm vi và phương pháp nghiên cứu ..................................... 8
4.1 Đối tượng, địa điểm và thời gian nghiên cứu ......................................... 8
4.2 Quy mô nghiên cứu ................................................................................ 8
4.3 Phương pháp nghiên cứu ........................................................................ 9
CHƯƠNG 1: TỔNG QUAN VỀ ROBOT CÔNG NGHIỆP ................................ 10
1.1 Giới thiệu về robot công nghiệp ............................................................ 10
1.2 Phân loại robot công nghiệp ................................................................. 12
1.3 Một số ứng dụng của robot ................................................................... 15
1.4 Bài toán động học thuận tay máy .......................................................... 16
1.5 Bài toán động học nghịch tay máy ........................................................ 18
CHƯƠNG 2: GIỚI THIỆU PHẦN CỨNG VÀ PHẦN MỀM ............................. 20
2.1 Giới thiệu về vi xử lý Arduino Uno R3 ..................................................... 20
2.1.1 Khái niệm về vi điều khiển ................................................................ 20
2.1.2 Giới thiệu về board Arduino .............................................................. 20
2.1.3 Board Arduino Uno R3 ..................................................................... 21
2.1.4 Cấu trúc và thông số ......................................................................... 22
2.2 Phần mềm lập trình cho board Arduino .................................................. 26
2.4 Động cơ Servo MG966 ............................................................................. 29
2.5 Bạc đạn đế xoay ....................................................................................... 30
2.6 Mạch giảm áp DC LM2596 3A ................................................................ 31
2.7 Tổng quan về Matlab ............................................................................... 31
2.7.1 Giới thiệu về Matlab .............................................................................. 31
2.7.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng: ....................... 33
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT .................................................................. 42
CHƯƠNG 4: ĐÁP ỨNG THỰC TẾ KHI ĐIỀU KHIỂN ................................... 53
4.1 Thiết lế mô hình bằng phần mềm SolidWorks ............................................. 53
4.2 Thiết kế giao diện Matlab GUI để điều khiển cánh tay robot ....................... 56
4.3 Kết quả điều khiển thực tế .......................................................................... 56
4.4 Kết luận ...................................................................................................... 58
CHƯƠNG 5: KẾT LUẬN ................................................................................. 60
6.1 Kết quả đạt được ..................................................................................... 60
6.2 Hướng phát triển ..................................................................................... 60
DANH MỤC BẢNG BIỂU
Tên bảng Trang số
Bảng 1.1 Bảng D – H của hệ cánh tay robot 18
Bảng 2.1 Một vài thông số của Board Arduino Uno R3 24
DANH MỤC CÁC BIỂU ĐỒ, SƠ ĐỒ, HÌNH ẢNH
Tên biểu đồ, sơ đồ, hình ảnh Trang số
Hình 1.1 Tay máy kiểu tọa độ Descartes 13
Hình 1.2 Cấu trúc tay máy kiểu tọa độ trụ 13
Hình 1.3 Tay máy kiểu cầu 13
Hình 1.4 Tay máy kiểu SCADA 14
Hình 1.5 Tay máy kiểu tay người 14
Hình 1.6 Khớp cổ tay 14
Hình 1.7 Một số loại robot được ứng dụng trong thực tế 15
Hình 1.8 Hình 2D hệ cánh tay robot do nhóm đề xuất 18
Hình 2.1 Những phiên bản của Arduino 22
Hình 2.2 Board Arduino Uno R3 23
Hình 2.3 Vi điều khiển Atmega328 tiêu chuẩn 24
Hình 2.4 Sơ đồ chân board Uno R3 26
Hình 2.5 Cài đặt thư viện Arduino cho Matlab 27
Hình 2.6 Cài đặt thư viện Arduino cho Matlab 27
Hình 2.7 Cài đặt thư viện Arduino cho Matlab 28
Hình 2.8 Cài đặt thư viện Arduino cho Matlab 28
Hình 2.9 Cài đặt thư viện Arduino cho Matlab 28
Hình 2.10 Khối nguồn xung 12VDC 29
Hình 2.11 Sơ đồ khối bộ nguồn 30
Hình 2.12 Động cơ MG966 30
Hình 2.13 Bạc đạn đế xoay 31
Hình 2.14 Module mạch giảm áp DC LM2596 3A 32
Hình 2.15 Sơ đồ mạch giảm áp DC dùng IC LM2596 32
Hình 2.16 Giao diện Matlab 34
Hình 2.17 Giao diện lập trình Matlab/Simulink 36
36 Hình 2.18 Guide quick start
37 Hình 2.19 Giao diện Matlab/GUI
37 Hình 2.20 Ví dụ một số đối tượng trong GUI
38 Hình 2.21 Sử dụng thông số cho các đối tượng sử dụng
39 Hình 2.22 Chạy kết quả set up
39 Hình 2.23 Logo phần mềm SolidWorks
44 Hình 3.1 Các thành phần cơ bản có trong robot
45 Hình 3.2 Ví dụ một robot đơn giản
46 Hình 3.3 Quan hệ giữa 2 thanh trong cơ cấu
52 Hình 3.4 Vận tốc của của 1 điểm trong hệ tọa độ
52 Hình 3.5. Véc tơ vận tốc cho các trục liền nhau
54 Hình 3.6. Lan truyền lực giữa các trục liền nhau
55 Hình 4.1 Hướng nhìn ngang của hệ cánh tay robot
55 Hình 4.2 Hướng nhìn từ sau của hệ cánh tay robot
56 Hình 4.3 Hướng nhìn ngang của hệ cánh tay robot
56 Hình 4.4 Hướng nhìn từ sau của hệ cánh tay robot
56 Hình 4.5 Hướng nhìn chéo của hệ cánh tay robot
57 Hình 4.6 Hướng nhìn từ trên xuống của hệ cánh tay robot
57 Hình 4.7 Hướng nhìn của hệ cánh tay robot
57 Hình 4.8 Hướng nhìn cánh tay robot từ mặt đối diện
58 Hình 4.9 Giao diện Matlab/GUI được thiết kế để điều khiển
cánh tay robot
59 Hình 4.10 Mô hình thực hệ cánh tay robot
60 Hình 4.11 Chương trình tính toán động học thuận – nghịch
cho hệ cánh tay robot
60 Hình 4.12 Hoạt động của hệ cánh tay robot
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt Nguyên nghĩa
Alternating Current AC
Analog-to-digital converter ADC
Direct Current DC
Digital-to-analog converter DAC
EEPROM Electrically Eraseble Programmable Read Only Memory
Field-Effect Transistor FET
Ground GND
Input/Output I/O
Integrated Circuit IC
integrated development environment IDE
Guide GUI
Multiple input Mulptiple output MIMO
position-based visual servoing PBVS
image-based visual servoing IBVS
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1. Thông tin chung:
- Tên đề tài: THIẾT KẾ VÀ ĐIỀU KHIỂN ĐỘNG HỌC CÁNH TAY ROBOT
EEZYbotARM MK2
- SV thực hiện: VÕ MINH TÀI Mã số SV: 16151313
- Lớp: 16151CL3 Khoa: CLC Năm thứ: 4 Số năm đào tạo: 4
- Thành viên đề tài:
Stt Họ và tên MSSV Lớp Khoa
1 LƯ MINH TRIẾT 16151093 16151CL3 CLC
2 NGUYỄN VĂN HIỂN 16151021 16151CL3 CLC
3 NGUYỄN MINH TIẾN 16151087 16151CL3 CLC
- Người hướng dẫn: Th.S Nguyễn Trần Minh Nguyệt
2. Mục tiêu đề tài:
Xây dựng mô hình thực hệ thống giúp các sinh viên tìm hiểu học tập áp dụng môn Lý
thuyết điều khiển tự động, Lý thuyết kỹ thuật Robot.
Tìm hiểu và ứng dụng lý thuyết môn Hệ thống điều khiển tự động, lý thuyết môn Kỹ
thuật Robot trong điều khiển động cánh tay Robot 3 bậc tự do.
Điều khiển cánh tay robot thông qua phần mềm Matlab GUI.
Tìm hiểu cách vẽ, xây dựng mô hình trên phần mềm SoidWorks.
3. Tính mới và sáng tạo:
Chương trình điều khiển hệ thống được nhúng bằng phần mềm Matlab với thư viện
Arduino được hỗ trợ trên phần mềm.
4. Kết quả nghiên cứu:
Nghiên cứu áp dụng bộ thư viện Arduino để điều khiển hệ thống cánh tay robot 3 bậc
tự do thông qua phần mềm Matlab/Simulink.
Nghiên cứu ứng dụng vi xử lý Arduino Uno R3 vào điều khiển hệ cánh tay robot 3 bậc
tự do.
Tác giả đã xây dựng thành công mô hình hệ cánh tay robot 3 bậc tự hoạt động ổn định,
thẫm mỹ.
Nghiên cứu lý thuyết kỹ thuật robot về tính toán động học thuận và động học nghịch
robot, lập trình động học trên phần mềm để điều khiển cách tay robot.
Tìm hiểu thiết kết chương trình tương tác giữa người dùng với phần mềm
Matlab/Simulink thông qua Matlab GUI.
5. Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và
khả năng áp dụng của đề tài:
Đề tài “THIẾT KẾ VÀ ĐIỀU KHIỂN ĐỘNG HỌC CÁNH TAY ROBOT
EEZYbotARM MK2” sẽ hỗ trợ đắc lực trong quá trình giảng dạy, học tập và nghiên cứu
khoa học cho giảng viên cũng như sinh viên trường Đại học Sư phạm Kỹ thuật TPHCM.
Việc áp dụng mô hình hệ cánh tay robot 3 bậc tự do sẽ giúp người học kiểm chứng lại
các giải thuật khác, phương pháp điều khiển khác nhau nhằm tìm ra giải thuật tối ưu cho
từng ứng dụng cụ thể.
6. Công bố khoa học của SV từ kết quả nghiên cứu của đề tài:
Ngày tháng năm
SV chịu trách nhiệm chính
thực hiện đề tài
(kí, họ và tên)
Nhận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề
tài:
Ngày tháng năm
Người hướng dẫn
(kí, họ và tên)
LỜI CẢM ƠN
Trước tiên, nhóm sinh viên xin chân thành cảm ơn cô Nguyễn Trần Minh Nguyệt,
người đã tận tình hướng dẫn và truyền đạt kiến thức giúp nhóm sinh viên hoàn thành đề
tài Nghiên cứu khoa học này. Và quan trọng hơn hết, thầy là người đã gợi mở cho nhóm
sinh viên một hướng nghiên cứu mà nhóm cảm thấy quan tâm và mong muốn theo đuổi.
Bên cạnh đó, nhóm sinh viên xin chân thành cảm ơn đến thầy Đặng Xuân Ba và
thầy Nguyễn Văn Thái thuộc bộ môn Tự động điều khiển đã định hướng và hỗ trợ một
số phần quan trọng cho việc học tập, nghiên cứu và phát triển đề tài.
Ngoài ra, nhóm sinh viên cũng gởi lời cảm ơn đến tập thể lớp 16151CL3 đã hỗ trợ
nhóm rất nhiều trong quá trình thực hiện đề tài.
Cuối cùng, nhóm sinh viên xin chân thành cảm ơn sự quan tâm, hỗ trợ, tạo điều
kiện và động viên về vật chất lẫn tinh thần của các thành viên trong gia đình.
TP Hồ Chí Minh, Ngày… tháng …năm …
Nhóm sinh viên thực hiện
1
LỜI NÓI ĐẦU
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến. Thế giới của chúng
ta đã và đang thay đổi từng ngày, văn minh và hiện đại hơn. Sự phát triển của tất cả các
ngành khoa học nói chung và điều khiển tự động nói riêng đã tạo ra hàng loạt những
thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những
yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả cao. Lĩnh vực
điều khiển tự động đang trở thành một ngành mà nhiều người lựa chọn. Lĩnh vực điều
khiển tự động đã đáp ứng được những đòi hỏi không ngừng từ các lĩnh vực công - nông
- lâm - ngư nghiệp - y tế cho đến các nhu cầu cần thiết trong hoạt động đời sống hằng
ngày. Có rất nhiều ứng dụng trong tất cả các lĩnh vực. Nhưng ở đây được sự đồng thuận
của thầy hướng dẫn – cô Nguyễn Trần Minh Nguyệt cộng với lòng ham thích về sự ứng
dụng của điều khiển tự động. Nên chúng em đã chọn thực hiện đề tài “THIẾT KẾ VÀ
ĐIỀU KHIỂN ĐỘNG HỌC CÁNH TAY ROBOT EEZYbotARM MK2”. Từ đó hình
thành nên trong người thực hiện niềm hứng thú, nhu cầu nghiên cứu đề tài để sở hữu
được những kiến thức mới và vận dụng chúng vào trong thực tiễn cuộc sống hiện nay.
2
TÓM TẮT
Trong công trình này, nhóm sinh viên đã xây dựng mô hình cánh tay robot 3 bậc
tự do bằng phần mềm SolidWorks và in 3D mô hình thành sản phẩm thực tế. Nhóm sinh
viên thực hiện tính toán động học thuận và động học nghịch của cánh tay robot. Dựa
trên cơ sở này, nhóm sinh viên lập trình bằng phần mềm Matlab và sử dụng nền tảng
Arduino được hỗ trợ trên Matlab để điều khiển cánh tay robot 3 bậc tự do.
Kết quả thực nghiệm đạt được: sinh viên đã xây dựng thành công mô hình thực
nghiệm hệ cánh tay robot 3 bậc tự do thông qua giao tiếp máy tính giữa phần mềm
Matlab/Simulink với vi điều khiển Arduino bằng bộ thư viện Arduino được Matlab hỗ
trợ. Kết quả thực nghiệm cho thấy phương pháp điều khiển động học cánh tay robot 3
bậc tự do hoàn toàn đưa cánh tay về đúng điểm làm việc xác định.
Nhiệm vụ
Giới thiệu vi điều khiển Arduino và bộ thư viện Arduino trên phần mềm
Matlab/Simulink.
Giới thiệu phần mềm vẽ SolidWorks.
Lắp ráp mô hình phần cứng và điện tử cho mô hình thực hệ cánh tay robot
3 bậc tự do.
Lập trình chương trình điều khiển trên Simulink của Matlab.
Hiệu chỉnh các thông số bộ điều khiển cho phù hợp để hệ thống hoạt động
đúng điểm đầu cuối đã được đặt ra.
Tìm hiểu lý thuyết về động lực robot, các lý thuyết của kỹ thuật robot để
xây dựng hệ thống.
3
PHẦN MỞ ĐẦU
1. Tính cấp thiết của đề tài
Ngành công nghiệp robot trên thế giới đã đưa được sản phẩm là robot công
nghiệp để phục vụ sản xuất, thậm chí phục vụ nhu cầu giải trí cũng như chăm sóc
con người. Với ngành công nghiệp của Việt Nam thì robot chưa được xuất hiện
nhiều trong các dây chuyền sản xuất. Vì sản phẩm này còn quá đắt đối với thị
trường Việt Nam.
Nhằm nội địa hóa sản phẩm, cũng như nghiên cứu chuyên sâu về robot, tôi
chọn đề tài “Thiết kế và điều khiển động học cánh tay robot EEZYbotARM
MK2”. Đề tài này hướng tới có thể thay thế các bộ điều khiển của các công ty
nước ngoài và xây dựng giải thuật điều khiển tối ưu cho các đối tượng sản xuất.
Đồng thời, các đối tượng này thích hợp với điều kiện sản xuất ở nước ta.
Hệ cánh tay robot được thực hiện trong để tài là một hệ MIMO (Multiple-
Input and Multiple-Output) với nhiều ngõ vào điều khiển và nhiều ngõ ra. Nhằm
nâng cao khả năng áp dụng các giải thuật điều khiển tôi ưu cho hệ cánh tay robot
trước tiên chúng ta cần nắm rõ về động học thuận – nghịch robot. Đó là mục tiêu
mà đề tài này hướng đến.
Thực hiện đề tài “Thiết kế và điều khiển động học cánh tay robot
EEZYbotARM MK2” là rất cần thiết cho vấn đề giảng dạy và nghiên cứu tại
trường Đại học Sư phạm Kỹ thuật thời điểm hiện tại. Vì đây là một mô hình rất
điển hình cần phải có ở bất kỳ một trường Đại học, Cao đẳng nào theo hướng
chuyên ngành kỹ thuật tại Việt Nam, nhất là ngành điều khiển tự động hóa, điện
công nghiệp, cơ điện tử… Việc xây dựng mô hình sẽ giúp ích cho công tác giảng
dạy trực quan hơn, dễ dàng kiểm chứng với các giải thuật điều khiển trên lý
thuyết, là cơ sở nghiên cứu khoa học cho cả giảng viên và sinh viên tại trường.
2. Tổng quan nghiên cứu
Xu hướng phát triển robot hiện nay là đi sâu vào nghiên cứu các phương
pháp điều khiển nhằm nâng cao độ chính xác các bộ điều khiển của robot. Điều
này được thể hiện qua các nghiên cứu trong nước và ngoài nước như sau:
2.1 Tình hình nghiên cứu trong nước
Năm 2016, nhóm tác giả Đặng Xuân Kiên, Nguyễn Mạnh La thuộc trường
Đại học Giao thông vận tải TPHCM đã thực hiện đề tài “Điều khiển cánh tay
4
robot hai bậc tự do qua mạng dựa trên phương pháp dự đoán Smith nâng cao”.
Bài nghiên cứu thiết kế mô hình điều khiển cánh tay máy hai bậc tự do qua mạng
dựa vào phương pháp dự Smoth nâng cao. Trễ điều khiển gây ra bởi tính chất
mạng và đáp ứng trễ của cơ cấu chấp hành, dẫn tới tín hiệu điều khiển cánh tay
robot bị chậm, rất khó đạt được độ ổn định khi điều khiển qua mạng. Phương
pháp dự đoán Smith nâng cao giúp dự đoán tương đối tín hiệu trễ của toàn hệ
thống làm tăng khả năng thích nghi với ảnh hưởng của thời gian trễ, giúp tay máy
đáp ứng chính xác.
Vào năm 2018, trong luận án Tiến sỹ của tác giả Nguyễn Tiết Kiệm, tác giả
đã thực hiện nghiên cứu đề tài “Nghiên cứu phát triển một số thuật toán điều
khiển robot công nghiệp có nhiều tham số bất định”. Trong đó tác giả trình bầy
về một số thuật toán điều khiển cho hệ robot-camera đặt trên hệ bánh xe di động
và một số thuật toán điều khiển cho hệ robot-camera chẳng hạn như phương pháp
điều khiển trượt, mạng nơ ron nhân tạo. Mục tiêu mà tác giả hướng tới là nâng
cao độ chính xác trong thực tế của robot công nghiệp khi môi trường làm việc có
nhiễu không biết truốc, có nhiều tham số bất định của mô hình động học và của
mục tiêu di động
Trong các viện nghiên cứu thì lĩnh vực này cũng có một số bài báo, báo cáo
khoa học tại các hội nghị trong nước và quốc tế, đặc biệt là các kết quả nghiên
cứu khoa học tại Viện Công Nghệ Thông Tin-Viện Hàn Lâm Khoa Học Công
Nghệ Việt Nam và đại học Bách Khoa Hà nội được công bố trong các tài liệu [3],
[4]. Trong tài liệu [4] các tác giả chủ yếu đề cập đến các tham số bất định của mô
hình động lực học robot. Trong luận án tiến sĩ của tác giả Ngô Mạnh Tiến - Đại
học Bách Khoa Hà Nội tác giả đi sâu vào phần chế tạo phần cứng cho hệ Pan-
Tilt-Camera di động, thuật điều khiển chính trong nghiên cứu này là điều khiển
thích nghi theo mô hình mẫu
2.2 Tình hình nghiên cứu ngoài nước
Khi nói tới vấn đề điều khiển chuyển động tay máy di động, các nhà nghiên
cứu đã phát triển nhiều thuật toán điều khiển khác nhau. Mục tiêu chung cần giải
quyết của bài toán điều khiển này là điều khiển tay máy di động từ vị trí ban đầu
sang vị trí khác sao cho vị trí cuối cùng đáp ứng được vị trí mong muốn. Cụ thể,
các phương pháp trong [5], [6], [7] đã đề xuất một số phương pháp đáng chú ý
5
để giải quyết các vấn đề này. Ngoài ra, công việc trong [8] đã trình bày một
phương pháp điều khiển bám thích nghi cho một tay máy hàn di động với một
mô hình động học có một số tham số chiều không xác định. Dựa trên lý thuyết
ổn định Lyapunov, tác giả trong [9] đã giải quyết vấn đề điều khiển vị trí với
những thông số bất định động học và những chướng ngại vật không xác định.
Hơn nữa, bộ điều khiển bù momen xoắn đã được đề xuất trong [15] để điều khiển
chuyển động của cánh tay di động.
Gần đây, nhiều công trình với mục đích tích hợp luật servo thị giác vào
robot di động đã được đề xuất để thực hiện nhiệm vụ cầm nắm [10-11] và để giải
quyết bài toán điều khiển bám mục tiêu dựa trên thị giác [12], [13], dẫn đến các
hệ thống thao tác tự trị dựa trên thị giác. Hơn nữa, các chuyên gia đã đề xuất một
thuật toán hoạch định đường đi để thêm phản ứng cho bài toán servo thị giác.
Giai đoạn hoạch định đường đi sẽ xem xét các ràng buộc quan trọng khác nhau
hoặc sự không chắc chắn của hệ thống nhằm đạt được một hệ thống điều khiển
servo thị giác mạnh mẽ hơn.
Liên quan đến thị giác, bất cứ một tay máy với khớp nối linh hoạt trong
không gian không có cấu trúc đều cần có các thông tin cảm giác từ tín hiệu phản
hồi như thông tin thị giác trong hệ thống điều khiển vòng kín [14]. Thị giác là
một cảm biến hữu ích cho cánh tay khớp nối. Thị giác sao chép cấu tạo của con
mắt sinh học để có thể có được thông tin trong trường hợp không có bất kỳ tiếp
xúc nào với đối tượng.
Đối với điều khiển cánh tay robot, servo thị giác là tên gọi của một nhóm
các phương pháp điều khiển bao gồm sự kết hợp giữa động học robot, động lực
học và thị giác máy để thúc đẩy hiệu quả chuyển động của cánh tay máy. Những
phương pháp này được phân loại thành hai nhóm [16], cụ thể là: position-based
visual servoing (PBVS) servo thị giác dựa trên vị trí, và image-based visual
servoing (IBVS) servo thị giác dựa trên hình ảnh.
Các đặc trưng hình ảnh trong PBVS được xử lý để ước lượng vị trí tương
đối của tọa độ ba chiều (3D) giữa camera và mục tiêu, theo sau là một thuật toán
để điều khiển chuyển động của cánh tay robot với camera mà vị trí 3D được sử
dụng như một sai số của tín hiệu [17]. Nói cách khác, dựa trên dữ liệu hình ảnh,
các kết qủa đã thiết kế và thể hiện trong không gian Đề Các 3 chiều. Mục tiêu
6
điều khiển ở đây là để lái xe camera (hoặc cánh tay) từ một vị trí tùy ý ban đầu
đến một vị trí tương đối mong muốn.
Trong IBVS sai số được tính toán trực tiếp dưới dạng các đặc trưng hình
ảnh có chuyển động vi phân trong mặt phẳng ảnh liên quan đến chuyển động vi
phân của cánh tay di động qua ma trận Jacobi [12], [13], [14], [16], [17], [18],
[19], [20]. Cần lưu ý rằng trái ngược với PBVS, IBVS có một số ưu điểm như
sau: 1) Tọa độ 3D của mục tiêu là không cần thiết; 2) IBVS có độ bền vững hơn
PBVS về hiệu suất đối với nhiễu, ví dụ với lỗi hiệu chuẩn; 3) IBVS thuận tiện
hơn và dễ dàng hơn PBVS để bám một mục tiêu di động sao cho mục tiêu này
luôn ở trong tầm nhìn của camera.
Mặt khác trên thế giới cũng có nhiều nghiên cứu và báo cáo khoa học về
phương pháp điều khiển bám mục tiêu di động sử dụng bệ Pan-Tilt và camera.
Các bài báo tiêu biểu đã nghiên cứu về lĩnh vực này như: Điều khiển cánh tay
robot bám mục tiêu theo phương pháp bù sử dụng mạng nơ ron đăng trên tạp chí
của viện Franklin. Nội dung chủ yếu của bài nghiên cứu là thiết kế bộ điều khiển
dùng mạng nơ ron để bù các thành phần bất định [21]. Phương pháp điều khiển
bám mục tiêu trong không gian 3 chiều bằng robot và camera sử dụng phương
pháp bám điểm ảnh liên tục và bộ lọc điểm ảnh được báo cáo tại hội nghị SICE
năm 2011, đại học Waseda, Tokyo, Japan. Bài nghiên cứu này sử dụng phương
pháp bám theo mục tiêu trong không gian 3 chiều để nhận dạng vị trí và hướng
của vật thể chuyển động liên tục [22]. Điều khiển bám mục tiêu bằng cách bám
theo tín hiệu nhận được qua video thu được từ vật thể bay được báo cáo tại hội
nghị AIM2011, Budapest, Hungary, năm 2011. Nghiên cứu này sử dụng tín hiệu
nhận được qua video để bám theo mục tiêu [23]. Nghiên cứu về công nghệ điều
khiển robot dựa trên việc quan sát đối tượng trong không gian được báo cáo tại
hội nghị quang điện tử và điện tử quốc tế năm 2011 (ICEOE2011). Bài nghiên
cứu này sử dụng cánh tay rô bốt 6 bậc tự do điều khiển từ xa kết hợp với phương
pháp điều khiển linh hoạt để bám theo mục tiêu trong không gian 3 chiều [24].
Cách tiếp cận mới về việc điều khiển bám mục tiêu di động bằng cánh tay robot
và camera sử dụng bộ quan sát phi tuyến được đăng tại tạp chí IEEE/ASME
transaction on mechatronics, Vol 2.16, No2, April, 2011. Bài nghiên cứu này giới
thiệu phương pháp điều khiển mới để tìm kiếm vật thể chuyển động trong không
7
gian 3 chiều [25]. Điều khiển ổn định bám mục tiêu di động kết hợp mạng nơ ron
cho cánh tay robot được đăng tại tạp chí IEEE transaction neural networks,
Vol.17, No4, July, 2006. Bài nghiên cứu sử dụng mạng nơ ron nhận dạng thông
số của rô bốt để điều khiển bám theo đối tượng [26].
Rõ ràng cánh tay robot đã được áp dụng rộng rãi do vai trò quan trọng của
chúng trong các quá trình tự động hóa với tốc độ và độ chính xác cao. Tuy nhiên,
chúng thường bị tác động bởi các nhiễu ngoài, sự bất định của mô hình như sự
biến động của tải trọng, tham số v.v. và do đó, trong thực tế không thể diễn giải
chính xác mô hình động lực học của cánh tay robot. Do đó, nhiều phương pháp
điều khiển đã được đề xuất để giải quyết những vấn đề này.
3. Mục tiêu
Mục tiêu chung: Thiết kế và điều khiển hệ cánh tay robot trong giảng dạy
đại học và nghiên cứu khoa học.
Mục tiêu cụ thể:
Thiết kế mô hình hệ thống cánh tay robot.
Tìm hiểu và ứng dụng lý thuyết động học kỹ thuật robot để tính
toán điều khiển cánh tay robot.
Sử dụng các phần mềm Matlab/Simulink, Matlab/GUI,
SolidWorks để thiết kế điều khiển cánh tay robot.
Điều khiển cánh tay robot tới các điểm đặt thông qua giao diện GUI
được thiết kế.
4. Đối tượng, phạm vi và phương pháp nghiên cứu
4.1 Đối tượng, địa điểm và thời gian nghiên cứu
Đề tài tập trung nghiên cứu chế tạo mô hình hệ thống cánh tay robot, điều
khiển cánh tay robot bằng các phương pháp động lực học robot thông qua
giao diện Matlab/GUI được thiết kế.
Thời gian nghiên cứu từ tháng 01 năm 2020 đến tháng 05 năm 2020 tại
các phòng Lab Khoa Điện – Điện tử.
4.2 Quy mô nghiên cứu
Nghiên cứu tìm hiểu nguyên lý hoạt động hệ cánh tay robot.
Nghiên cứu chế tạo mô hình thực hệ cánh tay robot.
8
Nghiên cứu lập trình điều khiển cánh tay robot chạy ổn định, đáp ứng đúng
các vị trí điểm đặt mong muốn.
4.3 Phương pháp nghiên cứu
Tìm hiểu, phân tích các đề tài, các công trình nghiên cứu liên quan trong
và ngoài nước.
Tìm hiểu và xây dựng động học thuận tay máy.
Tiến hành nghiên cứu chế tạo một mô hình cánh tay robot 3 bậc tự do.
Viết chương trình điều khiển hệ thống thực
9
PHẦN NỘI DUNG
CHƯƠNG 1: TỔNG QUAN VỀ ROBOT CÔNG NGHIỆP
1.1 Giới thiệu về robot công nghiệp
Thuật ngữ “Robot” lần đầu tiên xuất hiện năm 1922 trong tác phẩm “Rosum’s
Universal Robot” của Karal Capek. Theo tiếng Czech thì Robot là người tạp dịch. Trong
tác phẩm này nhân vật Rosum và con trai ông đã tạo ra những chiếc máy gần giống như
con người hầu hạ con người.
Hơn 20 năm sau, ước mơ viễn tưởng của Karel Capek đã bắt đầu hiện thực. Ngay
sau chiến tranh thế giới lần thứ 2, ở Mỹ đã xuất hiện những tay máy chép hình điều
khiển từ xa, trong các phòng thí nghiệm phóng xạ. Năm 1959, Devol và Engelber đã chế
tạo Robot công nghiệp đầu tiên tại Unimation.
Năm 1967, Nhật Bản mới nhập chiếc Robot công nghiệp đầu tiên từ công ty AMF
của Mỹ. Đến năm 1990, có hơn 40 công ty của Nhật, trong đó có những công ty khổng
lồ như Hitachi, Mitsubishi và Honda đã đưa ra thị trường nhiều loại robot nổi tiếng.
Từ những năm 70, việc nghiên cứu nâng cao tính năng của Robot đã chú ý nhiều
đến sự lắp đặt thêm các cảm biến ngoại tín hiệu để nhận biết môi trường làm việc. Tại
trường đại học Tổng hợp Stanford, người ta đã chế tạo ra loại robot lắp ráp tự động điều
khiển bằng vi tính trên cơ sở xử lý thông tin từ các cảm biến trên cơ sở xử lý thông tin
từ các cảm biến lực và thị giác. Vào thời gian này công ty IBM đã chế tạo Robot có các
cảm biến xúc giác và cảm biến lực điều khiển bằng máy vi tính để lắp ráp các máy in
gồm 20 cụm chi tiết.
Những năm 90 do áp dụng rộng rãi các tiến bộ khoa học về vi xử lý và công nghệ
thông tin, số lượng robot công nghiệp đã tăng nhanh, giá thành giảm rõ rệt, tính năng đã
có nhiều bước tiến vượt bậc. Nhờ vậy robot công nghiệp đã có vị trí quan trọng trong
các dây chuyền sản xuất hiện đại. Ngày nay, chuyên ngành khoa học nghiên cứu về
robot “Robotics” đã trở thành một lĩnh vực rộng trong khoa học, bao gồm các vấn đề
cấu trúc cơ cấu động học, động lực học, lập trình quỹ đạo, cảm biến tín hiệu, điều khiển
chuyển động v.v…
Ba nguyên tắc cơ bản trong ngành nghiên cứu về Robotics:
1. Robot không được xúc phạm con người và không gây tổn hại cho con người.
2. Hoạt động của robot phải tuân thủ theo các quy tắc do con người đặt ra. Các
quy tắt này không dược vi phạm nguyên tắc thứ nhất.
10
3. Một robot cần phải bảo vệ sự sống của mình, nhưng không được vi phạm 2
nguyên tắc trước.
Các nguyên tắc trên sau này trở thành nền tảng cho việc thiết kế robot.
Khả năng hoạt động của robot được đảm bảo bởi hệ thống cơ khí, gồm cơ cấu
vận động để đi lại và cơ cấu hành động để có thể làm việc. Việc thiết kế và chế tạo hệ
thống này thuộc lĩnh vực khoa học về cơ cấu truyền động, chấp hành và vật liệu cơ khí.
Chức năng cảm nhận, gồm thu nhận tín hiệu về trạng thái môi trường và trạng
thái của bản thân hệ thống, do các cảm biến (sensor) và các thiết bị liên quan thực hiện.
Hệ thống này được gọi là hệ thống thu nhận và xử lý tín hiệu, hay đơn giản là hệ thống
cảm biến.
Muốn phối hợp hoạt động của hai hệ thống trên, đảm bảo cho robot có thể tự điều
chỉnh "Hành vi" của mình và hoạt động theo đúng chức năng quy định trong điều kiện
môi trường thay đổi, trong robot phải có hệ thống điều khiển. Xây dựng các hệ thống
điều khiển thuộc phạm vi điện tử, kỹ thuật điều khiển và công nghệ thông tin.
Robotics được hiểu là một ngành khoa học có nhiệm vụ nghiên cứu, thiết kế, chế
tạo các robot và ứng dụng chúng trong các lĩnh vực hoạt động khác nhau của xã hội loài
người, như nghiên cứu khoa học, kỹ thuật, kinh tế, quốc phòng và dân sinh [5,tr.8].
Từ hiểu biết sơ bộ về chức năng và kết cấu của robot, chúng ta hiểu, Robotics là
một khoa học liên ngành, gồm cơ khí, điện tử, kỹ thuật điều khiển và công nghệ thông
tin. Theo thuật ngữ hiện nay, robot là sản phẩm của ngành cơ - điện tử (Mechatronics).
Khía cạnh nhân văn và khía cạnh khoa học - kỹ thuật của việc sản sinh ra robot
thống nhất ở một điểm: thực hiện hoài bão của con người, là tạo ra thiết bị thay thế mình
trong những hoạt động không thích hợp với mình, như:
- Các công việc lặp đi lặp lại, nhàm chán, nặng nhọc: vận chuyển nguyên vật liệu, lắp
ráp, lau cọ nhà,...
- Trong môi trường khắc nghiệt hoặc nguy hiểm: như ngoài khoảng không vũ trụ, trên
chiến trường, dưới nước sâu, trong lòng đất, nơi có phóng xạ, nhiệt độ cao,...
- Những việc đòi hỏi độ chính xác cao, như thông tắc mạch máu hoặc các ống dẫn trong
cơ thể, lắp ráp các cấu tử trong vi mạch,...
Lĩnh vực ứng dựng của robot rất rộng và ngày càng được mở rộng thêm. Ngày
nay, khái niệm về robot đã mở rộng hơn khái niệm nguyên thuỷ rất nhiều. Sự phỏng tác
về kết cấu, chức năng, dáng vẻ của con người là cần thiết nhưng không còn ngự trị trong
11
kỹ thuật robot nữa. Kết cấu của nhiều "con" robot khác xa với kết cấu các bộ phận của
cơ thể người và chúng cũng có thể thực hiện được những việc vượt xa khả năng của con
người.
1.2 Phân loại robot công nghiệp
Thế giới robot hiện nay đã rất phong phú và đa dạng, vì vậy phân loại chúng
không đơn giản. Có rất nhiều quan điểm phân loại khác nhau. Mỗi quan điểm phục vụ
một mục đích riêng. Tuy nhiên, có thể nêu ra đây 3 cách phân loại cơ bản: theo kết cấu,
theo điều khiển và theo phạm vi ứng dụng robot.
1.2.1. Phân loại theo kết cấu
Theo kết cấu (hay theo hình học), người ta phân robot thành các loại: đề các, trụ,
cầu, SCADA, kiểu tay người và các dạng khác nưa (xem các hình từ 1.4 đến hình 1.9).
1.2.2. Phân loại theo điều khiển
Có 2 điều khiển robot: điều khiển hở và điều khiển kín.
Điều khiển hở, dung truyền động bước (động cơ điện hoặc động cơ thủy lực, khí
nén,… ) mà quãng đường hoặc góc dịch chuyển tỷ lệ với số xung điều khiển. Kiểu điều
khiển này khá đơn giản, nhưng đạt độ chính xác thấp.
Điều khiển kín (hay điều khiển servo), sử dụng tín hiệu phản hồi vị trí để tang độ
chính xác điều khiển. Có 2 kiểu điều khiển servo: điều khiển điểm – điểm và điều khiển
theo đường (contour).
Với điều khiển điểm – điểm, phần công tác dịch chuyển từ điểm này đến điểm kia
theo đường thẳng với tốc độ cao (không àm việc). Nó chỉ làm việc tại các điểm dừng.
Kiểu điều khiển này được dung trên các robot hàn điểm, Vận chuyển, tán đinh, bắn
đinh,…
Điều khiển contour đảm bảo cho phần công tác dịch chuyển theo quỹ đạo bất kỳ,
với tốc độ có thể điều khiển được. Có thể gặp kiểu điều khiển này trên các robot hàn hồ
quang, phun sơn.
Hình 1.1 Tay máy kiểu tọa độ đề các
12
Hình 1.2 Cấu trúc tay máy kiểu tọa độ trụ
Hình 1.3 Tay máy kiểu cầu
Hình 1.4 Tay máy kiểu SCADA
Hình 1.5 Tay máy kiểu tay người
13
Hình 1.6 Khớp cổ tay
1.2.3. Phân loại theo ứng dụng
Cách phân loại này dựa vào ứng dụng của robot. Ví dụ, có robot công nghiệp,
robot dung trong nghiên cứu khoa học, robot dung trong kỹ thuật vũ trụ, robot dung
trong quân sự,…(Hình 1.7)
Hình 1.7 Một số loại robot được ứng dụng trong thực tế
14
1.3 Một số ứng dụng của robot
1.3.1 Trong công nghiệp
Robot được sử dụng rộng rãi trong một loạt các ứng dụng công nghiệp. Các ứng
dụng sớm nhất có thể kể đến là xử lý vật liệu, hàn điểm và phun sơn. Robot ban đầu
được áp dụng cho các công việc nóng bức, nặng nhọc và nguy hiểm như đúc khuôn, rèn
và hàn điểm.
Robot được sử dụng trong nhiều ứng dụng khác, ví dụ: Cắt, mài nhẵn, sửa chữa
bảo dưỡng máy công cụ, đúc trong ngành công nghiệp nhựa, áp dụng chất bịt kín cho
kính chắn gió xe hơi, chọn các vật phẩm rời khỏi băng tải và đóng gói chúng vào giá
nâng, …vv.
Các ứng dụng này, và các vấn đề liên quan, được báo cáo trong nhiều hội nghị
chuyên ngành. Các ứng dụng mới sáng tạo bao gồm hàn bằng chùm tia laser (Kehoe
1984) và cắt bằng tia nước áp lực cao [1].
1.3.2 Các ứng dụng trong phòng thí nghiệm
Robot đang cho thấy ứng dụng ngày càng tăng trong các phòng thí nghiệm.
Chúng thực hiện tốt các nhiệm vụ lặp đi lặp lại, chẳng hạn như đặt các ống nghiệm vào
các dụng cụ đo đạc, làm giảm kỹ thuật viên phòng thí nghiệm của nhiều công việc tẻ
nhạt. Ở giai đoạn này, rô bốt được sử dụng để thực hiện tự động các công việc thủ công
[1].
1.3.3 Các ứng dụng công nghệ hạt nhân
Công nghệ Robotics tìm thấy ứng dụng đầu tiên của nó trong ngành công nghiệp
hạt nhân với sự phát triển của các nhà điều hành điện tử để xử lý vật liệu phóng xạ
(Martin and Hamet, 1984). Gần đây, robot đã được sử dụng để hàn từ xa và kiểm tra
đường ống trong các khu vực bức xạ cao [27].
1.3.4 Các ứng dụng trong nông nghiệp
Đối với nhiều người, ý tưởng về việc trồng cây bắp hay thu hoạch tự động là khoa
học viễn tưởng, nhưng những nghiên cứu nghiêm túc đang được tiến hành trong việc
ứng dụng robot vào nông nghiệp. Một trong những dự án thành công nhất từ trước tới
nay là sự phát triển của một robot cắt lông cừu ở Úc. Quỹ đạo của kéo cắt trên cơ thể
của cừu được lập trình sử dụng một mô hình hình học của một con cừu [27].
1.3.5 Ứng dụng trong thám hiểm không gian
15
Khám phá không gian đặt ra những vấn đề đặc biệt cho robot. Môi trường ngoài
không gian là thù địch với con người. Con người chỉ có thể làm việc trong thời gian
ngắn ngoài không gian với những người yêu cầu quần áo bảo hộ đắt tiền và môi trường
sinh học giống như Trái Đất. Vì vậy, nhiều phi hành gia đã cho rằng robot, chứ không
phải con người, nên được gửi vào vũ trụ [27].
1.3.6 Ứng dụng trong thiết bị lặn
Hai sự kiện trong mùa hè (ở bán cầu bắc) năm 1985 đã nâng cao nhận thức của
công chúng về các ứng dụng dưới biển của robotic. Vụ tai nạn của một chiếc máy bay
Air Jumbo của Air India rơi xuống Đại Tây Dương ngoài khơi Ireland. Một robot lặn có
hướng dẫn từ xa, thường được sử dụng để đặt cáp, được sử dụng để tìm và phục hồi các
hộp đen của máy bay [27].
1.3.7 Ứng dụng trong giáo dục
Robot xuất hiện trong lớp học theo ba hình thức riêng biệt. Đầu tiên, các chương
trình giáo dục sử dụng mô phỏng điều khiển robot như một phương tiện dạy học. Ngôn
ngữ lập trình Karel the Robot, một tập hợp con của Pascal, được sử dụng như một ngôn
ngữ lập trình giới thiệu (Pattis 1981). Thứ hai, và hiện tại phổ biến nhất, việc sử dụng
robot trong giáo dục là việc sử dụng robot rùa Tasman kết hợp với ngôn ngữ LOGO để
dạy tính đáng tin cậy của máy tính. Hình thức sử dụng thứ ba là robot trong lớp học.
Một loạt các cánh tay thao tác chi phí thấp, robot di động và các hệ thống hoàn chỉnh đã
được phát triển để sử dụng trong phòng thí nghiệm giáo dục về robot [27].
1.3.8 Ứng dụng trong hỗ trợ người khuyết tật
Robot có tiềm năng hỗ trợ người tàn tật rất lớn từ xe lăn tự động, vận chuyển
người tàn tật trong bệnh viện, đáp ứng với các lệnh bằng giọng nói, đến robot chăm sóc,
cho ăn đối với người tàn tật nghiêm trọng. Mục tiêu quan trọng của nghiên cứu trong
lĩnh vực này là sử dụng máy móc khôi phục lại một số công việc tự chủ mà người dùng
bị mất khi họ không thể sử dụng các chức năng cơ thể của mình.
Nghiên cứu phát triển robot để sử dụng cho những người khuyết tật cũng thúc
đẩy công nghệ phát triển. Công nghệ cảm biến đang gia tăng giới hạn các khả năng để
bảo vệ người dùng và thực hiện các tác vụ mong muốn trong môi trường không có cấu
trúc [27].
1.4 Bài toán động học thuận tay máy
16
Hình 1.8 Hình 2D hệ cánh tay robot do nhóm đề xuất
Bảng 1.1 Bảng D – H của hệ cánh tay robot
0 0 0
0 0
0 0
Ma trận chuyển đổi đồng nhất của hệ cánh tay robot được trình bầy từ (1) đến (3):
Từ (1), (2), (3) ta suy ra ma trận chuyển đổi đồng nhất như (4):
(4)
Ta có, ma trận P được trình bày như sau:
(5)
Ta có từ tính chất nối tiếp của 3 hệ trục tọa độ, suy ra phương trình:
(6)
17
Từ (1) đến (6) thực hiện việc tính toán động học thuận cánh tay máy cho hệ cánh tay
robot được đề xuất trong đề tài này.
1.5 Bài toán động học nghịch tay máy
Để tính toán động học nghịch tay máy cho hệ cánh tay robot được trình bày theo các
tính toán sau:
Ta có phương trình các hệ trục x, y, z được trình bày từ (7) đến (9)
(7)
(8)
(9)
Góc của khớp thứ nhất được tính toán như sau:
Từ phương trình (7) và (8) ta có:
(10)
(11)
Lấy (11) chia (10) ta được:
(12)
Suy ra góc khớp thứ nhất được tính toán như sau:
(13)
Góc của khớp thứ 2 được tính toán như sau:
Từ phương trình (7), ta có:
(14)
Thay (14) vào (8), ta có:
(15)
(16)
(17)
Với
18
(18)
Góc khớp thứ 3 được tính toán như sau:
(19)
Từ (14) và (19), ta có:
(20)
19
CHƯƠNG 2: GIỚI THIỆU PHẦN CỨNG VÀ PHẦN MỀM
Nội dung của chương bao gồm:
Giới thiệu vi xử lý Arduino Uno R3
Giới thiệu phần mềm viết chương trình Arduino IDE
Lý thuyết về Matlab
2.1 Giới thiệu về vi xử lý Arduino Uno R3
2.1.1 Khái niệm về vi điều khiển
Vi điều khiển là một hệ thống được tích hợp trên một chip, bao gồm một vi xử
lý có hiệu suất đủ dùng và giá thành thấp kết hợp với các khối ngoại vi như bộ nhớ, các
module vào/ra, các module biến đổi ADC/DAC, bộ định thời...
2.1.2 Giới thiệu về board Arduino
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên trại
Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy. Cái tên
"Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của dự án này thường
xuyên gặp mặt.
Mạch Arduino Uno là dòng mạch Arduino phổ biến, khi mới bắt đầu làm quen,
lập trình với Arduino thì mạch Arduino thƣờng nói tới chính là dòng Arduino UNO.
Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (Mạch Arduino Uno R3).
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn ngữ riêng. Ngôn
ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung trên một môi
trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân. Và Wiring lại là một
biến thể của C/C++. Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++.
Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã làm việc với nhau để
giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với cộng đồng mã nguồn mở. một trong số các
nhà nghiên cứu là David Cuarlielles, đã phổ biến ý tưởng này.
Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng,
không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra
những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ
cấu chấp hành.
Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm
một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở). Người ta
ước tính khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản 20
xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa
tới tay người dùng.
Phần cứng Arduino gốc được sản xuất bởi công ty Italy tên là Smart Projects.
Một vài board dẫn xuất từ Arduino cũng được thiết kế bởi công ty của Mỹ tên là
SparkFun Electronics. Nhiều phiên bản của Arduino cũng đã được sản xuất phù hợp cho
nhiều mục đích sử dụng:
Hình 2.1 Những phiên bản của Arduino
2.1.3 Board Arduino Uno R3
"Uno" có nghĩa là một bằng tiếng Ý và được đặt tên để đánh dấu việc phát hành
sắp tới của Arduino 1.0. Uno và phiên bản 1.0 sẽ là phiên bản tài liệu tham khảo của
Arduino. Uno là mới nhất trong các loại board Arduino, và các mô hình tham chiếu cho
các nền tảng Arduino.
Arduino Uno là một “hội đồng quản trị” dựa trên ATmega328. Nó có 14 số chân
đầu vào / đầu ra, 6 đầu vào analog, 16 MHz cộng hưởng gốm, kết nối USB, một jack
cắm điện, một tiêu đề ICSP, và một nút reset. Nó chứa tất cả mọi thứ cần thiết để hỗ trợ
các vi điều khiển; chỉ cần kết nối nó với máy tính bằng cáp USB hoặc cấp điện cho nó
để bắt đầu.
21
Uno khác với tất cả các phiên bản trước ở chỗ nó không sử dụng các FTDI chip
điều khiển USB-to-serial. Thay vào đó, nó có tính năng Atmega 16U2 lập trình như là
một công cụ chuyển đổi USB-to-serial.
Arduino Uno R3 là dòng cơ bản, linh hoạt, thƣờng được sử dụng cho người mới
bắt đầu. Chúng ta có thể sử dụng các dòng Arduino khác như: Arduino Mega, Arduino
Nano, Arduino Micro… Nhưng với những ứng dụng cơ bản thì mạch Arduino Uno là
lựa chọn phù hợp nhất.
Hình 2.2 Board Arduino Uno R3
Phiên bản 3 (R3) của Uno có các tính năng mới sau đây:
Thêm SDA và SCL gần với pin Aref và hai chân mới được đặt gần với pin
RESET, các IOREF cho phép thích ứng với điện áp cung cấp.
Đặt lại mạch khỏe mạnh hơn.
Atmega 16U2 thay thế 8U2.
2.1.4 Cấu trúc và thông số
22
Bảng 2.1 Một vài thông số của Board Arduino Uno R3
ATmega328 họ 8bit Vi điều khiển
5V DC (chỉ được cấp qua cổng USB) Điện áp hoạt động
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng
bởi bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
a. Vi điều khiển & bộ nhớ
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,
ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản như điều
khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo
nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,…
Hình 2.3 Vi điều khiển Atmega328 tiêu chuẩn
32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho
bootloader nhưng đừng lo, hiếm khi nào cần quá 20KB bộ nhớ này.
23
2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo
khi lập trình sẽ lưu ở đây. Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM.
Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ phải bận tâm. Khi
mất điện, dữ liệu trên SRAM sẽ bị mất.
1Kb cho EEPROM (Electrically Eraseble Programmable Read Only
Memory): đây giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu vào mà
không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
b. Vị trí và các chân chức năng
Nếu không có sẵn nguồn từ cổng USB, có thể cấp nguồn cho Arduino UNO từ
một bộ chuyển đổi AC→DC hoặc pin. Các bộ chuyển đổi có thể được kết nối bằng một
plug-2.1mm trung tâm tích cực vào jack cắm điện. Trường hợp cấp nguồn quá ngưỡng
trên sẽ làm hỏng Arduino UNO.
Các chân năng lượng:
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi dùng
các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải
được nối với nhau.
5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa ở chân này là 50mA.
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, ta nối cực
dương của nguồn với chân này và cực âm với chân GND.
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được
đo ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy không được lấy nguồn
5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương
với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.
Các chân Input/Output:
24
Hình 2.4 Sơ đồ chân board Uno R3
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2
mức điện áp là 0V và 5V với dòng tối đa trên mỗi chân là 40mA.
Một số chân digital có các chức năng đặc biệt như sau:
Chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive
– RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác
thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết
nối Serial không dây. Nếu không cần giao tiếp Serial, không nên sử dụng 2
chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với
độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm
analogWrite(). Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở
chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những
chân khác.
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các
chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng
giao thức SPI với các thiết bị khác.
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm
nút Reset, ta sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số
13. Khi chân này được người dùng sử dụng, LED sẽ sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit
(0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board,
ta có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu cấp
25
điện áp 2.5V vào chân này thì ta có thể dùng các chân analog để đo điện áp trong khoảng
từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp
I2C/TWI với các thiết bị khác.
2.2 Phần mềm lập trình cho board Arduino
Hiện nay, phần mềm Matlab đã hỗ trợ cho người dùng bộ thư viện Simulink hỗ
trợ board Arduino. Nhóm sinh viên đã thực hiện viết chương trình điều khiển trên phần
mềm Matlab/Simulink để điều khiển hệ thống bồn nước đơn đạt điểm đặt mong muốn.
Hướng dẫn cài đặt thư viên Arduino cho Matlab
Bước 1: Cài đặt Arduino IDE như bình thường (download từ trang chủ
arduino.cc)
Bước 2: Cài đặt Hardware Support từ Matlab
Hình 2.5 Cài đặt thư viện Arduino cho Matlab
Bước 3:
26
Hình 2.6 Cài đặt thư viện Arduino cho Matlab
Bước 4:
Hình 2.7 Cài đặt thư viện Arduino cho Matlab
Bước 5:
Hình 2.8 Cài đặt thư viện Arduino cho Matlab
Bước 6:
Hình 2.9 Cài đặt thư viện Arduino cho Matlab
27
Bước 7: Sau bước này thì tạo account và install bình thường.
2.3 Khối nguồn xung
Ở đây, nhóm sinh viên sử dụng khối nguồn chuyển đổi 220VAC – 24VDC (RS-
150-24) để cấp cho động cơ.
Hình 2.10 Khối nguồn xung 12VDC
Thông số kỹ thuật:
Điện áp vào AC: 176-264 VAC.
Công suất: 150W.
Điện áp ra DC: 12V
Các chế độ bảo vệ: ngắn mạch, quá tải, quá áp.
Thiết kế có các lỗ tổ ong để thông khí, tránh bị tang nhiệt độ bất thường ảnh
hưởng đến các bộ phận bên trong.
Led thông báo có điện.
Sử dụng tụ điện có thể chịu nhiệt đến 105oC.
Chịu được áp AC lên đến 300 VAC trong 5s.
Nhiệt độ chịu được lên đến 70oC.
Chống rung 5G.
Hiệu suất, tuổi thọ, độ tin cậy cao.
Sơ đồ khối:
28
Hình 2.11 Sơ đồ khối bộ nguồn
2.4 Động cơ Servo MG966
Động cơ RC Servo MG996 là loại thường được sử dụng nhiều nhất trong các
thiết kế Robot hoặc dẫn hướng xe. Động cơ RC Servo MG996 có lực kéo mạnh, các
khớp và bánh răng được làm hoàn toàn bằng kim loại nên có độ bền cao, động cơ được
tích hợp sẵn Driver điều khiển động cơ bên trong theo cơ chế phát xung - quay góc nên
rất dễ sử dụng.
Có rất nhiều chủng loại Động cơ RC Servo MG996 được bán trên thị trường với
nhiều mức giá khác nhau, loại chất lượng tốt, phù hợp để làm Robot có các đặc điểm
như sau:
Loại được sản xuất tốt luôn có đầy đủ bộ phụ kiện như hình: (tròn, sao, chữ thập,
4 cánh nhưng nhất định phải có hình tròn, loại chất lượng không tốt có rất ít phụ kiện)
Loại được sản xuất tốt luôn có độ gì nặng khi bạn thử nghiệm bằng cách quay
trục, thử nghiệm bằng cách gắn 1 trong các phụ kiện là các khớp nhựa vào động cơ và
quay bằng tay, loại chất lượng tốt có độ gì nặng, loại không tốt quay rất nhẹ nên cũng
rất yếu.
Loại chất lượng tốt có dây dẫn cứng hơn loại chất lượng kém do xài nguyên liệu
tốt hơn.
Hình 2.12 Động cơ MG966
29
Thông số kỹ thuật:
Chủng loại: Analog RC Servo.
Điện áp hoạt động: 4.8-6.6VDC
Kích thước: 40mm x 20mm x 43mm
Trọng lượng: 55g
Lực kéo:
3.5 kg-cm (180.5 ozin) at 4.8V-1.5A
5.5 kg-cm (208.3 ozin) at 6V-1.5A
Tốc độ quay:
0.17sec / 60 degrees (4.8V no load)
0.13sec / 60 degrees (6.0V no load)
2.5 Bạc đạn đế xoay
Bạc đạn là bộ phận vô cùng quan trọng trong hệ thống máy móc. Trong một thiết
bị máy gồm rất nhiều các loại bạc đạn khác nhau thực hiện những chức năng khác nhau
và có những kích thước khác nhau.
Hình 2.13 Bạc đạn đế xoay
Bạc đạn thực hiện chức năng:
Nâng đỡ bộ phận chuyển động.
Giảm ma sát.
Cung cấp bề mặt chịu mòn có thể thay thế.
Bạc đạn nâng đỡ các bộ phận chuyển động bằng cách chịu các tải hướng tâm và
tải dọc trục.
Bac đạn giảm ma sát bằng cách cung cấp sự tiếp xúc trượt (bạc trượt) hay sự tiếp
xúc lăn tròn.
30
2.6 Mạch giảm áp DC LM2596 3A
Mạch giảm áp DC LM2596 3A là module giảm áp có khả năng điều chỉnh được dòng
ra đến 3A. LM2596 là IC nguồn tích hợp đầy đủ bên trong. Mạch giảm áp DC nhỏ gọn
có khả năng giảm áp từ 30V xuống 1.5V mà vẫn đạt hiệu suất cao (92%). Thích hợp cho
các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như camera, robot,...
Hình 2.14 Module mạch giảm áp DC LM2596 3A
Thông số kỹ thuật:
Module không sử dụng cách ly.
Nguồn đầu vào từ 4V – 35V.
Nguồn đầu ra: 1V – 30V.
Dòng ra tối đa: 3A.
Hiệu suất: 92%.
Công suất: 15W
Kích thước: 45x20x14 (mm)
Hình 2.15 Sơ đồ mạch giảm áp DC dùng IC LM2596
2.7 Tổng quan về Matlab
2.7.1 Giới thiệu về Matlab
MATLAB (viết tắt từ matrix laboratory) được phát triển từ dự án LINPACK &
EISPACK của hãng Mathworks nhằm tạo ra thư viện ma trận phục vụ cho tính toán.
Qua quá trình phát triển lâu dài, MATLAB được phát triển thành một công cụ rất
mạnh, được ứng dụng khá phổ biến trong các trường đại học ở khắp thế giới, đặc biệt là
các nước Mỹ, Bỉ, Canada,… như là công cụ không thể thiếu trong các giáo trình từ cơ
bản đến nâng cao trong các lĩnh vực: toán học cao cấp, khoa học và kỹ thuật. Trong công 31
nghiệp, MATLAB công cụ lựa chọn cho nghiên cứu nâng cao hiệu quả sản xuất, phân
tích đánh giá và ứng dụng.
Với MATLAB, bài toán tính toán, phân tích, thiết kế và mô phỏng trở nên dễ dàng
hơn trong nhiều lĩnh vực chuyên ngành như: Điện, Điện tử, Cơ khí, Cơ điện tử, Vật lý,
…
MATLAB là công cụ tính toán rất mạnh dễ dùng, trực quan dễ mở rộng và phát
triển.
MATLAB có khả năng liên kết đa môi trường, liên kết dễ dàng với ngôn ngữ lập
trình C++, Visual C, FORTRAN, JAVA, …
MATLAB có khả năng xử lý đồ họa mạnh trong không gian hai chiều và ba
chiều.
Các TOOLBOX trong MATLAB rất phong phú, đa năng là công cụ nghiên cứu,
thiết kế cực kỳ hiệu quả trong các lĩnh vực chuyên ngành.
Công cụ mô phỏng trực quan SIMULINK chạy trong môi trường MATLAB giúp
cho bài toán phân tích thiết kế dễ dàng, sinh động hơn.
MATLAB có kiến trúc mở, dễ dàng trong việc xây dựng thêm các module tính
toán kỹ thuật theo tiêu chuẩn công nghiệp và truyền thống.
Hiện nay, MATLAB có đến hàng ngàn lệnh và hàm tiện ích. Để mở rộng môi
trường MATLAB nhằm giải quyết các bài toán thuộc các phạm trù riêng. Các
Toolbox khá quan trọng và tiện ích cho người dùng như toán sơ cấp, xử lý tín
hiệu số, xử lý ảnh, xử lý âm thanh, ma trận thưa, logic mờ, …
Giao diện của phần mềm MATLAB khi bắt đầu chạy ứng dụng:
Hình 2.16 Giao diện Matlab 32
2.7.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng:
Dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng quát), và có
các kiểu dữ liệu được liệt kê sau đây:
Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn,
kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác
kém hơn.
Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab.
Kiểu Sparse.
Kiểu uint8, uint8, uint16, uint64...
Kiểu char ví dụ “Hello”.
Kiểu cell.
Kiểu Structure.
Trong Matlab kiểu dữ liệu double là kiểu mặc định sử dụng trong các phép tính
số học.
Matlab tạo điều kiện thuận lợi cho:
Các khoá học về toán học.
Các kỹ sư, các nhà nghiên cứu khoa học.
Dùng Matlab để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản
xuất.
Toolbox là một công cụ quan trọng trong Matlab: Công cụ này được Matlab cung
cấp cho phép bạn ứng dụng các kỹ thuật để phân tích, thiết kế, mô phỏng các mô hình.
Ta có thể tìm thấy toolbox ở trong môi trường làm việc của:
Mạng neural
Logic mờ
Simulink
2.7.3 Hệ thống Matlab
Hệ thống giao diện của Matlab được chia thành 5 phần:
Môi trường phát triển.
Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh
và các file, ta có thể liệt kê một số như sau:
Desktop.
33
Command Window.
Command History.
Browsers for viewinghelp.
Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin atan,
atan2 etc..., các phép tính đơn giản đến các phép tính phức tạp như tính ma trận
nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library.
Ngôn ngữ Matlab. Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng
lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng.
Đồ hoạ trong Matlab. Bao gồm các câu lệnh thể hiện đồ họa trong môi trường
2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện tương tác giữa
người sử dụng và máy tính.
Giao tiếp với các ngôn ngữ khác. Matlab cho phép tương tác với các ngôn ngữ
khác như C, Fortran …
2.7.4 Giới thiệu về Matlab/Simulink
Chương trình MATLAB là một chương trình viết cho máy tính nhằm hỗ trợ tính
toán cho khoa học, kỹ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân do
nhà phát triển MATHWORKS viết ra.
Các lệnh, tập lệnh của MATLAB lên đến hàng trăm và ngày càng được mở rộng
bởi các phần TOOLBOX và các hàm ứng dụng được xây dựng cho người sử dụng.
MATLAB có hơn 25 TOOLBOX để khảo sát hầu hết những vấn đề về khoa học,
kỹ thuật.
Hình 2.17 Giao diện lập trình Matlab/Simulink
2.7.5 Thiết kế giao diện GUIDE MATLAB
34
Tại cửa sổ Command Window nhập dòng lệnh: “guide”. Lập tức xuất hiện cửa
sổ:
Hình 2.18 Guide quick start
Tại tab Create New GUI thì cho phép bạn 4 sự lựa chọn sau:
Blank GUI (Default): Là bạn lập trình giao diện trống, chưa có thứ gì cả.
GUI with Uicontrols, GUI with Axes and Menu, Modal Question Dialog: Là các
templates đã có giao diện sẵn ở mức cơ bản. Ta đang bắt đầu học thì sẽ chọn
Blank GUI (Default) sau này bạn có kiến thức rồi thì hãy sử dụng các templates
khác.
Tab Open Existing GUI là nơi bạn có thể mở các GUI và bạn đã làm và lưu trước
đó, file này có đuôi là .fig
Hình 2.19 Giao diện Matlab/GUI
35
Hình 2.20 Ví dụ một số đối tượng trong GUI
Push Button: Dùng để khi bạn nhấn chuột vào thì nút này sẽ xử lý một công việc
nào đó mà bạn muốn.
Static Text: Dùng để hiện thì thông tin cho một đối tượng nào đó hoặc bạn có thể
xuất dữ liệu từ trương trình ra đây
Để thay đổi tên của các tool này cũng như màu sắc, thuộc tính… thì chúng ta chỉ
cần nhấp đúp chuột vào Tool đó thì lập tức một cửa sổ mới xuất hiện được gọi là
Inspector.
Hình 2.21 Sử dụng thông số cho các đối tượng sử dụng
Cửa sổ Inspector này cho phép chúng ta thay đổi các thuộc tính của đối tượng
Tool nào đó mà chúng ta muốn. Chúng ta có thể thay đổi màu, cỡ chữ… theo ý thích
của mình. Ở đây nhóm sinh sinh muốn nhấn mạnh các thuộc tính quan trọng mà chúng
ta cần chú ý để sau này lập trình cho nó dễ dàng thôi.
36
String: Là trường để hiện thị tên nào đó mà chúng ta muốn hiện thị ở GUI. Nó
hiện thị cho chúng ta nhìn thấy như Ví dụ trên đó là “Nhập Tên tài khoản”, nó không
ảnh hưởng đến trương trình (Code) mà bạn thực hiện. Bạn có thể thay đổi thành tên nào
cũng được.
Style: Chức năng cái này là bạn có thể thay đổi đối tượng Tool này thành một đối
tượng khác mà chúng ta muốn ví dụ như là chúng ta thay đổi Static Text thành Push
Button chẳng hạn. Nhưng thường thì chúng ta cũng không nên động đến cái này vì nếu
chúng ta có kéo thả đối tượng tool nào đó mà sai thì bạn hoàn toàn có để delete (xóa) đi.
Tag: Cái trường này là rất quan trọng bạn hãy chú ý đến nhé. Nó có chức năng là
định danh cho Tool đó để khi vào lập trình bạn lấy tên này để gọi sử lý một chức năng
nào đó. Nó giống như là Mã Sinh Viên của một ai đó vậy. Bạn có thể thay đổi thành tên
nào cũng được nhưng tuyệt đối bạn không được đặt tên trùng với tên mà các Tool khác
đã đặt trước đó. Bởi vì nó phải là tên duy nhất thì sau này gọi nó mới được. Chứ 2 tên
trùng nhau thì sẽ lỗi trương trình không biết gọi đến Tool nào cả.
Khi thay đổi xong thì chúng ta chỉ cần tắt Inspector đi thì tự động trương trình sẽ
lưu lại các thiết lập mà chúng ta đã thay đổi.
Để chạy trương trình hay nói cách khác hiện thị nên thì chúng ta hãy nhấn vào
hình Tam giác như hình dưới. Nếu chúng ta chưa lưu trương trình này thì một cửa sổ
hiện nên cho phép chúng ta đặt tên để lưu sao đó mới chạy.
Hình 2.22 Chạy kết quả set up
2.8 Phần mềm SolidWorks
37
SOLIDWORKS là phần mềm thiết kế 3D chạy trên hệ điều hành Windows và có
mặt từ năm 1997, được tạo bởi công ty Dassault Systèmes SOLIDWORKS Corp., là
một nhánh của Dassault Systèmes, S. A. (Vélizy, Pháp). SOLIDWORKS hiện tại được
dùng bởi hơn 2 triệu kỹ sư và nhà thiết kế với hơn 165,000 công ty trên toàn thế giới.
Hình 2.23 Logo phần mềm SolidWorks
Phần mềm SOLIDWORKS được biết đến từ phiên bản SOLIDWORKS 1995.
SOLIDWORKS đã có nhiều bước phát triển vượt bậc về tính năng, hiệu suất và khả
năng đáp ứng các nhu cầu thiết kế 3D trong các ngành kỹ thuật, công nghiệp.
SOLIDWORKS còn được phát triển và ứng dụng rộng rãi trong các ngành khác như:
đường ống, kiến trúc, nội thất, xây dựng… nhờ tính năng thiết kế 3D mạnh mẽ và danh
mục các giải pháp hỗ trợ đa dạng.
Các dòng sản phẩm phân tích, mô phỏng của SOLIDWORKS giúp giải quyết các
vấn đề liên quan đến lắp ghép, truyền động, động học (Motion), độ bền, ứng suất, mô
phỏng dòng chảy và áp suất… SOLIDWORKS CAM là sản phẩm mới của
SOLIDWORKS hỗ trợ lập trình gia công phay, tiện 2 – 5 trục.
Với trên 7.600 đối tác giải pháp, SOLIDWORKS có thể thực hiện add-on nhiều
giải pháp phần mềm khác như: phần mềm SolidCAM, MasterCAM cho lập trình gia
công CNC, phần mềm SolidPlant cho thiết kế đường ống, kết cấu, 3D QuicPress, 3D
QuickMold cho thiết kế khuôn và khuôn dập.
Tính năng của phần mềm SolidWorks
a. Thiết kế mô hình 3D
Trong phần mềm SOLIDWORKS thì đây được coi là tính năng nổi bật với việc
thiết kế các các biên dạng 2D bạn sẽ dựng được các khối 3D theo yêu cầu.
b. Lắp ráp chi tiết
Các chi tiết 3D sau khi được thiết kế xong bởi tính năng thiết kế có thể lắp ráp
lại với nhau tạo thành một bộ phận máy hoặc một máy hoàn chỉnh. Tính năng
38
này giúp bạn dễ dàng chỉnh sửa, thỏa sức sáng tạo và nghiên cứu dễ dàng cho
những sản phẩm mới.
c. Xuất bản vẽ dễ dàng
Phần mềm SOLIDWORKS cho phép ta tạo các hình chiếu vuông góc các chi tiết
hoặc các bản lắp với tỉ lệ và vị trí do người sử dụng quy định mà không ảnh
hưởng đến kích thước.
Công cụ tạo kích thước tự động và kích thước theo quy định của người sử dụng.
Sau đó nhanh chóng tạo ra các chú thích cho các lỗ một cách nhanh chóng. Chức
năng ghi độ nhám bề mặt, dung sai kích thước và hình học được sử dụng dễ dàng.
d. Tính năng Tab và Slot
Phần mềm SOLIDWORKS 2018 cho phép người dùng tự động tạo ra các tính
năng tab và slot được sử dụng để tự lắp ghép các bộ phận hàn. Các tính năng cải
tiến kim loại khác bao gồm tính năng Normal Cut mới đảm bảo duy trì khoảng
cách thích hợp cho sản xuất, và khả năng uốn mới cho phép người dùng tạo mới
và trải phẳng góc uốn.
e. Cải tiến quản lý dự án và quy trình
SOLIDWORKS Manage cung cấp công cụ quản lý dữ liệu, dự án, và quản lý quy
trình trong một gói phần mềm quen thuộc. Các khả năng quản lý các dự án, và
quản lý quy trình được thêm vào SOLIDWORKS PDM Professional.
f. Các tiện ích cải tiến
Online Licensing giúp cho việc sử dụng các license trên nhiều máy tính tiện lợi
hơn trước rất nhiều. SOLIDWORKS Login sẽ chuyển các nội dung và cài đặt các
tùy chịn đến bất kỳ máy tính nào được cài SOLIDWORKS, trong khi Admin
Portal cho phép quản lý các sản phẩm và dịch vụ của SOLIDWORKS dễ dàng
hơn.
g. Tính năng gia công
Giải pháp gia công CAD CAM kết hợp, giải pháp có tên SOLIDWORKS CAM,
nó được tách ra để bán riêng. Giài pháp này khá đơn giản và dễ dùng. Các modul
đơn giản thân thiện. Vậy nên để trải nghiệm bạn có thể đăng kí tại đây để dùng
thử ngay giải pháp này cho gia công.
h. Phân tích động lực học
39
SOLIDWORKS Simulation cung cấp các công cụ mô phỏng để kiểm tra và cải
thiện chất lượng bản thiết kế của bạn. Các thuộc tính vật liệu, mối ghép, quan hệ
hình học được định nghĩa trong suốt quá trình thiết kế được cập nhật đầy đủ trong
mô phỏng.
Các giải pháp phần mềm SOLIDWORKS 3D
SOLIDWORKS Premium là gói thiết kế 3D CAD cao cấp nhất trong hệ thống
phần mềm SOLIDWORKS, được bổ sung các tính năng về Simulation Express và khả
năng tiếp nhận, xử lý dữ liệu quét 3D.
Giải pháp phần mềm SOLIDWORKS Professional so với gói CAD 3D tiêu
chuẩn, được bổ sung thư viện chi tiết tiêu chuẩn, các công cụ kẹp nhanh, các công cụ
giúp tự động tính toán giá thành sản phẩm gia công và truy nhập chuyển đổi các dữ liệu
hình học, có các công cụ phụ trợ giúp tự động tìm kiếm lỗi trong các thiết kế, PhotoView
360…
SOLIDWORKS Standard là cung cấp khả năng thiết kế 3D mạnh mẽ, mô hình
hóa chi tiết và các lắp ghép, tái sử dụng thiết kế và tự động hóa, mô phỏng hoạt họa…
SOLIDWORKS Visualize cung cấp khả năng tạo các hình ảnh chất lượng, hình
ảnh động và nội dung 3D khác chỉ trong vài phút đôi khi chỉ trong vài giây.
SOLIDWORKS Electrical giúp tích hợp thiết kế điện và thiết kế cơ khí. Có
SOLIDWORKS Electrical 2D và SOLIDWORKS Electrical 3D để bạn lựa chọn cho
từng nhu cầu công việc.
SOLIDWORKS PCB hỗ trợ thiết kế bản vẽ mạch điện tử Altium
Giải pháp phần mềm SOLIDWORKS Simulation: Công cụ mô phỏng và xác
nhận thiết kế toàn diện: mô phỏng động học, motion, mô phỏng tĩnh, tần số, mất ổn định
fatigue, phân tích mỏi, phân tích kiểm tra rơi tự do, phân tích phi tuyến, áp suất bình
bồn…
SOLIDWORKS Flow Simulation cho phép mô phỏng dòng chảy, truyền nhiệt,
lực dòng chất lỏng.
SOLIDWORKS Flow Simulation HAVC – Giải pháp phân tích tối ưu nhiệt độ,
thông gió và hệ thống điều hòa không khí.
SOLIDWORKS Plastics: mô phỏng dòng chảy của nhựa trong khuôn, dự đoán
các khuyết tật trong quá trình thực hiện khuôn ép nhựa.
40
Giải pháp SOLIDWORKS Composer một trong những giải pháp phần mềm
SOLIDWORKS giúp bạn trong việc tạo hình ảnh, video một cách hoàn toàn tự động
ngay từ khâu thiết kế, tạo tài liệu hướng dẫn kỹ thuật, lắp ráp.
SOLIDWORKS MBD là một giải pháp được tích hợp, giải pháp sản xuất không
cần bản vẽ để mô tả, tổ chức và phát hành 3D PMI và dữ liệu mô hình 3D một cách trực
tiếp trong từng lĩnh vực công nghiệp với các chuẩn chung.
SOLIDWORKS Enterprise PDM – Product Datamanagement: Quản lý dữ
liệu sản phẩm doanh nghiệp một cách an toàn, bảo mật, chính xác, tránh sai sót trong
việc hợp tác và quản lý thiết kế, loại bỏ việc làm lại hoặc mất công khôi phục dữ liệu,
hỗ trợ tổ chức quy trình làm việc và giúp việc trao đổi thông tin thiết kế được thống nhất
trong một hệ thống duy nhất.
Giải pháp phần mềm SOLIDWORKS CAM: Được phát triển từ CAM Works,
SOLIDWORKS CAM là một giải pháp kết hợp giữa phần mềm SolidCAM và
SOLIDWORKS thông minh, đã bổ sung vào hệ thống giải pháp tổng thể của
SOLIDWORKS cho một quy trình đầy đủ từ phác thảo ý tưởng, xây dựng mô hình thiết
kế, quản lý dữ liệu đến sản xuất. Tất cả những thay đổi trong thiết kế SOLIDWORKS
3D CAD sẽ được tự động cập nhật trong SOLIDWORKS CAM, do đó, giúp tiết kiệm
rất nhiều thời gian sản xuất của doanh nghiệp.
Phần mềm SOLIDWORKS Inspection: giải pháp hỗ trợ đo kiểm sau sản xuất
một cách đắc lực cho mọi loại công cụ đo từ các thước kẹp điện tử đến các hệ thống máy
đo CMM cao cấp.
SOLIDWORKS Subscription: Gói dịch vụ nâng cấp và hỗ trợ kỹ thuật hàng
năm của SOLIDWORKS nhằm giúp khách hàng khai thác và tối ưu hóa các dịch vụ giá
trị gia tăng trong khi áp dụng các giải pháp phần mềm 3D SOLIDWORKS trong phát
triển sản phẩm.
41
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT
3.1 Động học thuận robot 3.1.1 Giới thiệu các thành phần cơ bản có trong robot
Hình 3.1 Các thành phần cơ bản có trong robot
Trong một robot thường có những thành phần cơ bản như sau:
Các loại trục tọa độ: {BB}, {J1}, {EE},… -
Các biến trạng thái từ các khớp: góc, vận tốc ,… -
Các tín hiệu điều khiển từ khớp: Mô men xoắn,… -
Thông số các trục: chiều dài, … -
Các biến trạng thái từ điểm cuối: vận tốc,… -
Các tín hiệu điều khiển từ điểm cuối: Lực EE, mô men xoắn,… -
3.1.2 Những thành phần của bài toán động học robot
Động học thuận là bài toán giải quyết mối quan hệ giữa các biến trạng thái điểm
đầu của robot so với điểm cuối của robot
Động học thuận đề cập đến việc sử dụng các phương trình động học của robot để
tính toán vị trí của bộ phận đầu cuối từ các giá trị được chỉ định cho các biến của các
khớp.
Các phương trình động học của robot được sử dụng trong robot, trò chơi máy
tính và chuyển động. Quá trình tính toán ngược lại các tham số khớp sẽ cho biết được
vị trí xác định của bộ phận đầu cuối được gọi là động học nghịch
Các phương trình động học thuận có thể được sử dụng như một phương pháp
trong đồ họa máy tính 3D để tạo các chuyển động mô hình.
42
Khái niệm thiết yếu của hoạt hình động học phía trước là vị trí của các bộ phận
cụ thể của cơ cấu cần phân tích tại một thời điểm xác định được tính từ vị trí và hướng
của đối tượng, cùng với bất kỳ thông tin nào về khớp của cơ cấu.
Vì vậy, ví dụ, nếu đối tượng được phân tích là một cánh tay với vai còn lại ở một
vị trí cố định, vị trí của đầu ngón tay cái sẽ được tính từ các góc của khớp vai, khuỷu
tay, cổ tay, ngón tay cái và khớp ngón tay. Ba trong số các khớp này (vai, cổ tay và gốc
ngón cái) có nhiều hơn một bậc tự do, tất cả đều phải được tính đến. Nếu mô hình là
toàn bộ hình người, thì vị trí của vai cũng sẽ phải được tính từ các vị trí khác của đối
tượng.
Phương pháp động học thuận có thể được phân biệt với động học ngược bằng
phương pháp tính toán trong động học nghịch đảo, hướng của các phần khớp nối được
tính từ vị trí mong muốn của các điểm nhất định trên đối tượng.
Nó cũng được phân biệt với các mô hình chuyển động khác bởi thực tế là chuyển
động của đối tượng được xác định trực tiếp, không có sử dụng bất kỳ định luật vật lý,
chẳng hạn như trọng lực hoặc va chạm với các đối tượng khác.
Hình 3.2 Ví dụ một robot đơn giản
Đối với ví dụ trên thì động học thuận robot có thể miêu tả bằng hệ phương trình:
Động học thuận được dùng để:
Tính toán và kiểm soát vị trí đầu cuối mong muốn -
Tính toán được vận tốc và gia tốc của vị trí cuối và các khớp. -
Cung cấp cơ sở để rút ra động lực học của robot. -
3.1.2.1 Bậc tự do
43
Trong robot, bậc tự do (DOF) của một đối tượng là số lượng tham số độc lập
dùng để xác định cấu hình của đối tượng cần xem xét
Trong không gian (3D):
Trong mặt phẳng (2D):
Trong đó:
n: số lượng thanh nối (kể cả mặt đất) -
m: số lượng khớp nối -
: số bậc tự do tại khớp thứ j -
3.1.2.2 Biểu diễn quan hệ giữa các thanh trong robot
Một liên kết được xác định là một mối quan hệ giữa hai trục lân cận (các khớp
liền nhau) của cơ cấu.
Hình 3.3 Quan hệ giữa 2 thanh trong cơ cấu
Từ khoảng cách giữa 2 thanh ta có thể lấy được khoảng cách giữa 2 thanh trục là -
a
Từ góc giữa 2 thanh ta có thể lấy được góc giữa 2 thanh trục là -
Góc của khớp là -
3.1.3 Quy tắc Denavit-Hartenberg (Bảng D-H) Phương pháp tính toán trực tiếp chỉ áp dụng được cho các cơ cấu đơn giản. Để
có thể giải các bài toán tổng quát cần một thuật giải chung.
44
Một trong những thuật giải như vậy xuất phát từ quy tắc Denavit-Hartenberg,
được Denavit và Hartenberg xây dựng vào năm 1955.
Đó là quy tắc thiết lập hệ thống toạ độ trên các cặp khâu – khớp trên tay máy.
Dựa trên hệ toạ độ này có thể mô tả các cặp bằng hệ thống các tham số, biến khớp và áp
dụng một dạng phương trình tổng quát cho bài toán động học tay máy.
Theo quy tắc Denavit-Hartenberg, quy tắc gán hệ trục tọa độ cho các thanh liên
kết, khớp như sau:
Khung {i} được đính kèm với liên kết {i} -
Đặt trục toạ độ Zj dọc theo trục của khớp sau (thứ i+1). -
Trục xi được chọn dọc theo đường vuông góc chung của hai trục (zi và zi + 1). -
Trục yi được chọn để hoàn thành hệ tọa độ tay phải. -
Khung {0} được chọn khớp {1} khi biến khớp đầu tiên bằng 0 -
Khung {N} có thể được tự do lựa chọn nhưng thường đảm bảo càng nhiều tham -
số trục bằng không càng tốt
Xác định các thông số thanh liên kết của bảng D-H:
: khoảng cách từ tới dọc theo trục -
: góc từ tới dọc theo trục -
: khoảng cách từ tới dọc theo trục -
: góc từ tới dọc theo trục -
3.1.4 Tính toán động học thuận robot - Thiết lập bảng D-H cho robot cần tính
- Tính toán các ma trận theo thứ tự:
45
3.2 Động học nghịch robot Động học nghịch là bài toán giải quyết mối quan hệ giữa điểm cuối của robot so
với các biến trạng thái điểm đầu của robot
Động học nghịch là quá trình tính toán các tham số khớp biến cần thiết để đặt
phần cuối của chuỗi động học, chẳng hạn như bộ điều khiển robot hoặc bộ xương của
nhân vật hoạt hình, ở một vị trí và hướng nhất định so với điểm bắt đầu
Động học nghịch cũng được sử dụng để khôi phục các chuyển động của một vật
thể trong thực tế từ một số dữ liệu khác, chẳng hạn như một bộ phim về các chuyển
động, hoặc một bộ phim mà một camera tự tạo ra các chuyển động đó. Ví dụ, trong đó
các chuyển động được quay của một diễn viên người sẽ được nhân đôi bởi một nhân vật
hoạt hình.
Trong robot, động học nghịch sử dụng các phương trình động học để xác định
các tham số khớp từ đó biết được vị trí mong muốn cho mỗi bộ phận đầu cuối của robot.
Nhận biết được đặc điểm kỹ thuật của chuyển động của robot là điểm cuối của
robot được gọi là kế hoạch chuyển động. Động học nghịch biến đổi kế hoạch chuyển
động thành quỹ đạo các khớp cho robot. Các công thức tương tự xác định vị trí bộ xương
của một nhân vật chuyển động di chuyển theo một cách cụ thể trong phim, hoặc của một
phương tiện như xe hơi hoặc thuyền chứa máy ảnh trong một cảnh phim.
Khi đã biết chuyển động của một chiếc xe, chúng ta có thể được sử dụng để xác
định sự thay đổi liên tục của hình ảnh do máy tính tạo ra trong cảnh quan như các tòa
nhà, để các vật thể này chuyển động nhưng thực ra bản thân chúng dường như không di
chuyển khi máy ảnh đi qua.
46
Chuyển động của một chuỗi động học, cho dù đó là robot hay nhân vật hoạt hình,
được mô hình hóa bằng các phương trình động học của chuỗi. Các phương trình này
giúp xác định được cấu hình của chuỗi theo các tham số chung của nó.
Động học thuận sử dụng các tham số khớp để tính toán cấu hình của chuỗi còn
động học nghịch đảo ngược phép tính này để xác định các tham số khớp đạt được cấu
hình mong muốn.
3.2.1 Phân tích động học ngược Một mô hình của bộ xương người sẽ được xem như là một chuỗi động học cho
phép định vị bằng cách sử dụng động học nghịch.
Phân tích động học là một trong những bước đầu tiên trong thiết kế của hầu hết
các robot công nghiệp. Phân tích động học cho phép người thiết kế có được thông tin về
vị trí của từng bộ phận trong hệ thống cơ khí. Thông tin này là cần thiết cho phân tích
chuyển động tiếp theo.
Động học nghịch là một ví dụ về phân tích động học của một hệ thống các vật
cứng hoặc chuỗi động học. Các phương trình động học của robot có thể được sử dụng
để xác định các phương trình vòng lặp của một hệ thống khớp nối phức tạp. Các phương
trình vòng lặp này ràng buộc phi tuyến tính trên các tham số cơ bản của hệ thống. Các
tham số độc lập trong các phương trình này được gọi là bậc tự do của hệ thống.
Trong khi phân tích các giải pháp cho các vấn đề của động học nghịch đảo trong
một loạt các chuỗi động học, các mô hình mô phỏng và chuyển động thường sử dụng
các định luật Newton để giải các phương trình động học phi tuyến tính.
Giải pháp tính toán động học ngược:
- Phương pháp phân tích:
Phương pháp đại số
Phương pháp hình học
- Phương pháp số học
Điều kiện cần: Robot ít hơn 6DOF có thể giải được.
Điều kiện đủ: Giải pháp dạng đóng của robot 6DOF có thể giải được trong trường
hợp trục của khớp của ba khớp cắt nhau tại một điểm
Các ứng dụng khác của thuật toán động học nghịch bao gồm điều khiển tương
tác, điều khiển chuyển động hoặc tránh va chạm.
47
3.2.2 Tính toán động học ngược robot Bài toán động học ngược được đặt biệt quan tâm vì kết quả của nó là cơ sở chủ
yếu để xây dựng chương trình điều khiển chuyển động của robot bám theo quỹ đạo cho
trước. Các kết quả tìm được giúp bài toán có trường hợp riêng, các đặc điểm động học
riêng biệt được tận dụng để thiết lập các quan hệ cần thiết khi có lời giải
Ví dụ, bài toán động học ngược sẽ cho ta biết trước tọa độ điểm cuối:
và phải đi tìm thông số điểm đầu trong đó là thành phần
phụ thuộc vào và
Xuất phát từ phương trình động học cơ bản ta có:
(1)
Cách 1: Ta có thể viết :
Với là ma trận chuyển đổi từ hệ tọa độ I sang hệ tọa độ n
Nhân 2 vế của (1) với ta có :
và vì
Nên:
Từ đó suy ra:
Với i= 1, 2, 3,… n
48
Ứng với mỗi giá trị của I, khi so sánh các phần tử tương ứng của hai ma trạn ở
hai vế của biểu thức trên ta có 6 phương trình tồn tại độc lập, dựa vào các thông số cho
trước ta có thể xác định được các biến khớp
Cách 2:
Từ phương trình (1) ta có thể có 6 phương trình độc lập để xác định được các
biến khớp
Từ phương trình (1) ta có thể có các phương trình độc lập:
Tùy theo cấu trúc của robot mà ta có phương trình còn lại, tạm gọi là các phương
trình sau:
Dựa vào các thông số cho trước ta có thể xác định được các biến khớp
Việc giải bài toán động học ngược của cơ cấu robot rất phức tạp, cho đến nay vẫn
chưa có giải thuật tổng quát để giải bài toán động học ngược tobot.
Để giải được các bài toán này người ta thường tận dụng một số tính chất của một
cơ cấu để đơn giản hóa việc tính toán và chỉ tìm lời giải cho những mô hình cụ thể, ví
dụ như các đặc điểm hình học, các ràng buộc của các biến khớp,…
Việc giải bằng phương pháp giải tích thông thường nói chung là rất khó khăn,
đội khi không giải được, nhằm khắc phúc khó khăn này ta sử dụng phương pháp số để
giải bài toán động học ngược robot
Khi giải bài toán động học ngược thường được một kết quả là tập hợp các nghiệm,
vấn đề đặt ra là: trong những nghiệm tìm được thì chọn nghiệm nào. Để giải quyết vấn
đề này thì ta cần thực hiện tối ưu hóa các nghiệm tìm được theo một tiêu chuẩn nào đó,
như tối ưu về thời gian điều khiển, tối ưu về năng lượng.
49
3.3 Động lực học robot 3.3.1 Vận tốc
Hình 3.4 Vận tốc của của 1 điểm trong hệ tọa độ
Tọa độ của 1 điểm trong hệ tọa độ
Vận tốc của 1 điểm trong hệ tọa độ được xác định bằng:
Trong đó:
Vận tốc góc của 1 điểm trong hệ tọa độ được xác định bằng:
Đối với các trục liền nhau ta có các phương trình lan truyền vận tốc cho các khớp:
Hình 3.5. Véc tơ vận tốc cho các trục liền nhau
Khớp xoay: -
50
- Khớp tịnh tiến:
3.3.2 Ma trận Jacobian và lan truyền lực (Static force) 3.3.2.1 Ma trận Jacobian Trong giải tích véctơ, ma trận Jacobi là ma trận chứa các đạo hàm riêng bậc nhất
của hàm giữa hai không gian véctơ. Ma trận này được đặt tên theo nhà toán học Carl
Gustav Jacobi. Ma trận này được ứng dụng trong giải tích vì nó là xấp xỉ tuyến tính tốt
nhất cho một hàm khả vi tại một điểm trong không gian véctơ biến của hàm này
Ví dụ nếu hàm F: Rn → Rm là một hàm từ không gian Ơclít n chiều đến một
không gian Ơclít m chiều, sẽ có được một phương trình chung:
Với các thành phần của Y là:
Đạo hàm riêng bậc nhất của các hàm này (nếu tồn tại) sẽ có thể được xếp thành
một ma trận có kích thước m nhân n, chính là ma trận Jacobi của F :
với
51
Nếu m = n, thì ma trận Jacobi là ma trận vuông, và định thức của nó là định thức
Jacobi.
Định thức Jacobi cho biết tính chất của hàm tại điểm đang xét. Ví dụ, hàm khả vi
liên tục F là khả nghịch gần p nếu định thức Jacobi tại điểm đó khác không.
Đây là định lý hàm nghịch đảo. Hơn nữa, nếu định thức Jacobi tại p là dương,
thì F bảo toàn chiều quay tại gần p; và ngược lại, nếu nó âm, F đảo chiều quay. Giá trị
tuyệt đối của định thức Jacobi tại p cho biết mức độ F nở rộng hay thu nhỏ thể
tích gần p. Ý nghĩa này khiến định thức Jacobi xuất hiện trong phép đổi biến.
Từ ma trận Jacobians ta có thể suy ra được phương trình vận tốc điểm cuối:
3.3.2.1 Lan truyền lực (Static force)
Hình 3.6. Lan truyền lực giữa các trục liền nhau
Ta có các phương trình biểu diễn sự lan truyền lực
Cân bằng lực tại các khớp:
Khớp xoay: -
Khớp tịnh tiến: -
52
CHƯƠNG 4: ĐÁP ỨNG THỰC TẾ KHI ĐIỀU KHIỂN
4.1 Thiết lế mô hình bằng phần mềm SolidWorks
Mô hình hệ cánh tay robot 3 bậc tự do được nhóm sinh viên thiết kế trên phần mềm
SolidWorks được trình bày từ Hình 4.1 đến Hình 4.
Hình 4.1 Hướng nhìn ngang của hệ cánh tay robot
Hình 4.2 Hướng nhìn từ sau của hệ cánh tay robot
53
Hình 4.3 Hướng nhìn ngang của hệ cánh tay robot
Hình 4.4 Hướng nhìn từ sau của hệ cánh tay robot
Hình 4.5 Hướng nhìn chéo của hệ cánh tay robot
54
Hình 4.6 Hướng nhìn từ trên xuống của hệ cánh tay robot
Hình 4.7 Hướng nhìn của hệ cánh tay robot
Hình 4.8 Hướng nhìn cánh tay robot từ mặt đối diện
55
4.2 Thiết kế giao diện Matlab GUI để điều khiển cánh tay robot
Nhóm sinh viên thực hiện thiết kế giao diện Matlab/GUI để nhập các thông số điều
khiển động học cho hệ cánh tay robot
Trong giao diện này các thông số được nhập gồm các thông số động học thuận của
hệ của thống và các thông số động học nghịch của hệ thống.
Chương trình được lập trình dựa trên các tính toán động học thuận nghịc của hệ
cánh tay robot 3 bậc tự do ở mục 1.4 và mục 1.5 mà nhóm sinh viên đề xuất.
Hình 4.9 Giao diện Matlab/GUI được thiết kế để điều khiển cánh tay robot
4.3 Kết quả điều khiển thực tế
Mô hình thực tế hệ cánh tay robot 3 bậc tự do được trình bày trong Hình 4.10
56
Hình 4.10 Mô hình thực hệ cánh tay robot
Trong đó:
1. Hộp điều khiển
2. Khối nguồn xung
3. Đế xoay cánh tay robot
4. Link 1 cánh tay robot
5. Link 2 cánh tay robot
6. Khớp mở kẹp hệ cánh tay
Chương trình điều khiển hệ cánh tay robot 3 bậc tự do được xây dựng trên
Matlab/Simulink, thư viện Arduino được tích hợp trên phần mềm Matlab được nhóm
sinh viên nghiên cứu áp dụng để xây dựng chương trình điều khiển.
57
Hình 4.11 Chương trình tính toán động học thuận – nghịch cho hệ cánh tay robot
Hình 4.12 Hoạt động của hệ cánh tay robot
4.4 Kết luận
Mô hình hệ cánh tay robot 3 bậc do hoàn toàn có khả năng được điều khiển bởi
bài toán động học thuận nghịch do nhóm sinh viên thực hiện tính toán. Theo tính toán
58
và thử sai nhiều lần của sinh viên, mỗi link đều có khoảng hoạt động giới hạn. Cụ thể
như sau:
- Link 1: [600 – 1400]
- Link 2: [600 – 1300]
Nguyên nhân khoảng hoạt động của từng link chỉ nằm trong khoảng giới hạn trên
là do cấu trúc cơ khí chỉ đáp ứng được khoảng độ của từng link.
59
CHƯƠNG 5: KẾT LUẬN
6.1 Kết quả đạt được
Qua quá trình nghiên cứu và thực hiện đề tài đã được một số kết quả sau:
Nghiên cứu áp dụng bộ thư viện Arduino để điều khiển hệ thống cánh tay robot
3 bậc tự do thông qua phần mềm Matlab/Simulink.
Nghiên cứu ứng dụng vi xử lý Arduino Uno R3 vào điều khiển hệ thống cánh tay
robot 3 bậc tự do.
Tác giả đã xây dựng thành công mô hình hệ thống cánh tay robot 3 bậc tự do hoạt
động ổn định, thẫm mỹ.
Nghiên cứu điều khiển động học canh tay robot, thiết kế giao diện Matlab GUI
áp dụng trên mô hình cánh tay robot 3 bậc tự do mà nhóm sinh viên đề xuất và cho kết
quả mô phỏng rất tốt trên Matlab.
Nghiên cứu thiết kế hệ thống cánh tay robot bằng phần mềm Solidworks.
Đề tài “THIẾT KẾ VÀ ĐIỀU KHIỂN ĐỘNG HỌC CÁNH TAY ROBOT
EEZYbotARM MK2” sẽ hỗ trợ đắc lực trong quá trình giảng dạy, học tập và nghiên
cứu khoa học cho giảng viên cũng như sinh viên trường Đại học Sư phạm Kỹ thuật
TPHCM. Việc áp dụng mô hình hệ thống cánh tay robot 3 bậc tự do sẽ giúp người học
kiểm chứng lại các lý thuyết đã học trong môn kĩ thuật Robot, nghiên cứu áp dụng các
phương pháp điều khiển khác nhau nhằm tìm ra giải thuật tối ưu cho từng ứng dụng cụ
thể.
6.2 Hướng phát triển
Điều khiển hệ thống cánh tay robot 6 bậc tự do.
Sử dụng các giải thuật nâng cao để điều khiển hệ thống bồn nước đơn như: LQR;
Điều khiển trượt (Sliding Mode Control); giải thuật mờ (Fuzzy Logic Control); ANFIS
(Adaptive Neuro-Fuzzy Inference System); …
60
TÀI LIỆU THAM KHẢO
[1] Đặng Xuân Kiên, Nguyễn Mạnh La, Điều khiển cánh tay robot hai bậc tự do qua
mạng dựa trên phương pháp dự đoán Smith nâng cao, Tạp chí Giao thông Vận tải, 2016.
[2] Nguyễn Tiết Kiệm, Nghiên cứu phát triển một số thuật toán điều khiển robot công
nghiệp có nhiều tham số bất định, Luận án Tiến sỹ Học viện Khoa học và Công nghệ
Việt Nam, 2018.
[3] Trần Việt Phong, Xây dựng hệ điều khiển robot trên cơ sở phản hồi hình ảnh, Luận
văn thạc sỹ, Đại học Bách Khoa Hà Nội, 2002.
[4] T.C.Pham., Robust Neural control of n-DOF robot with many uncertainties in
cartesian space, Proceedings of the 2009 National conference on mechanics, Hanoi
Vietnam April 8-9.
[5] M. Galicki, Task space control of mobile manipulators, Robotica, vol. 29, pp. 221-
232, 2011.
[6] M. Galicki, Collision-free control of mobile manipulators in task space, Mech. Syst.
Signal Process, vol. 25, no. 7, pp. 2766-2784, 2011.
[7] A. Mazur, Trajectory tracking control in workspace-defined tasks for nonholonomic
mobile manipulators, Robotica, vol. 28, pp. 57-68, 2010.
[8] N. T. Phuong, V. H. Duy, J. H. Jeong, H. K. Kim, and S. B. Kim, Adaptive control
for welding mobile manipulator with unknown dimensional parameters, Proc. of the
IEEE international conf on mechatronics, pp. 1-6, 2007.
[9] B. W. Chi, and F. X. Ke, Robust control of mobile manipulator service robot using
torque compensation, Proc. of the IEEE international conf on information technology
and computer science, pp. 69-72, 2009.
[10] A. Muis, Ohnishi, Eye-to-hand approach on eye-in-hand configuration within real-
time visual servoing, IEEE/ASME Trans. Mechatronics, vol. 10, pp. 404– 410, 2005.
[11] Y. Wang, H. Lang, C. de Silva, A hybrid visual servo controller for robust grasping
by wheeled mobile robots, IEEE/ASME Trans. Mechatronics, vol. 15, pp. 757–769,
2009.
[12] A. D. Luca, G. Oriolo, P. R. Giordano, Image-based visual servoing schemes for
nonholonomic mobile manipulators, Robotica, vol. 25, no. 2, pp. 131-145. 2007.
[13] Hideaki Tai, Toshiyuki Murakami, A control of two wheels driven redundant
mobile manipulator using a monocular camera system, Int. J. Intell. Syst. Technol.
Appl. Vol. 8 pp. 361–381, 2009.
[14] Wang HB, Lv L, Li P. Study on estimating Jacobian matrix on-line visual servo
control algorithm, Journal of System Simulation, vol. 22, pp. 2934–2937, 2010.
[15] M. Galicki, An adaptive non-linear constraint control of mobile manipulators,
Mechanism and Machine Theory, vol. 88, pp. 63-85, 2015.
[16] C. Hua, Y. Wang, Y Guan, Visual tracking control for an uncalibrated robot system
with unknown camera parameters, Robotics and Computer-Integrated Manufacturing,
Vol. 30, pp. 19 – 24, 2014.
[17] W. J. Wilson, C. C. Williams, and G. S. Bell, Relative end-effector control using
cartesian position based visual servoing, IEEE Trans. Robot. Autom, vol. 12, no. 5, pp.
684-696, 1996.
[18] E. Malis and P. Rives, Robustness of image-based visual servoing with respect to
depth distribution errors, Proc. of the 2003 IEEE International Conf on Robotics and
Automation pp. 1056-1061, 2003.
[19] V. Andaluz, R. Carelli, L. Salinas, J. M. Toibero, F. Roberti, Visual control with
adaptive dynamical compensation for 3D target tracking by mobile manipulators,
Mechatronics vol. 22, pp. 491-502, 2012.
[20] S. Hutchinson, G. D. Hager, P. I. Corke, A Tutorial on Visual Servo Control, IEEE
Trans on Robot and Auto, Vol. 12, No. 5, pp. 651-670, 1996.
[21] Wen Yu, Marco A Moreno-Armendariz., Robust visual servoing of Robot
Manipulators with neuro compensation, Journal of the Franklin institute.
[22] Hyroiuki Ukida, Masayuki Kawanami, Yasuhiro Terama., 3D object tracking by
Pan-Tilt moving camera and robot using sparse template matching and particle filter,
SICE annual conference 2011september 13-18, 2011, Waseda university, Tokyo, Japan.
[23] Tingting Wang, Guodong Liu, Wenfiang Xie, member IEEE., Visual servoing
control of video tracking system for tracking a flying target, 2011 IEEE/ASME
International conference on advance intelligent machetronics (AIM2011), Budapest,
Hungary, July 3-7, 2011.
[24] Chengxian Zhou, Wei Fu., A study of robot control technology base on stereo
vision, 2011 international conference on electronics and optoelectronics (ICEOE 2011).
[25] Hesheng Wang, Yun-Hui Liu, Weidong Chen., Zhongli Wang, A new approach to
dynamic Eye-in-Hand visual tracking using nonlinear observers, IEEE/ASME
transactions on mechatronics, Vol.16, No2, April 2011.
[26] G.Loreto, R.Garrido, Stable Neurovisual servoing for robot manipulator. IEEE
transaction neural networks Vol.17, No4, July 2006.
[27] P. McKerrow, Introduction to Robotics, Addison-Wesley, 1998.
S
K
L
0
0
2
1
5
4