ĐIỀU KHIỂN ROBOT DI ĐỘNG SỬ DỤNG THƯ VIỆN OPENCV

82 1K 7
ĐIỀU KHIỂN ROBOT DI ĐỘNG SỬ DỤNG THƯ VIỆN OPENCV

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐIỀU KHIỂN ROBOT DI ĐỘNG SỬ DỤNG THƯ VIỆN OPENCV

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Xuân Đức ĐIỀU KHIỂN ROBOT DI ĐỘNG SỬ DỤNG THƯ VIỆN OPENCV ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơ học Kỹ thuật HÀ NỘI-2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Xuân Đức ĐIỀU KHIỂN ROBOT DI ĐỘNG SỬ DỤNG THƯ VIỆN OPENCV ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơ học Kỹ thuật Cán bộ hướng dẫn:ThS. Phùng Văn Hiệp HÀ NỘI – 2010 LỜI CẢM ƠN Khi bắt đầu nhận đồ án tốt nghiệp này em đã rất lo lắng bởi xử lý ảnh là lĩnh vực còn mới mẻ ở Việt Nam và bản thân cũng lần đầu tiên tiếp xúc với lĩnh vực này. Em rất vui vì cuối cùng đã hoàn thành tốt đồ án được giao. Trước hết em xin gửi lời cảm ơn sâu sắc đến ThS. Phùng Văn Hiệp tuy không có điều kiện trực tiếp được làm việc cùng thầy nhiều, nhưng qua những lần tiếp xúc ngắn ngủi đó chính thầy đã cho em những lời động viên, những lời khuyên quý báu, em học được ở thầy rất nhiều từ phong cách làm việc đến phong cách sống, em rất khâm phục thầy. Đồng thời em xin gửi lời cảm ơn đến ThS. Võ Đức Mỹ, cán bộ nghiên cứu tại Viện Công nghệ Vũ trụ - Viện Khoa học và Công nghệ Việt Nam. Mặc dù chỉ được trực tiếp làm việc với thầy trong thời gian ngắn do thầy phải đi công tác xa và rất bận rộn nhưng thầy vẫn luôn dành thời gian quý báu hướng dẫn, chỉ bảo tận tình, giúp em bước từ những bước đi đầu tiên đến lúc em hoàn thành được đồ án này. Em xin gửi lời cảm ơn chân thành đến KS. Nguyễn Thanh Tuấn cán bộ nghiên cứu phòng Động lực học vũ trụ và Cơ điện tử chính xác - Viện Công nghệ Vũ trụ - Viện Khoa học và Công nghệ Việt Nam. KS. Nguyễn Thanh Tuấn không những giúp đỡ em rất nhiều trong quá trình thực hiện đồ án này mà còn chỉ bảo, giúp đỡ em ngay từ khi em bắt đầu được đến học tập tại Viện. Qua đây em cũng xin gửi lời cảm ơn đến thầy, cô giáo công tác tại trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội và các cán bộ nghiên cứu tại Viện Công Nghệ Vũ trụ Viện Khoa học và Công nghệ Việt Nam đã giúp đỡ em về chuyên môn, tạo điều kiện thuận lợi để em hoàn thành đồ án này. Thực sự con cũng không biết làm thế nào để nói hết công ơn bố mẹ đã dành cho con! Một lần nữa xin cảm ơn tất cả mọi người, cầu chúc cho tất cả mọi người mạnh khỏe, vui vẻ, hạnh phúc và thành công! Sinh viên Nguyễn xuân Đức TÓM TẮT NỘI DUNG ĐỒ ÁN Lĩnh vực rô bốt đang ngày càng chiếm được sự quan tâm của các nhà nghiên cứu và xã hội. Từ tình hình thực tế đó, việc xây dựng các chương trình hoạt động cho rô bốt là điều thiết yếu, đặc biệt đối với rô bốt di động. Bài toán rô bốt di động bám đối tượng là một bài toán thường gặp trong lĩnh vực rô bốt. Đồ án này trình bày xây dựng một giải pháp điều khiển rô bốt di động bám đối tượng dựa vào thuật toán CamShift trong thư viện OpenCV. Để theo dõi đối tượng trong OpenCV cần phải có quá trình dò tìm, phân tích và nhận dạng đối tượng. Bố cục của đồ án này được trình bày như sau: trước hết đồ án trình bày những khái niệm về thư viện OpenCV, sau đó trình bày các cơ sở lý thuyết của thư viện OpenCV. Trên cơ sở tìm hiểu tìm hiểu thư viện OpenCV đồ án xây dựng thuật toán theo dõi đối tượng dựa vào một thuật toán rất phổ biến trong OpenCV là thuật toán CamShift. Một Webcam được sử dụng để thu thập hình ảnh đóng vai trò như là con mắt của rô bốt và một laptop được sử dụng làm bộ xử lý trung tâm cho rô bốt. Mô hình rô bốt được chế tạo nhằm kiểm nghiệm thuật toán đã xây dựng. Kết quả đồ án là căn cứ để phát triển và xây dựng các thuật toán điều khiển rô bốt sử dụng OpenCV sau này. MỤC LỤC MỞ ĐẦU 1 CHƯƠNG 1. GIỚI THIỆU CHUNG 2 1.1. Giới thiệu chung về rô bốt 2 1.2. Giới thiệu rô bốt bám đối tượng 3 1.3. Mục tiêu của đồ án 6 1.4. Giới hạn của đồ án 6 CHƯƠNG 2. TỔNG QUAN VỀ THƯ VIỆN OPENCV VÀ MỘT SỐ LINH KIỆN SỬ DỤNG TRONG KHỐI PHẦN CỨNG 7 2.1. Thế nào là thị giác máy? 7 2.2. Thư viện OpenCV 7 2.2.1. OpenCV là gì? 7 2.2.2. Vì sao lựa chọn OpenCV? 8 2.2.3. Cấu trúc và nội dung OpenCV như thế nào? 9 2.2.4. Các hàm I/O trong OpenCV 10 2.2.5. Các hàm thực hiện xử lý ảnh 12 2.2.6. Các hàm Histograms and Matching 13 2.2.7. Hàm Contours 13 2.2.8. Cơ sở toán học của thuật toán CamShift 14 2.3. Cơ bản về PIC16F877A 15 2.3.1. PIC là gì? 15 2.3.2. Đặc điểm nổi bật của PIC16F877A 15 2.3.3. Sơ đồ các chân của PIC16F877A 16 2.4. Giao tiếp RS232 18 2.5. Giới thiệu về chíp mạch cầu L298N 20 CHƯƠNG 3. XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN 22 3.1. Thị giác máy điều khiển rô bốt di động bám đối tượng 22 3.2. Thuật toán tính hướng và kích cỡ của đối tượng cần theo dõi 23 3.2.1. Thuật toán chung 23 3.2.2. Nhận dạng và bám mục tiêu di động 24 3.2.3. Chuyển đổi không gian màu từ RGB đến HSV 25 3.2.4. Histogram 26 3.2.5. Lọc nhiễu Filter 27 3.2.6. Thuật toán CamShift 28 3.2.7. Thiết kế hoàn chỉnh phần mềm điều khiển 30 CHƯƠNG 4. XÂY DỰNG MẠCH PHẦN CỨNG 34 4.1. Sơ đồ mạch dùng trong đồ án 34 4.1.1. Khối điều khiển trung tâm 34 4.1.2. Khối nguồn 35 4.1.3. Khối truyền thông RS232 35 4.1.4. Khối điều khiển động cơ 36 4.2. Tập lệnh điều khiển rô bốt 37 CHƯƠNG 5. KẾT QUẢ THỰC HIỆN 38 5.1. Kết quả thử nghiệm với môi trường tĩnh 40 5.2. Kết quả thử nghiệm với môi môi trường động 42 KẾT LUẬN 46 PHỤ LỤC A. CHƯƠNG TRÌNH XỬ LÝ ẢNH 48 PHỤ LỤC B. CHƯƠNG TRÌNH ĐIỀU KHIỂN ROBOT 62 PHỤ LỤC C. CHƯƠNG TRÌNH TRUYỀN THÔNG RS232 66 TÀI LIỆU THAM KHẢO 72 Yahoo:thoi_chao_em_12325 Email:xuanducdhcn@gmail.com DANH SÁCH HÌNH VẼ Hình 1: PANrobot (nguồn: mobilerobot.org 4 Hình 2: Rô bốt MIDbo (nguồn: telepresenceoptions.com) 4 Hình 3: Rô bốt Pops (nguồn: slashgear.com) 5 Hình 4: Rô bốt thám hiểm sao hoả (nguồn: robotics.youngester.com) 5 Hình 5: Quá trình phát triển của OpenCV 8 Hình 6: Cấu trúc cơ sở của OpenCV 9 Hình 7: PIC16F877A 16 Hình 8: Sơ đồ khối của PIC16F877A 17 Hình 9: Cổng giao tiếp RS232 19 Hình 10: Chíp mạch cầu L298N 21 Hình 11: Sơ đồ khối tổng quát của rô bốt 22 Hình 12: Sơ đồ thuật toán chung 23 Hình 13: Mặt phẳng ảnh 24 Hình 14: Biểu diễn đối tượng di chuyển trên mặt phẳng ảnh 25 Hình 15: Chuyển đối không gian màu RGB đến HSV 26 Hình 16: Histogram 26 Hình 17: kết quả trước và sau khi lọc nhiễu 27 Hình 18: Sơ đồ thuật toán CamShift 28 Hình 19: Kết quả tính toạ độ tâm bằng thuật toán CamShift 29 Hình 20: Kết quả bước đầu theo dõi đối tượng bằng thuật toán CamShift 29 Hình 21: Giao diện phần mềm thiết kế hoàn chỉnh 31 Hình 22: Kết quả thử nghiệm với phần mềm 32 Hình 23: Kết quả thử nghiệm với phần mềm 33 Hình 24: Sơ đồ khối điều khiển trung tâm 34 Hình 25: Sơ đồ khối nguồn 35 Yahoo:thoi_chao_em_12325 Email:xuanducdhcn@gmail.com Hình 26: Sơ đồ khối truyền thông RS232 35 Hình 27: Sơ đồ nguyên lý mạch cầu điều khiển động cơ 36 Hình 28: Sơ đồ phần cứng hoàn chỉnh. 36 Hình 29: Hình ảnh robot hoàn chỉnh 39 Yahoo:thoi_chao_em_12325 Email:xuanducdhcn@gmail.com DANH SÁCH BIỂU ĐỒ Biểu đồ 1: Giá trị toạ độ tâm đối tượng môi trường tĩnh (160x120). 40 Biểu đồ 2: Giá trị toạ độ tâm đối tượng môi trường tĩnh (176x144). 40 Biểu đồ 3: Giá trị toạ độ tâm đối tượng môi trường tĩnh (320x240) 41 Biểu đồ 4: Giá trị toạ độ tâm đối tượng môi trường tĩnh (640x480). 42 Biểu đồ 5: Giá trị toạ độ tâm đối tượng môi trường động (160x120). 42 Biểu đồ 6: Giá trị toạ độ tâm đối tượng môi trường động (176x144). 43 Biểu đồ 7: Giá trị toạ độ tâm đối tượng môi trường động (320x240). 43 Biểu đồ 8: Giá trị toạ độ tâm đối tượng môi trường động (640x480). 44 Biểu đồ 9: Giá trị toạ độ tâm đối tượng môi trường động tốc độ không đổi 44 Yahoo:thoi_chao_em_12325 Email:xuanducdhcn@gmail.com DANH SÁCH BẢNG Bảng 1: Chức năng các chân của L298N 20 Bảng 2: Tóm tắt nguyên tắc điều khiển động cơ sử dụng L298N 21 Bảng 3: Tập lệnh điều khiển rô bốt 37 [...]... sử dụng vi điều khiển PIC16F877A Như vậy công việc chính của đồ án là:  Tìm hiểu thư viện OpenCV  Tìm hiểu về thuật toán CamShift  Lập trình điều khiển rô bốt di động sử dụng thuật toán CamShift  Thiết kế mạch phần cứng và lập trình điều khiển động cơ sử dụng PIC16F877A  Lập trình truyền thông nối tiếp RS232 1.4 Giới hạn của đồ án - Đồ án tập trung chủ yếu vào xây dựng phần mềm điều khiển sử dụng. .. cầu L298N - Bảng điều khiển động cơ sử dụng L298N Ta có thể thay đổi trạng thái động cơ dựa vào bảng sự thật sau (Input 1; Input 2), ở đây tôi luôn để mức ra ở chân cho phép (enable) là mức cao Bảng 2: Tóm tắt nguyên tắc điều khiển động cơ sử dụng L298N Chiều điều khiển Input 1 Input 2 Dừng lại 0 0 Quay thuận 0 1 Quay ngược 1 0 Dừng lại 1 1 Vì vậy, để điều khiển động cơ chỉ cần điều khiển giá trị xuất... vực rô bốt di động sử dụng xử lý ảnh ở Việt Nam, em thực hiện đề tài Điều khiển rô bốt di động sử dụng thư viện OpenCV Yahoo:thoi_chao_em_12325 Email:xuanducdhcn@gmail.com 1 CHƯƠNG 1 GIỚI THIỆU CHUNG 1.1 Giới thiệu chung về rô bốt Rô bốt hay người máy là một loại máy có thể thực hiện những công việc một cách tự động bằng sự điều khiển của máy tính Rô bốt là một tác nhân cơ khí, nhân tạo, thư ng là... Email:xuanducdhcn@gmail.com 21 CHƯƠNG 3 XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN Sơ đồ tổng quát của rô bốt di động Hình 11: Sơ đồ khối tổng quát của rô bốt 3.1 Thị giác máy điều khiển rô bốt di động bám đối tượng Mục tiêu của đồ án là điều khiển rô bốt bám theo một đối tượng sử dụng OpenCV Nó phải duy trì được khoảng cách nhất định giữa rô bốt và đối tương, khi đối tượng di chuyển rô bốt phải di chuyển theo dựa vào hình ảnh thu được... quan giữa thị giác máy với các lĩnh khác 2.2 Thư viện OpenCV 2.2.1 OpenCV là gì ? OpenCV viết tắt của Open Source Computer Vision Library Nó chứa hơn 500 hàm sử dụng trong thị giác máy OpenCV là một thư viện mã nguồn mở (open source) http://sourceforge.net/ Thư viện được viết bằng ngôn ngữ C và C++ có thể chạy trên các hệ điều hành Linux, Window và Mac OS X OpenCV được thiết kế để nâng cao hiệu suất... linh hoạt và đúng đắn hơn rất nhiều OpenCV là thư viện mã nguồn mở về xử lý ảnh của Intel nó đáp ứng đầy đủ các yêu cầu đó của lĩnh vực xử lý ảnh Trên thế giới lĩnh vực rô bốt di động sử dụng xử lý ảnh phát triển vô cùng mạnh mẽ và có được những bước tiến đáng kinh ngạc Ở Việt Nam lĩnh vực rô bốt di động đang rất phát triển, tuy nhiên lĩnh vực rô bốt di động sử dụng công cụ xử lý ảnh còn mới mẻ do... án tập trung chủ yếu vào xây dựng phần mềm điều khiển sử dụng thư viện OpenCV Rô bốt chỉ thực hiện việc bám đối tượng trong một số môi trường và đối tượng nhất định mà ít bị ảnh hưởng của nhiễu - Mạch phần cứng và thuật toán điều khiển động cơ chỉ thực hiện việc điều khiển hướng của rô bốt, nghĩa là không điều khiển tốc độ của rô bốt - Sử dụng lại phần cơ khí đồ án khoá trước đã xây dựng được Yahoo:thoi_chao_em_12325... nó còn được sử dụng trong nhận dạng âm thanh OpenCV còn là một chìa khóa quan trọng trong các rô bốt sử dụng thị giác máy như Stanford, Asimo Hình 5: Quá trình phát triển của OpenCV 2.2.2 Vì sao lựa chọn OpenCV? Thị trường thị giác máy đang ngày càng mở rộng và liên tục phát triển Thư viện tiêu chuẩn sẽ tạo ra các ứng dụng mới và các giải pháp xử lý dễ dàng hơn Đặc biết tối ưu khi sử dụng cấu trúc của... cấp tín hiệu điều khiển sao cho tay máy đạt được vị trí mong muốn Mục đích của cấu truc eye-in-hand là điều khiển tay máy sao cho ảnh của mục tiêu cố định hay di động luôn được duy trì ở vị trí mong muốn trên mặt phẳng ảnh thu được Trên cơ sở ảnh thu được từ camera, được số hoá và tích hợp trong vòng điều khiển phản hồi, hệ thống điều khiển các khớp của tay máy Các nghiên cứu của môi trường động bị bỏ... trường và được điều khiển một cách tự động theo những trình tự đã được lập trình trước  Có khả năng điều khiển được bằng các lệnh để có thể thay đổi tùy theo yêu cầu của người sử dụng  Có thể di chuyển quay hoặc tịnh tiến theo một hay nhiều chiều  Có sự khéo léo trong vận động Yahoo:thoi_chao_em_12325 Email:xuanducdhcn@gmail.com 2 1.2 Giới thiệu rô bốt bám đối tượng Hệ thống điều khiển rô bốt có . và góp phần vào sự phát triển lĩnh vực rô bốt di động sử dụng xử lý ảnh ở Việt Nam, em thực hiện đề tài Điều khiển rô bốt di động sử dụng thư viện OpenCV . Yahoo:thoi_chao_em_12325. dựng sử dụng vi điều khiển PIC16F877A. Như vậy công việc chính của đồ án là:  Tìm hiểu thư viện OpenCV.  Tìm hiểu về thuật toán CamShift.  Lập trình điều khiển rô bốt di động sử dụng thuật. trình điều khiển động cơ sử dụng PIC16F877A.  Lập trình truyền thông nối tiếp RS232. 1.4. Giới hạn của đồ án - Đồ án tập trung chủ yếu vào xây dựng phần mềm điều khiển sử dụng thư viện OpenCV.

Ngày đăng: 14/10/2014, 08:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan