Robot tham gia trong các dây chuyền sản xuất công nghiệp, tự động hóa; trong y tế, chăm sóc sức khỏe; trong lĩnh vực giải trí; lĩnh vực khoa học hàng không, vũ trụ v.v… Trong đó, một hướ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ KHOA HỌC
Xử lý thông tin và Truyền thông
TS NGUYỄN KIM KHÁNH
Hà Nội - 2010
Trang 3MỤC LỤC
LỜI CAM ĐOAN 3
DANH MỤC HÌNH 4
DANH MỤC BẢNG 5
MỞ ĐẦU 6
Chương 1 TỔNG QUAN 9
1.1 Giới thiệu chung 9
1.1.1 Cơ bản về Robot 9
1.1.2 Robot giống người – Humanoid 11
1.1.3 Vấn đề mô phỏng robot 14
1.1.4 Bài toán tạo chuyển động cho robot giống người 17
1.2 Tổng quan hệ thống 20
1.2.1 Sơ đồ tổng quan hệ thống 20
1.2.2 Hệ thống bắt chuyển động người 21
1.2.3 Biến đổi dữ liệu chuyển động 24
1.2.4 Môi trường mô phỏng robot 25
1.2.5 Giới thiệu nền tảng mô phỏng SIGVERSE 26
Chương 2 BIỂU DIỄN CHUYỂN ĐỘNG CON NGƯỜI 31
2.1 Mô hình khung cơ thể người 31
2.2 Nguyên lý hệ thống bắt chuyển động quang 32
2.3 Biểu diễn chuyển động quay 33
2.3.1 Biểu diễn bằng ma trận quay 34
2.3.2 Biểu diễn bằng các góc Euler 36
2.3.3 Biểu diễn bằng cặp góc-trục quay 37
2.3.4 Biểu diễn bằng quaternion 38
2.3.5 Đại số quaternion 38
2.4 Dữ liệu chuyển động con người trong hệ thống Optitrack 40
2.5 Bài toán động học trong biểu diễn chuyển động 45
Chương 3 MÔ PHỎNG CHUYỂN ĐỘNG CHO ROBOT 46
3.1 Bộ thư viện phát triển NatNet 46
3.1.1 Giới thiệu về bộ thư viện NatNet 46
3.1.2 Lớp NatNetClient 48
Trang 43.2 Biến đổi dữ liệu chuyển động thích nghi với robot 52
3.3 Chương trình xử lý dữ liệu 54
3.4 Sử dụng môi trường mô phỏng SIGVERSE 57
3.4.1 Mô hình sử dụng hệ thống mô phỏng 57
3.4.2 Khởi động SIGVERSE 58
3.4.3 Định nghĩa môi trường ảo trong SIGVERSE bằng xml 60
3.4.4 Sử dụng chế độ dịch chuyển và chế độ điều khiển 65
3.4.5 Tạo trình điều khiển cho tác nhân 65
3.5 Tạo chuyển động cho robot trong SIGVERSE 66
3.5.1 Các ràng buộc của robot 66
3.5.2 Điều khiển chuyển động của robot 67
Chương 4 KẾT QUẢ VÀ BÀN LUẬN 71
KẾT LUẬN 75
TÀI LIỆU THAM KHẢO 76
PHỤ LỤC 78
Một số thuật ngữ trong khoa học robot 78
Trang 5LỜI CAM ĐOAN
Các nội dung trình bày trong luận văn này dựa trên nỗ lực nghiên cứu và tìm
hiểu của chính bản thân, đồng thời nhận được sự hướng dẫn, giúp đỡ của các thầy
hướng dẫn trong suốt thời gian thực hiện tại Viện Tin học Quốc gia Nhật Bản (NII)
và Trường Đại học Bách Khoa Hà Nội (HUST)
Tôi xin cam đoan các nội dung và kết quả trình bày trong luận văn này là
hoàn toàn chính xác và trung thực Luận văn không sao chép của bất kỳ tác giả nào
Tôi xin hoàn toàn chịu trách nhiệm với luận văn tốt nghiệp thạc sĩ khoa học chuyên
ngành xử lý thông tin và truyền thông của tôi
Phạm Ngọc Hưng
Lớp Cao học Xử lý Thông tin và Truyền thông
Khóa 2008-2010
Trang 6DANH MỤC HÌNH
Hình 1-1 Robot tại trạm không gian quốc tế (ISS) 9
Hình 1-2 Một số kiểu thiết kế robot công nghiệp 10
Hình 1-3 Ví dụ về một robot di động (People Bot) 11
Hình 1-4 Minh họa các thành phần của người máy 11
Hình 1-5 ASIMO (trái) của Honda và Robonaut (phải) của NASA 14
Hình 1-6 Phần mềm mô phỏng Webots 15
Hình 1-7 Phần mềm mô phỏng Microsoft Robotics Studio 16
Hình 1-8 Phần mềm Choregraphe trong mô phỏng robot NAO 16
Hình 1-9 Sơ đồ mô tả khái quát nghiên cứu của Nakaoka [2] 18
Hình 1-10 Sơ đồ mô tả khái quát nghiên cứu của Nirut Naksuk [3] 18
Hình 1-11 Hành vi bắt chước con người của HRP-4 19
Hình 1-12 Chuyển động giống người của robot NAO 19
Hình 1-13 Sơ đồ tổng quan hệ thống 20
Hình 1-14 Hình ảnh diễn viên với hệ thống bắt chuyển động loại điện từ 22
Hình 1-15 Hệ thống bắt chuyển động trong làm phim 23
Hình 1-16 Hệ thống camera (a) bắt chuyển động của diễn viên (b) 24
Hình 1-17 Hình ảnh thu thập dữ liệu của các camera trên phần mềm Arena 24
Hình 1-18 Môi trường ảo được tạo ra trong hệ thống SIGVERSE 28
Hình 1-19 Cấu hình hệ thống mô phỏng SIGVERSE 30
Hình 2-1 Cấu trúc của mô hình khung cơ thể người 32
Hình 2-2 Biểu diễn trục quay và góc quay Euler 33
Hình 2-3 Biến đổi giữa các phương pháp biểu diễn chuyển động quay 34
Hình 2-4 Hệ tọa độ gắn với vật rắn trong biểu diễn ma trận quay 35
Hình 2-5 Ví dụ biểu diễn phép quay xung quanh trục z góc 𝜽 35
Hình 2-6 Biểu diễn các góc Euler 37
Hình 2-7 Biểu diễn cặp góc-trục quay 37
Hình 2-8 Sử dụng phần mềm Arena 41
Hình 3-1 Sơ đồ tổng quan các thành phần giao tiếp của thư viện NatNet 46
Hình 3-2 Giao diện minh họa chương trình nhận dữ liệu từ máy chủ NatNet 47
Hình 3-3 Các góc yaw, pitch, roll biểu diễn phép quay trong điều khiển robot 53
Hình 3-4 Minh họa thích nghi dữ liệu chuyển động cánh tay trên của robot 54
Hình 3-5 Sơ đồ khối hệ thống mô phỏng SIGVERSE 58
Hình 3-6 Giao diện Sigverse Viewer 60
Hình 3-7 Ba loại hệ tọa độ trong thế giới mô phỏng 61
Hình 3-8 Cấu trúc các joint của robot trong SIGVERSE 68
Hình 4-1 Thu thập các chuyển động cơ bản 71
Hình 4-2 Mô phỏng chuyển động tổng hợp theo thời gian thực 72
Hình 4-3 Quan sát chuyển động tương ứng của mô hình người và robot (a) 73
Hình 4-4 Quan sát chuyển động tương ứng của mô hình người và robot (b) 73
Trang 7DANH MỤC BẢNG
Bảng 1 Một số hàm API cung cấp của hệ thống SIGVERSE 29
Bảng 2 Mô tả các loại dữ liệu từ hệ thống Optitrack cung cấp 41
Bảng 3 Mô tả gói tin DataSet Desciption 42
Bảng 4 Mô tả gói tin FrameOfMocapData 43
Bảng 5 Tập hợp các điểm cảm biến gắn với mỗi đoạn cơ thể 44
Trang 8MỞ ĐẦU
Khoa học robot đã và đang là một lĩnh vực được đầu tư phát triển mạnh mẽ tại nhiều phòng thí nghiệm, các trường đại học và các trung tâm nghiên cứu tại nhiều quốc gia hàng đầu trên thế giới Các nhà khoa học đã đạt được nhiều thành tựu to lớn, thể hiện ở vai trò quan trọng của robot trong nhiều lĩnh vực của đời sống
xã hội Có thể thấy sự có mặt của robot ở rất nhiều nơi Robot tham gia trong các dây chuyền sản xuất công nghiệp, tự động hóa; trong y tế, chăm sóc sức khỏe; trong lĩnh vực giải trí; lĩnh vực khoa học hàng không, vũ trụ v.v… Trong đó, một hướng nghiên cứu được quan tâm nhiều là phát triển các robot giống người (người máy) thông minh, hiện đại, nhắm tới mục đích ứng dụng người máy trong các hoạt động đời sống thực của con người, thay thế con người trong nhiều công việc, hoặc tham gia cộng tác với con người
Lĩnh vực nghiên cứu, phát triển người máy hiện nay đã đạt được nhiều thành tựu lớn, các phiên bản mới nhất của nhiều người máy hiện đại như ASIMO của hãng Honda, Nao của Aldebaran Robotics, Robonaut của NASA, HRP-4…có khả năng thực hiện các hành vi, hoạt động tương tự như con người Trong các nghiên cứu như vậy, việc bắt chước các hoạt động tương tự như con người cho các người máy luôn là một vấn đề cơ bản và quan trọng
Luận văn này trình bày về đề tài “Mô phỏng chuyển động của con người
cho robot sử dụng hệ thống bắt chuyển động theo thời gian thực” Nội dung
nghiên cứu trong đề tài này không đề cập đến việc thực hiện trên các robot thật mà giới hạn ở phạm vi sử dụng một hệ thống mô phỏng, cũng là nhằm mục đích nghiên cứu, khai thác, ứng dụng nền tảng mô phỏng này Vì đây là một môi trường mô phỏng mới, đang được phát triển với nhiều tính năng khác biệt các môi trường mô phỏng trước đây Hơn nữa, nghiên cứu cũng nhắm tới mục tiêu xử lý dữ liệu từ một
hệ thống bắt chuyển động và truyền đến hệ thống mô phỏng robot để đạt được việc điều khiển robot trong thời gian thực Điều này rất có ý nghĩa trong việc nghiên cứu phát triển các ứng dụng con người điều khiển robot thông qua cử chỉ, hành vi, …
Trang 9các ứng dụng hợp tác, giao tiếp giữa robot và con người Với mục đích như vậy, nội dung nghiên cứu của đề tài sẽ gồm 3 phần chính:
Nghiên cứu về biểu diễn dữ liệu chuyển động của con người từ một hệ thống bắt chuyển động
Phân tích phương án áp dụng dữ liệu bắt chuyển động của con người để tạo
ra chuyển động tương tự cho robot
Khai thác khả năng của một hệ thống mô phỏng robot mới (SIGVERSE) Trong đó, bài toán này là một bài toán cơ bản để phát triển nhiều ứng dụng khác mà hệ thống mô phỏng này mong muốn đạt tới (mô phỏng giao tiếp xã hội)
Luận văn được trình bày với bố cục như sau:
Phần mở đầu
Giới thiệu về đề tài, lý do thực hiện và phương thức tiến hành nghiên cứu Tóm tắt các nội dung và mục tiêu chính của đề tài
Chương 1 Tổng quan
Chương này giới thiệu chung về những vấn đề cơ bản xoay quanh bài toán
mô phỏng chuyển động cho robot giống người Đưa ra mô hình tổng quan của hệ thống trong nội dung của đề tài nghiên cứu và giới thiệu khái quát về các thành phần tham gia trong hệ thống tổng thể này
Chương 2 Biểu diễn chuyển động con người
Chương này tiến hành phân tích về vấn đề biểu diễn dữ liệu chuyển động của con người thu thập từ một hệ thống bắt chuyển động
Chương 3 Mô phỏng chuyển động người cho robot
Trình bày cách sử dụng dữ liệu từ hệ thống bắt chuyển động đã đề cập, biến đổi thích nghi cho việc điều khiển robot trong môi trường mô phỏng Đồng thời cũng trình bày các tìm hiểu về khai thác, ứng môi trường mô phỏng SIGVERSE
Chương 4 Kết quả và bàn luận:
Trình bày các kết quả thực nghiệm đã được tiến hành
Trang 10 Kết luận
Luận văn được thực hiện trong khuôn khổ hợp tác nghiên cứu khoa học giữa Trường Đại học Bách khoa Hà Nội và Viện Tin học Quốc gia Nhật Bản (National Institute of Informatics, Japan), dưới sự hướng dẫn của Tiến sỹ Nguyễn Kim Khánh, Trường Đại học Bách Khoa Hà Nội, và Phó giáo sư Tetsunari Inamura, Viện Tin học Quốc gia Nhật Bản Tôi chân thành cảm ơn Tiến sỹ Nguyễn Kim Khánh, người đã hướng dẫn, chỉ bảo tận tình cho tôi trong quá trình thực hiện luận văn này Tôi chân thành cảm ơn giáo sư Tetsunari Inamura đã tận tình giúp đỡ, hướng dẫn tôi trong suốt 5 tháng thực tập tại phòng thí nghiệm Inamura, Viện Tin học Quốc gia Nhật Bản
Tôi cũng chân thành cảm ơn Trường Đại học Bách Khoa Hà Nội, Viện Đào tạo Sau đại học và Viện Công nghệ Thông tin và Truyền thông đã tạo điều kiện cho tôi trong quá trình tham gia chương trình cao học cũng như trong thời gian thực hiện luận văn tốt nghiệp này
Trang 11Chương 1 TỔNG QUAN
1.1 Giới thiệu chung
1.1.1 Cơ bản về Robot
Khoa học robot đang là một lĩnh vực được quan tâm và phát triển mạnh mẽ,
từ những nghiên cứu cơ bản trong phòng thí nghiệm đến khả năng ứng dụng của robot trong thực tế Robot nói chung đang đóng một vai trò to lớn trong khoa học, kinh tế, công nghiệp, đời sống xã hội
Trong công nghiệp, robot được sử dụng trong dây chuyền sản xuất, lắp ráp sản phẩm, hàn, sơn, cắt gọt kim loại, v.v Robot làm việc trong các môi trường nguy hiểm, độc hại mà còn người khó tiếp cận như dưới biển sâu, môi trường hạt nhân, rà phá bom mìn, v.v… Hoặc thay thế con người trong những công việc có tính chất đơn điệu, buồn tẻ Ngoài ra, một lĩnh vực hiện đại khác có mặt của robot
đó là khám phá vũ trụ, thực hiện các công việc ngoài không gian, một lĩnh vực đang ngày càng được đầu tư, phát triển mạnh với nhiều ý nghĩa to lớn
Hình 1-1 Robot tại trạm không gian quốc tế (ISS)
Những điều này cho thấy vai trò quan trọng của lĩnh vực khoa học robot, trong đó phải kể đến các đóng góp, nghiên cứu trong các phòng thí nghiệm của nhiều quốc gia trên thế giới Với những thành tựu nghiên cứu đạt được, các nhà khoa học đã tạo ra rất nhiều những khả năng ứng dụng khác nhau của robot
Các loại hình thiết kế của robot khá đa dạng tùy những lĩnh vực ứng dụng khác nhau Robot trong công nghiệp thường là các cơ cấu chấp hành cơ khí được
Trang 12điều khiển để thực hiện các nhiệm vụ, thao tác trong trường công tác và thường có các dạng thiết kế như:
Robot kiểu hệ Đề-các (Castesian Robot)
Robot kiểu hệ trụ (Cylindrical Robot)
Robot kiểu hệ cầu (Spherical Robot)
Robot kiểu khớp xoay (Articulated Robot)
Robot SCARA (Selective Compliance Articulated Robot Arm)
Hình 1-2 Một số kiểu thiết kế robot công nghiệp
Hình 1-2 lần lượt minh họa cho các kiểu robot hệ Đề-Các, robot hệ trụ, robot
hệ cầu và robot SCARA Các kiểu robot kể này thường có bệ gắn cố định ở một vị trí trong dây chuyền sản xuất, và vận hành cơ cấu chấp hành trong không gian làm việc 3 chiều Một loại thiết kế robot khác có khả năng di chuyển bằng bánh xe, chân
và các bộ phận quan trọng khác để định vị xung quanh không gian làm việc gọi là robot di động (mobile robot) Robot loại này có thể ứng dụng trong nhiều lĩnh vực
Trang 13Chúng thường đòi hỏi có các bộ cảm biến tốt cho phép quan sát không gian hoạt động, tránh va chạm, và thực hiện các công việc
Hình 1-3 Ví dụ về một robot di động (People Bot)
Một hướng nghiên cứu khác được nhiều nhà khoa học quan tâm là phát triển các robot thông minh, có thể tham gia hoạt động, hợp tác giao tiếp với con người và môi trường xung quanh Robot này có thiết kế giống người để có thể thực hiện được các hành vi, hoạt động tương tự con người, gọi là các robot giống người hay người máy (humanoid robot) Hình sau minh họa các thành phần cơ bản thường có của người máy:
Hình 1-4 Minh họa các thành phần của người máy
1.1.2 Robot giống người – Humanoid
Robot giống người hay người máy (humanoid robot) là loại robot có diện mạo tổng thể dựa trên cấu trúc cơ thể người, cho phép khả năng tương tác với các
Trang 14đối tượng hoặc môi trường xung quanh tương tự như hành vi của con người Thông thường, các người máy có một phần thân với đầu, 2 tay và 2 chân, hoặc có thể có vài dạng được chế tạo chỉ có phần thân Một số dạng phức tạp hơn có khuôn mặt với đầy đủ mắt và miệng
Giống như các robot cơ khí khác, người máy cũng dựa vào các thành phần cơ bản: Cảm biến, chấp hành, và điều khiển Do nó cố gắng mô phỏng cấu trúc và hành
vi của con người và lại là các hệ thống tự động, nên người máy phức tạp hơn nhiều
so với các loại robot khác Sự phức tạp này thể hiện trong tất cả các yếu tố như cơ khí, không gian, thời gian, mật độ năng lượng, hệ thống và độ phức tạp tính toán Trong đó đáng chú ý nhất là vấn đề năng lượng và sự phức tạp tính toán Với vấn đề năng lượng, một ví dụ có thể thấy, hầu hết các người máy chưa có khả năng “nhảy” (rời khỏi mặt đất), một trong những lý do là vấn đề tỷ lệ giữa năng lượng/trọng lượng chưa đủ tốt như đối với ở con người thực sự, lý do khác là sự phức tạp của vấn đề cân bằng động Ngoài ra, có rất nhiều giải thuật tốt cho các ứng dụng của người máy trên nhiều thành phần khác nhau, nhưng vấn đề kết hợp chúng trong một hệ thống hiệu quả là không dễ, đòi hỏi độ phức tạp tính toán cao, có nhiều vấn
đề khó khăn mà các nhà khoa học phải đương đầu
Các người máy được phát triển để thực hiện các nhiệm vụ cơ học và trí tuệ tương tự con người, hoặc thay thế con người trong những trường hợp môi trường làm việc khắc nghiệt, hoặc tham gia vào các hoạt động trong đời sống thực Các nhà khoa học và các chuyên gia từ nhiều lĩnh vực khác nhau bao gồm kỹ thuật, khoa học nhận thức, ngôn ngữ học, … cùng đóng góp những nỗ lực của họ để tạo ra các người máy hiện đại và tinh vi, với mục đích đạt được kết quả trong tương lai là các người máy có thể có trí tuệ như con người, suy luận và hành động giống con người Nếu người máy có thể làm được như vậy, chúng sẽ tham gia hợp tác với con người trong việc tạo ra các sản phẩm chất lượng cao hoặc phục vụ mạnh mẽ cho cuộc sống hiện đại của con người Ngoài ra, một lợi ích quan trọng khác của việc nghiên cứu phát triển người máy thông minh là để tìm hiểu về các qui trình trí tuệ hay sinh học của cơ thể con người, từ những hoạt động đơn giản đến khái niệm về ý thức, tinh thần
Trang 15Về mặt cấu trúc cơ khí, người máy được chế tạo gồm một tập hợp các khâu liên kết (link), được kết nối với nhau qua các khớp liên kết (joint) Mô hình này có cấu trúc tương tự như kiểu thiết kế robot khớp xoay công nghiệp, và được sử dụng trong hầu hết các nghiên cứu về người máy Tuy nhiên, cũng có một số nghiên cứu dựa trên mô hình cơ sinh học, loại mô hình tương đồng với cấu trúc bộ khung xương người
Các nhà nghiên cứu cần hiểu về cấu trúc cơ thể và hành vi con người để xây dựng, phát triển các người máy Mặt khác, việc cố gắng bắt chước cơ thể con người khiến người ta hiểu biết tốt thêm về nó Tri thức con người là một lĩnh vực nghiên cứu mà tập trung về việc con người học như thế nào từ các thông tin cảm giác để đạt được các kỹ xảo nhận biết và vận động Tri thức này được sử dụng để phát triển các mô hình tính toán hành vi con người và ngày càng được cải tiến qua thời gian
Bên cạnh việc nghiên cứu, các người máy cũng đang được phát triển để thực hiện các nhiệm vụ của con người với vai trò như một người giúp việc cá nhân như trợ giúp bệnh nhân, người già, các công việc nguy hiểm Về mặt lý thuyết, các người máy có thể thực hiện bất cứ nhiệm vụ nào của con người miễn là chúng có phần mềm thích hợp Tuy nhiên, sự phức tạp của vấn đề này là rất lớn
Hiện nay, các người máy cũng rất phổ biến trong lĩnh vực giải trí Rất nhiều robot của các hãng giải trí như Universal Studios, Disney, … có thể thực hiện các hoạt động của con người như nhìn, di chuyển, nhảy, nói, hát Hơn nữa, chúng được thiết kế rất thật đến nỗi khó có thể phân biệt nếu quan sát từ khoảng cách xa, tuy vậy các người máy này vẫn chưa thể có tri thức và cảm giác vật lý như con người thực Một lĩnh vực khác, là các người máy tham gia trong các nhiệm vụ khám phá
vũ trụ, với các giải thuật trí tuệ nhân tạo, người ta đang mong muốn đưa các robot hiện đại vào không gian, làm các nhiệm vụ phức tạp thay thế con người, và không cần thiết phải quay trở về trái đất khi công việc hoàn thành
Hình dưới minh họa những người máy hiện đại hiện nay, ASIMO của hãng Honda và Robotnaut của NASA
Trang 16Hình 1-5 ASIMO (trái) của Honda và Robonaut (phải) của NASA 1.1.3 Vấn đề mô phỏng robot
Mô phỏng là một kỹ thuật hiện đại, được áp dụng trong nhiều lĩnh vực nghiên cứu và sản xuất Khi nghiên cứu về robot, nhu cầu cần có một hệ thống mô phỏng là rất quan trọng
Một bộ mô phỏng robot sẽ cho phép tạo ra các ứng dụng điều khiển robot mà không phụ thuộc vào đặc điểm vật lý của thiết bị thật, do đó giúp tiết kiệm chi phí
và thời gian Hơn nữa, khi nghiên cứu phát triển các hệ thống phần cứng robot thật cũng đòi hỏi kèm theo bộ mô phỏng, và đa số trường hợp các ứng dụng trên mô phỏng có thể truyền sang phần cứng thật mà không cần phải sửa đổi thêm
Vấn đề mô phỏng robot cũng bao gồm nhiều mức độ, phân loại khác nhau với những đặc thù riêng Ví dụ trong mô phỏng robot di động, các bộ mô phỏng dựa trên hành vi cho phép người sử dụng tạo ra một môi trường ảo đơn giản với các đối tượng vật thể và lập trình để robot tương tác với các đối tượng trong môi trường đó Các bộ mô phỏng này cho phép các hoạt động có tính sinh học tự nhiên cao hơn so với các bộ mô phỏng nhị phân hoặc mô phỏng tính toán
Các bộ mô phỏng thường cung cấp các mô hình tính toán động học và động lực học của robot kết hợp với các phương pháp đồ họa trên máy tính Phương pháp
đồ họa phổ biến là mô hình 3D biểu diễn các robot môi trường ảo xung quanh
Trang 17Robot ảo có thể mô phỏng các chuyển động của robot thật tương ứng với các công việc trong môi trường thật của nó Một số các bộ mô phỏng sử dụng một “cỗ máy vật lý” (physics engine) để tạo ra các chuyển động giống thật hơn cho robot ảo
Việc sử dụng bộ mô phỏng robot để phát triển các chương trình điều khiển robot rất được phổ biến cho dù có tồn tại robot thật tương ứng hay không Bộ mô phỏng cho phép các chương trình điều khiển có thể được viết thuận lợi, chạy thử, gỡ lỗi trên môi trường mô phỏng trước khi tới phiên bản cuối cùng được đưa vào robot thật Tuy nhiên, các hoạt động robot mà dựa trên cảm biến sẽ khó mô phỏng hơn nhiều bởi vì nó phụ thuộc nhiều vào các dữ liệu cảm biến đọc được trong thế giới thực Các hình ảnh dưới là ví dụ một vài bộ mô phỏng robot nổi tiếng
Hình 1-6 Phần mềm mô phỏng Webots
Trang 18Hình 1-7 Phần mềm mô phỏng Microsoft Robotics Studio
Hình 1-8 Phần mềm Choregraphe trong mô phỏng robot NAO
Trang 191.1.4 Bài toán tạo chuyển động cho robot giống người
Tạo chuyển động cho robot nói chung và robot giống người (người máy) nói riêng là một vấn đề cơ bản và quan trọng trong nghiên cứu và phát triển robot Hầu hết các hoạt động, nhiệm vụ của robot đều liên quan đến sự vận động động học, các hành vi vật lý của robot Đối với người máy, bài toán này càng phức tạp hơn vì nhu cầu tạo ra các chuyển động tương tự như con người
Thông thường, các chuyển động đơn giản, hoặc có tính chất đặc biệt có thể được tạo ra bởi dữ liệu chuyển động được thiết kế, chuẩn bị bởi người lập trình trong chương trình điều khiển Ví dụ các hành vi cầm nắm, gắp đồ vật, đối tượng,
… chuyển động đi lại, ngồi, nằm, …được tạo ra dựa trên một mô hình tính toán các
dữ liệu chuyển động đó Công việc này đòi hỏi tốn nhiều công sức thiết kế, lập trình
ở khâu tạo dữ liệu chuyển động Tuy nhiên, một cách tiếp cận khác hiện nay là kỹ thuật tạo ra chuyển động giống người cho robot dựa trên những dữ liệu thu thập được từ chuyển động thực tế của con người
Rất nhiều nhà nghiên cứu đã công bố các kết quả của họ trong lĩnh vực này với những kỹ thuật phức tạp khác nhau Nakaoka và các đồng tác giả (Đại học Tokyo, Nhật Bản) đã tiến hành nghiên cứu tạo ra chuyển động của toàn bộ cơ thể cho robot HRP-1 dựa trên dữ liệu bắt chuyển động người thực hiện một điệu nhảy truyền thống của Nhật Hình 1-9 mô tả sơ đồ hệ thống các tác giả đã thực hiện
Trang 20Hình 1-9 Sơ đồ mô tả khái quát nghiên cứu của Nakaoka [2]
Nirut Naksuk và các đồng tác giả đã nghiên cứu về bài toán truyền dữ liệu chuyển động của toàn bộ cơ thể người vào một hệ thống mô phỏng Hình 1-10 mô
tả khái quát nghiên cứu này
Hình 1-10 Sơ đồ mô tả khái quát nghiên cứu của Nirut Naksuk [3]
Ngoài ra, còn rất nhiều các nghiên cứu khác với sự đóng góp của nhiều nhà khoa học trong một quá trình lâu dài đã đạt được những kết quả cao, tạo ra những
Trang 21robot hoạt động giống người rất tinh vi Có thể kể đến những điển hình nổi tiếng như robot ASIMO của hãng Honda, với khả năng đi lại, cầm nắm đồ vật, các hoạt động giao tiếp cơ bản với con người Robot HRP-4 mới được công bố với những khả năng bắt chước các hành vi, hoạt động của con người Robot NAO của hãng Aldebaran Robotics thi đấu RoboCup
Hình 1-11 Hành vi bắt chước con người của HRP-4
Hình 1-12 Chuyển động giống người của robot NAO
Như đã đề cập trong phần mở đầu, nội dung của đề tài này không giải quyết các vấn đề của bài toán trên robot thật (đòi hỏi phải xử lý đến các vấn đề về động lực học, trạng thái cân bằng động cho robot thật) như những kết quả nghiên cứu đã đạt được ở trên Chúng tôi nhắm tới việc xây dựng một mô hình hoàn chỉnh tích hợp
Trang 22của các hệ thống: hệ thống bắt chuyển động, hệ thống mô phỏng và chương trình xử
lý truyền dữ liệu theo thời gian thực Mô hình tổng quan của hệ thống này sẽ được trình bày trong phần tiếp sau đây
Trang 23mô phỏng được sử dụng là hệ thống mô phỏng SIGVERSE (Sigverse simulation platform)
Tóm lại, qui trình xử lý bao gồm 3 phần chính:
Thu thập dữ liệu chuyển động người dùng hệ thống bắt chuyển động;
Biến đổi dữ liệu và truyền đến môi trường mô phỏng;
Thực hiện điều khiển robot trong môi trường mô phỏng dựa trên dữ liệu có được
1.2.2 Hệ thống bắt chuyển động người
Với kỹ thuật đạt được hiện nay, các robot có thể sử dụng các camera thu thập ảnh từ môi trường, xử lý để có các hành vi, chuyển động mong muốn Tuy nhiên, với mục đích tạo ra các chuyển động tương tự như con người cho robot, cần có một
dữ liệu chuyển động đầu vào thích hợp, dữ liệu này sẽ được thu thập sử dụng một
hệ thống bắt chuyển động (motion capture system) Hệ thống bắt chuyển động thu thập, ghi lại chuỗi vận động (movement) theo thời gian của đối tượng (con người)
và số hóa dữ liệu dựa trên một mô hình số của đối tượng đó Các hệ thống này được
sử dụng rất phổ biến trong khoa học quân sự, giải trí, làm phim, thể thao, ứng dụng
y tế và cũng rất có giá trị trong lĩnh vực đồ họa máy tính, khoa học robot
Thông thường có 2 loại hệ thống bắt chuyển động thường dùng: Hệ thống từ
và hệ thống quang Cả 2 hệ thống đều ghi lại dữ liệu vị trí của một tập hợp các
“điểm cảm biến” (markers) trong không gian 3 chiều Các điểm cảm biến được gắn trên người diễn viên (hoặc đối tượng) và chuyển động của diễn viên sẽ được ghi lại dựa trên chuyển động của tập hợp các điểm cảm biến
Hệ thống từ bao gồm một thiết bị phát từ trường và các cảm biến từ (magnetic sensors) chính là các điểm cảm biến vị trí Các cảm biến từ được điều khiển bởi bộ điều khiển của chúng Bộ điều khiển này được gắn trên cơ thể và dữ liệu thu thập được phát qua sóng điện từ Với hệ thống này, số lượng điểm cảm biến
sẽ bị hạn chế do sự phức tạp của hệ thống các điểm cảm biến Tuy nhiên, do các điểm cảm biến có khả năng nhận biết cả vị trí và hướng nên các hệ thống này chỉ
Trang 24cần một số lượng điểm cảm biến đủ cho đa số các trường hợp ứng dụng Ngoài việc
bị hạn chế số lượng điểm các biến, các hệ thống từ còn có thể bị gây nhiễu bởi các vật thể kim loại trong môi trường xung quanh, gây khó khăn trong việc thu thập dữ liệu Tuy nhiên, hệ thống từ cũng rất hữu dụng vì khả năng thu thập dữ liệu chính xác theo thời gian thực, và có thể dễ dàng tháo lắp, di chuyển
Hình 1-14 Hình ảnh diễn viên với hệ thống bắt chuyển động loại điện từ
Hệ thống quang bao gồm một tập hợp các camera và các điểm cảm biến nhạy quang Trong hầu hết các hệ thống, tia hồng ngoại được sử dụng để định vị các điểm cảm biến Trong trường hợp đó, các camera phát hồng ngoại, các điểm cảm biến (markers) được làm từ các vật liệu có khả năng phản quang tốt Để loại bỏ những điểm nhiễu từ môi trường xung quanh, thông thường diễn viên phải mặc một
bộ đồ đơn màu (màu tối) với tập hợp các điểm cảm biến được gắn trên đó Mỗi camera có vị trí và hướng khác nhau, cho phép chụp được các điểm cảm biến có thể không “nhìn thấy” bởi một số các camera khác
Trang 25Hình 1-15 Hệ thống bắt chuyển động trong làm phim
So với hệ thống từ, hệ thống quang chỉ có thể thu thập vị trí của các điểm cảm biến, mà không thu thập được hướng Tuy nhiên, điều này không phải là vấn đề bởi vì hệ thống có thể sử dụng một số lượng đủ các điểm cảm biến để thu thập các chuyển động ở mức chi tiết đến mức độ nào mà các điểm cảm biến còn có thể được nhận biết Hệ thống quang không bị hạn chế về phạm vi không gian sử dụng như hệ thống từ, do các camera có thể bố trí để thu ảnh ở không gian rộng hơn không gian của các cảm biến từ Tuy nhiên, hệ thống quang cũng đòi hỏi cần phải có bước tiền
xử lý bởi người dùng cho việc tính toán vị trí các điểm các biến, và quá trình xử lý tính toán cũng thường tiêu tốn nhiều thời gian CPU hơn
Hệ thống bắt chuyển động sử dụng trong nghiên cứu này là một hệ thống quang Optitrack với trang bị 16 camera có tốc độ bắt hình lên đến 100 fps, 34 điểm cảm biến cho phép thu thập dữ liệu chuyển động toàn bộ cơ thể của diễn viên với mức độ chi tiết và “độ mượt” cao
Trang 26(a) (b) Hình 1-16 Hệ thống camera (a) bắt chuyển động của diễn viên (b)
Dữ liệu vị trí trong không gian 3 chiều của các điểm cảm biến được thu thập
và tính toán dựa trên việc kết hợp vài hình ảnh từ các góc nhìn khác nhau của các
camera theo nguyên lý trắc địa không gian 3 chiều
Hình 1-17 Hình ảnh thu thập dữ liệu của các camera trên phần mềm Arena 1.2.3 Biến đổi dữ liệu chuyển động
Dữ liệu chuyển động tại đầu ra của hệ thống bắt chuyển động chưa thể thích nghi trực tiếp đến robot Đây là lý do vì sao cần có bước xử lý biến đổi dữ liệu Thông thường, các robot được điều khiển bởi các thuộc tính của khớp liên kết
Trang 27(joint) như góc, vận tốc góc, mô men Ngoài ra, có sự khác nhau trong cấu trúc cơ thể và khả năng vận động giữa cơ thể người và các robot Sự khác nhau này cũng trở thành một ràng buộc cần xem xét khi mô phỏng một chuyển động cho robot tương tự như thực hiện bởi con người Thông qua bước biến đổi dữ liệu chuyển động, dữ liệu đầu ra từ hệ thống bắt chuyển động sẽ được xử lý theo một phương án khả thi để tương thích với dữ liệu chuyển động đòi hỏi đối với trình điều khiển của robot Nội dung này sẽ được thảo luận chi tiết hơn trong chương 3
1.2.4 Môi trường mô phỏng robot
Hiện nay, có nhiều hệ thống mô phỏng robot được phát triển trên thế giới để
mô phỏng động học robot Một trong những ví dụ nổi tiếng là OpenHRP (Open Architecture Humanoid Robotics Platforms), một bộ mô phỏng robot phát triển bởi Viện Khoa học và Công nghệ tiên tiến (AIST), Đại học Tokyo, và Trung tâm sản xuất Khoa học và Công nghệ (MSTC), Nhật Bản, để đẩy mạnh nghiên cứu trong lĩnh vực điều khiển robot giống người (humnoid) Một ví dụ khác là phần mềm Webots, một sản phẩm thương mại, cho phép người sử dụng mô phỏng động học trong môi trường nhiều robot Microsoft cũng đưa ra thị trường Robotics Studio để phát triển một phần mềm của các tác nhân tự động trên một nền mô phỏng Các hệ thống nói trên cung cấp môi trường đa tác nhân với các mô phỏng động học, nhưng không có nhiều liên quan đến mô phỏng của các giác quan, tri giác
Môi trường mô phỏng robot được sử dụng trong nghiên cứu này là nền tảng
mô phỏng SIGVERSE (SIGVERSE simulation platform) Đây là một nền tảng mô phỏng đang được nghiên cứu, phát triển tại Viện Tin học Quốc gia Nhật Bản (NII), một bộ mô phỏng với nhiều khả năng mới cho phép không chỉ mô phỏng vật lý mà còn mô phỏng các giao tiếp xã hội (social communication) Như đã đề cập, việc sử dụng nền tảng mô phỏng này cũng nhằm mục tiêu nghiên cứu khai thác khả năng ứng dụng của nó Và mặc dù nội dung nghiên cứu của đề tài cũng chỉ sử dụng tính năng mô phỏng động học của robot, tuy vậy nó là vấn đề quan trọng cần giải quyết trong nhiều bài toán khác Phần tiếp theo sẽ giới thiệu khái quát về bộ mô phỏng này
Trang 281.2.5 Giới thiệu nền tảng mô phỏng SIGVERSE
SIGVERSE là thuật ngữ viết tắt kết hợp từ các khái niệm Social, Intelligence, và Genesis, được ra đời và phát triển phục vụ cho nghiên cứu cơ cấu thông minh của con người và động vật là một trong những cách tiếp cận quan trọng
để phát triển các hệ thống robot thông minh Bởi vì các cơ chế của các hệ thống thông minh trong đời sống thực như vậy là rất phức tạp, đòi hỏi các kiến thức hiểu biết trong nhiều lĩnh vực
Để nghiên cứu các cơ chế của trí thông minh con người và phát triển các hệ thống robot thông minh, có 2 loại tương tác thường được xem xét: Tương tác vật lý giữa các tác nhân và môi trường và tương tác xã hội giữa các tác nhân Trong lĩnh vực khoa học xã hội, có một số các hệ thống mô phỏng đa tác nhân đã được đề xuất
để thực hiện tương tác xã hội, phát triển ngôn ngữ, v.v… Trong lĩnh vực robot, các nhà nghiên cứu thường sử dụng các bộ mô phỏng động học và cảm biến Tuy nhiên, chưa có một hệ thống tích hợp cả mô phỏng vật lý và mô phỏng giao tiếp xã hội SIGVerse là một nền tảng mô phỏng mới mà đáp ứng được điều này, nó hướng tới kết hợp mô phỏng cả động học, mô phỏng tri giác và mô phỏng giao tiếp xã hội
Mô phỏng tri giác
SIGVerse cũng cung cấp mô phỏng các giác quan cảm nhận: nhìn, âm thanh, lực và tiếp xúc Hệ thống sử dụng OpenGL cho mô phỏng thị giác, cung cấp cho
Trang 29mỗi tác nhân khả năng “nhìn” với một ảnh trực quan từ điểm quan sát và góc nhìn của tác nhân đó trong môi trường mô phỏng
Để mô phỏng thính giác, SIGVerse cho phép thực hiện giao tiếp với dữ liệu
âm thanh, hệ thống cũng có khả năng mô phỏng sự thay đổi cường độ âm thanh theo khoảng cách trong môi trường mô phỏng bằng cách thiết lập cho các điều chỉnh trên các tác nhân, hoặc cũng có thể thiết lập khả năng “nghe” trong một khoảng cách ngưỡng được yêu cầu
Đối với giác quan cảm giác, SIGVerse có khả năng mô phỏng lực và mômen giữa các đối tượng, được tính toán chủ yếu bởi ODE Hệ thống cũng có thể tắt/bật chức năng mô phỏng xúc giác khi cần thiết
Mô phỏng giao tiếp
Thiết kế của hệ thống cho phép điều khiển nhiều chế độ mô phỏng giao tiếp, không chỉ qua khả năng “nghe” mà còn các chức năng giao tiếp bằng các tín hiệu quang, hoặc mạng không dây Với giao tiếp quang, hệ thống có thể kiểm tra xem có ánh sáng nhận được bởi mô phỏng thị giác bằng cách dùng một cảm biến thu nhận ánh sáng như một camera Với giao tiếp không dây, hệ thống có thể thiết lập các ràng buộc như phạm vi truyền tín hiệu
Với hệ thống SIGVerse, ngoài khả năng mô phỏng giao tiếp của các tác nhân với nhau trong môi trường ảo, nó cũng có thể cung cấp chức năng cho phép tương tác giữa môi trường ảo và người sử dụng trong thế giới thực Một ví dụ của môi trường ảo được chỉ ra trong hình 1-18
Trang 30Hình 1-18 Môi trường ảo được tạo ra trong hệ thống SIGVERSE
Có một số hệ thống với những nghiên cứu liên quan như SecondLife, Playing Games (RPGs), tuy nhiên về cơ bản các hệ thống này lại không cung cấp
Role-mô phỏng động học và Role-mô phỏng các giác quan
Cấu hình của bộ mô phỏng SIGVerse
SIGVerse có mô hình client/server, với các xử lý tính toán động học được xử
lý trên máy chủ trung tâm Các đối tượng mà sử dụng các giác quan và thực hiện các hành động được gọi là các tác nhân (agents), ví dụ như robot và người đại diện (human avatar) là các tác nhân trong hệ thống này Việc mô phỏng được thực hiện bằng cách gọi các hàm C++ APIs Bảng 1 liệt kê danh sách của một số hàm APIs tiêu biểu được cung cấp trong SIGVerse
Trang 31setJointAngle(arg1, arg2) Thiết lập góc của khớp liên kết arg1 giá trị arg2
setJointTorque(arg1, arg2) Thiết lập mô men của khớp liên kết arg1 giá trị
arg2
getPosition Lấy vị trí 3D của đối tượng đích
getRawSound Nhận thông tin âm thanh từ các tác nhân khác sendRawSound Phát ra thông tin âm thanh
sendText(text, distance) Phát một thông điệp text đến các tác nhân trong
phạm vi distance
captureView Lấy ảnh từ góc nhìn của một tác nhân
detectEntities(arg) Liệt kê tất cả các thực thể được quan sát thấy bởi
tác nhân arg
getObj(arg) Lấy ID của một đối tượng arg
getObjAttribution(arg1, arg2) Lấy giá trị thuộc tính arg2 của đổi tượng arg1
Bảng 1 Một số hàm API cung cấp của hệ thống SIGVERSE
Các nhân vật đại diện trong môi trường mô phỏng không chỉ hành xử như được lập trình mà chúng còn có thể hoạt động theo những chỉ dẫn cơ bản được đưa
ra bởi người vận hành trong thời gian thực
Với mô hình client/server, để mô phỏng các giác quan như đã đề cập, hệ thống sẽ được cấu hình để cho phép việc tính toán xử lý không chỉ trên server trung tâm mà còn có thể sử dụng các servers mô phỏng tri giác được cài đặt riêng lẻ Cấu hình của hệ thống được chỉ ra như hình 1-19:
Trang 32Hình 1-19 Cấu hình hệ thống mô phỏng SIGVERSE
Trong sơ đồ cấu hình này, hệ thống SIGVERSE gồm có:
Một máy chủ trung tâm thực hiện xử lý mô phỏng động học, động lực học
và giao tiếp
Các trình điều khiển tác nhân (Agent Controller) do người sử dụng viết sẽ được gắn với tác nhân tạo ra trong môi trường mô phỏng Các ứng dụng trên máy khách cũng có thể được thực thi để quan sát các nội dung mô phỏng
Ngoài ra, hệ thống còn có các dịch vụ thứ cấp phục vụ mô phỏng các loại cảm giác, tri thức đang được hoàn thiện (Có thể chạy trên các server thứ cấp riêng)
Trang 33Chương 2 BIỂU DIỄN CHUYỂN ĐỘNG CON NGƯỜI
2.1 Mô hình khung cơ thể người
Cơ thể người bao gồm tập hợp các xương và khớp liên kết, mà có thể mô hình hóa dưới dạng cấu trúc phân cấp hình cây Bởi vì cơ thể người rất phức tạp, thông thường để biểu diễn số các chuyển động, chúng ta cần lựa chọn một mô hình biểu diễn xấp xỉ Hầu hết các chuyển động của người được thực hiện dựa trên bộ khung xương (skeleton) Bộ khung xương có thể được biểu diễn như một tập hợp các đoạn xương (hoặc cụm xương) cơ bản (segments hay link) kết nối với nhau thông qua các khớp liên kết (joints) Các đoạn xương có thể chuyển động tương đối nhau để tạo ra tư thế (posture) của toàn bộ cơ thể Mỗi đoạn xương có một kích thước vật lý, kết nối với đoạn khác thông qua các khớp liên kết Góc của khớp liên kết sẽ xác định hướng của xương kết nối đến khớp liên kết đó Số vị trí độc lập cần thiết để xác định trạng thái của khớp liên kết được gọi là số bậc tự do (DOF – Degree of Freedom), tương tự như trong robot Số bậc tự do của một mô hình xương là tổng số bậc tự do của tất cả các khớp liên kết Sự chuyển động của một xương, hoặc phép quay của khớp liên kết cũng ảnh hưởng đến tất cả các xương và khớp liên kết nối với nó
Cấu trúc phân cấp của khung xương sẽ thay đổi khi thay đổi gốc (root) của khung xương, nhưng sự thay đổi này không ảnh hưởng đến mối quan hệ giữa các xương Hình 2-1 chỉ ra một trong những mô hình khung xương người đơn giản và cấu trúc hình cây tương ứng
Mỗi đoạn xương (hoặc cụm xương) cơ bản được coi như một đoạn cơ thể rắn (rigid body) trong mô hình khung xương người Dữ liệu chuyển động của mỗi đoạn này được tính toán từ dữ liệu thu thập của các điểm cảm biến (marker) gắn kết với
nó khi sử dụng hệ thống bắt chuyển động
Trang 34Hình 2-1 Cấu trúc của mô hình khung cơ thể người 2.2 Nguyên lý hệ thống bắt chuyển động quang
Hệ thống bắt chuyển động người sẽ tiến hành số hóa dữ liệu chuyển động
dựa trên mô hình khung cơ thể người như trên Dữ liệu đầu vào của hệ thống là
chuỗi vận động liên tục của cơ thể người được được ghi lại bởi các camera và lấy
mẫu theo thời gian để thu được các khung hình chuyển động rời rạc (liên tiếp với
“độ mượt” nhất định) Mỗi khung hình chuyển động sẽ là một tư thế trong chuỗi
vận động của cơ thể người Các khung hình chuyển động này chứa dữ liệu vị trí của
các điểm cảm biến đã được gắn trên toàn bộ cơ thể Trong đó, mỗi cụm điểm cảm
biến sẽ cho phép xác định chuyển động của một đoạn cơ thể mà các điểm cảm biến
đó gắn với Dữ liệu số chuyển động của toàn bộ cơ thể sẽ là tập hợp dữ liệu chuyển
động của tất cả các đoạn cơ thể (có tính tương đối với nhau theo cấu trúc hình cây
của mô hình khung cơ thể người)
Như vậy, để biểu diễn dữ liệu chuyển động người khi thực hiện một chuỗi
vận động, hệ thống qui về việc biểu diễn chuyển động của từng đoạn cơ thể khi biến
đổi từ khung hình này sang khung hình kế tiếp Trong mô hình toán học, mỗi đoạn
Trang 35cơ thể là một vật rắn (rigid body) và phép biến đổi của nó từ một khung hình này sang một khung hình kế tiếp được biểu diễn bởi một phép quay của đoạn cơ thể đó
Có nhiều phương pháp khác nhau để biểu diễn phép quay này, mỗi phương pháp có những ưu nhược điểm riêng mà tuy từng trường hợp sẽ được vận dụng Các vấn đề
cơ bản về biểu diễn chuyển động quay này sẽ được trình bày trong phần tiếp sau đây
2.3 Biểu diễn chuyển động quay
Trong hình học, biểu diễn phép quay dùng để mô tả hướng của một đối tượng hoặc một hệ tọa độ so với một hệ tọa độ tham chiếu Theo lý thuyết phép quay của Euler: Bất kỳ một chuyển động quay hữu hạn (hay một chuyển động xung quanh một điểm cố định) của một vật rắn (rigid body) có thể được biểu diễn bằng một phép quay theo một góc xung quanh một trục cố định (góc quay Euler và trục quay Euler) Tức là một chuyển động quay bất kỳ của vật rắn sẽ tìm được trục quay
và góc quay gắn với một hệ tọa độ để thực hiện hay biểu diễn phép quay đó, minh họa như hình 2-2
Hình 2-2 Biểu diễn trục quay và góc quay Euler
Điều này cho phép sử dụng phép quay để biểu diễn hướng của một đối tượng (vật rắn) từ một hệ tọa độ tham chiếu Phép quay như vậy có thể được mô tả duy
Trang 36nhất bởi tối thiểu 3 tham số Tuy nhiên, vì những lý do khác nhau, có nhiều cách để biểu diễn một phép quay Có 4 phương pháp thường được dùng:
Biểu diễn bằng ma trận quay
Biểu diễn bằng cặp góc/trục quay
Biểu diễn bằng các góc Euler
Biểu diễn bằng quaternion
Các phương pháp trên có những ưu và nhược điểm riêng, mà tùy theo trường hợp ứng dụng, nên có những lựa chọn phù hợp Các phương pháp này đều có thể biến đổi qua lại nhau theo mô tả như hình dưới:
Hình 2-3 Biến đổi giữa các phương pháp biểu diễn chuyển động quay 2.3.1 Biểu diễn bằng ma trận quay
Để biểu diễn chuyển động quay của một vật rắn, người ta có thể gắn một hệ tọa độ cho vật rắn đó, khi đó mối tương quan giữa tư thế (vị trí và hướng) cuối và đầu của phép quay sẽ được xác định bằng mối quan hệ hình học giữa trạng thái cuối
và đầu của hệ tọa độ đã gắn với vật rắn đó
Trang 37Hình 2-4 Hệ tọa độ gắn với vật rắn trong biểu diễn ma trận quay
Trong không gian Euclide (2 chiều, 3 chiều, hoặc n chiều), ma trận quay là một phương pháp biểu diễn đại số đơn giản nhất của các phép quay Biểu diễn này được sử dụng rất nhiều trong tính toán ở các lĩnh vực hình học, vật lý và đồ họa máy tính
Ví dụ trong mặt phẳng, ma trận quay R(𝜃) = 𝑐𝑜𝑠𝜃 −𝑠𝑖𝑛𝜃
𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜃 biểu diễn phép quay một điểm hoặc vector theo hướng ngược chiều kim đồng hồ một góc 𝜃, được thực hiện theo công thức:
Hình 2-5 Ví dụ biểu diễn phép quay xung quanh trục z góc 𝜽
Ma trận quay của phép quay này là một ma trận quay cơ bản:
Trang 38𝑅𝑧(𝜃) =
𝑐𝑜𝑠𝜃 −𝑠𝑖𝑛𝜃 0𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜃 0
Tương tự với các ma trận quay cơ bản của phép quay quanh trục x, trục y:
2.3.2 Biểu diễn bằng các góc Euler
Phương pháp phổ biến nhất là sử dụng các góc Euler Phương pháp này có nhiều ưu điểm tuy nhiên không phải là thích hợp trong mọi trường hợp cho tất cả các phép quay Phương pháp các góc Euler có thể gặp vấn đề Gimber lock, khi đó phương pháp biểu diễn bởi cặp góc-trục quay có thể được sử dụng để loại bỏ vấn đề này Tuy nhiên, phương pháp này lại không hiệu quả trong việc tính toán tổng hợp của nhiều phép quay diễn ra liên tiếp Phương pháp biểu diễn bằng Quaternion tỏ ra
ưu điểm trong trường hợp có nhu cầu đó Quaternion định nghĩa cặp góc-trục quay theo một cách khác, bằng cách thêm vào các đặc điểm mới để biểu diễn
Các góc Euler mô tả một phép quay như là một chuỗi các phép quay quanh 3 trục của hệ trục tọa độ trực giao trong không gian Các trục này có thể là của hệ trục tọa độ toàn cục hoặc cục bộ, trong đó các phép quay thực hiện trên các điểm trong không gian Khi thực hiện phép quay, các hệ trục tọa độ là cố định Các phép quay này được áp dụng theo một thứ tự chọn trước cố định, và phép quay tiếp sau sẽ chịu tác động từ kết quả của phép quay trước đó Có 6 thứ tự thực hiện chuỗi 3 phép quay tuần tự theo các trục khác nhau Thứ tự chính xác trong đó các phép quay được áp dụng sẽ dẫn đến các hướng khác nhau
Trang 39Hình 2-6 Biểu diễn các góc Euler 2.3.3 Biểu diễn bằng cặp góc-trục quay
Cặp góc-trục quay mô tả một phép quay bởi một góc quanh xung quanh một trục cố định Trục này có thể được định nghĩa theo bất kỳ một hướng nào, nhưng thông thường sử dụng biểu diễn là một vector có gốc tại gốc tọa độ hiện tại Biểu diễn này gồm 4 thành phần: 1 góc quay (theta) và 3 thành phần vị trí (x,y,z) biểu diễn vector trục quay
Hình 2-7 Biểu diễn cặp góc-trục quay
Trang 402.3.4 Biểu diễn bằng quaternion
Lý thuyết quaternion được đề xuất bởi William Hamilton từ năm 1843 Mặc
dù đã tồn tại trên 150 năm, nhưng công dụng hiệu quả của việc sử dụng quaternion đơn vị trong lĩnh vực đồ họa mới chỉ từ những năm 1980 Một quaternion giống như
sự mở rộng của một số phức nhưng với 1 thành phần thực và 3 thành phần ảo (quaternion – bộ bốn) Một số phức thông thường biểu diễn phép quay trong 2 chiều, thì quaternion biểu diễn phép quay trong không gian 3 chiều Phương pháp biểu diễn phép quay bằng quaternion như là một sự mở rộng của phương pháp biểu diễn cặp góc-trục quay So với phương pháp các góc Euler, quaternion tuy khó sử dụng hơn nhưng lại là một phương pháp giải quyết được nhiều vấn đề mà phương pháp các góc Euler gặp phải Ngoài ra, biểu diễn quaternion rất thuận tiện cho việc
xử lý tính toán trên máy tính, ví dụ như với nhu cầu tính toán phép quay tổng hợp từ nhiều phép quay liên tiếp, tìm ngược phép quay nếu biết các trạng thái đầu và cuối, v.v…
2.3.5 Đại số quaternion
Để hiểu rõ về quaternion, phần tiếp theo sẽ trình bày về cách biểu diễn và các
xử lý đại số của quaternion, vấn đề cần thiết khi áp dụng phương pháp biểu diễn này
Có thể xem quaternion là kết hợp của một giá trị vô hướng 𝒘 ∈ 𝑹 và một vector 𝒖 ∈ 𝑹𝟑, kí hiệu là 𝒒 = (𝑤, 𝒖𝑻)𝑻 Phép cộng, trừ và nhân quaternion với một số được tính đơn giản như với vector 4D bình thường: