Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 48

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

TRƯỜNG CƠ KHÍ – Ô TÔ

BÁO CÁO HỌC PHẦN

HỌC PHẦN: LẬP TRÌNH ROBOT


CHỦ ĐỀ: NGHIÊN CỨU, THIẾT KẾ MÔ HÌNH VÀ
XÂY DỰNG CHU TRÌNH ĐIỀU KHIỂN CHO MÔ HÌNH
ROBOT OPENMANIPULATOR-X TRÊN NỀN TẢNG
ROS.

Sinh viên thực hiện: Hoàng Văn Phái-2022603237


Nguyễn Đức Mạnh-2022605725
Lớp-Khóa: 2022ĐHRBNT01
Giáo viên hướng dẫn Bùi Huy Anh

Hà Nội, tháng 6 năm 2024


PHIẾU HỌC TẬP

I. THÔNG TIN CHUNG


Tên lớp: ME6132.1 Khóa: K17
Tên nhóm: Nhóm 8
Họ và tên thành viên:
1. Hoàng Văn Phái-2022603237
2. Nguyễn Đức Mạnh-2022605725
II. NỘI DUNG HỌC TẬP
1. Tên chủ đề: Nghiên cứu, thiết kế mô hình và xây dựng chu trình điều khiển
cho mô hình robot OpenMANIPULATOR-X trên nền tảng ROS.

Minh họa mô hình Robot OpenMANIPULATOR-X

1
THÔNG SỐ KỸ THUẬT:
Thông số Giá trị
Số bậc tự do Degree of Freedom 5 (4 DOF + 1
DOF Gripper)
Tải trọng Payload 0.5 Kg
Sai số quỹ đạo chuyển Repeatability < 0.2 mm
động
Vận tốc góc của các khớp Speed (Joint) 46 rpm
Tầm hoạt động Reach 380 mm
Phạm vi kẹp Gripper Stroke 20 ~ 75 mm
Tổng trọng lượng Weight 0.7 Kg

2. Hoạt động của sinh viên


- Nội dung 1: Mục tiêu/chuẩn đầu ra: L1
 Xây dựng cơ sở lý thuyết và mô hình hóa hệ thống robot.
 Nghiên cứu cơ sở lý thuyết thuộc tính chuyển động, quỹ đạo chuyển
động cho mô hình robot
- Nội dung 2: Mục tiêu/chuẩn đầu ra: L2
 Nghiên xcứu, thiết kế môi trường mô phỏng cho mô hình robot.
 Thiết lập mô hình robot trên môi trường mô phỏng.
 Nghiên cứu, xây dựng bộ điều khiển PID cho mô hình robot.
 Thiết lập quỹ đạo chuyển động gắp vật thể cho mô hình robot.
3. Sản phẩm nghiên cứu: Bài thu hoạch và các chương trình mô phỏng trên
ROS.
III. NHIỆM VỤ HỌC TẬP
1. Hoàn thành tiểu luận, bài tập lớn, đồ án/dự án theo đúng thời gian quy định (từ
ngày 24/06/2024 đến ngày 02/07/2024)
2. Báo cáo sản phẩm nghiên cứu theo chủ đề được giao theo kế hoạch trước giảng
viên và những sinh viên khác
IV. HỌC LIỆU THỰC HIỆN TIỂU LUẬN, BÀI TẬP LỚN, ĐỒ ÁN/DỰ ÁN
1. Tài liệu học tập
2. Phương tiện, nguyên liệu thực hiện tiểu luận, bài tập lớn, đồ án/dự án (nếu có):
Máy tính.

2
LỜI MỞ ĐẦU
Lời đầu tiên cho phép nhóm 8 gửi lời cảm ơn đến các quý thầy, cô giáo đã bỏ
chút thời gian quý báu để xem xét và đánh giá bài báo cáo của nhóm. Mọi sự góp ý,
đóng góp của thầy cô đều là những bài học to lớn để chúng em phát triển, bổ sung
thêm. Rất mong nhận được sự góp ý và đánh giá của quý thầy, cô.
Robot đang ngày càng hiện diện trong mọi ngóc ngách của cuộc sống, từ nhà
xưởng sản xuất đến bệnh viện, từ kho bãi vận chuyển đến cánh đồng canh tác. Nhờ sự
phát triển vượt bậc của khoa học kỹ thuật, đặc biệt là trí tuệ nhân tạo (AI) và Internet
vạn vật (IoT), robot ngày càng trở nên thông minh, linh hoạt và hiệu quả hơn, mở ra
tiềm năng to lớn trong việc cải thiện đời sống con người.
Trong bài báo cáo này, nhóm em tập trung nghiên cứu về robot công nghiệp, cụ
thể là mẫu robot tay máy rất phổ biến trong nền công nghiệp 4.0 hiện nay.
Về mặt kỹ thuật, những robot công nghiệp ngày nay, có nguồn gốc từ hai lĩnh
vực kỹ thuật ra đời sớm hơn đó là các cơ cấu điều khiển từ xa (Teleoperators) và các
máy công cụ điều khiển số (NC - Numerically Controlled macine tool).
Các cơ cấu điều khiển từ xa (hay các thiết bị kiểu chủ-tớ) đã phát triển mạnh
trong chiến tranh thế giới lần thứ hai nhằm nghiên cứu các vật liệu phóng xạ. Người
thao tác được tách biệt khỏi khu vực phóng xạ bởi một bức tường có một hoặc vài cửa
quan sát để có thể nhìn thấy được công việc bên trong. Các cơ cấu điều khiển từ xa
thay thế cho cánh tay của người thao tác; nó gồm có một bộ kẹp ở bên trong (tớ) và hai
tay cầm ở bên ngoài. Cả hai tay cầm và bộ kẹp, được nối với nhau bằng một cơ cấu
sáu bậc tự do để tạo ra các vị trí và hướng tuỳ ý của tay cầm và bộ kẹp. Cơ cấu dùng
để điều khiển bộ kẹp theo chuyển động của tay cầm.
 Ứng dụng robot công nghiệp trong sản xuất
Từ khi mới ra đời robot công nghiệp được áp dụng trong nhiều lĩnh vực dưới góc
độ thay thế sức người. Nhờ vậy các dây chuyền sản xuất được tổ chức lại, năng suất và
hiệu quả sản xuất tăng lên rõ rệt.
Mục tiêu ứng dụng robot công nghiệp nhằm góp phần nâng cao năng suất dây chuyền
công nghệ, giảm giá thành, nâng cao chất lượng và khả năng cạnh tranh của sản phẩm
đồng thời cải thiện điều kiện lao động. Đạt được các mục tiêu trên là nhờ vào những
khả năng to lớn cua robot như: lam việc không biết mệt mói, rất dê dàng chuyển nghề

3
một cách thành thạo, hịu được phòng xạ và các môi trường làm việc độc hại, nhiệt độ
cao, "cảm thấy" được cả từ trường và "nghe" được cả siêu âm ... Robot được dùng thay
thế con người trong các trường hợp trên hoặc thực hiện các công việc tuy không nặng
nhọc nhưng đơn điệu, dễ gây mệt mõi, nhầm lẫn.
Trong ngành cơ khí, robot được sử dụng nhiều trong công nghệ đúc, công nghệ
hàn, cắt kim loại, sơn, phun phủ kim loại, tháo lắp vận chuyển phôi, lắp ráp sản phẩm .
Ngày nay đã xuất hiện nhiều dây chuyền sản xuất tự động gồm các máy CNC với
Robot công nghiệp, các dây chuyền đó đạt mức tự động hóa cao, mức độ linh hoạt
cao ... ở đây các máy và robot được điều khiển bằng cùng một hệ thống chương trình.
Ngoài các phân xướng, nhà máy, kỹ thuật robot cũng được sử dụng trong việc khai
thác thềm lục địa và đại dương, trong y học, sử dụng trong quốc phòng, trong chinh
phục vũ trụ, trong công nghiệp nguyên tử, trong các lĩnh vực xã hội ...
Rõ ràng là khả năng làm việc của robot trong một số điều kiện vượt hơn khả năng của
con người; do đó nó là phương tiện hữu hiệu để tự động hoa, nâng cao năng suất lao
động, giảm nhẹ cho con người những công việc nặng nhọc và độc hại. Nhược điêm lớn
nhất của robot là chưa linh hoạt như con người, trong dây chuyền tự động, nếu có một
robot bị hỏng có thể làm ngừng hoạt động của cả dây chuyền, cho nên robot vẫn luôn
hoạt động dưới sự giám sát của con người.

4
MỤC LỤC
MỤC LỤC HÌNH ẢNH..................................................................................................6

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN................................................................7

1.1 Khái quát chung về ROS...................................................................................7

1.2. khái quát chung về robot tay máy....................................................................8

1.3. Khái quát về OpenMANIPULATOR-X parts................................................12

1.4. Ứng Dụng.......................................................................................................13

1.5. Kết Luận.........................................................................................................13

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ MÔ HÌNH HÓA HỆ THỐNG ROBOT...14

2.1.Cơ sở lý thuyết................................................................................................14

2.1.4. Phép biến đổi đồng nhất các hệ tọa độ........................................................17

2.2. Cơ sở lý thuyết quỹ đạo chuyển dộng cho mô hình robot..............................20

2.3. Mô hình hóa hệ thống robot...........................................................................22

CHƯƠNG 3. TÍNH TOÁN, THIẾT KẾ MÔ HÌNH ROBOT TRONG ROS VÀ


MÔI TRƯỜNG MÔ PHỎNG...................................................................................25

3.1. Thiết lập môi trường mô phỏng cho mô hình.................................................25

3.2. Thiết lập môi trường mô phỏng trong Gazebo...............................................26

3.3. Tính toán, thiết kế mô hình robot...................................................................27

3.4. Nghiên cứu, xây dựng bộ điều khiển PID cho mô hình robot........................37

3.5. Thiết lập quỹ đạo chuyển động gắp vật thể cho mô hình robot.....................41

CHƯƠNG 4. MÔ PHỎNG THỬ NGHIỆM VÀ KẾT QUẢ....................................42

4.1. Mô phỏng thử nghiệm và kết quả...................................................................42

KẾT LUẬN...............................................................................................................46

TÀI LIỆU THAM KHẢO.........................................................................................46

5
MỤC LỤC HÌNH ẢNH

Ảnh 1.1:Các thành phần chính của hệ thống robot.....................................................9

Ảnh 1.2: Kết cấu tay máy robot công nghiệp..............................................................9

Ảnh 1.3: Hệ thống cảm biến robot công nghiệp.......................................................10

Ảnh 2.1: quy tắc bàn tay phải....................................................................................14

Ảnh 3.1: Độ dài các khâu..........................................................................................27

Ảnh 3.2: quán tính.....................................................................................................28

Ảnh 3.3: Khớp thứ 1..................................................................................................28

Ảnh 3.4: Khớp thứ 2..................................................................................................29

Ảnh 3.5: Khớp thứ 3..................................................................................................30

Ảnh 3.6: Khớp thứ 4..................................................................................................31

Ảnh 3.1: Hiệu chỉnh cho joint1.................................................................................38

Ảnh 3.7: Hiệu chỉnh cho joint2.................................................................................39

Ảnh 3.8: Hiệu chỉnh cho joint3.................................................................................39

Ảnh 3.9: Hiệu chỉnh cho joint4.................................................................................40

Ảnh 3.10: Hiệu chỉnh cho gripper.............................................................................40

Ảnh 4.1: Mô hình sau khi khởi động.........................................................................42

Ảnh 4.2: Các node đang hoạt động...........................................................................43

Ảnh 4.3: Các topics đang hoạt động.........................................................................43

Ảnh 4.4: Bộ điều khiển khởi động thành công..........................................................44

Ảnh 4.5: Giao diện GUI............................................................................................45

Ảnh 4.6: Bộ điều khiển bằng bàn phím.....................................................................45

6
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Khái quát chung về ROS
Robot Operating System - ROS là một nền tảng mã nguồn mở (open-sourced)
cung cấp những thư viện và công cụ để xây dựng các ứng dụng liên quan tới robot.
Sau hơn 10 năm phát hành, ROS đã và đang được sử dụng rộng rãi trên toàn thế giới
cả trong nghiên cứu lẫn trong công nghiệp.
Nền tảng này được sử dụng trong những công ty lớn như NVIDIA, Microsoft,
Apple, Bosch, v.v. tới những công ty startup như ANYbotics. Ngoài ra mình tin chắc
là còn rất nhiều công ty khác không được list ra ở đây. Ở những trường đại học và viện
nghiên cứu về robot, ROS là một nền tảng không thể thiếu.
Vậy cụ thể thì người ta đang dùng ROS vào những việc gì? Có thể nói rằng bất
cứ ứng dụng nào cần phải giao tiếp với hoặc điều khiển các sensor (cảm biến) hay
actuator (thiết bị truyền động), người ta đều có thể dùng ROS. Ngoài ra, ROS còn
được dùng rất nhiều trong nghiên cứu ví dụ các lĩnh vực như xe tự hành (autonomous
driving), robot nhiều chân (legged robot), robot hình người (humanoid robot), ROS-
Industrial (một version dành riêng cho công nghiệp), thiết bị bay không người lái
(drone), v.v.
1.1.1 Ưu điểm của ROS
ROS cung cấp những công cụ chuẩn để giúp việc giao tiếp dễ dàng giữa các tác
vụ. Ví dụ, hệ thống của bạn có một camera và một cánh tay robot. Bạn muốn lấy hình
ảnh từ camera, xử lý hình ảnh đó và yêu cầu robot gắp vật thể nếu nó xuất hiện ở trong
ảnh. Có nhiều cách để thực hiện các bước này, nhưng nếu bạn dùng ROS thì việc
truyền nhận thông tin giữa các bước trở nên dễ dàng hơn rất nhiều.
ROS có một cộng đồng user và developer vô cùng lớn mạnh. Như mình đã nói
ở phần trước, các công ty và viện nghiên cứu lớn trên thế giới đều đã và đang dùng
ROS và nó dần trở thành một nền tảng chuẩn cho việc phát triển robot. Điều này có
nghĩa là nếu bạn gặp khó khăn khi làm một dự án với ROS thì nhiều khả năng là bạn
chỉ cần google là ra câu trả lời, hoặc bạn có thể hỏi trên những diễn đàn và có nhiều
người sẵn sàng giúp bạn.
Có vô vàn nhiều những thư viện sẵn có cho các tác vụ khác nhau. Từ những
công nghệ mới trong AI, thị giác máy tính (computer vision), xử lý ngôn ngữ tự nhiên
7
(natural language processing) hay điều khiển (control) v.v., tất cả đều có những phần
mềm mới nhất (state-of-the-art) mà bạn có thể trực tiếp tải xuống và sử dụng ngay.
Những phần mềm tiên tiến này đa số tới từ những tổ chức, công ty, trường đại học
hoặc thậm chí cá nhân mà đang họ dùng ROS trong công việc hay nghiên cứu của họ
và cho công khai (open source) code những dự án của mình.
ROS hoàn toàn free và được phép dùng trong sản phẩm thương mại. Đây là lý
do vì sao các công ty, tổ chức (kể cả những tập đoàn lớn) rất ưa dùng ROS vì nó dễ
dàng thử nghiệm, phát triển và thậm chí thương mại hoá sản phẩm của họ một cách tiết
kiệm.
1.1.2. Nhược điểm của ROS
Dĩ nhiên ROS không phải là một nền tảng hoàn hảo cho mọi ứng dụng mà vẫn
còn một vài hạn chế như sau:
ROS không phù hợp cho những ứng dụng yêu cầu hard real-time (thơi gian thực
cứng/tức thì). Hard real-time có nghĩa là hệ thống của bạn phải hoàn thành tác vụ
chính xác theo những thời hạn (deadlines) qui định. Chỉ cần lỡ một trong những
deadline này thì hệ thống sẽ bị lỗi và có thể gây hậu quả nghiêm trọng.
ROS phải được chạy trên một cấu hình đủ mạnh để đạt hiệu suất tốt nhất. Để có
thể sử dụng ROS thì bạn cần một chiếc máy tính, và tùy vào độ phức tạp của ứng dụng
mà có những yêu cầu về cấu hình khác nhau. Đối với những ứng dụng phức tạp, bạn
có thể cần phải có một PC với một hoặc nhiều card đồ hoạ, còn nếu ứng dụng đơn giản
thì có thể chỉ một chiếc Raspberry Pi (4 - 8 GB RAM) là đủ.
Việc quản lý và bảo trì những gói (package) phần mềm trong ROS vẫn còn
nhiều bất cập, đặc biệt là cho những sản phẩm thương mại.
1.2. khái quát chung về robot tay máy.
1.2.1. Khái niệm
Cánh tay robot công nghiệp là cỗ máy chuyên phục vụ choi quá trình sản xuất
công nghiệp, được vận hành bởi con người.
Cánh tay robot là một loại cánh tay cơ học được lập trình sẵn có chức năng
tương tự như cánh tay con người Cánh tay robot hoạt động rất linh hoạt dựa trên cơ
chế hoạt động là những liên kết của bộ điều khiển và khớp nối chuyển động. Nhờ đó
mà bộ phận điều khiển chủ động truyền hiệu lệnh đến những khối nối để cánh tay
chuyển động hoặc chuyển dịch tuyến tính.
8
Cánh tay robot được ứng dụng trong nhiều lĩnh vực công nghiệp khác nhau, có
thể thay thế bàn tay con người trong việc lắp ráp, sửa chữa hay thay thế các linh phụ
kiện nhỏ trong các nhà máy.
1.2.2. Cấu tạo

Ảnh 1.1:Các thành phần chính của hệ thống robot

- Tay máy
Được ví như phần khung xương và cơ bắp của robot. Tay máy bao gồm: các khâu,
các khớp, các ổ đỡ, bộ phậ truyền động, khâu công tác… của robot. Tay máy là phần
cấu trúc cơ khí của robot.

Ảnh 1.2: Kết cấu tay máy robot công nghiệp

9
- Hệ thống cảm biến.
Hệ thống cảm biến được ví như các giác quan của robot. Hệ thống cảm biến giúp
đo đạc các thông số về trạng thái bản thân robot: Vị trí, tốc độ, gia tốc… cũng như các
thông số của môi trường: Nhiệt độ, lực, mômem…

Ảnh 1.3: Hệ thống cảm biến robot công nghiệp

- Hệ thống điều khiển


Hệ thống điều khiển được ví như não bộ của robot. Hệ thống điều khiểu đưa ra các
lệnh điều khiển cho tay máy robot công nghiệp, đọc các dữ liệu từ hệ thống cảm biến
để so sánh với dữ liệu sẵn có, tính toán và đưa ra lệnh điều khiển tay máy.

- Môi trường làm việc


Môi trường làm việc của robot công nghiệp là các đổi tượng bên ngoài mà robot
tương tác. Ví dụ như các chỉ tiết máy cần lắp ráp, các tầm kim loại cần vận chuyển,
bàn máy, máy CNC...

1.2.3. Vai trò


Sự ra đời của những cánh tay robot công nghiệp giúp quá trình vận hành và
điều khiển các hoạt động sản xuất trở nên trơn tru và dễ dàng hơn, hạn chế tối đa các
lỗi sản xuất cho nhân công gây ra và tiết kiệm chi phí thuê lao động. Ứng dụng cánh
tay robot công nghiệp trrong sản xuất mang lại những lợi ích như sau:
- Cánh tay robot công nghiệp giúp tiết kiệm thời gian
Mỗi chuyển động thực tế của robot đều là một chuyển động chính xác, trơn tru
và không có động tác dư thừa. Độ chính xác được tối ưu lên đến hàng phần trăm giây.
Robot được lập trình mô phỏng trong không gian ảo của phần mềm nhằm lường
trước những rủi ro về va chạm. Mỗi cử động của robot, bao gồm quay, tịnh tiến, cầm
10
nắm, nhấc, dịch chuyển, quay, lật có tải, tiến hành thao tác hàn, lắp ráp…của tay robot
đều được con người kiểm soát
Ngoài ra, Robot có thể cắt chính xác xuống các cạnh, tạo ra các mối hàn cứng
hơn hoặc đục khoan các lỗ chính xác. Điều này giúp nâng cao chất lượng sản phẩm
theo thời gian, đồng thời cải thiện tính toàn vẹn của thương hiệu.
- Các chuyển động robot chính xác và lặp lại hoàn toàn giống nhau
Các chuyển động chính xác đem lại kết quả chính xác trên sản phẩm theo đúng
yêu cầu kỹ thuật. Từ đó đảm bảo không có sản phẩm do những bất cẩn. Hoặc thao tác
sai trong quá trình làm việc.
- Nâng cao năng suất và độ an toàn cho quá trình sản xuất
Robot có khả năng làm việc 24/7, ổn định tiến độ sản xuất và quy trình vận
hành. Chính vì thế, ứng dụng cánh tay robot công nghiệp được nhiều nhà máy chú
trọng đầu tư, phát triển. Chính bởi những lợi ích về mặt chi phí thuê nhân lực và quản
lý con người.
Đặc biệt, trong môi trường làm việc độc hại, nguy hiểm, nhiều rủi ro cho con
người, Robot là sự thay thế hoàn hảo.
1.2.4. Ưu điểm
- Cái đặt nhanh chóng
Ngay cả các nhân viên vận hành chưa được đào tạo cũng có thể cài đặt, tháo
gỡ, lắp ráp và lập trình cánh tay robot một cách nhanh chóng và dễ dàng
- Lập trình đơn giản
Nhờ tính năng hiển thị 3D trực quan trên cánh tay robot mà việc lập trình cá
cánh tau robot trở nên dễ dàng và nhanh chóng hơn. Các nhân viên vận hành chỉ cần di
chuyển cánh tay robot đến tọa độ mong muốn hoặc chạm vào các mũi tên trên máy
tính bảng có màn hình cảm ứng là có thể dễ dàng sử dụng robot
- Triển khai linh hoạt
Ngày nay các cài đặt sản phẩm cánh tay robot công nghiệp cần linh hoạt và
nhanh chóng để đáp ứng các nhu cầu không ngừng thay đổi và mang tính cạnh tranh
cao. Những cánh tay robot gọn nhẹ dễ dàng di chuyển và tái triển khai sang các quy
trình mới, cho phép bạn tự động hóa hầu như bất kỳ công việc thủ công nào, kể cả
công việc với phạm vi hoạt động rất nhỏ hoặc thay đổi liên tục

11
- Thời gian hoàn vốn nhanh
Các cánh tay robot công nghiệp có thời gian hoàn vốn trung bình là 195 ngày.
Đó là thời gian hoàn vốn nhanh nhất trong ngành công nghiệp bởi
khi áp dụng các cánh tay robot vào sản xuất sẽ không tốn các chi phí phụ trợ
phát sinh như nhân lực và phí lập trình thuê ngoài, khu làm việc đặc dụng trong nhà
máy được bảo hộ chặt chẽ để đảm bảo an toàn lao động.
1.3. Khái quát về OpenMANIPULATOR-X parts
1.3.1. Giới thiệu
OpenMANIPULATOR-X là một cánh tay robot được thiết kế bởi ROBOTIS,
được tối ưu hóa để phục vụ cho các mục đích giáo dục và nghiên cứu trong lĩnh vực
robot học. Với sự tương thích cao với hệ điều hành robot ROS (Robot Operating
System), OpenMANIPULATOR-X mang lại một giải pháp linh hoạt và dễ sử dụng
cho các ứng dụng phát triển và thử nghiệm robot học.
1.3.2. Các Thành Phần Chính
- Tính tương thích với ROS
OpenMANIPULATOR-X được thiết kế để tích hợp hoàn hảo với ROS, giúp
người dùng dễ dàng điều khiển, lập trình và thử nghiệm các thuật toán robot học. ROS
cung cấp một môi trường phần mềm mạnh mẽ và linh hoạt, giúp việc phát triển và
triển khai các ứng dụng robot trở nên hiệu quả hơn.
- Động cơ DYNAMIXEL
Hệ thống động cơ của OpenMANIPULATOR-X sử dụng các servo thông minh
DYNAMIXEL, cụ thể là loại XM430-W350-T. Những động cơ này có các tính năng
vượt trội như độ chính xác cao, khả năng điều khiển linh hoạt và phản hồi vị trí chính
xác, đảm bảo các khớp nối của cánh tay robot hoạt động một cách mượt mà và hiệu
quả.
- Thiết kế mô-đun
Cấu trúc mô-đun của OpenMANIPULATOR-X cho phép người dùng dễ dàng
thay thế và mở rộng các thành phần của robot. Điều này rất hữu ích cho mục đích giáo
dục và nghiên cứu, nơi mà việc thử nghiệm và thay đổi cấu hình của robot là thường
xuyên. Thiết kế mô-đun cũng giúp tăng tính linh hoạt và khả năng bảo trì của hệ
thống.
12
- Khung và liên kết
Cánh tay robot được xây dựng từ các khung và liên kết chắc chắn, thường làm
từ nhôm hoặc nhựa cao cấp. Những vật liệu này đảm bảo độ bền và khả năng hoạt
động chính xác của robot, đồng thời giảm thiểu trọng lượng tổng thể của hệ thống.
- Bộ điều khiển và nguồn cung cấp
OpenMANIPULATOR-X đi kèm với bộ điều khiển CM-550 và các thiết bị
nguồn điện cần thiết, đảm bảo hệ thống hoạt động ổn định và cung cấp đủ năng lượng
cho các hoạt động phức tạp của cánh tay robot. Bộ điều khiển CM-550 cung cấp khả
năng xử lý mạnh mẽ và dễ dàng kết nối với các thành phần khác của hệ thống.
- Phần mềm hỗ trợ
Ngoài ROS, OpenMANIPULATOR-X còn được hỗ trợ bởi phần mềm riêng
của ROBOTIS như R+ Manager và R+ Task. Những phần mềm này giúp việc lập trình
và điều khiển robot trở nên dễ dàng hơn, cung cấp giao diện người dùng thân thiện và
các công cụ mạnh mẽ cho việc phát triển ứng dụng.
1.4. Ứng Dụng
Với thiết kế và tính năng linh hoạt, OpenMANIPULATOR-X có thể được sử
dụng trong nhiều ứng dụng khác nhau, bao gồm:
Giáo dục: Hỗ trợ giảng dạy các kiến thức về robot học, điều khiển tự động và
lập trình.
Nghiên cứu: Cung cấp nền tảng cho việc phát triển và thử nghiệm các thuật
toán điều khiển và cảm biến mới.
Dự án tự động hóa công nghiệp nhỏ: Ứng dụng trong các dây chuyền sản xuất
và lắp ráp nhỏ, nơi yêu cầu độ chính xác và linh hoạt cao.
1.5. Kết Luận
OpenMANIPULATOR-X là một cánh tay robot mạnh mẽ và linh hoạt, phù hợp
cho các môi trường giáo dục và nghiên cứu. Với sự hỗ trợ từ ROS và các phần mềm
điều khiển mạnh mẽ, OpenMANIPULATOR-X mang lại một nền tảng tuyệt vời cho

13
việc học tập và phát triển các ứng dụng robot học, đồng thời đáp ứng được các yêu cầu
của các dự án tự động hóa nhỏ.

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ MÔ HÌNH


HÓA HỆ THỐNG ROBOT
2.1.Cơ sở lý thuyết.
2.1.1. Hệ tọa độ trên tay máy
- Hệ tọa độ gốc
Hệ tọa độ gốc là hệ quy chiếu quan trọng trong việc quan sát chuyển động của
tay máy, đặc biệt là chuyển động của khâu tác động cuối cùng trong không gian công
tác. Hệ tọa độ gốc đôi khi còn được gọi là hệ tọa độ cố định của robot.
Hệ toạ độ gốc gắn với giá đỡ cố định thường là phần thân máy cố định hoặc nền
xưởng.
- Hệ tọa độ vật
Gắn trên mỗi khâu chuyển động của tay máy một hệ tọa độ gọi là hệ tọa đọ vật.
- Quy tắc bàn tay phải
Sử dụng quy tắc bàn tay phải để quy định hướng của các trục tọa độ trong một
hệ tọa độ
Quy tắc bàn tay phải: Dùng bàn tay phải,nắm hai ngón áp út và út lại, ba ngón cái,
trỏ và giữa xòe ra vuông góc nhau
Ngón cái chỉ phương và chiều trục z
Ngón giữa chỉ phương và chiều trục y
Ngón trỏ chỉ phương và chiều trục x

14
Ảnh 2.1: quy tắc bàn tay phải

2.1.2. Vector định vị và ma trận định vị


2.1.2.1. Vector định vị
Với mỗi một điểm P bất kì trong hệ tọa độ Oxyz, vẽ một vecto r p , gọi rp là vecto
định vị của điểm P trong hệ tọa độ i
Các hình chiếu của vecto rp lên các trục tọa độ lần lượt là: xp, yp, zp
rp = xp + yp + zp (1)
các vecto đơn vị của hệ tọa độ Oxyz. Các vecto đơn vị có phương và chiều trùng với
phương và chiều của các trục tọa độ tương ứng, có độ lớn bằn 1 đơn vị chiều dài.
exi (1, 0, 0)
eyi (0, 1, 0)
ezi (0, 0, 1)
Biểu diễn các vecto hình chiếu x p, yp, zp thông qua các vecto đơn vị và độ lớn
của các hình chiếu trên các trục của hệ tọa độ
xp = exi.xp
yp = eyi.yp
zp = ezi.zp
công thức (1) được viết thành: rp = exi.xp + exi .yp + exi .zp (2)
- Ma trận định vị
Biểu diễn vecto định vị của điểm P trong hệ tọa độ Oxyz dưới dạng ma trận:
xp
rp = y p
zp

1 0 0
Gọi: e xi = 0 , e yi = 1, e zi = 0 là các ma trận đơn vị của hệ tọa độ Oxyz
0 0 1
Biểu diễn công thức (2) dưới dạng ma trận khi thay e xi , e yi , e zi vào vecto rp
2.1.3. Ma trận quay
2.1.3.1. Khái niệm ma trận quay
Ma trận quay là một ma trận vuông n×nn \times nn×n (thường là 3x3 đối với
không gian 3D) có tính chất bảo toàn độ dài và góc giữa các vector khi được áp dụng
15
cho các vector trong không gian đó. Đối với không gian 3D, một ma trận quay RRR
thường có kích thước 3x3.
Một ma trận RRR được coi là ma trận quay nếu:
Nó là một ma trận trực giao (orthogonal), tức là R TR=RRT = I, trong đó RT là ma trận
chuyển vị của R và I là ma trận đơn vị.
Nó có định thức bằng 1, det(R) = 1.
- Phép quay quanh các trục x, y, z
Quay quanh trục x (Roll):

1 0 0
Rx(α) = 0 cos α −sin α
0 sin α cos α

Quay quanh trục y (Pitch):

cos β 0 sin β
Ry(β) = 0 1 0
−sin β 0 cos β 0

Quay quanh trục z (Yaw):

cos γ −sin γ 0
Rz(γ) = sin γ cos γ 0
0 0 1

- Phép quay tổng hợp


Để quay một vector trong không gian 3D, ta có thể kết hợp các phép quay này. Nếu
cần quay một vecto v quanh cả ba trục, ta có thể sử dụng ma trận quay tổng hợp R như sau:
R= Rx(α) Ry(β) Rz(γ)
Trong đó α, β, γ là các góc quay quanh các trục x, y, z tương ứng.
Các phép quay:
Phép quay euler: quay euler có thể thực hiện phép quay theo thừ tự ZXZ, ZYZ, XYX,
XZX, YXY, YZY
Phép quay Cardan
Phép quay Roll-Pitch-Yaw
16
Phép quay tait-bryan
2.1.4. Phép biến đổi đồng nhất các hệ tọa độ
2.1.4.1. Phép biến đổi đồng nhất
Phép biến đổi đồng nhất sử dụng ma trận đồng nhất để mô tả một phép biến đổi
(bao gồm cả quay và tịnh tiến) từ hệ tọa độ này sang hệ tọa độ khác.
2.1.5. Động học thuận
2.1.5.1. Khái niệm
Bài toán động học thuận tay máy là bài toán xây dựng các phương trình mô tả
quy luật thay đổi hướng và vị trí của khâu tác động cuối trong không gian công tác khi
cho trước giá trị của các khớp
2.1.5.2. Ma trận biến đổi thuần nhất giữa hai hệ tọa độ thoe quy tắc D-H

[ ]
cos θi −sin θ i cos α i sin θi sin α i ai cos θi
sin θi cos θ i cos α i −cos θi sin α i a i sin θi
H i−1
1 =
0 sin α i cos α i di
0 0 0 1

Tổng hợp toàn bộ các ma trận để có ma trận biến đổi tổng:


0
Dn = H 01 H 12 H 23 ... H n−1
n

Bảng tham số động học D-H:


Khâu di θi ai αi

1
2
3

n

θi : Góc xoay quanh trục z i−1


d i : Khoảng cách dọc theo trục z i−1
a i: Chiều dài liên kết dọc theo trục x i
α i: Góc xoay quanh trục x i

17
2.1.6. Động học ngược
2.1.6.1. Khái niệm
Bài toán động học ngược cho trước vị trí, hướng của khâu tác động cuối sẽ phải
xác định giá trị của các khớp
2.1.7. Động lực học (Dynamics)
Khái niệm: Bài toán động lực học tay máy là bài toán nghiên cứu mối quan hệ
giữa chuyển động của tay máy và nguyên nhân gây ra các chuyển động đó.
 Phương pháp giải bài toán động lực học tay máy:
- Phương pháp sử dụng phương trình Lagarange II
- Phương pháp Newton – Euler
+ Phương pháp Lagarange
- Phương trình Lagarange viết dưới dạng:
d ∂K ∂K ∂P ¿
( )−( )= +Qi
dt ∂ q ˙ ∂q ∂ qi
Trong đó:
K - Tổng động năng của tay máy.
P - Tổng thế năng tay máy.
¿
Qi - Tổng các lực phát động (của động cơ), các ngoại lực, lực ma sát ở

khâu thứ i.
- Động năng của tay máy: Khâu chuyển động tính tiến:
K 1
i=¿ mi v 2i ¿
2

Trong đó:
mi - Khối lượng của khâu thứ i.
v i - Vận tốc tịnh tiến của khâu thứ i.

- Động năng của tay máy: Khâu chuyển động quay quanh trục cố định:
K 1
i=¿ J i ω2i ¿
2

Trong đó:
J i - Mômen quán tính của khâu thứ i quay quanh trục quay.
ω i - Vận tốc góc khâu thứ i.

- Động năng của tay máy: Khâu chuyển động phức tạp:
K 1 1
i=¿ mi v 2c + J c ω2i ¿
2 2 i i

18
Trong đó:
J c – Mômen quán tính của khâu thứ i tính với trục quay đi qua
i

khối tâm.
v c - Vận tốc của khối tâm khâu thứ i.
i

- Thế năng tay máy:


n n
P=∑ P i=∑ mi ghc i
i=0 i=0

Trong đó:
g - Gia tốc trọn trường
h c - Chiếu cao của khối tâm khâu thứ i so với mốc thế năng.
i

- Phương pháp Newton – Euler


τ i = M (q )q ¨ +C(q , q ˙)q ˙+Gq
Trong đó:
τ i – Mômen tại khớp thứ i, được tính từ tổng hợp các thành phần:
M (q )– Ma trận khối lượng của hệ thống, phụ thuộc vào biến q.

q ¨ – Vector gia tốc của các khớp.


C(q , q ˙)q ˙ – Vector biến động học, phụ thuộc vào q và q˙
Gq – Vector lực trọng trường, phụ thuộc vào q.

2.1.8. Điều khiển (Control)


Công thức PID:
de (t)
u(t )=K p e (t)+ K i∫ e(t)dt+ K d
dt
Trong đó:
u(t): Đầu ra điều khiển tại thời điểm t.
e(t): Sai số giữa giá trị thực tế và giá trị mục tiêu tại thời điểm ttt, được
gọi là sai số điều khiển
K p : Hằng số điều khiển tỷ lệ (proportional gain), điều chỉnh độ lớn của

phản ứng điều khiển dựa trên sai số hiện tại. Nó làm tăng độ lớn của phản ứng điều
khiển tương ứng với độ lớn của sai số hiện tại.

19
K i: Hằng số điều khiển tích phân (integral gain), điều chỉnh tích phân

của sai số theo thời gian. Nó giúp loại bỏ sai số giữa giá trị thực tế và giá trị mục tiêu
dài hạn.
K d : Hằng số điều khiển vi phân (derivative gain), điều chỉnh độ lớn của

phản ứng dựa trên tốc độ thay đổi của sai số. Nó giúp ổn định hệ thống bằng cách dự
đoán và phản ứng với các biến đổi của sai số.
Ứng dụng cho mỗi khớp:
d
θd =K p (θ ref −θ)+ K i∫ θ ref −θ ¿ dt +¿ K d θ −θ ¿
dt ref
Trong đó:
θd : Góc quay yêu cầu cho khớp.

θref : Góc quay mục tiêu mong muốn.


θ : Góc quay hiện tại của khớp.
K p , K i , K d: Các hằng số điều khiển tỷ lệ, tích phân và vi phân như đã mô

tả ở trên
2.2. Cơ sở lý thuyết quỹ đạo chuyển dộng cho mô hình robot
2.2.1. Các khái niệm cơ bản
Thiết kế quỹ đạo là một vấn đề quan trọng trong điều khiển robot, vì để hoàn
thành nhiệm vụ cụ thể của mình thì trước hết phần công tác phải di chuyển theo đúng
quỹ đạo xác định. Nói cách khác, quỹ đạo là một trong những yếu tố cơ bản để mô tả
hoạt động của robot. Việc thiết kế quỹ đạo cung cấp dữ liệu đầu vào cho hệ thống điều
khiển nên cũng là cơ sở trực tiếp cho việc điều khiển.
Theo nhiệm vụ di chuyển của robot, quỹ đạo chuyển động của robot bao gồm hai
dạng: Quỹ đạo điểm – điểm và quỹ đạo đường.
2.2.2. Quỹ đạo trong không gian khớp
a) Chuyển động điểm – điểm
Chuyển động điểm - điểm sử dụng cho một số loại robot như robot hàn điểm,
tán đinh, xếp dỡ vật liệu... trong dạng chuyển động này, các yếu tố cần điều khiển là:
các tọa độ điểm đầu, điểm cuối của đường dịch chuyển và thời gian chuyển động giữa
các điểm đó. Nhiệm vụ đặt ra là xác định quỹ đạo (hay quy luật) chuyển động của các
khớp thỏa mãn các yêu cầu điều khiển và có thể thêm cả một số tiêu chí tối ưu nào đó.
b) Chuyển động theo đường
20
Trong nhiều hoạt động, ví dụ: hàn hồ quang, sơn, xếp dỡ vật liệu... trong không
gian có nhiều chướng ngại vật, robot cần được điều khiển theo đường. Khi đó số lượng
điểm của mỗi đường lớn hơn hai. Đó có thể không chỉ là điểm phải đi qua đơn thuần
mà tại đó có thể phải khống chế cả vận tốc và gia tốc để đáp ứng yêu cầu công nghệ.
Các điểm như vậy gọi là các điểm chốt, số lượng điểm này nhiều hay ít tùy thuộc yêu
cầu độ chính xác của quỹ đạo.
Bài toán đặt ra là xác định quỹ đạo qua N điểm chốt. Như vậy mỗi biến khớp
phải thỏa mãn N điều kiện ràng buộc. Để thực hiện điều đó, có thể nghĩ đến quỹ đạo
dạng đa thức bậc (N-1).
2.2.3. Quỹ đạo trong không gian công tác
Quỹ đạo trong không gian khớp mô tả diễn tiến theo thời gian của các biến
khớp q(t), sao cho phần công tác di chuyển thẳng từ điểm đầu đến điểm cuối của quỹ
đạo hoặc đi qua các điểm trung gian.
Muốn cho phần công tác di chuyển theo đúng lộ trình đã định trong không gian
công tác cần thiết kế quỹ đạo trực tiếp trong chính không gian này. Quỹ đạo có thể xác
lập bằng cách nội suy đường dịch chuyển qua các điểm chốt hoặc xác lập bằng giải
tích hàm chuyển động.
Nhiệm vụ của việc xây dựng quỹ đạo trong không gian công tác là quy luật biến
thiên của biến khớp trong không gian thực phải được chuyển đổi về quy luật biến thiên
của biến khớp trong không gian khớp để điều khiển động cơ làm việc.
2.2.4. Điều khiển trong không gian khớp
Mạch điều khiển nhận giá trị đặt của các biến khớp (có thể qua hệ số chuyển
đổi nào đó) và điều khiển khớp theo sát diễn tiến thời gian của biển khớp. Mạch điều
khiển này đơn giản song độ chính xác bị hạn chế do đối tượng bị giám sát trực tiếp là
phần công tác lại nằm ngoài mạch điều khiển.
2.2.5. Điều khiển trong không gian công tác
Điều khiển trong không gian công tác dựa vào sự so sánh giữa quỹ đạo yêu cầu
của phần công tác trong không gian công tác với quỹ đạo thực, được xác định từ giá trị
thực (đo được) của các biến khớp. Như vậy trong mạch thuận của sơ đồ điều khiển cần
có các khâu để chuyển đổi sai số quỹ đạo trong không gian công tác thành giá trị các
biến trong không gian khớp

21
2.3. Mô hình hóa hệ thống robot
a) Mô hình cơ học:
Mô hình cơ học của robot công nghiệp là mô tả toán học về chuyển động của
các bộ phận robot. Nó được sử dụng để dự đoán hiệu suất của robot, lập kế hoạch
chuyển động và điều khiển robot.
Các thành phần chính của mô hình cơ học robot công nghiệp:
 Hệ thống liên kết: Robot công nghiệp được cấu tạo từ các liên kết được kết nối
với nhau bằng khớp. Mô hình cơ học mô tả các liên kết này như các vật thể
cứng với các thuộc tính khối lượng, mômen quán tính và vị trí trọng tâm.
 Khớp: Khớp cho phép các liên kết chuyển động tương đối với nhau. Mô hình
cơ học mô tả các khớp này như các ràng buộc giữa các liên kết. Các loại khớp
phổ biến bao gồm khớp xoay, khớp trượt và khớp cầu.
 Hệ thống dẫn động: Hệ thống dẫn động cung cấp năng lượng cho chuyển động
của robot. Mô hình cơ học mô tả hệ thống dẫn động này như các mô-men lực
hoặc mô-men xoắn tác động lên các khớp.
 Cảm biến: Cảm biến cung cấp thông tin phản hồi về vị trí, tốc độ và gia tốc của
robot. Mô hình cơ học sử dụng thông tin phản hồi này để điều chỉnh chuyển
động của robot.
Các loại mô hình cơ học robot công nghiệp:
 Mô hình động lực: Mô hình động lực mô tả chuyển động của robot theo các
định luật chuyển động của Newton. Nó được sử dụng để dự đoán hiệu suất của
robot, chẳng hạn như tốc độ và gia tốc.
 Mô hình động học: Mô hình động học mô tả mối quan hệ giữa các khớp của
robot. Nó được sử dụng để lập kế hoạch chuyển động cho robot, chẳng hạn như
tính toán quỹ đạo và thời gian di chuyển.
 Mô hình điều khiển: Mô hình điều khiển mô tả cách hệ thống điều khiển robot
hoạt động. Nó được sử dụng để điều khiển robot, chẳng hạn như theo dõi quỹ
đạo mong muốn.

b) Mô hình liên kết:


Là một cách mô tả cấu trúc của robot công nghiệp bằng cách chia robot thành
các liên kết nối tiếp nhau bằng các khớp. Mỗi liên kết được biểu diễn bởi các thuộc
22
tính hình học và động học, chẳng hạn như vị trí, hướng, khối lượng, mômen quán tính
và ma sát. Các khớp được biểu diễn bởi các ràng buộc giữa các liên kết, xác định cách
các liên kết có thể di chuyển so với nhau.
c) Mô hình điều khiển:
Mô tả toán học về cách hệ thống điều khiển robot hoạt động. Nó được sử dụng
để điều khiển chuyển động của robot theo quỹ đạo và tốc độ mong muốn.
Các thành phần chính của mô hình điều khiển robot công nghiệp:
 Bộ điều khiển: Bộ điều khiển là bộ não của hệ thống điều khiển robot. Nó nhận
thông tin phản hồi từ các cảm biến và sử dụng thông tin này để tính toán các tín
hiệu điều khiển gửi đến các bộ truyền động.
 Bộ truyền động: Bộ truyền động là các thiết bị cung cấp năng lượng cho
chuyển động của robot. Chúng được điều khiển bởi các tín hiệu điều khiển từ
bộ điều khiển.
 Cảm biến: Cảm biến cung cấp thông tin phản hồi về vị trí, tốc độ và gia tốc của
robot. Thông tin phản hồi này được sử dụng bởi bộ điều khiển để điều chỉnh
chuyển động của robot.
 Quỹ đạo mong muốn: Quỹ đạo mong muốn là đường dẫn mà robot muốn di
chuyển.
Các loại mô hình điều khiển robot công nghiệp:
 Điều khiển vị trí: Điều khiển vị trí điều khiển vị trí của robot tại một thời điểm
cụ thể.
 Điều khiển tốc độ: Điều khiển tốc độ điều khiển tốc độ của robot tại một thời
điểm cụ thể.
 Điều khiển lực: Điều khiển lực điều khiển lực tác động bởi robot lên vật thể.
 Điều khiển mô-men: Điều khiển mô-men điều khiển mô-men xoắn tác động
bởi robot lên khớp.
 Điều khiển thích ứng: Điều khiển thích ứng điều chỉnh các tham số điều khiển
dựa trên thông tin phản hồi từ các cảm biến.
 Điều khiển học máy: Điều khiển học máy sử dụng các thuật toán học máy để
học cách điều khiển robot.
Bộ điều khiển PID: là một cơ chế phản hồi vòng điều khiển tổng quát được sử dụng
rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID là bộ điều
23
khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi. Bộ điều khiển PID sẽ
tính toán giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong
muốn. Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều
khiển đầu vào.

CHƯƠNG 3. TÍNH TOÁN, THIẾT KẾ MÔ HÌNH


ROBOT TRONG ROS VÀ MÔI TRƯỜNG MÔ
PHỎNG

24
3.1. Thiết lập môi trường mô phỏng cho mô hình
3.1.1.Cài đặt Ubuntu cho máy tính
Tải Ubuntu: Truy cập trang web chính thức của Ubuntu và tải file ISO của
phiên bản Ubuntu bạn muốn cài đặt. (chủ yếu là phiên bản Ubuntu 20.04)
Thực hiện cài đặt Ubuntu trên máy của mình bằng cách song hệ hoặc cài đặt
trên máy ảo VMware Workstation

3.1.2 Cài đặt ROS


Ta sẽ cài đặt ROS Noetic Ninjemys. Mỗi phiên bản ROS thường sẽ tương ứng
với một phiên bản Ubuntu và ROS Noetic (chạy trên Ubuntu 20) là phiên bản mới nhất
và cũng là phiên bản cuối cùng của ROS 1
Mở terminal bằng tổ hợp phím Ctrl + Alt + T hoặc nhấp chuột phải vào
khoảng trống trong bất kì thư mục nào và chọn Open in Terminal. Gõ các lệnh sau
vào:
3.1.3 Cài đặt các gói phần mềm liên quan
Liệt kê các gói phần mềm cần thiết cho OpenMANIPULATOR-X

Tải xuống và xây dựng các gói OpenMANIPULATOR-X

25
3.2. Thiết lập môi trường mô phỏng trong Gazebo
3.2.1. Cấu hình tệp launch để khởi động Gazebo

Tệp launch này tự động hóa quá trình khởi động mô phỏng Gazebo cho robot
OpenMANIPULATOR-X bằng cách:
 Thiết lập các thông số cần thiết.
 Bao gồm tệp launch chung cho thế giới trống trong Gazebo.
 Tải mô hình URDF của robot vào ROS Parameter Server.
 Khởi động node để thêm mô hình robot vào Gazebo.
 Bao gồm tệp launch để khởi động các node điều khiển robot.
Bằng cách sử dụng tệp launch này, bạn có thể dễ dàng khởi động toàn bộ môi trường
mô phỏng và điều khiển robot OpenMANIPULATOR-X chỉ với một lệnh duy nhất:
Roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch

26
3.3. Tính toán, thiết kế mô hình robot
3.3.1. Thông số kỹ thuật phần cứng.
- Bảng thông số
Thông số Giá trị
Số bậc tự do Degree of Freedom 5 (4 DOF + 1
DOF Gripper)
Tải trọng Payload 0.5 Kg
Sai số quỹ đạo chuyển Repeatability < 0.2 mm
động
Vận tốc góc của các khớp Speed (Joint) 46 rpm
Tầm hoạt động Reach 380 mm
Phạm vi kẹp Gripper Stroke 20 ~ 75 mm
Tổng trọng lượng Weight 0.7 Kg

- Kích thước

Ảnh 3.1: Độ dài các khâu

27
- Quán tính.

Ảnh 3.2: quán tính

- Thông số các khớp

Joint 1

Ảnh 3.3: Khớp thứ 1

 Mass [gram] : 1.0483260e+02


 Center of Gravity [mm]
o X : 0.0000000e+00
o Y : -5.6914372e-01
o Z : 2.6565513e+01
 Inertia Tensor with respect to C1 coordinate frame: [GRAM * MM^2]
o Ixx Ixy Ixz : 1.0781918e+05 0.0000000e+00 0.0000000e+00
28
o Iyx Iyy Iyz : 0.0000000e+00 1.0355255e+05 1.8062416e+03
o Izx Izy Izz : 0.0000000e+00 1.8062416e+03 1.7644210e+04
 Inertia Tensor at CENTER OF GRAVITY with respect to coordinate frame:
[GRAM * MM^2]
o Ixx Ixy Ixz : 3.3802078e+04 0.0000000e+00 0.0000000e+00
o Iyx Iyy Iyz : 0.0000000e+00 2.9569411e+04 2.2121514e+02
o Izx Izy Izz : 0.0000000e+00 2.2121514e+02 1.7610252e+04
 Principal Moments of Inertia: [GRAM * MM^2]
o I1 : 1.7606162e+04
o I2 : 2.9573501e+04
o I3 : 3.3802078e+04

Joint 2

Ảnh 3.4: Khớp thứ 2

 Mass [gram] : 1.4234630e+02


 Center of Gravity [mm]
o X : -9.1617228e+00
o Y : -4.1915210e-01
o Z : 1.0599936e+02
 Inertia Tensor with respect to C2 coordinate frame: [GRAM * MM^2]
o Ixx Ixy Ixz : 1.8365231e+06 -8.2177190e+02 1.6490470e+05
o Iyx Iyy Iyz : -8.2177190e+02 1.8562153e+06 7.6370887e+03
o Izx Izy Izz : 1.6490470e+05 7.6370887e+03 5.4940213e+04
 Inertia Tensor at CENTER OF GRAVITY with respect to coordinate frame:
[GRAM * MM^2]
o Ixx Ixy Ixz : 2.3711450e+05 -2.7513999e+02 2.6666982e+04
o Iyx Iyy Iyz : -2.7513999e+02 2.4488355e+05 1.3126636e+03
29
o Izx Izy Izz : 2.6666982e+04 1.3126636e+03 4.2967059e+04
 Principal Moments of Inertia: [GRAM * MM^2]
o I1 : 3.9362142e+04
o I2 : 2.4070845e+05
o I3 : 2.4489452e+05
o

Joint 3

Ảnh 3.5: Khớp thứ 3

 Mass [gram] : 1.3467049e+02


 Center of Gravity [mm]
o X : 3.6312773e-04
o Y : -4.4304274e-01
o Z : 9.3290225e+01
 Inertia Tensor with respect to C3 coordinate frame: [GRAM * MM^2]
o Ixx Ixy Ixz : 1.3589608e+06 0.0000000e+00 -2.7331036e+00
o Iyx Iyy Iyz : 0.0000000e+00 1.3502276e+06 6.7882502e+03
o Izx Izy Izz : -2.7331036e+00 6.7882502e+03 2.4835638e+04
 Inertia Tensor at CENTER OF GRAVITY with respect to coordinate frame:
[GRAM * MM^2]
o Ixx Ixy Ixz : 1.8688812e+05 0.0000000e+00 1.8290300e+00
o Iyx Iyy Iyz : 0.0000000e+00 1.7818139e+05 1.2221090e+03
o Izx Izy Izz : 1.8290300e+00 1.2221090e+03 2.4809204e+04
 Principal Moments of Inertia: [GRAM * MM^2]
o I1 : 2.4799466e+04
o I2 : 1.7819113e+05
o I3 : 1.8688812e+05
30
Joint 4

Ảnh 3.6: Khớp thứ 4

 Mass [gram] : 2.3550927e+02


 Center of Gravity [mm]
o X : 6.1273313e+00
o Y : 7.9503949e-04
o Z : 6.0472935e+01
 Inertia Tensor with respect to C4 coordinate frame: [GRAM * MM^2]
o Ixx Ixy Ixz : 1.1283350e+06 2.2172215e+02 -6.4649200e+04
o Iyx Iyy Iyz : 2.2172215e+02 1.0777914e+06 3.9825896e+00
o Izx Izy Izz : -6.4649200e+04 3.9825896e+00 1.8277436e+05
 Inertia Tensor at CENTER OF GRAVITY with respect to coordinate frame:
[GRAM * MM^2]
o Ixx Ixy Ixz : 2.6708326e+05 2.2286943e+02 2.2615865e+04
o Iyx Iyy Iyz : 2.2286943e+02 2.0769766e+05 1.5305492e+01
o Izx Izy Izz : 2.2615865e+04 1.5305492e+01 1.7393236e+05
 Principal Moments of Inertia: [GRAM * MM^2]
o I1 : 1.6873182e+05
o I2 : 2.0769694e+05
o I3 : 2.7228452e+05

31
3.3.4. Thiết kế mô hình robot
- Định nghĩa và thiết lập thuộc tính màu sắc

Đoạn code trên định nghĩa các vật liệu màu cho mô hình robot. Mỗi vật liệu có tên
và màu sắc tương ứng được xác định bằng các giá trị RGBA (Đỏ, Xanh lục, Xanh lam,
Alpha).

 Màu sắc:
o black: Đen (0.0, 0.0, 0.0, 1.0)
o white: Trắng (1.0, 1.0, 1.0, 1.0)
o red: Đỏ (0.8, 0.0, 0.0, 1.0)
o blue: Xanh dương (0.0, 0.0, 0.8, 1.0)
o green: Xanh lá cây (0.0, 0.8, 0.0, 1.0)
o grey: Xám (0.5, 0.5, 0.5, 1.0)
o orange: Cam (1.0, 0.4235, 0.0392, 1.0)
32
o brown: Nâu (0.8706, 0.8118, 0.7647, 1.0)

Các màu sắc ở file xacro này sẽ được sự dụng để gắn vào các link ở trong file chính
xây dựng mô hình robot
- Thiết lập các thuộc tính vật lý và điều khiển
+ Macro Tham Chiếu Gazebo

<xacro:macro name="RefLink" params="ref">: Định nghĩa một macro Xacro tên là


RefLink với tham số ref.

<gazebo reference="${ref}">: Phần tử Gazebo được cấu hình để tham chiếu đến một
liên kết có tên được cung cấp bởi tham số ref.

Bên trong phần tử này:

<kp>1000000.0</kp>: Hệ số khuếch đại tỉ lệ cho bộ điều khiển khớp.

<kd>100.0</kd>: Hệ số khuếch đại đạo hàm cho bộ điều khiển khớp.

<mu1>30.0</mu1>: Hệ số ma sát đầu tiên.

<mu2>30.0</mu2>: Hệ số ma sát thứ hai.

<maxVel>1.0</maxVel>: Tốc độ tối đa.

<minDepth>0.001</minDepth>: Độ sâu tiếp xúc tối thiểu.

<material>Gazebo/DarkGrey</material>: Thuộc tính vật liệu cho việc hiển thị.

33
- Cấu Hình Các Liên Kết
Các dòng này sử dụng macro RefLink để áp dụng cùng một bộ cấu hình Gazebo (được
định nghĩa trong macro) cho nhiều liên kết trong robot. Mỗi lệnh <RefLink> cung cấp
một tên liên kết cụ thể làm tham số ref.

- Plugin Điều Khiển ROS

Thêm một plugin vào mô phỏng Gazebo để cho phép điều khiển bằng ROS.
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">: Chỉ
định tên plugin và tên tệp thư viện plugin.
<robotNamespace>open_manipulator</robotNamespace>: Đặt namespace ROS cho
robot.
<controlPeriod>0.001</controlPeriod>: Chỉ định chu kỳ điều khiển bằng giây (1
mili giây trong trường hợp này).

34
<robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>: Chỉ
định loại giao diện mô phỏng phần cứng robot.
Mã XML này tạo ra một mô hình robot trong Gazebo, xác định các thuộc tính
vật lý và điều khiển của các liên kết robot, và tích hợp hệ thống điều khiển ROS. Các
liên kết được cấu hình với các thuộc tính như hệ số ma sát, hệ số khuếch đại cho bộ
điều khiển, tốc độ tối đa và vật liệu hiển thị. Plugin gazebo_ros_control cho phép điều
khiển robot từ hệ thống ROS, tạo điều kiện cho việc thực hiện các thí nghiệm và kiểm
tra trong môi trường mô phỏng trước khi áp dụng vào thực tế.
- Xây dựng mô hình robot OpenManipulator-X
+ Xây dựng mô hình Link1

 <visual>: Phần này định nghĩa hình dạng hiển thị của liên kết khi mô hình được
render trong một trình xem 3D.
 <origin xyz="0 0 0" rpy="0 0 0"/>: Định nghĩa vị trí và hướng của hình dạng
hiển thị trong hệ tọa độ của liên kết. Ở đây, vị trí là (0, 0, 0) và hướng là (0, 0,
0).
 <geometry>: Xác định hình dạng của liên kết.
o <mesh
filename="package://open_manipulator_description/meshes/chain_li
nk1.stl" scale="0.001 0.001 0.001"/>: Sử dụng file mesh từ đường dẫn
chỉ định để mô tả hình dạng liên kết, với tỉ lệ thu nhỏ 0.001 lần.
 <material name="grey"/>: Xác định vật liệu (màu sắc) cho phần hiển thị, ở
đây là màu xám.
 <collision>: Phần này định nghĩa hình dạng va chạm của liên kết, được sử dụng để
tính toán vật lý và va chạm trong môi trường mô phỏng.
 <origin xyz="0 0 0" rpy="0 0 0"/>: Định nghĩa vị trí và hướng của hình dạng
va chạm trong hệ tọa độ của liên kết, tương tự như phần hiển thị.
35
 <geometry>: Xác định hình dạng của phần va chạm.
o <mesh
filename="package://open_manipulator_description/meshes/chain_li
nk1.stl" scale="0.001 0.001 0.001"/>: Sử dụng file mesh từ đường dẫn
chỉ định để mô tả hình dạng liên kết cho va chạm, với tỉ lệ thu nhỏ 0.001
lần.

 <origin xyz="3.0876154e-04 0.0000000e+00 -1.2176461e-04" />: Định nghĩa vị


trí của khối lượng tâm của liên kết trong hệ tọa độ của liên kết. Các giá trị này được
cung cấp theo đơn vị mét (m).
 <mass value="7.9119962e-02" />: Định nghĩa khối lượng của liên kết, ở đây là
7.9119962×10−27.9119962 \times 10^{-2}7.9119962×10−2 kg (tức là khoảng
0.07912 kg).
 <inertia>: Định nghĩa ma trận quán tính của liên kết. Ma trận quán tính là một ma
trận đối xứng 3x3, nhưng vì tính đối xứng, chỉ cần định nghĩa các phần tử phía trên
đường chéo chính.
 ixx="1.2505234e-05": Mô-men quán tính quanh trục x.
 ixy="0.0": Sản phẩm quán tính x-y.
 ixz="-1.7855208e-07": Sản phẩm quán tính x-z.
 iyy="2.1898364e-05": Mô-men quán tính quanh trục y.
 iyz="0.0": Sản phẩm quán tính y-z.
 izz="1.9267361e-05": Mô-men quán tính quanh trục z.

 <joint name="joint1" type="revolute">: Định nghĩa một khớp quay (revolute


joint) với tên là "joint1".

36
 type="revolute": Loại khớp là khớp quay, cho phép quay quanh một trục cố
định.
 <parent link="link1"/>: Xác định liên kết cha của khớp này là "link1".
 <child link="link2"/>: Xác định liên kết con của khớp này là "link2".
 <origin xyz="0.012 0.0 0.017" rpy="0 0 0"/>: Định nghĩa vị trí và hướng của
khớp trong hệ tọa độ của liên kết cha.
 xyz="0.012 0.0 0.017": Vị trí của khớp trong hệ tọa độ của liên kết cha là
(0.012, 0.0, 0.017).
 rpy="0 0 0": Góc quay quanh các trục x, y, z là (0, 0, 0).
 <axis xyz="0 0 1"/>: Định nghĩa trục quay của khớp, ở đây là trục z (0, 0, 1).
 <limit velocity="4.8" effort="1" lower="${-pi*0.9}" upper="${pi*0.9}" />:
Định nghĩa các giới hạn của khớp:
 velocity="4.8": Giới hạn tốc độ góc của khớp là 4.8 rad/s.
 effort="1": Giới hạn lực mô-men của khớp là 1 Nm.
 lower="${-pi*0.9}" và upper="${pi*0.9}": Giới hạn góc quay của khớp từ
−0.9π-0.9\pi−0.9π đến 0.9π0.9\pi0.9π rad (khoảng từ -162° đến 162°).
- Xây dựng mô hình Link 2, Link 3, Link 4, Link 5, Gripper link, Gripper link sub
giống với đoạn code xây dựng mô hình Link 1 chỉ khác 1 số đặc điểm sau:
 <geometry> mỗi khối sẽ sự dụng 1 file mesh riêng để mô tả hình dáng liên kết,
với tỉ lệ thu nhỏ 0.001
 <inertial> mỗi khối sẽ có 1 vị trí của khối lượng tâm của liên kết trong hệ tọa
độ của liên kết, khối lượng và Ma trận quán tính riêng biệt
 <Joint> mỗi khối sẽ có cặp khớp liên kết cha và liên kết con (lấy khối đang xét
để làm liên kết cha, ngoài ra có sự khác nhau giữa trục xoay của khối Link 1 và
các khối còn lại và mỗi khối sẽ có định nghĩa các giới hạn của khớp khác nhau.
3.4. Nghiên cứu, xây dựng bộ điều khiển PID cho mô hình robot
3.4.1. Viết chương trình PID
Chúng ta sẽ viết chương trình pid bằng file .yaml nằm trong thư mục config của
package open_manipulator_gazebo

37
 p: Hệ số tỷ lệ (Proportional gain). Đây là hệ số khuếch đại cho lỗi hiện tại. Giá trị
này xác định mức độ phản hồi của bộ điều khiển đối với lỗi hiện tại.
 i: Hệ số tích phân (Integral gain). Đây là hệ số khuếch đại cho lỗi tích lũy theo thời
gian. Nó giúp loại bỏ sai số ổn định nhưng có thể gây ra dao động nếu không được
điều chỉnh đúng cách.
 d: Hệ số vi phân (Derivative gain). Đây là hệ số khuếch đại cho tốc độ thay đổi của
lỗi. Nó giúp giảm thiểu dao động bằng cách dự đoán các thay đổi trong lỗi.
 i_clamp: Giới hạn cho thành phần tích phân. Nó đặt giới hạn cho giá trị tích lũy của
thành phần tích phân để ngăn chặn tình trạng quá mức tích lũy (antiwindup).
 antiwindup: Một cài đặt boolean (đúng/sai) để kích hoạt hoặc vô hiệu hóa chức
năng chống quá mức tích lũy. Khi true, chức năng chống quá mức tích lũy sẽ được
kích hoạt.
 publish_state: Một cài đặt boolean (đúng/sai) để kích hoạt hoặc vô hiệu hóa việc
xuất bản trạng thái của bộ điều khiển PID. Khi true, trạng thái của bộ điều khiển sẽ
được xuất bản, thường là để theo dõi và kiểm tra.
-Các khớp joint2, joint3, joint4, và các bộ phận kẹp gripper, gripper_sub đều có cấu
trúc tương tự với các tham số PID riêng biệt
3.4.2. Hiệu chỉnh các thông số PID
- Hiệu chỉnh cho joint 1

38
Ảnh 3.1: Hiệu chỉnh cho joint1
- Hiệu chỉnh cho joint2

Ảnh 3.7: Hiệu chỉnh cho joint2

- Hiệu chỉnh cho joint 3

39
Ảnh 3.8: Hiệu chỉnh cho joint3

- Hiệu chỉnh cho joint 4

Ảnh 3.9: Hiệu chỉnh cho joint4

40
- Hiệu chỉnh cho joint gripper

Ảnh 3.10: Hiệu chỉnh cho gripper

3.5. Thiết lập quỹ đạo chuyển động gắp vật thể cho mô hình robot.
BƯỚC 1: tạo thư mục scripts trong package open_manipulator_gazebo bằng cách chỉ
đến package open_manipulator_gazebo và chạy câu lênh mkdir scripts
BƯỚC 2: Tạo file Python script quydao.py và thực thi file script này bằng cách
touch quydao.py
chmod +x quydao.py
BƯỚC 3: Viết chương trình quydao.py để thiết lập quỹ đạo chuyển dộng gắp vật thể
cho mô hình robot
BƯỚC 4: Thực thi chương trình:
- ta mở 4 ô terminal
- roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch
- roslaunch open_manipulator_controller open_manipulator_controller.launch
use_platform:=false
- roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch

41
(chú ý sau khi chạy 3 câu lệnh phải nhớ chạy Timer start ở gui và nút phát )
- Cuối cùng chỉ dến scripts và chạy lệnh python3 quydao.py
BƯỚC 5: Sữa chữa file quydao.py
-Sau khi chạy file quydao.py mà robot ở Gazebo di chuyển không đúng ý thì phải
thay đổi code để có quỹ đạo chuyển động ưng ý nhất

CHƯƠNG 4. MÔ PHỎNG THỬ NGHIỆM VÀ KẾT


QUẢ
4.1. Mô phỏng thử nghiệm và kết quả
4.1.1. Khởi động gazebo
- Khởi động OpenManipulator-X trong Gazebo simulator:
$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch

42
Ảnh 4.1: Mô hình sau khi khởi động

- Kiểm tra các node đang hoạt động ta có thể dùng :

$ rosnode list

43
Ảnh 4.2: Các node đang hoạt động

- Kiểm tra các các topics đang hoạt đông khi chạy mô phỏng:

$ rostopic list

Ảnh 4.3: Các topics đang hoạt động

4.1.2. Bộ điều khiển cho gazebo


- Khởi động the open_manipulator_controller for Gazebo simulation.

$ roslaunch open_manipulator_controller open_manipulator_controller.launch

44
use_platform:=false
Lưu ý: khi khởi động bộ điều khiển: Đảm bảo tham số use_platform là false.

Ảnh 4.4: Bộ điều khiển khởi động thành công

4.1.3. Điều khiển trong gazebo


Để điều khiển OpenMANIPULATOR-X được mô phỏng có thể điều khiển
bằng 2 loại hình:
+ Chương trình GUI:
GUI là một chương trình giao diện điền khiển mô hình robot Openmanipulator X:
$ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch

45
Ảnh 4.5: Giao diện GUI

+ Điều khiển bằng bàn phím:

$ roslaunch open_manipulator_teleop open_manipulator_teleop_keyboard.launch

Ảnh 4.6: Bộ điều khiển bằng bàn phím

46
KẾT LUẬN
Nội dung "Nghiên cứu, thiết kế mô hình và xây dựng chu trình điều khiển cho
mô hình robot OpenMANIPULATOR-X trên nền tảng ROS" là một đề tài nghiên cứu
mang tính ứng dụng cao, hứa hẹn sẽ mang lại những kết quả nghiên cứu giá trị và thiết
thực. Việc ứng dụng nền tảng ROS vào việc mô phỏng và điều khiển robot
manipulator OpenMANIPULATOR-X sẽ tạo điều kiện thuận lợi cho việc nghiên cứu,
phát triển các thuật toán điều khiển tối ưu, từ đó mở ra nhiều ứng dụng tiềm năng của
robot trong thực tế.
Hoàn thành đề tài, sinh viên không chỉ được trang bị kiến thức chuyên sâu về
robot manipulator, điều khiển PID, lập trình điều khiển robot trên nền tảng ROS mà
còn được rèn luyện kỹ năng nghiên cứu khoa học, khả năng tự học hỏi, tự tìm tòi giải
quyết vấn đề. Những kết quả đạt được từ đề tài nghiên cứu này được kỳ vọng sẽ là tiền
đề cho các nghiên cứu chuyên sâu hơn trong lĩnh vực robot manipulator, góp phần
thúc đẩy sự phát triển của ngành robot học tại Việt Nam.

TÀI LIỆU THAM KHẢO


https://emanual.robotis.com/docs/en/platform/openmanipulator_x/ros_simulation/
https://wiki.ros.org/vn
https://vi.wikipedia.org/wiki/Bộ_điều_khiển_PID

47

You might also like