Professional Documents
Culture Documents
remake báo cáo 5
remake báo cáo 5
TRƯỜNG CƠ KHÍ – Ô TÔ
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
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
2.1.Cơ sở lý thuyết................................................................................................14
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
KẾT LUẬN...............................................................................................................46
5
MỤC LỤC HÌNH ẢNH
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
- 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.
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…
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ỏ.
14
Ảnh 2.1: quy tắc bàn tay phải
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 α
cos β 0 sin β
Ry(β) = 0 1 0
−sin β 0 cos β 0
cos γ −sin γ 0
Rz(γ) = sin γ cos γ 0
0 0 1
[ ]
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
1
2
3
…
n
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
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ả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.
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.
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
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
27
- Quán tính.
Joint 1
Joint 2
Joint 3
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
<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.
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.
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.
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
39
Ảnh 3.8: Hiệu chỉnh cho joint3
40
- Hiệu chỉnh cho joint 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
42
Ảnh 4.1: Mô hình sau khi khởi độ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
44
use_platform:=false
Lưu ý: khi khởi động bộ điều khiển: Đảm bảo tham số use_platform là false.
45
Ảnh 4.5: Giao diện GUI
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.
47