Tải bản đầy đủ (.pdf) (108 trang)

Công cụ mô hình và thiết kế hệ thống robot

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

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
------------------------------

NGUYỄN THANH TÙNG

CƠNG CỤ MƠ HÌNH VÀ THIẾT KẾ
HỆ THỐNG ROBOT

Chuyên ngành: Công nghệ thông tin
Mã số ngành: 01.02.10

LUẬN VĂN THẠC SĨ

TP. Hồ Chí Minh, tháng 10 năm 2005


Cơng cụ mơ hình và thiết kế các hệ thống robot

CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : TS. Lê Ngọc Minh
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 1 : TS. Nguyễn Huy Hoàng
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2 : TS. Nguyễn Đức Cường
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ


TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 6 tháng 1 năm 2006 .

Trang ii


Cơng cụ mơ hình và thiết kế các hệ thống robot

LỜI CẢM ƠN
Tôi xin chân thành cảm ơn thầy Lê Ngọc Minh đã tận tình hướng dẫn tơi hồn thành đề tài
này. Ngồi ra, tơi cũng xin cảm ơn các thầy phản biện, các thầy cô trong khoa Công nghệ
thông tin và bạn bè đồng nghiệp về mọi sự giúp đỡ, đóng góp ý kiến trong giai đoạn hiện thực
luận văn của mình. Đặc biệt, con xin cảm ơn bố Đôn và mẹ Mai đã luôn bên con trong những
lúc khó khăn nhất.

Trang iii


Cơng cụ mơ hình và thiết kế các hệ thống robot

TĨM TẮT
Mơ hình hóa và mơ phỏng đóng vai trị rất quan trọng trong việc phát triển các hệ thống cơng
nghiệp hiện nay. Hiện nay, chúng ta có các framework chun biệt dùng trong mơ phỏng, mơ
hình và thiết kế như Simulink của MathWorks, LabView của National Intruments và Signal
Processing Worksystem (SPW) của Cadence,...Tất cả các framework này đều thuộc loại
framework hướng tác tử. Các framework hướng tác tử có các thành phần là các đối tượng
đồng thời tương tác với nhau thông qua việc truyền nhận thông điệp. Chúng có một mơ hình
tính tốn cố đinh để quản lý sự tương tác giữa các thành phần đồng thời với nhau. Tuy nhiên,
các framework này khó có thể được sử dụng để mơ hình các hệ thống điều khiển phức tạp vì
hầu hết các hệ thống này đều là hệ thống bất đồng nhất (dựa trên các mơ hình tính tốn khác
nhau). Để giải quyết vấn đề này, nhóm nghiên cứu Pteam của giáo sư E.A. Lee đã vận dụng

khái niệm bất đồng nhất phân cấp để hiện thực một framework mới có tên là Ptolemy. Trong
luận văn này, chúng tôi sẽ thay đổi framework này để thiết kế và mơ hình các hệ thống robot
bởi vì các hệ thống này thực sự là các hệ thống lai, có các mơ hình tính tốn khác nhau. Các
chuyển động vật lý thường thích hợp với mơ hình thời gian liên tục trong khi bộ điều khiển lại
thích hợp với mơ hình sự kiện rời rạc. Ngồi ra, chúng tơi cũng sẽ sử dụng framework mới
này để thiết kế hệ thống robot hai liên kết nhằm đánh giá kết quả của đề tài.

Trang iv


Cơng cụ mơ hình và thiết kế các hệ thống robot

SUMMARY
Simulation and modeling play a very important role in developing industrial systems
nowadays. There are many concurrent, domain-specific frameworks for simulation, modeling
and design such as Simulink from MathWorks, LabView from National Instruments, and
Signal Processing Worksystem (SPW) from Cadence… All of them are classified as actororiented framework where components are concurrent objects that communicate via
messaging, and define a fixed model of computation to manage the interaction among their
concurrent components. However, these frameworks hardly model complex control systems
because most of them are heterogeneous (based on many different models of computation). To
solve this problem, a PTeam group (EECS department - University of California, Berkeley)
leaded by E.A. Lee make use hierarchical heterogeneity concept and implemented it in their
framework called Ptolemy. In this work, I branched this framework to design and model
control systems in robot because these control systems are really hybrid systems with different
models of computation. Most physical movements, forces, torques, for example, are
represented by differentiate equations which are very suitable for continuous time model
while their computer-based controllers use discrete event model. In addition, I used this
branched framework to design control system for the two-link manipulator to evaluate my
work.


Trang v


Cơng cụ mơ hình và thiết kế các hệ thống robot

MỤC LỤC
DANH MỤC HÌNH .............................................................................................................3
1

ĐẶT VẤN ĐỀ...............................................................................................................5

2

CÁC NGHIÊN CỨU LIÊN QUAN ............................................................................6
2.1

Matlab ....................................................................................................................6

2.1.1

Simulink.............................................................................................................7

2.1.2

SimMechanics....................................................................................................9

2.1.3

Hộp công cụ Robotics trong Matlab ................................................................15


2.2

Modelica ..............................................................................................................20

2.2.1

Các đặc trưng của ngôn ngữ Modelica ............................................................21

2.2.2

Các thư viện của Modelica ..............................................................................26

2.2.3

Các môi trường mô phỏng của Modelica.........................................................27

2.3

RoboWorks ..........................................................................................................29

2.4

Dự án Ptolemy .....................................................................................................30

2.4.1

Gabriel (1986-1991) ........................................................................................31

2.4.2


Ptolemy classic (1990-1997) ...........................................................................31

2.4.3

Ptolemy II (1996-?)..........................................................................................32

2.4.4

Một số hệ thống ứng dụng thực tế của phần mềm Ptolemy II .........................32

3

PHÂN TÍCH ĐỀ TÀI ................................................................................................34

4

CÁC KIẾN THỨC CƠ BẢN ....................................................................................37
4.1

Các kiến thức cơ bản trong robotics ....................................................................37

4.1.1

Các ký hiệu sử dụng.........................................................................................37

4.1.2

Động học (Kinematics)....................................................................................37

4.1.3


Động lực học (Dynamics)................................................................................40

4.1.4

Phương trình khơng gian trạng thái (state space equation)..............................43

4.1.5

Mô phỏng động lực học ...................................................................................44

4.1.6

Điều khiển trong Robotics ...............................................................................45

4.1.7

Bộ sinh chuyển động........................................................................................51

4.1.8

Bộ cảm biến .....................................................................................................52

4.2
4.2.1

Môi trường Ptolemy II .........................................................................................53
Thiết kế dựa trên platform và thiết kế dựa trên mơ hình .................................53

Trang 1



Cơng cụ mơ hình và thiết kế các hệ thống robot

4.2.2

Thiết kế hướng tác tử (actor-oriented design) .................................................58

4.2.3

Ngôn ngữ hướng tác tử (actor-oriented languages) ........................................62

4.2.4

Thiết kế hệ thống điều khiển hướng tác tử (AO control system design) .........64

4.3
5

6

THIẾT KẾ HỆ THỐNG ...........................................................................................67
5.1

Các gói .................................................................................................................68

5.2

Các tác tử và director chính .................................................................................69


5.3

Các vấn đề cần lưu ý trong giai đoạn thiết kế......................................................70

HIỆN THỰC HỆ THỐNG........................................................................................71
6.1

Mơi trường lập trình.............................................................................................71

6.2

Làm việc với Ptolemy II ......................................................................................72

6.2.1

Thêm một miền (domain) hay tác tử mới vào Ptolemy II ...............................72

6.2.2

Tác tử trong Ptolemy II....................................................................................73

6.2.3

Các chuẩn lập trình trong Ptolemy II...............................................................76

6.3
7

8


9

Cơng cụ tính tốn Maple......................................................................................67

Các lớp và tác tử đã thực hiện..............................................................................79

THỬ NGHIỆM VÀ ĐÁNH GIÁ ..............................................................................86
7.1

Thử nghiệm..........................................................................................................87

7.2

Đánh giá...............................................................................................................91

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN................................................................92
8.1

Kết luận................................................................................................................92

8.2

Hướng phát triển ..................................................................................................95

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

10

PHỤ LỤC................................................................................................................98
10.1


Các thử nghiệm khác ...........................................................................................98

10.2

Bài báo đã đăng.................................................... Error! Bookmark not defined.

Trang 2


Cơng cụ mơ hình và thiết kế các hệ thống robot

DANH MỤC HÌNH
Hình 1 Thư viện SimMechanics trong Simulink Library Browser......................................12
Hình 2 Thư viện SimMechanics (dạng khác) ......................................................................13
Hình 3 Mơ hình con lắc đơn và đơi trong SimMechanics ...................................................14
Hình 4 Các cơng cụ có trong Robotics Toolbox for Matlab................................................16
Hình 5 Biểu diễn của robot Puma 560 trong Robotics Toolbox for Matlab [11] ................18
Hình 6 Các lệnh để tạo các đối tượng liên kết trong Matlab ...............................................19
Hình 7 Các sơ đồ trong các miền khác nhau trong Modelica [31] ......................................21
Hình 8 Hệ thống điều khiển mô tơ đơn giản trong Modelica [31] ......................................22
Hình 9 Sơ đồ kết hợp của lớp mơ hình Motor [31] .............................................................23
Hình 10 Ví dụ về một mơ hình thiết kế bằng RoboWorks ..................................................30
Hình 11 Ptolemy II framework............................................................................................32
Hình 12 Mơ hình mạng cảm biến [33].................................................................................33
Hình 13 Bên trong của tác tử Initiator [33]..........................................................................33
Hình 14 Ứng dụng thực tế của mạng cảm biến [33]............................................................34
Hình 15 ROADNet: Real-time Observatories, Applications, and Data management
Network [33]................................................................................................................34
Hình 16 Sự khác biệt giữa hai dạng biểu diễn Denavit-Hartenberg ....................................39

Hình 17 So sánh các chi phí tính tốn khi tính inverse dynamics bằng các phương pháp
khác nhau [11] .............................................................................................................41
Hình 18 Sơ đồ khối trừu tượng của một hệ thống điều khiển robot ....................................46
Hình 19 AC servo-motors....................................................................................................52
Hình 20 Mơ hình điều khiển dùng bộ sinh chuyển động và bộ cảm biến ...........................53
Hình 21 Mơ hình Actor-oriented [8]....................................................................................57
Hình 22 Sự khác nhau giữa hướng mơ hình và hướng tác tử [32] ......................................63
Hình 23 Một qui trình thiết kế hệ thống điều khiển kinh điển [24] .....................................65
Hình 24 Qui trình thiết kế mới [24] .....................................................................................66
Hình 26 Miền Robotics trong Ptolemy II ............................................................................73
Hình 27 Cấu trúc tiêu biểu của một tác tử ...........................................................................75
Hình 28 Một file mã nguồn java theo chuẩn .......................................................................78
Hình 29 Giải phương trình vi phân sử dụng DynCT Director và các tác tử phát triển bởi đề
tài .................................................................................................................................79
Hình 30 Giải phương trình vi phân sử dụng CT Director và các tác tử có sẵn trong Ptolemy
.....................................................................................................................................80
Hình 31 Kết quả khi giải một phương trình vi phân đơn giản.............................................80
Hình 32 Cấp ngồi cùng của mơ hình robot hai liên kết .....................................................87
Hình 33 Bên trong khối Controller ......................................................................................89
Hình 34 Bên trong khối HostCompter.................................................................................89
Hình 35 Bên trong khối interpolator....................................................................................90
Hình 36 Bên trong khối mơ phỏng robot.............................................................................91
Hình 37 Bên trong khối 3DRobotViewer ............................................................................91
Hình 38 Tạo robot hai liên kết trong Ptolemy II..................................................................99
Hình 39 Các tham số của liên kết ........................................................................................99
Hình 40 Một số tác tử biến đổi ..........................................................................................100
Hình 41 Tính ma trận động học dạng số............................................................................100
Trang 3



Cơng cụ mơ hình và thiết kế các hệ thống robot

Hình 42 Tính ma trận động học dạng ký hiệu ...................................................................101
Hình 43 Tính lực quay dạng số của các khớp khi biết các chuyển động (phương trình động
lực học) ......................................................................................................................101
Hình 44 Giải phương trình động lực học bằng phương pháp Euler trong [2] ...................103
Hình 45 Mơ hình sử dụng phương trình động lực học để mơ phỏng chuyển động của robot
...................................................................................................................................103

Trang 4


Cơng cụ mơ hình và thiết kế các hệ thống robot

1

ĐẶT VẤN ĐỀ
Các nghiên cứu về robot chủ yếu tập trung vào việc sử dụng các thành phần cơ khí,

cảm biến (sensors), các thiết bị cơ khí dùng để di chuyển hay điều khiển một vật thể nào
đó (actuator) và máy tính để tạo ra các thiết bị có chức năng giống như một số chức năng
của con người. Điều này đòi hỏi các kiến thức từ nhiều lĩnh vực cơ bản khác nhau. Các
kiến thức về lĩnh vực cơ khí sẽ cung cấp các phương pháp luận dùng để nghiên cứu các
thiết bị máy móc ở trạng thái tĩnh hoặc động. Kiến thức về lĩnh vực toán học sẽ cung cấp
các công cụ để mô tả các chuyển động trong khơng gian và các thuộc tính khác của các tay
máy. Lý thuyết điều khiển sẽ cung cấp các công cụ dùng trong việc thiết kế và đánh giá các
giải thuật để đạt được các chuyển động hoặc lực tác động như mong muốn. Các kỹ thuật
trong lĩnh vực điện tử thì sẽ được dùng để thiết kế các cảm biến và các giao diện của các
robot công nghiệp (industrial robots). Cuối cùng, kiến thức trong lĩnh vực khoa học máy
tính sẽ đóng góp vào việc lập trình các thiết bị này để hoàn thành các nhiệm vụ đặt ra. Ở

mức độ trừu tượng tương đối cao, robotic được chia làm bốn lĩnh vực chính: cơ khí, động
học, thị giác máy tính (computer vision) và trí tuệ nhân tạo.
Trước đây, để tạo ra được một hệ thống robot đáp ứng được một cách tương đối
các yêu cầu thực tế trong công nghiệp, chúng ta phải đầu tư rất nhiều thời gian, tài chính
cũng như nhân lực. Chúng ta phải tạo ra nhiều mẫu thử nghiệm (prototype) trước khi đi
đến một sản phẩm hoàn chỉnh. Ngày nay, với sự trợ giúp của máy tính (các hệ thống CAD
– Computer Aided Design, CAM – Computer Aided Manufacturing) chúng ta có thể tiết
kiệm được phần lớn các tài nguyên này. Chúng ta có thể dùng máy tính để thiết kế, tính
tốn, mơ hình hóa, mơ phỏng và kiểm tra các hệ thống robot trước khi thật sự hiện thực hệ
thống. Điều này cũng giúp mở rộng thêm khả năng của hệ thống robot (cho phép các hệ
thống này có được các khả năng phức tạp và chính xác hơn). Trước đây, các robot công
nghiệp chỉ thực hiện được một số công việc đơn giản như: sơn, di chuyển vật liệu, hàn,…
Ngày nay, người ta đã có thể sử dụng robot trong các cơng việc địi hỏi độ chính xác cao
và phức tạp hơn như lắp ráp các thiết bị điện tử, ô tô, máy móc…
Đề tài này sẽ phát triển một số cơng cụ dùng để mơ hình và thiết kế các hệ thống
robot. Vậy hiện nay đang có các cơng cụ mơ phỏng robot nào? Đề tài tạo từ đầu toàn bộ hệ
thống hay phát triển trên một mơi trường có sẵn? Nếu phát triển trên mơi trường có sẵn thì

Trang 5


Cơng cụ mơ hình và thiết kế các hệ thống robot

chọn môi trường nào? Mối liên hệ giữa môi trường đó với các hệ thống điều khiển của
robot?... Các câu hỏi này sẽ được giải quyết trong các phần tiếp theo: các nghiên cứu liên
quan và phân tích đề tài.

2

CÁC NGHIÊN CỨU LIÊN QUAN

Hiện nay, có một số cơng cụ đã được phát triển để mơ hình hóa và mơ phỏng các

hệ thống tổng qt (khơng riêng gì lĩnh vực robotics) như Simulink (Mathworks),
LabVIEW, Modelica, Ptolemy II,… Ngồi các cơng cụ tổng qt này cịn có các cơng cụ
chun dùng để mơ hình và mơ phỏng cho các hệ thống robot như chương trình
RoboWorks được phát triển bởi Chetan Kapoor (người sáng lập ra công ty Newtonium);
BugWorks 2D Robot Simulator; Camelot-Robot Offline Programming and Simulation
Software; Mobile Robot Simulators… Trong phần này chúng ta sẽ đề cập đến các công cụ
thiết kế, mơ hình robot tiêu biểu đang được sử dụng phổ biến là SimMechanics, hộp công
cụ Robotics trong Matlab (Robotics Toolbox for Matlab), Modelica và Roboworks. Tuy
nhiên, do có một số công cụ được xây dựng trên nền một hệ thống khác nên chúng ta phải
tìm hiểu sơ qua về hệ thống nền trước khi tìm hiểu bản thân các cơng cụ đó. Ví dụ hộp
cơng cụ Robotics trong Matlab và SimMechanics được phát triển trên nền Matlab và
Simulink nên trước khi trình bày về chúng, chúng ta sẽ tìm hiểu về Matlab và Simulink
trước.

2.1 Matlab
Matlab là gì? Matlab là một ngơn ngữ có tính biễu diễn cao chun dùng cho các
vấn đề tính tốn kỹ thuật. Nó tích hợp việc tính tốn, biễu diễn trực quan (visualization), và
việc lập trình trong một mơi trường thân thiện, dễ dùng. Trong mơi trường này, các bài
tốn và lời giải đều được diễn đạt bằng các ký hiệu toán học quen thuộc. Matlab thường
được dùng trong lĩnh vực toán học, lĩnh vực phát triển các giải thuật, thu thập thơng tin,
mơ hình hóa, mơ phỏng và tạo mẫu (prototyping), phân tích dữ liệu, các ứng dụng đồ họa
khoa học kỹ thuật,...
Matlab là một hệ thống tương tác có thành phần dữ liệu cơ bản là một dãy có kích
thước khơng bắt buộc phải xác định do đó nó cho phép chúng ta giải quyết được các bài
tốn tính tốn kỹ thuật đặc biệt là các bài toán vector hay ma trận.

Trang 6



Cơng cụ mơ hình và thiết kế các hệ thống robot

Matlab là viết tắt của hai từ Matrix laboratory. Trước đây Matlab được phát triển
chỉ để tạo được sự dễ dàng khi truy xuất các phần mềm về ma trận trong hai dự án
LINPACK và EISPACK. Ngày nay, công cụ Matlab đã được tổng hợp trong nó các phần
mềm chuyên dùng để tính tốn ma trận như hệ thống thư viện LAPACK và BLAS.
Matlab đã phát triển được nhiều năm và được sử dụng bởi rất nhiều người. Trong
môi trường đại học, công cụ Matlab được dùng rất phổ biến trong việc giảng dạy các mơn
tốn, kỹ thuật và khoa học cơ bản cũng như nâng cao. Trong lĩnh vực cơng nghiệp, Matlab
được dùng trong các nghiên cứu, phân tích và phát triển nhằm tạo ra các hệ thống có năng
suất cao.
Matlab chứa giải pháp của từng ứng dụng riêng biệt trong các hộp công cụ
(toolbox) khác nhau. Các hộp công cụ này tạo cho người sử dụng khả năng nắm bắt cũng
như áp dụng được một số công nghệ chun biệt nào đó. Hộp cơng cụ là một tập hợp của
các hàm của Matlab (M-files) được thêm vào môi trường Matlab để giải quyết một lớp bài
toán cụ thể nào đó. Hiện nay, Matlab đã có hộp cơng cụ trong một số lĩnh vực như: xử lý
tín hiệu số, hệ thống điều khiển, mạng neural, logic mờ, wavelets, mô phỏng…
Hệ thống Matlab bao gồm 5 phần: môi trường phát triển, thư viện các hàm tốn
học, ngơn ngữ Matlab, đồ họa, thư viện giao diện lập trình Matlab (Application
Programming Interface).

2.1.1 Simulink
Simulink framework là một gói phần mềm trong Matlab của hãng Mathworks dùng
để mơ hình hóa, mơ phỏng và phân tích các hệ thống động (dynamic system). Framework
này hỗ trợ các hệ thống tuyến tính và phi tuyến được mơ hình trong miền thời gian liên tục,
miền thời gian được lấy mẫu (sampled time) cũng như sự kết hợp của cả hai miền thời gian
này.
Simulink cho phép chúng ta dễ dàng xây dựng các mơ hình mới từ đầu hay bằng
cách thay đổi các mơ hình sẵn có. Q trình mơ phỏng trong Simulink cũng có tính tương

tác nên chúng ta có thể dễ dàng thay đổi các thơng số trong q trình mơ phỏng một cách
trực tiếp và thấy được kết quả của sự thay đổi ngay lập tức . Ngoài ra, do được phát triển
trên Matlab nên chúng ta có thể sử dụng các cơng cụ phân tích có sẵn trong Matlab để
phân tích và hiển thị các kết quả của hệ thống mà ta đang mơ hình. Mục tiêu chủ yếu của

Trang 7


Cơng cụ mơ hình và thiết kế các hệ thống robot

Simulink là tạo sự “vui thích” cho người sử dụng trong việc mơ hình và mơ phỏng thơng
qua một mơi trường thân thiện nhằm khuyến khích người sử dụng nghĩ ra vấn đề, mơ hình
nó và “nhìn được” chuyện gì sẽ xảy ra.
Với Simulink, chúng ta có thể tiến xa hơn các mơ hình hệ thống tuyến tính lý
tưởng để đến với việc nghiên cứu các mơ hình phi tuyến mang tính thực tế hơn như sức
cản khơng khí, sự ma sát, gear slippage, cũng như các yếu tố mô tả các hiện tượng trong
thế giới thực khác. Simulink sẽ biến máy tính của chúng ta thành một phịng thí nghiệm
dùng để mơ hình và phân tích các hệ thống khơng tưởng hoặc các hệ thống đang có trong
thực tế. Các hệ thống này có thể là mơ hình của các hành vi trong hệ thống ấp trứng tự
động, sự rung của cánh máy bay hoặc sự ảnh hưởng của việc dự trữ tiền tệ đối với nền kinh
tế.
Simulink mang tính thực tế cao do nó đã được hàng ngàn kỹ sư trên khắp thế giới
sử dụng để mơ hình và giải quyết các vấn đề thực tế.
Đối với chức năng mơ hình hóa, Simulink cung cấp một giao diện đồ họa để xây
dựng các mơ hình theo sơ đồ khối (block diagram) bằng các thao tác kéo thả chuột đơn
giản trong khi các gói mơ phỏng trước đây địi hỏi các công thức vi phân cũng như các
công thức khác phải được nhập vào bằng chương trình. Simulink đã chứa sẵn trong nó thư
viện các khối cơ bản của các thành phần như sinks, sources, thành phần tuyến tính, phi
tuyến và các kết nối. Tuy nhiên, chúng ta cũng có thể tự tạo các khối của riêng mình.
Các mơ hình đều có một cấu trúc nhất định do đó chúng ta có thể xây dựng chúng

theo phương pháp từ trên xuống hay từ dưới lên đều được. Chúng ta có thể nhìn (view) hệ
thống ở mức trừu tượng cao rồi double-click vào các khối để đi vào chi tiết hơn. Cách tiếp
cận này cho phép chúng ta có được cái nhìn bên trong (insight) về cách tổ chức của mơ
hình cũng như cách các thành phần trong mơ hình tương tác với nhau.
Sau khi đã xây dựng xong mô hình, chúng ta có thể mơ phỏng chúng bằng cách sử
dụng các phương pháp có sẵn trong các menu của Simulink hay bằng cách nhập các lệnh
vào trong cửa sổ lệnh của Matlab. Cách chọn lựa từ menu của Simulink thì thuận tiện cho
việc giao tiếp cịn cách dùng dịng lệnh thì thích hợp để thực hiện một “bó” các mơ phỏng
(a batch of simulation). Chúng ta có thể nhìn được các kết quả trong q trình mơ phỏng
thơng qua scopes và các khối hiển thị khác. Hơn nữa, chúng ta có thể thay đổi các tham số

Trang 8


Cơng cụ mơ hình và thiết kế các hệ thống robot

của các thành phần trong mơ hình và biết được ngay lập tức ảnh hưởng của sự thay đổi này
đối với hệ thống. Kết quả của q trình mơ phỏng có thể được xử lý tiếp bằng Matlab với
các cơng cụ phân tích như tuyến tính hóa, làm gọn (trimming),… Vì Matlab và Simulink
được tích hợp chung với nhau trong một hệ thống nên chúng ta có thể mơ phỏng, phân
tích, củng cố (revise) các mơ hình của chúng ta trong cả hai mơi trường này một cách tùy
ý.
Tóm lại, Simulink là một cơng cụ có tính tương tác cao, dùng trong việc mơ hình
hố, mơ phỏng và phân tích các hệ thống động, đa miền (multidomain). Nó cho phép
chúng ta mô tả, mô phỏng, đánh giá, tinh chỉnh (refine) một cách chính xác các hành vi của
một hệ thống thông qua các thư viện chứa các khối chuẩn và khối của người dùng. Các mơ
hình của Simulink cịn có khả năng liên kết với Matlab nên do đó nó sẽ được cung cấp các
thao tác uyển chuyển cũng như các cơng cụ mạnh, chun nghiệp dùng để phân tích và
thiết kế. Sau khi đã mơ hình hóa và phân tích để tạo ra được mơ hình của hệ thống, chúng
ta có thể sử dụng các mơ hình kết quả này để làm nhiều việc khác thông qua các phần mềm

khác. Ví dụ: The Simulink Report Generator sẽ trích rút các thơng tin về thiết kế trong mơ
hình để tạo ra các tài liệu kỹ thuật; the Real-Time Workshop và Real-Time Workshop
Embedded Coder sẽ sinh ra mã ANSI C hoặc ISO C từ các mơ hình để sử dụng trong các
hệ thống nhúng, tạo mẫu nhanh (rapid prototyping), triển khai mơ hình (model
deployment) và các ứng dụng hardware-in-the-loop.

2.1.2 SimMechanics
SimMechanics là một mơi trường mơ hình các sơ đồ khối (block diagram). Nó
được sử dụng trong các thiết kế kỹ thuật và mô phỏng các máy thân cứng (rigid body
machine) cũng như chuyển động của chúng bằng cách áp dụng các phương trình động lực
học Newton cho các lực thẳng và lực quay.
Với SimMechanics, người sử dụng có thể mơ hình và mơ phỏng các hệ thống cơ
khí thơng qua một bộ công cụ để đặc tả các thân máy, khối lượng, các khả năng chuyển
động của chúng, các ràng buộc về động học (kinematic constraints) và các hệ thống tọa độ.
Ngồi ra, SimMechanics cịn có các cơng cụ để khởi tạo (initiate) và đo đạc sự chuyển
động của các khối. Các hệ thống cơ khí được biễu diễn trong SimMechanics dưới dạng sơ

Trang 9


Cơng cụ mơ hình và thiết kế các hệ thống robot

đồ gồm các khối hay các hệ thống con phân cấp được kết nối với nhau (giống như các mơ
hình khác trong Simulink).
Các công cụ hiển thị (visualization) của SimMechanics hiển thị và tạo hoạt cảnh
các dạng biểu diễn đơn giản của các máy 3-D trước và trong khi mô phỏng bằng cách sử
dụng hệ thống đồ họa của Matlab.
SimMechanics chỉ là một phần của hệ thống mơ hình các hệ vật lý tổng quát
(physical modeling) của Simulink. Hệ thống mơ hình các hệ vật lý hàm chứa ý nghĩa là
việc mơ hình hóa và thiết kế hệ thống phải tuân theo các định luật vật lý cơ bản. Hệ thống

mơ hình các hệ vật lý này chạy được trong môi trường Simulink và giao tiếp dễ dàng với
các phần khác của Simulink cũng như của Matlab. Trong khi các khối khác trong Simulink
biểu diễn các phép toán số học hoặc các thao tác trên các tín hiệu thì các khối trong hệ
thống mơ hình các hệ vật lý biểu diễn các thành phần hoặc các quan hệ vật lý một cách
trực tiếp.
SimMechanics là một tập thư viện các khối và các đặc trưng mô phỏng đặc biệt
được sử dụng trong mơi trường Simulink. Chúng ta có thể kết nối các khối này của
SimMechanics với các khối thông thường của Simulink thông qua hai khối đặc biệt là khối
Sensor và khối Actuator.
Các khối trong thư viện này là các yếu tố cần thiết để chúng ta có thể mơ hình hóa
các hệ thống cơ khí. Các hệ thống cơ khí thường bao gồm một số khối thân máy cứng kết
nối với nhau bởi các khớp nối đại diện cho các bậc tự do quay và tịnh tiến. SimMechanics
có thể biểu diễn được các thiết bị có các thành phần là các hệ thống con phân cấp như các
mơ hình bình thường khác trong Simulink. Người sử dụng có thể áp đặt các ràng buộc
động học, thiết lập các lực thẳng và lực quay, giải các phương trình Newton, và đo đạc các
kết quả của các chuyển động của thiết bị này.
SimMechanics mở rộng Simulink bằng cách thêm vào một thư viện chứa các khối
dùng để đặc tả các thành phần và thuộc tính của hệ thống cơ khí và các khối dùng để giải
các phương trình chuyển động của hệ thống. Ngồi một số thuộc tính đặc trưng, các khối
này của SimMechanics đều tương tự như các khối cơ bản khác của Simulink.
Các bước chính để xây dựng và chạy một một biểu diễn mơ hình của một hệ thống
cơ khí là:

Trang 10


Cơng cụ mơ hình và thiết kế các hệ thống robot




Đặc tả các thuộc tính qn tính, bậc tự do, ràng buộc cho các khối thân
cũng như các hệ tọa độ gắn trên chúng để đo vị trí và vận tốc.



Thiết lập các cảm biến và các thiết bị tạo chuyển động (actuator) để ghi
nhận và khởi động các chuyển động của các khối thân cũng như áp dụng
các lực lên chúng.



Bắt đầu q trình mơ phỏng bằng cách gọi các Simulink solver để tìm
các chuyển động của hệ thống thỏa tất cả các ràng buộc.



Sử dụng cửa sổ Visualization của SimMechanics để hình dung
(visualize) hệ thống khi xây dựng mơ hình và tạo hoạt cảnh cho hệ
thống khi chạy mô phỏng.

SimMechanics được tổ chức thành các thư viện phân cấp chứa các khối có liên
quan mật thiết với nhau.

Trang 11


Cơng cụ mơ hình và thiết kế các hệ thống robot

Hình 1 Thư viện SimMechanics trong Simulink Library Browser


Trang 12


Cơng cụ mơ hình và thiết kế các hệ thống robot

Hình 2 Thư viện SimMechanics (dạng khác)
Các bước cơ bản cần thiết khi xây dựng một mơ hình trong SimMechanics là:
1. Chọn và kéo thả các khối Ground, Body và Joint cần thiết để biểu diễn hệ
thống trong hệ thống thư viện vào vùng làm việc. Chú ý là cần phải có một
khối Machine Environment (để thiết lập các thơng số cơ khí của mơ hình)
và ít nhất một khối Ground.
2. Định vị và kết nối các khối lại với nhau theo sơ đồ sau:
Khối Machine Env kết nối với khối Ground. Khối Ground kết nối với chuỗi các
khối Joint-Body kết nối xen kẽ nhau.
3. Cấu hình cho các khối Body: đặc tả thuộc tính khối lượng, quán tính, các hệ
tọa độ (Coordinate System viết tắt là CS) so với World Coordinate System
hoặc so với các CS khác.
4. Cấu hình cho các khối Joint: đặc tả các thuộc tính về trục chuyển động
thẳng, chuyển động quay
5. Chọn, kết nối và cấu hình các khối ràng buộc (constraint) và khối điều
khiển (driver). Các khối này phải được đặt giữa các khối Body
6. Chọn, kết nối và cấu hình các khối cảm biến và khối tạo chuyển động. Ở
bước này, chúng ta cần phải cấu hình lại các khối đã tạo ở các bước trước
(Body, Joint, Constraint/Driver) để có thể kết nối được với hai khối mới
này. Chỉ có hai loại khối này mới cho phép chúng ta có thể kết nối được các
Trang 13


Cơng cụ mơ hình và thiết kế các hệ thống robot


khối của SimMechanics với các khối khác (non-mechanics Simulink
block). Chúng ta cần lưu ý đặc tính này của SimMechanics vì đặc tính này
sẽ giúp chúng ta thấy được mơ hình tính tốn (xem phần 4.2.2) bên dưới
của Simulink là mơ hình tính tốn Continuous Time/Mixed Signal và từ đó
lý giải được bối cảnh xuất hiện của đề tài.
7. Bao đóng thành hệ thống con: Các hệ thống được tạo bởi SimMechanics có
thể là một hệ thống con của các mơ hình lớn khác như các hệ thống con
bình thường của Simulink. Tồn bộ một mơ hình SimMechanics có thể
được kết nối như là một hệ thống con với một hệ thống lớn thông qua các
khối Connection Port trong thư viện Utilities.



hình

con lắc đơi



hình

con lắc đơn

Hình 3 Mơ hình con lắc đơn và đơi trong SimMechanics
SimMechanics có tất cả 4 chế độ để chạy một mơ hình của một hệ thống máy cơ
khí là Forward Dynamics, Inverse Dynamics, Trimming và Kinematics. Trong hầu hết các
mơ hình đơn giản, đầu tiên chúng ta sẽ đưa vào các lực và các điều kiện khởi tạo, sau đó
chúng ta sẽ bắt đầu q trình mơ phỏng dưới chế độ Forward Dynamics để có được các
chuyển động kết quả. Trong chế độ Kinematics và InverseDynamics, chúng ta sẽ đưa vào


Trang 14


Cơng cụ mơ hình và thiết kế các hệ thống robot

chuyển động của tất cả các bậc tự do độc lập, từ đó có thể tính được các lực cần thiết để tạo
ra được các chuyển động đó.
Điểm khác biệt quan trọng của các mơ hình trong SimMechanics so với các mơ
hình khác của Simulink nằm ở cách mà nó biểu diễn một hệ thống máy cơ khí. Một mơ
hình bình thường của Simulink mơ tả dạng tốn học các chuyển động của hệ thống (các
phương trình vi phân và các phương trình đại số dùng để dự đốn trạng thái tương lai của
hệ thống từ các trạng thái hiện tại). Các mơ hình tốn học này cho phép Simulink có thể
mơ phỏng được các hệ máy cơ khí. Ngược lại, các mơ hình của SimMechanics mơ tả cấu
trúc vật lý của hệ thống cơ khí (các mối quan hệ hình học, quan hệ động học giữa các khối
thân của hệ thống). SimMechanics sẽ chuyển đổi các cấu trúc này thành các mơ hình tốn
học bên trong tương đương. Điều này sẽ giúp người thiết kế tiết kiệm được thời gian và
cơng sức để xây dựng một mơ hình tốn học cho hệ thống.

2.1.3 Hộp công cụ Robotics trong Matlab
Đây là một hộp cơng cụ phục vụ cho các tính tốn liên quan đến robot trong
Matlab. Hộp cơng cụ này được phát triển bởi Peter I. Corke, CSIRO, Manufacturing
Science and Technology. Phiên bản đầu tiên ra đời vào năm 1996. Phiên bản gần đây nhất
là phiên bản 1.4 ra đời vào năm 2002. Như vậy, kể từ lần đầu tiên xuất hiện, để có được
hộp cơng cụ như hiện nay Peter I. Corke đã phải tiêu tốn một khoảng thời gian là hơn 7
năm cho việc sửa lỗi và cải tiến nó.
Hộp cơng cụ này thực chất là thư viện các hàm (viết bằng Matlab) thường dùng
trong lĩnh vực Robotics như các hàm dùng để tính Jacobian, động học, động lực học, bộ
sinh quỹ đạo (trajectory generation)… cho một đối tượng robot. Nó thường được sử dụng
để mơ phỏng, phân tích các kết quả từ thực nghiệm với robot thật cũng như được dùng để
giảng dạy.

Hộp công cụ này dựa vào một phương pháp biểu diễn các tham số động học, động
lực học của robot tổng quát: chúng được bao đóng (encapsulate) trong các đối tượng của
Matlab. Đối tượng Robot, trong hộp công cụ này, chỉ đơn giản là các tay máy có các liên
kết nối tiếp nhau (serial-link manipulator). Người sử dụng có thể tạo đối tượng robot cho
hệ thống để đại diện bất kỳ tay máy có các liên kết nối tiếp nhau nào mà họ quan tâm.
Trong hộp cơng cụ cũng có nhiều ví dụ đặc biệt là ví dụ về 2 robot khá nổi tiếng là tay máy

Trang 15


Cơng cụ mơ hình và thiết kế các hệ thống robot

Puma 560 và tay máy Stanford. Ngồi ra, nó cịn cung cấp các hàm dùng để thao tác trên
các kiểu dữ liệu như vector, các ma trận biến đổi thuần nhất (homogeneous transformation)
và bộ tứ (unit-quaternion) dùng để biểu diễn hệ tọa độ 3 chiều. Do các hàm trong thư viện
này được viết với mục đích dễ đọc hiểu nên hiệu quả của việc tính tốn sẽ khơng được
quan tâm lắm ở đây.

Hình 4 Các cơng cụ có trong Robotics Toolbox for Matlab
Động học (kinematics)

Trong hộp công cụ này (xem phần kiến thức về động học ở 4.1.2), Corke dùng ký
hiệu qi để biểu diễn tổng quát các biến khớp nối (joint variable)

⎧θ revolute joint
qi = ⎨ i
⎩d i prismatic joint
và ký hiệu Qi để biểu diễn tổng quát các lực:

⎧τ revolute joint

Qi = ⎨ i
⎩ f i prismatic joint

Trang 16


Cơng cụ mơ hình và thiết kế các hệ thống robot

Hộp công cụ này hỗ trợ đầy đủ cho dạng biểu diễn thứ nhất (dạng cổ điển) và chỉ
hỗ trợ một phần (cụ thể là chỉ có các hàm tính forward và inverse kinematics) cho dạng
biểu diễn thứ hai (dạng biến đổi của Craig).
Kết quả của biểu diễn Denavit-Hartenberg là một ma trận biến đổi thuần nhất 4×4:
⎡cos θ i
⎢ sin θ
i
i −1
Ai = ⎢
⎢ 0

⎣ 0

− sin θ i cos α i
cos θ i cos α i
sin α i
0

sin θ i cos α i
− cos θ i sin α i
cos α i
0


ai cos θ i ⎤
ai sin θ i ⎥⎥
di ⎥

1 ⎦

Ma trận này biểu diễn mối quan hệ giữa hệ tọa độ của liên kết này so với hệ tọa độ
của liên kết trước đó:
0

Ti = 0 Ti −1 i −1 Ai

với 0Ti là ma trận biến đổi thuần nhất diễn tả mối quan hệ giữa hệ tọa độ của liên
kết thứ i với hệ tọa độ thế giới (world coordinate system). Lưu ý là ma trận biến đổi trên
đây chỉ tương ứng với dạng biểu diễn động học Denavit-Hartenberg cổ điển.
Định nghĩa một robot mới trong hộp công cụ

Trang 17


Cơng cụ mơ hình và thiết kế các hệ thống robot

Hình 5 Biểu diễn của robot Puma 560 trong Robotics Toolbox for Matlab [11]
Để định nghĩa một robot khi sử dụng hộp cơng cụ này, chúng ta lấy một ví dụ đơn
giản là định nghĩa robot là một tay máy chỉ gồm 2 liên kết phẳng của Spong và Vidyasagar
có các tham số liên kết Denavit-Hartenberg như sau:

Link


ai

αi

di

θi

1

1

0

0

θ1

2

1

0

0

θ2

Trang 18



Cơng cụ mơ hình và thiết kế các hệ thống robot

Do hộp công cụ này được phát triển trên Matlab nên chúng ta phải chạy Matlab
trước khi có thể sử dụng các chức năng của hộp công cụ này. Trong môi trường Matlab
chúng ta đánh vào các lệnh sau để tạo các đối tượng là các liên kết:

Hình 6 Các lệnh để tạo các đối tượng liên kết trong Matlab
Trên đây chỉ là các lệnh cơ bản để tạo một liên kết. Xem [11] để tìm hiểu chi tiết
hơn.
Sau khi tạo xong các đối tượng liên kết, chúng sẽ được truyền dưới dạng tham số
cho hàm robot. Hàm robot này sẽ tạo ra đối tượng robot để sử dụng cho các hàm khác
trong hộp cơng cụ: tính kinematics, dynamics, animation,...
Mục tiêu của đề tài này là xây dựng các công cụ mơ hình và mơ phỏng các hệ
thống robot nên hộp công cụ được xây dựng bởi đề tài sẽ có các khối chức năng tương đối
giống với hộp cơng cụ này. Tuy nhiên, đề tài sẽ được phát triển trên một môi trường khác
nên sẽ tận dụng được các điểm mạnh của mơi trường đó (xem các phần sau). Hơn nữa, hộp

Trang 19


Cơng cụ mơ hình và thiết kế các hệ thống robot

công cụ ở đây chỉ đơn giản là tập hợp các hàm viết bằng Matlab phục vụ cho các tính tốn
riêng biệt của robot nên nó khơng có hỗ trợ thiết kế trực quan robot cũng như nó địi hỏi
người thiết kế robot phải biết Matlab (xem phần 8.1).

2.2 Modelica
Modelica [10] là một ngôn ngữ hướng đối tượng thống nhất (unified) chun được
sử dụng trong việc mơ hình hóa các hệ thống vật lý lớn, phức tạp và bất đồng nhất

(heterogeneous system). Ngơn ngữ này thích hợp với các mơ hình đa miền (multi-domain
modeling) như các mơ hình cơ khí trong lĩnh vực robotics; các ứng dụng tự động hóa
(automotive) và không gian (aerospace) bao gồm các hệ thống con (subsystem) như hệ
thống điện, cơ khí, nước (hydraulic) và hệ thống điểu khiển. Modelica được thiết kế sao
cho khi người sử dụng xây dựng một hệ thống trên nó cũng giống như khi họ xây dựng
một hệ thống thật sự: người sử dụng sẽ tìm và chọn các phần tử cơ bản như mô tơ (motor),
bơm (pump), van (valve) từ các nhà sản xuất với các tham số đặc tả cụ thể để xây dựng hệ
thống. Nếu các phần tử này khơng có thì khi đó hệ thống sẽ cung cấp một giao diện chuẩn
(standardized interface) để người sử dụng tạo ra một mơ hình mới.
Các mơ hình trong Modelica được mơ tả một cách tốn học bởi các phương trình vi
phân, phương trình đại số và phương trình rời rạc. Khơng có một biến nào trong các
phương trình này phải được giải bằng tay. Modelica đã có một cơng cụ có đủ thơng tin để
giải các phương trình này một cách tự động. Tuy nhiên, Modelica cũng được thiết kế mở
để cho người sử dụng có thể đưa vào các giải thuật chuyên biệt, cụ thể để giải các mơ hình
lớn với hàng trăm ngàn phương trình. Ngồi ra, Modelica cịn được dùng trong việc mơ
phỏng (hardware-in-the-loop simulation) và trong các hệ thống điều khiển nhúng
(embeded control subsystem).

Trang 20


×