Để đạt được hiệu quả trong việc xây dựng những hệ thống robot dựa trên kỹ thuật thị giác, thì cần phải kết hợp sử dụng với các chương trình và thư viện xử lý thông trình thông dụng trê
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SĨ NGUYỄN HỮU NAM
NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270
Tp Hồ Chí Minh, 2011
S 0 9
QUY HOẠCH QŨY ĐẠO CHO ROBOT
DI ĐỘNG DỰA TRÊN THỊ GIÁC MÁY TÍNH
S KC 0 0 3 4 6 4
Trang 2QUY HOẠCH QŨY ĐẠO CHO ROBOT DI ĐỘNG
DỰA TRÊN THỊ GIÁC MÁY TÍNH
NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270
Hướng dẫn khoa học:
TS NGÔ VĂN THUYÊN
Trang 3i
LÝ LỊCH KHOA HỌC
I LÝ LỊCH SƠ LƯỢC:
Chỗ ở riêng hoặc địa chỉ liên lạc: 34/81 khu phố 13 phường Hố Nai thành phố Biên Hòa tỉnh Đồng Nai
E-mail:nguyenhuunam86@gmail.com
II QUÁ TRÌNH ĐÀO TẠO:
1 Trung học chuyên nghiệp:
Hệ đào tạo: Thời gian đào tạo từ ……/…… đến ……/ ……
Nơi học (trường, thành phố):
Ngành học:
2 Đại học:
Hệ đào tạo: Thời gian đào tạo từ 10/2004 đến 07/ 2009
Nơi học (trường, thành phố): Đa ̣i Ho ̣c Sư Pha ̣m Kỹ Thuâ ̣t TP.HCM
Ngành học: Kỹ Thuật Điện – Điện Tử
Tên đồ án, luận án hoặc môn thi tốt nghiệp: Điều Khiển Quá Trình, Truyền Hình Số, Chuyên Đề Tốt Nghiệp
Ngày & nơi bảo vệ đồ án, luận án hoặc thi tốt nghiệp: Đa ̣i Ho ̣c Sư Pha ̣m Kỹ Thuâ ̣t TP.HCM
Trang 4ii
Người hướng dẫn:
III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC:
Trang 5iii
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của tôi với sự hướng dẫn của TS Ngô Văn Thuyên Các kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào
Tp Hồ Chí Minh, ngày 10 tháng 11 năm 2011
(Ký tên và ghi rõ họ tên)
Trang 6iv
LỜI CẢM TẠ
Đầu tiên, tôi xin gửi lời cám ơn chân thành đến TS Ngô Văn Thuyên – người
đã trực tiếp hướng dẫn tôi một cách tận tình và chu đáo từ khi xây dựng cho đến lúc thực hiện và hoàn thành đề tài nảy Trong quá trình làm đề tài, thầy luôn theo sát tiến trình thực hiện của tôi và có những gợi ý giúp tôi định hướng giải quyết những vấn đề khó khăn gặp phải
Bên cạnh đó, gia đình luôn là chỗ dựa và là nguồn động viên vô cùng to lớn tiếp sức cho tôi trong suốt quá trình nghiên cứu đề tài
Cuối cùng tôi xin gửi lời cảm ơn đến anh Nguyễn Hừng Đông và anh Nguyễn Hoàng Anh là những người hỗ trợ tôi trong quá trình xây dựng đề tài Những
ý kiến đóng góp của các anh đã giúp tôi hoàn thiện tốt hơn đề tài của mình Xin chân thành cảm ơn!
Biên Hòa, ngày 10 tháng 10 nằm 2011
Trang 7
vii
MỤC LỤC
LỜI CAM ĐOAN iii
LỜI CẢM TẠ iv
TÓM TẮT v
MỤC LỤC vii
DANH SÁCH CÁC CHỮ VIẾT TẮT x
DANH SÁCH CÁC BẢNG xi
DANH SÁCH CÁC HÌNH xii
Chương 1 Giới Thiệu 1
1.1 Tổng quan chung về lĩnh vực nghiên cứu 1
1.2 Mục tiêu nghiên cứu 4
1.3 Phạm vi nghiên cứu 4
1.4 Phương pháp nghiên cứu 4
Chương 2 Thị Giác Máy Tính và Thư Viện OpenCV 5
2.1 Giới thiệu 5
2.2 Sự phát triển của thị giác máy tính 7
2.3 Lĩnh vực ứng dụng 9
2.4 Hệ thống thị giác máy tính 11
2.5 Thư viện mã nguồn mở OpenCV 12
Chương 3 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot 19
Trang 8viii
3.1 Phương pháp định hướng 19
3.1.1 Phương pháp định hướng dựa trên bản đồ 20
3.1.2 Định hướng dựa trên xây dựng bản đồ 24
3.1.3 Định hướng không dựa trên bản đồ 25
3.2 Phương pháp tránh vật cản 28
3.2.1 Phương pháp Bug 28
3.2.2 Phương pháp Potential Field 29
3.2.3 Phương pháp Vecto Field Histogram (VFH) 32
3.3 Phương pháp nhận dạng vật thể 37
3.3.1 Phương pháp so khớp đặc điểm hình học 38
3.3.2 Phương pháp nhận dạng dựa trên diện mạo 39
3.3.3 Phương pháp nhận dạng dựa trên đặc điểm cục bộ 41
Chương 4 Thuật Toán Quy Hoạch Quỹ Đạo 44
4.1 Quy hoạch quỹ đạo 44
4.1.1 Bản đồ môi trường 44
4.1.2 Giải thuật quy hoạch quỹ dạo chuyển động 46
4.2 Thuật toán tránh vật cản 47
4.2.1 Xây dựng biểu đồ histogram 47
4.2.2 Tính góc lái 49
4.3 Thuật toán định vị trí bằng điểm mốc 49
4.3.1 Tìm điểm mốc trên ảnh 50
4.3.2 Thuật Toán Meanshift 52
Trang 9ix
4.3.3 Định vị trí bằng điểm mốc 55
4.4 Phát hiện cửa 56
4.4.1 Đặc điểm cửa 56
4.4.2 Thuật toán phát hiện cửa 57
4.5 Tìm vật thể đích 58
4.5.1 Thuật toán nhận dạng vật thể đích 59
4.5.2 Phương pháp nhận dạng SURF 59
Chương 5 Mô Hình Robot Di Động Và Kết Quả Thực Nghiệm 64
5.1 Mô hình robot di động 64
5.1.1 Mô hình hệ thống 64
5.1.2 Cảm biến camera Kinect 66
5.2 Kết quả thực nghiệm 70
5.2.1 Bản đồ môi trường 70
5.2.2 Kết quả thực nghiệm các thuật toán 71
5.2.3 Kết quả thực nghiệm thuật toán quy đạo hoạch cho robot 78
Chương 6 Kết Luận 83
6.1 Kết quả đạt được 83
6.2 Hạn chế của đề tài 83
6.3 Hướng phát triển của đề tài 84
TÀI LIỆU THAM KHẢO 85
Trang 101 Giới Thiệu
1
Chương 1
Giới Thiệu
1.1 Tổng quan chung về lĩnh vực nghiên cứu
Trong hơn nửa thế kỷ hình thành và phát triển, lĩnh vực nghiên cứu, chế tạo robot
đã có nhiều những bước tiến đáng kể Robot đầu tiên được ứng dụng trong công nghiệp vào thập niên 60 để thay thế con người làm các công việc nặng nhọc, nguy hiểm trong môi trường độc hại [1] Ban đầu, robot chủ yếu được ứng dụng trong các nhà máy xí nghiệp nhưng đến nay robot đã có những ứng dụng khác như trong y tế, nông nghiệp, xây dựng, an ninh quốc phòng, thám hiểm không gian và trong gia đình [2] Từ nhu cầu ngày càng lớn và đa dạng như vậy đã tạo ra sự thúc đẩy lớn cho lĩnh vực nghiên cứu robot phát triển Xu hướng nghiên cứu của thế giới hiện nay là hướng về dịch vụ và hoạt động của robot trong môi trường tự nhiên
Có thể phân loại một số loại robot đã và đang được nghiên cứu như tay máy robot (Robot Manipulators), robot di động (Mobile Robots), robot phỏng sinh học (Bio Inspired Robots) và robot cá nhân (Personal Robots) [2] Tay máy robot bao gồm các loại robot công nghiệp (Industrial Robot) như hình 1.1a, robot y tế (Medical Robot) và robot trợ giúp người tàn tật (Rehabilitation robot) Robot di động được nghiên cứu nhiều như xe tự hành trên mặt đất AGV (Autonomous Guided Vehicles), robot tự hành dưới nước AUV (Autonomous Underwater Vehicles) như hình 1.1b, robot tự hành trên không UAV (Unmanned Arial Vehicles) và robot vũ trụ (Space robots) Với robot phỏng sinh học, các nghiên cứu tập trung vào 2 loại
Trang 11để chụp lại những hình ảnh từ môi trường xung quanh sau đó những hình ảnh này được chuyển tới máy tính để xử lý trích xuất ra những thông tin đặc điểm từ môi trường, quá trình này giống như quá trình tổng hợp hình ảnh của thị giác con người
Hình 1.1 Một số loại robot đã và đang được nghiên cứu
Trang 121 Giới Thiệu
3
Kỹ thuật này mang nhiều đặc điểm nổi bật hơn so với những kỹ thuật cảm biến truyền thống vì nó có thể xây dựng được bản đồ 2D, 3D về môi trường xung quanh với độ chính xác cao trong khi với những cảm biến thông thường được sử dụng như cảm biến quang, siêu âm hay lade chỉ dừng ở mức phát hiện vật thể và khoảng cách giữa robot với vật thể Kỹ thuật thị giác cũng giúp robot có thể nhận dạng được vật thể về hình dáng, kích thước, màu sắc
Để đạt được hiệu quả trong việc xây dựng những hệ thống robot dựa trên kỹ thuật thị giác, thì cần phải kết hợp sử dụng với các chương trình và thư viện xử lý thông
trình thông dụng trên thế giới có thể kể đến như Webots, Microsoft Robot Development Studio, ARIA, Player/Stage Mỗi chương trình có những đặt điểm và
ưu khuyết điểm riêng Tuy nhiên, trong các phần mềm điều khiển robot trên thì Player được sử dụng rộng rãi trong nghiên cứu và giảng dạy robot do tính mở của
nó Player là một network server điều khiển robot Player chạy trên robot và cung cấp giao tiếp với các cảm biến và bộ truyền động qua mạng IP Chương trình client giao tiếp với Player qua TCP socket và đọc dữ liệu từ các cảm biến, truyền lệnh xuống bộ điều khiển chuyển động và cấu hình thiết bị Player hỗ trợ hầu hết các phần cứng của các robot thương mại và chạy trên nền Linux (PC và hệ thống nhúng) Stage là giao diện mô phỏng liên kết với Player Stage cho phép thử nghiệm các thuật toán điều khiển trước khi thực hiện trên robot thực với Player Có cùng tính mở như chương trình Player, thư viện OpenCV cũng được sử dụng phổ biến như là một công cụ hỗ trợ đắc lực cho người nghiên cứu trong việc xử lý thông tin ảnh cho robot OpenCV bao gồm những thuật toán đã được tối ưu hóa dành cho việc xử lý ảnh
Với những đặc điểm nổi bật và tính mới mẻ của hướng nghiên cứu này tại Việt Nam nên kỹ thuật thị giác máy tính sử được sử dụng là hướng nghiên cứu trong đề tài này
Trang 131 Giới Thiệu
4
1.2 Mục tiêu nghiên cứu
Mục tiêu đề tài là xây dựng thuật toán quy hoạch quỹ đạo cho robot dựa trên thị giác máy tính Thuật toán được thực nghiệm trên mô hình robot thực điều khiển trên Player và OpenCV Khi di chuyển từ điểm ban đầu đến đích, robot phải có khả năng tránh vật cản Để di chuyển, robot dựa trên vị trí cho bởi encoder kết hợp với định
vị dựa trên các điểm mốc sử dụng thị giác máy tính Robot có khả năng xác định vật đích qua thuật toán nhận dạng màu sắc và các đặc điểm cục bộ của ảnh vật thể
1.3 Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài giới hạn trong những ứng dụng trong nhà Robot sẽ
di chuyển trong bản đồ môi trường đã được xây dựng trước Trong quá trình di chuyển robot sẽ định vị trí bằng thông tin encoder kết hợp với điểm mốc với màu sắc đơn giản và từ đó định hướng di chuyển đến đích Robot sử dụng thông tin độ sâu để xây dựng biểu đồ histogram cho việc tránh vật cản và sử dụng thuật toán nhận dạng để phát hiện vật thể đích
1.4 Phương pháp nghiên cứu
Các phương pháp nghiên cứu được sử dụng trong đề tài là:
tử liên quan đến lĩnh vực nghiên cứu Nghiên cứu lý thuyết để xây dựng thuật toán quy hoạch quỹ đạo cho robot
hình robot
Trang 142 Thị Giác Máy Tính Và Thư Viện OpenCV
ở phần cuối của chương OpenCV được xây dựng trên nền những thuật toán đã được tối ưu hóa dành cho những ứng dụng thị giác máy tính
2.1 Giới thiệu
Với sự phát triển mạnh mẽ của công nghệ máy tính đã kéo theo sự phát triển vượt bậc của nhiều lĩnh vực khác Trong số đó là thị giác máy tính, một lĩnh vực nghiên cứu phức tạp đòi hỏi nhiều về sức mạnh tính toán Từ những năm 1970 khi mà năng lực tính toán của máy tính trở nên mạnh mẽ giúp cho công việc xử lý những tập dữ liệu lớn như hình ảnh trở nên nhanh chóng và dễ dàng, thì lĩnh vực thị giác máy tính được nhắc đến và nghiên cứu nhiều hơn cho tới ngày nay Hiện nay lĩnh vực này được đánh giá là vẫn còn “non nớt” và có sự phát triển mạnh mẽ trong thời gian tới Thị giác máy tính bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh thu được hoặc các tập dữ liệu đa chiều Đối với mỗi con người, quá trình nhận thức thế giới bên ngoài
là một điều dễ dàng Quá trình nhận thức đó được “học” thông qua quá trình sống
Trang 152 Thị Giác Máy Tính Và Thư Viện OpenCV
6
của mỗi người Con người có thể cảm nhận được một bình hoa sặc sỡ sắc màu đặt trên chiếc bàn đẹp như thế nào, hay nhận biết tên và sắc thái biểu cảm của từng người qua một tấm ảnh chụp Tuy nhiên với các vật vô tri vô giác như máy tính, robot v v thì điều này thực sự là một bước tiến rất gian nan Thị giác máy tính cung cấp cho các máy móc, thiết bị có cái “nhìn” thật với thế giới bên ngoài Cái
“nhìn” này qua quá trình phân tích, xử lý và kết hợp với các mô hình như máy học, mạng nơron v v sẽ giúp cho thiết bị tiến dần tới một hệ thống nhân tạo có khả năng
ra quyết định chính xác và linh hoạt hơn rất nhiều
Lĩnh vực nghiên cứu của thị giác máy tính rất đa dạng và có liên quan đến rất nhiều lĩnh vực khác như trong hình 2.1, do đó không thể xây dựng được một tiêu chuẩn chung cho các bài toán về thị giác máy tính Thay vào đó mỗi hướng giải quyết, mỗi phương pháp đều đạt được một kết quả nhất định cho những trường hợp cụ thể trong các ứng dụng khác nhau
Hình 2.1 Mối tương quan giữa thị giác máy tính và các lĩnh vực khác(nguồn:
http://en.wikipedia.org/wiki/File:CVoverview2.svg, truy cập ngày 1/10/2011)
Trang 162 Thị Giác Máy Tính Và Thư Viện OpenCV
7
2.2 Sự phát triển của thị giác máy tính
Những khái niệm đầu tiên về thị giác máy tính được hình thành vào đầu những năm
1970 Đây là một đề tài đầy tham vọng nhằm bắt chước trí thông minh của con người và làm cho robot có những hành vi thông minh Vào thời điểm đó, niềm tin vào hướng nghiên cứu này xuất phát từ một số những người tiên phong đầu tiên về lĩnh vực trí thông minh nhân tạo và robot như MIT, Stanford, và CMU Những nhà nghiên cứu đã giải quyết vấn đề "đầu vào thị giác" và tạo ra tiền đề để giải quyết các vấn đề khó khăn hơn
Điều khác biệt giữa thị giác máy tính với các lĩnh vực xử lý ảnh số là việc mong muốn khôi phục lại không gian ba chiều của thế giới từ những hình ảnh và sử dụng như là một bước đệm hướng tới sự hiểu biết đầy đủ về cảnh vật Những nỗ lực đầu tiên về sự hiểu biết cảnh vật là trích xuất cạnh và sau đó xây dựng cấu trúc 3D của đối tượng hoặc một "thế giới khối" từ cấu trúc tô pô tạo nên bởi những đường thẳng 2D của Roberts (1965) Tại thời điểm đó một số thuật toán đánh nhãn đường thẳng (hình 2.3a) được phát triển như trong nghiên cứu của Huffman (1971), Clowes (1971), Waltz (1975), Rosenfeld và các cộng sự (1976), Kanade (1980) Fischler và Elschlager (1973) đề xuất phương pháp sắp xếp đàn hồi các bộ phận cấu trúc trực quan (Hình 2.3b), đây là một trong các phương pháp tiếp cận được sử dụng nhiều trong nhận dạng đối tượng Mô hình ba chiều của các đối tượng có hình dáng không phải khối đa diện cũng được nghiên cứu vào thời điểm đó bởi Baum-gart (1974), Baker (1977), cách tiếp cận phổ biến được sử dụng là hình trụ suy rộng, tức là, khối trụ tròn và quét đường cong kín thường được sắp xếp thành các quan hệ thành phần (Hình 2.3c) Ngoài ra còn có nghiên cứu của Barrow và Tanenbaum (1981) về sự thay đổi về cường độ ánh sáng và sự đổ bóng, và giải thích những điều này bằng tác động của hiện tượng hình thành ảnh, chẳng hạn như định hướng bề mặt và đổ bóng (hình 2.3d), phát triển cùng ý tưởng này là bản thảo về không gian 2,5 chiều của Marr (1982) Bên cạnh đó là thuật toán tìm sự tương ứng của nhiều đặc điểm dựa trên thuật toán stereo (Hình 2.3e) được nghiên cứu bởi Dev (1974) và tiếp tục phát triển bởi Marr và Poggio (1976), Moravec (1977), Marr và Poggio (1979), Mayhew
Trang 172 Thị Giác Máy Tính Và Thư Viện OpenCV
8
và Frisby (1981), Baker (1982), Barnard và Fischler (1982), Ohta và Kanade (1985), Grimson (1985), Pollard và các cộng sự (1985), Prazdny (1985) Các thuật toán dựa trên chuyển động quang học (hình 2.3f) phát triển bởi Horn và Schunck (1981), Huang (1981), Lucas và Kanade (1981), Nagel (1986)
Tới thập niên 1980 việc nghiên cứu được tập trung vào các kỹ thuật toán học phức tạp để thực hiện phân tích ảnh như thuật toán pyramid ứng dụng cho việc thực hiện các nhiệm vụ như pha trộn hình ảnh và tìm sự tương quan của Rosenfeld (1980), Burt và Adelson (1983), Rosenfeld (1984), Quam (1984), Anandan (1989) Thuật toán stereo mở rộng ứng dụng cho tìm hình dạng vật thể của Horn (1975), Pentland (1984), Blake và các đồng sự (1985) hoặc việc sử dụng mô hình trường rời rạc ngẫu nhiên Markov (MRF) của Geman (1984) sử dụng cho thuật toán tìm kiếm và tối ưu hóa
Hình 2.2 Một số thuật toán của thị giác máy tính [3]
Trang 182 Thị Giác Máy Tính Và Thư Viện OpenCV
9
Qua thập niên 1990, Các hướng nghiên cứu được đề cập trước đây được nghiên cứu sâu hơn Trong đó có một số hướng đạt được những kết quả tốt như chuyển động quang học của Nagel và Enkelmann (1986), Bolles và các đồng sự (1987), Horn và Jr.Weldon (1988), Anandan (1989) Thuật toán stereo từ nhiều hướng nghiên cứu bởi Seitz và Dyer (1999), Kutulakos và Seitz (2000) để tạo ra bề mặt 3D hoàn chỉnh Đặc biệt là thuật toán Tracking có nhiều nghiên cứu cải thiện mở rộng bao gồm theo vết đường biên sử dụng đường biên động cùa Kass và các đồng sự (1988),
bộ lọc điểm của Blake và Isard (1998), theo dõi khuôn mặt người của Lanitis và các đồng sự (1997) hay tracking toàn thân của Sidenbladh và các đồng sự (2000) Ngoài
ra kỹ thuật học thống kê bắt đầu xuất hiện đầu tiên trong ứng dụng phân tích thành phần chính eigenface để nhận dạng khuôn mặt được phát triển bởi Turk và Pentland (1991) và hệ thống tuyến tính động để theo dõi đường cong của Blake và Isard (1998) Một hướng khác cũng có sự phát triển đáng chú ý là sự tương tác giữa thị giác máy tính và đồ họa máy tính nghiên cứu bởi Seitz và Szeliski (1999), đặc biệt trong phối cảnh và mô mình hóa dựa trên ảnh
Đến thập niên 2000, có thể thấy được sự ảnh hưởng lẫn nhau giữa thị giác máy tính
và đồ họa máy tính ngày càng trở nên sâu rộng hơn, rất nhiều chủ đề đề cập đến việc phối cảnh dựa trên ảnh như ghép nối ảnh, mô hình hóa dựa trên ảnh của Mann
và Picard (1995), Debevec và Malik (1997) Ngoài ra một số hướng phát triển có sự kết hợp lẫn nhau như kỹ thuật xử lý ảnh kết hợp với máy học sử dụng cho thuật toán nhận dạng của Ponce và các đồng sự (2006)
Qua hơn 40 năm hình thành và phát triển lĩnh vực thị giác máy tính đã đạt những kết quả nhất định song để có thể đạt tới được mục tiêu làm cho máy móc có được những hành vi thông minh như con người thì còn là một bước tiến rất dài ở phía trước
2.3 Lĩnh vực ứng dụng
Thị giác máy tính có tính ứng dụng cao, từ những lĩnh vực khoa học, y học, sản xuất cho đến quân sự Đầu tiên có thể kể đến là ứng dụng trong y học Việc chuẩn
Trang 192 Thị Giác Máy Tính Và Thư Viện OpenCV
10
đoán bệnh cho các bệnh nhân có thể được hỗ trợ từ hệ thống thị giác máy tính thông qua việc phân tích và trích xuất những thông tin đặc trưng từ ảnh Những ảnh này được chụp từ kính hiển vi, máy X quang, chụp động mạch, siêu âm hay từ máy chụp cắt lớp Ngoài ra thị giác máy tính cũng có thể hỗ trợ việc đo kích thước cơ quan, lưu lượng máu, cấu trúc tế bào Thứ hai là trong công nghiệp, trong lĩnh vực này thị giác máy tính đôi khi còn được gọi là thị giác máy (machine vision) Những thông tin đặc trưng trong ảnh giúp kiểm soát quá trình sản xuất như chất lượng sản phẩm, tìm kiếm lỗi khuyết tật, kích thước sản phẩm hay vị trí và hướng của cánh tay robot Trong quân sự hệ thống thị giác máy tính được ứng dụng trong các hệ thống phát hiện chuyển động, nhận dạng, hay phức tạp hơn là hướng dẫn hệ thống tên lửa Một ứng dụng khác khá phổ biến của thị giác máy tính là cho phương tiện tự hành,
từ tàu lặn, máy bay không người lái, hệ thống hỗ trợ lái xe phát hiện vật cản Ngoài
ra còn rất nhiều những ứng dụng hữu ích khác trong thực tế, một số những ứng dụng tiêu biểu trong những lĩnh vực kể trên được minh họa trong hình 2.4
Hình 2.3 Một số ứng dụng của thị giác máy tính (a) xe tự hành thám hiểm sao
Hỏa (b) ảnh y sinh (c) kiểm tra lỗi của sản phẩm (d) Kiểm soát lưu lượng xe
Trang 202 Thị Giác Máy Tính Và Thư Viện OpenCV
11
2.4 Hệ thống thị giác máy tính
Cấu trúc của một hệ thống thị giác máy tính phụ thuộc nhiều vào ứng dụng cụ thể của hệ thống đó, vì thế mỗi một hệ thống lại có một cấu trúc riêng biệt Tuy nhiên, khi tổng hợp những cấu trúc này lại thì có thể nhận thấy được các thành phần đặc trưng thường xuất hiện trong một hệ thống thị giác như trình bày trong hình 2.5
để thỏa mãn một số yêu cầu như lấy mẫu lại để hiệu chỉnh tọa độ điểm các ảnh liên tiếp, loại bỏ nhiễu để giảm thông tin sai hay tăng độ tương phản
để đảm bảo xác định được các thông tin cần thiết
phải dữ liệu nào cũng hữu ích Vì thế trong giai đoạn này, hệ thống sẽ trích xuất ra những đặc điểm cơ bản nhất trong ảnh phục vụ cho các quá trình tiếp theo Những đặc điểm này thường là đường thẳng, cạnh, góc và đặc
điểm phức tạp như dấu vân, hình dáng hay chuyển động
Hình 2.4 Cấu trúc hệ thống thị giác máy tính
Thu thập
Trích xuất đặc điểm ảnh
Dò tìm/phân vùng
Xử lý mức cao Ảnh
Trang 212 Thị Giác Máy Tính Và Thư Viện OpenCV
12
Dò tìm hay phân vùng: Đối tượng cần quan tâm có thể nằm ở bất kỳ đâu trong một ảnh, vì thế cần phân ảnh thành những vùng ảnh và tìm ra vùng ảnh quan tâm hoặc chứa đối tượng quan tâm để xử lý Muốn phân vùng
phải dựa vào những đặc điểm của ảnh
Xử lý mức cao: Ở bước này thì các tập dữ liệu chỉ là một tập điểm ảnh
hoặc vùng ảnh chứa đối tượng cần quan tâm và những đặc điểm của đối tượng đã được trích xuất ra Vấn đề còn lại là sử dụng các thuật toán để xử
lý đối tượng theo yêu cầu đề ra
2.5 Thư viện mã nguồn mở OpenCV
OpenCV (Open Source Computer Vision) là một thư viện mở gồm các hàm được xây dựng phục vụ cho việc xử lý thị giác máy thời gian thực (Real time computer vision) Các thuật toán xử lý ảnh thông thường lẫn cao cấp đều được tối ưu hóa bởi các nhà phát triển thành các hàm đơn giản và rất dễ sử dụng OpenCV hỗ trợ hai ngôn ngữ chính C/C++, python và chạy trên hệ điều hành Linux, Windows và Mac
OS X
Một trong những mục đích của OpenCV là cung cấp một cấu trúc hạ tầng đơn giản cho việc sử dụng thị giác máy giúp người sử dụng xây dựng các ứng dụng thị giác máy phức tạp một cách nhanh chóng Thư viện OpenCV chứa trên 500 hàm dùng trong nhiều lĩnh vực của xử lý ảnh, gồm kiểm tra sản phẩm trong công nghiệp, ảnh
y sinh, an ninh, nhận dạng, hiệu chỉnh camera, stereo vision, và robot tự động
2.5.1 Cấu trúc thư viện OpenCV
Cấu trúc chính của OpenCV gồm 5 phần: CV, MLL, HighGUI, CXCORE Bốn trong số này được trình bày trong hình 2.6
Thành phần CV chứa những thuật toán xử lý ảnh cơ bản và thuật toán thị
giác máy tính mức cao Trong đó các hàm được xây dựng và tối ưu hóa nhằm tìm thông tin, đặc điểm của một ảnh làm cơ sở phục vụ cho việc giải thích hay hiểu rõ về cảnh vật trong ảnh
Trang 222 Thị Giác Máy Tính Và Thư Viện OpenCV
13
Hình 2.5 Cấu trúc cơ bản của OpenCV
Thành phần MLL là thư viện máy học bao gồm nhiều cơng cụ phân loại
thống kê và phân nhĩm như phân loại Normal/Nạve Baye, sơ đồ quyết định dạng cây (Decision trees), mạng nơron v.v
giúp tương tác với hệ điều hành, trong đĩ chứa các hàm và thủ tục xuất nhập I/O, các hàm tạo cửa sổ hiển thị hình ảnh, đọc và ghi dữ liệu ảnh v.v Thành phần này được chia thành 3 phần nhỏ:
Phần cứng liên quan đến các hoạt động và tương tác với camera Các hàm thu thập dữ liệu từ camera
Trang 232 Thị Giác Máy Tính Và Thư Viện OpenCV
14
Hệ thống tập tin chứa các hàm tải và lưu trữ các dữ liệu video từ camera, video lưu trữ hay các ảnh tĩnh
GUI là thành phần giao diện người dùng với các hàm đơn giản cho phép tạo
những cửa sổ hiển thị ảnh, đáp ứng những sự kiện tương tác giữa cửa sổ với
thiết bị chuột và bàn phím
(CvPoint), kích thước (CvSize), vùng ảnh (CvRect), hay cấu trúc phức tạp hơn như cấu trúc ảnh (IplImage) , cấu trúc ma trận (CvMat), cấu trúc chuỗi
dữ liệu (CvSeq) và một số cấu trúc liên quan đến đồ họa
Thành phần CvAux chứa một số thuật toán riêng biệt được miêu tả như
trong bảng 2.1
2.5.2 Cấu trúc một chương trình xử lý ảnh sử dụng thư viện OpenCV
Cấu trúc của một chương trình xử lý ảnh sử dụng thư viện OpenCV như sau:
Khai báo: phần đầu của một chương trình xử lý ảnh sử dụng thư viện OpenCV là khai báo các thành phần trong thư viện được sử dụng trong
chương trình đó Thư viện OpenCV bao gồm 5 thành phần: CV, MLL HighGUI CXCore, CvAux
Nạp ảnh: ảnh xử lý sẽ được nạp vào chương trình từ camera, từ các tập tin
ảnh hoặc video lưu trữ trong bộ nhớ
Xử lý ảnh dùng các hàm hoặc thuật toán riêng của OpenCV: thư viện
OpenCV có khoảng 500 hàm xử lý dùng cho xử lý ảnh, tùy theo từng ứng dụng cụ thể có thể sử dụng từ các hàm cơ bản cho đến các hàm phức tạp để
xử lý ảnh
Hiển thị: thư viện OpenCV cũng có các hàm hỗ trợ việc tạo cửa sổ và hiển
thị ảnh
Trang 242 Thị Giác Máy Tính Và Thư Viện OpenCV
trên ảnh hoặc video Tìm khung của một vật
(Finding skeletons of objects)
Khác với đường bao, khung của một vật là đường thẳng trung tâm ở một vùng trong vật có thể đại diện cho hình dáng của vật đó
trợ của thuật toán stereo vision
Trang 252 Thị Giác Máy Tính Và Thư Viện OpenCV
16
Bảng 2.2: Mô tả chương trình tìm đường thẳng sử dụng biến đổi Hough
//Khai báo thư viện
IplImage* src , *dst,*color_dst //Khai báo biến con trỏ chứa dữ liệu ảnh
//Tải một ảnh lưu trong bộ nhớ
src = cvLoadImage( "pic.png" , 0 );
dst = cvCreateImage( cvGetSize(src), 8, 1 );
color_dst = cvCreateImage( cvGetSize(src), 8, 3 );
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* lines = 0;
int i;
// Xử lý ảnh sử dụng hàm của thư viện OpenCV
cvCanny( src, dst, 50, 200, 3 ); // Thuật toán trích xuất cạnh Canny
// Chuyển đổi từ ảnh màu BGR sang ảnh xám từ biến color_dst sang dst
cvCvtColor( dst, color_dst, CV_GRAY2BGR );
// Tìm đường thẳng sử dụng biến đổi Hough
lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 50, 50,
10 );
for ( i = 0; i < lines->total; i++ ) {
CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i);
cvLine( color_dst, line[0], line[1], CV_RGB(255,0,0), 3, CV_AA, 0 ); }
// Hiển thị ảnh
cvNamedWindow( "Original Image " , 1 ); // Tạo một cửa sổ hiển thị ảnh
cvShowImage( "Original Image " , src ); // hiển thị ảnh
cvNamedWindow( "Image After Using Hough Transform " , 1 );
cvShowImage( "Image After Using Hough Transform " , color_dst );
cvWaitKey(0); //Chờ nhấn phím để thoát chương trình
return 0;
}
Trang 262 Thị Giác Máy Tính Và Thư Viện OpenCV
Hình 2.6 Ảnh trước và sau khi sử dụng biến đổi Hough
Hình 2.8 thể hiện kết quả chương trình tìm đường tròn sử dụng biến đổi Hough
Hình 2.7 Thuật toán tìm đường tròn sử dụng biến đổi Hough
Trang 272 Thị Giác Máy Tính Và Thư Viện OpenCV
18
Hình 2.9 là kết quả chương trình ứng dụng nhận dạng khuôn mặt người trong ảnh
Hình 2.8 Thuật toán nhận dạng khuôn mặt
Kết quả chương trình ứng dụng tìm máu áo của người trong hình sử dụng thuật toán nhận dạng khuôn mặt trình bày trong hình 2.10
Hình 2.9 Thuật toán tìm màu áo.
Trang 283 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
19
Chương 3
Các Phương Pháp Quy Hoạch Quỹ
Đạo Cho Robot
Quy hoạch quỹ đạo là một nhiệm vụ cơ bản và khó khăn mà một robot cần thực hiện trong quá trình di chuyển đến mục tiêu đã định Để xây dựng một quỹ đạo di chuyển robot cần thu thập đủ những dữ liệu từ môi trường thông qua cảm biến Những dữ liệu này được xử lý, chọn lọc và trích xuất để lấy ra những thông tin cần thiết Thông tin cần thiết phải đảm bảo được những tiêu chí là mang những đặc điểm cơ bản và đủ để robot có thể mô tả được môi trường xung quanh Chương này
đề cập đến cơ sở chung và các thuật toán về vấn đề quy hoạch quỹ đạo cho robot sử dụng thị giác máy tính Mục 3.1 trình bày về phương pháp định hướng cho robot bao gồm việc tìm hướng di chuyển và định vị trí Các phương pháp tránh vật cản và phương pháp nhận dạng được đề cập trong mục 3.2 và 3.3
3.1 Phương pháp định hướng
Định hướng tìm đường dựa trên thị giác được chia làm 2 hướng khác nhau đó là định hướng dựa trên thị giác cho những ứng dụng trong nhà (Indoor) và những ứng dụng ngoài trời (Outdoor) [4] Như đã đề cập ở trên trong hướng đề tài này chỉ đề cập đến định hướng dựa trên thị giác cho những ứng dụng trong nhà Việc định
Trang 293 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
20
hướng dựa trên thị giác đã được nghiên cứu trên thế giới hơn 20 năm nay với nhiều hướng nghiên cứu khác nhau Có thể tổng hợp các hướng nghiên cứu thành 3 hướng chính:
hình học hoặc bản đồ tô pô về môi trường do người sử dụng tạo ra
mô hình hình học hoặc tôpô về môi trường sau đó sử dụng lại mô hình này
để định hướng
dụng đến bản đồ hay mô tả nào về môi trường để định hướng mà chỉ sử dụng việc nhận dạng vật thể trong môi trường hoặc theo vết vật thể khi chuyển động dựa trên quan sát thị giác
3.1.1 Phương pháp định hướng dựa trên bản đồ
Đối với hướng tiếp cận này thì robot được cung cấp mô hình về môi trường xung quanh (bản đồ) Bản đồ được cung cấp bởi người sử dụng và thường ở dạng 2D như S-map [5], những điểm mốc định vị trí sẽ xuất hiện trong quá trình định hướng Vì thế nhiệm vụ chính của robot là di chuyển và xác định các điểm mốc thông qua thị giác Robot sử dụng bản đồ được cung cấp sẵn để ước lượng vị trí hiện tại của nó bằng cách so sánh điểm mốc phát hiện và điểm mốc định sẵn trong bản đồ Các bước trong việc định vị trí của robot được chia như sau:
là thu thập và xử lý ảnh từ camera
vật mốc có thể được phát hiện nhờ nhận dạng về hình dáng, kích thước hoặc màu sắc
Trang 303 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
21
hiện điểm mốc thì robot sẽ tra tìm trong tập dữ liệu trên bản đồ để tìm ra vị trí điểm mốc tương ứng
vị được vị trí của nó trên bản đồ
Điểm mốc được gắn vào trên đường đi của robot, nó được sử dụng cho 2 mục đích
là định vị trí và định hướng Ngoài ra điểm mốc được sử dụng để nhận dạng các vật thể Ở bước thứ 3 là so sánh giữa điểm mốc với điểm mốc tương ứng trong bản đồ nảy sinh một vấn đề khó, đó là việc xác định chính xác điểm mốc tương ứng nếu như robot được đặt ở vị trí bất kỳ Trong cách tiếp cận định hướng dựa trên bản đồ
có 3 phương pháp định vị trí của robot, trong cả ba phương pháp thì bản đồ về môi trường là đã được lập sẵn
Theo phương pháp này thì vị trí ban đầu của robot là không biết, robot xác định vị trí bằng cách dựa trên những điểm mốc và so sánh nó với mô hình của môi trường
đã được lập sẵn, từ đó đưa ra hướng di chuyển tới đích Bản đồ về môi trường mà robot di chuyển trong đó được minh họa trong hình 3.1
Như trong hình 3.1 những điểm mốc được đại diện bởi một hình tròn, hình tròn nhỏ đại diện đánh dấu cho bức tường và hình tròn to đại diện cho vật thể như bàn, cửa
và góc tường Theo phương pháp của Atiya và Hager [6] đề xuất thì để xác định được vị trí của robot thì cần phải xác định được vị trí của ba điểm mốc xuất hiện trên ảnh, với bộ ba điểm này sẽ tạo nên một tam giác Khoảng cách từ robot tới ba điểm mốc sẽ được đo, từ đó có thể ước lượng chiều dài các cạnh và góc tương ứng giữa các cạnh Thuộc tính độ dài cạnh và góc của tam giác kết nối ba điểm mốc là duy nhất và không thay đổi trong quá trình di chuyển của robot Sau đó so sánh những giá trị thuộc tính của bộ ba điểm mốc này với bộ ba điểm mốc bất kỳ trong bản đồ để xác định vị trị điểm mốc dẫn đến xác định được vị trí robot Ưu điểm của phương pháp này là có thể đặt robot ở vị trí bất kì
Trang 313 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
22
Hình 3.1 Bản đồ môi trường với những điểm mốc bằng hình tròn [6]
ii) Định vị trí theo phương pháp tăng dần
Trong phương pháp tăng dần, vị trí ban đầu của robot được xác định trước Khi chuyển động thì robot sẽ dựa vào phương trình chuyển động tịnh tiến và chuyển động quay để tính toán vị trí mới của nó như minh họa trong hình 3.2
Hình 3.2 Vị trí ban đầu và vị trí sau khi di chuyển của robot
(a) Di chuyển tịnh tiến (b) Di chuyển quay
Trang 323 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
−𝑑𝑠𝑖𝑛(∅ + 𝛼)𝑑𝑐𝑜𝑠(∅ + 𝛼)𝛽
(3.1)
Phương trình thể hiện mối quan hệ giữa p và p’ khi robot di chuyển quay
𝑝′𝑥𝑝′𝑦
độ ban đầu mà không phụ thuộc nhiều vào điểm mốc, điểm mốc chỉ đóng vai trò kiểm tra lại vị trị khi sai số của các thông số trong khi di chuyển lớn
iii) Định vị trí theo phương pháp theo vết đường dẫn
Robot di chuyển trong môi trường dựa vào đường dẫn trên đường đi, các đường dẫn này được thiết lập sẵn và nhiệm vụ của robot sẽ dò theo đường dẫn để di chuyển như trong hình 3.3
Hình 3.3 Mô hình robot di chuyển theo đường dẫn
Khuếch đại Sensor
Bộ phát hiện sai lệch
Động
cơ
Trang 333 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
24
Để có thể xác định được vị trí thì các điểm mốc được thêm vào trong môi trường Những điểm mốc này có thể là cửa ra vào, cửa sổ hoặc đơn giản hơn là các mã vạch được gắn trên tường như trong hình 3.4 Nhược điểm của phương pháp này là robot phụ thuộc nhiều vào đường dẫn
3.1.2 Định hướng dựa trên xây dựng bản đồ
Trong cách tiếp cận này thì robot không được cung cấp bản đồ trước mà phải tự xây dựng bản đồ dựa trên các thông tin lấy từ cảm biến Không gian ba chiều của môi trường được vẽ lại dưới dạng bản đồ mắt lướt 2 chiều, mỗi ô mắt lưới có kích thước xác định và một giá trị xác xuất biểu thị xác xuất vật thể chiếm không gian trong ô mắt lướt này [8] Giá trị xác xuất được tính bằng tần suất xuất hiện của vật thể tại một ô mắt lưới trong quá trình di chuyển của robot dựa trên dữ liệu đo được từ cảm biến
Bản đồ mắt lưới mà robot tự xây dựng thì mỗi mắt lưới có tọa độ nhất định vì thế
mà robot dễ dàng định vị trí và hướng di chuyển Song với phương pháp này thì robot phải mất nhiều thời gian ban đầu để tự xây dựng nên bản đồ về môi trường xung quanh Trong hình 3.5 miêu tả bản đồ môi trường mà robot tự xây dựng
Hình 3.4 Điểm mốc dạng mã vạch [4]
Trang 343 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
25
Hình 3.5 Bản đồ môi trường (a) bản đồ lý tưởng (b) bản đồ do robot xây dựng
3.1.3 Định hướng không dựa trên bản đồ
Thông thường robot phải được cung cấp bản đồ hoặc tự xây dựng bản đồ trong quá trình di chuyển Đối với cách tiếp cận này thì robot không sử dụng bản đồ mà thông qua quan sát và trích xuất thông tin thích hợp về môi trường và những vật thể trong môi trường Phương pháp chủ yếu là dò tìm và phát hiện, robot tự định vị trí của mình so với những vật thể phát hiện được trong môi trường Định hướng không dựa trên bản đồ có 3 phương pháp tiếp cận sau:
Santos Victor và các đồng sự đã phát triển hệ thống dựa trên chuyển động quang học bắt chước hệ thống thị giác của loài ong [9] Đối với các loài côn trùng như loài ong thì cơ chế định hướng dựa trên đặc điểm chuyển động tốt hơn là sử dụng thông tin độ sâu bởi vì vùng hai mắt quá hẹp nên khả năng nhận biết khoảng cách của chúng khá ngắn Phương pháp định hướng sử dụng chuyển động thị giác cũng có cơ chế như vậy Khi robot di chuyển sự sai biệt giữa vận tốc của ảnh bên camera trái
và camera phải là bằng không, nếu hai vận tốc khác nhau thì robot di chuyển về phía có vận tốc ảnh thay đổi nhỏ hơn như hình 3.6
Trang 353 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
26
Hình 3.6 Mô tả phương pháp định hướng dựa trên chuyển động quang học
Tại một điểm ảnh tọa độ là (𝑥, 𝑦) và vào thời điểm t có cường độ sáng là 𝐼(𝑥, 𝑦, 𝑡), thì phương trình chuyển động thị giác của điểm ảnh:
Phương trình so sánh giữa hai vận tốc ảnh ở hai camera :
Tuy nhiên đối với phương pháp này nếu di chuyển trong hành lang thì phải có vân
bề mặt trên tường nghĩa là bề mặt hai bên tường phải không đồng nhất, vì nếu đồng nhất sẽ không thể tính được độ dịch chuyển của điểm ảnh do các điểm ảnh đều đồng nhất về cường độ sáng trong chuỗi khung ảnh
Trang 363 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
27
ii) Định hướng sử dụng nhận dạng diện mạo (Appearance based matching)
Phương pháp định hướng sử dụng nhận dạng diện mạo sử dụng “ký ức” về môi trường của robot [10] Robot sẽ lưu trữ hình ảnh mẫu về môi trường thông qua chuỗi hình ảnh được học trước đó Sau đó robot sẽ di chuyển trong môi trường và
so sánh giữa hình ảnh hiện tại và chuỗi hình ảnh trong bộ nhớ để xác định vị trí cũng như hướng di chuyển như minh họa trong hình 3.7 Robot sử dụng thuật toán template matching cho việc so sánh giữa ảnh thu thập và chuỗi ảnh nhớ
Phương pháp này mô phỏng lại cách thức gợi nhớ hình ảnh trong não người song đối với robot thì điều này là phức tạp và tốn dung lượng bộ nhớ để lưu trữ
iii) Định hướng sử dụng nhận dạng vật thể (Object recognition)
Khác với phương pháp nhận dạng diện mạo thì phương pháp nhận dạng vật thể không dựa vào chuỗi ảnh mẫu mà robot học mà dựa vào ký hiệu của mệnh lệnh được đưa ra kết hợp với việc nhận dạng vật thể ví dụ như “Đi tới cái bàn ở phía trước” hoặc “Đi thẳng, rẽ trái và sau đó dừng lại ở cửa trước mặt” Robot sẽ phân tích mệnh lệnh dựa vào ký tự trong câu lệnh thành hai thành phần là hướng di chuyển và vật mốc
Hình 3.7 Định hướng dựa trên nhận dạng diện mạo [4]
Trang 373 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
28
Hướng di chuyển có thể là đi thẳng, rẽ trái, rẽ phải và được sắp xếp theo trình tự theo mệnh lệnh, robot sử dụng nhận dạng vật thể đề phát hiên vật mốc được nhăc đến trong câu lệnh Việc nhận dạng dựa vào đặc điểm chung của vật thể, ví dụ như cái ghế thì sẽ có nhiều dạng ghế khác nhau nhưng đặc điểm chung nhất là về hình dáng ghế thường có 4 chân [11]
Phương pháp Bug là phương pháp tránh vật cản cơ bản nhất, đây là phương pháp
mô phỏng theo sự di chuyển của loài kiến [12] Theo đó, khi robot di chuyển và gặp chướng ngại vật trên đường đi thì robot sẽ di chuyển vòng quanh vật cản Sau khi di chuyển hết một vòng chu vi vật cản robot sẽ xác định vị trí điểm nằm trên đường chu vi gần nhất với điểm đích, tại điểm này robot sẽ di chuyển thoát ra và đi về điểm đích như trong hình 3.8a Tuy nhiên phương pháp này lại không hiệu quả như mong muốn nên đã có một số cải thiện và tạo ra phương pháp Bug2 Trong phương pháp Bug2 thì điểm thoát của robot là giao điểm giữa đường di chuyển quanh vật cản và điểm nối giữa điểm xuất phát và điểm đích như trong hình 3.8b
Hình 3.8 Phương pháp tránh vật cản Bug
Trang 383 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
29
3.2.2 Phương pháp Potential Field
Trong phương pháp Potential Field được đề xuất bởi Khatib, thì robot được xem là một chất điểm di chuyển trong môi trường mà trong đó chất điểm này chịu tác động của trường lực ảo được tạo ra bởi đích và các vật cản [13] Trong đó, trường lực tạo
ra bởi đích gọi là trường lực hút và trường lực đẩy được tạo ra từ các vật cản Trường lực được biểu diễn bằng những vecto lực và tùy vào vị trí của robot so với đích và vật cản mà vecto lực có độ lớn và hướng khác nhau
Trường lực hút được hút thể hiện tương quan về vị trí giữa đích và các điểm vị trí robot trong môi trường như trong hình 3.9 Vi trí robot càng xa đích thì độ lớn của vecto lực hút càng lớn và ngược lại
Hàm thế năng của trường lực hút được được định nghĩa dưới dạng hàm parabol:
𝑈𝑎𝑡𝑡(𝑞) = 1
Trong đó, 𝑘𝑎𝑡𝑡 là hê số tỷ lệ dương và 𝑑𝑔𝑜𝑎𝑙 là khoảng cách từ điểm đích tới robot
Hàm thế năng là không âm và có giá trị cực tiểu khi robot ở vị trí đích khi đó
𝑈𝑎𝑡𝑡(𝑞) = 0
Hình 3.9 Trường lực hút biểu diễn dưới dạng biểu đồ điểm và vecto lực
Trang 393 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
30
ii) Trường lực đẩy
Trường lực đẩy thể hiện mối tương quan về vị trí giữa robot và vật cản như trong hình 3.10 Vecto lực đẩy có độ lớn càng lớn khi robot di chuyển gần đến vật cản và nhỏ dần khi robot di chuyển ra xa vật cản Tuy nhiên, vecto lực đẩy không ảnh hưởng đến sự di chuyển của robot khi robot có khoảng cách đủ xa so với vật cản
Do đó hàm thế năng của trường lực đẩy được định nghĩa:
với vật cản và tiến đến vô cùng khi nằm trong vùng vật cản Khi Robot tiến ra xa vật cản với khoảng cách lớn hơn 𝑑0 thì trường thế đẩy tiến về giá trị 0
Hình 3.10 Trường lực đẩy biểu diễn dưới dạng biểu đồ điểm
Trang 403 Các Phương Pháp Quy Hoạch Quỹ Đạo Cho Robot
liên quan đến vùng vật cản Sự ảnh hưởng của thế năng hút sẽ kéo robot về hướng mục tiêu, trong khi thế năng đẩy sẽ đẩy robot ra khỏi vật cản Vecto của lực ảo 𝐹(𝑞) được cho bởi gradient của vecto 𝑈:
𝜕𝑞 (3.8)
và Frep q = −∇Urep của thế năng đẩy
𝐹 𝑞 = 𝐹𝑎𝑡𝑡 𝑞 + 𝐹𝑟𝑒𝑝 𝑞 (3.9) Lực 𝐹 là lực dẫn của robot, hướng của lực 𝐹 là hướng di chuyển của robot và cường
độ lực thể hiện tốc độ của robot như hình 3.11
Hình 3.11 Tổng hợp lực ảo tác động lên robot