Chương 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. 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 1 1. Giới Thiệu chính là robot đi (Walking robots) 1.1c và robot dáng ngƣời (Humanoid Robots) nhƣ hình 1. Tại Việt Nam, lĩnh vực nghiên cứu, chế tạo robot đƣợc chậm so với thế giới song cũng đã đạt đƣợc những bƣớc tiến đáng khích lệ. Đã có nhiều nghiên cứu cơ bản và nghiên cứu ứng dụng về robot đƣợc thực hiện khá đa dạng và theo sát đƣợc các hƣớng nghiên cứu thế giới [2].
Trong những năm gần đây có một hƣớng nghiên cứu đƣợc nhiều ngƣời quan tâm đó là sử dụng thị giác máy tính cho robot đặc biệt đối với robot tự hành. Việc sử dụng thị giác máy tính cho robot là sử dụng các camera để 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. Một số loại robot đã và đang được nghiên cứu. Giới Thiệu 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 tin cho robot bởi vì việc xây dựng phần mềm cho robot là rất phức tạp. Các chƣơ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.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ể.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.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à: Phƣơng pháp nghiên cứu tài liệu: thu thập thông tin tài liệu, sách báo điện 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. Phƣơng pháp khảo sát: khảo sát những mô hình robot tự hành hiện có. Phƣơng pháp thực nghiệm: áp dụng những thuật toán đã xây dựng vào mô hình robot.
Thị Giác Máy Tính Và Thư Viện OpenCV Chương 2. Thị Giác Máy Tính và Thƣ Viện OpenCV Phần đầu chƣơng 2 giới thiệu tổng quan về lĩnh vực thị giác máy tính với những hƣớng phát triển khác nhau và những ứng dụng, lợi ích mang lại cho đời sống của con ngƣời trong vòng 40 năm qua. Thƣ viện mã nguồn mở OpenCV đƣợc trình bày ở 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.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 5 2. Thị Giác Máy Tính Và Thư Viện OpenCV 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. 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.
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. 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.org/wiki/File:CVoverview2.svg, truy cập ngày 1/10/2011) 6 2.
Thị Giác Máy Tính Và Thư Viện OpenCV 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.