Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 111 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
111
Dung lượng
7,54 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CƠ KHÍ CHẾ TẠO MÁY ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ THIẾT KẾ CHẾ TẠO MOBILE ROBOT LAU SÀN TRÁNH VẬT BẰNG CÔNG NGHỆ XỬ LÝ ẢNH GVHD: Th.S LÊ THANH TÙNG SVTH: TÔ TIẾN KIỆT MSSV: 10111029 SKL 0 Tp Hồ Chí Minh, tháng 1/2016 an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CƠ KHÍ CHẾ TẠO MÁY - ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ CHẾ TẠO MOBILE ROBOT LAU SÀN TRÁNH VẬT BẰNG CÔNG NGHỆ XỬ LÝ ẢNH GVHD : Th.S LÊ THANH TÙNG SVTH : TÔ TIẾN KIỆT- 10111029 Tp Hồ Chí Minh , tháng năm 2016 an LỜI CẢM ƠN Trong q trình thực khơng tránh khỏi lúc gặp khó khăn q trình nghiên cứu, em xin chân thành cảm ơn đến GVHD Thầy Lê Thanh Tùngđã giúp đỡ dẫn chúng em nhiệt tình để chúng em vượt qua đạt kết hôm Lời cảm ơn chân thành xin gửi đến thầy khoa Cơ Khí Chế Tạo Máy, người giảng dạy đào tạo cho chúng em tháng ngày qua Xin gửi lời cảm ơn đến bạn sinh viên lớp 101111 chia kiến thức, hỗ trợ kĩ thuật,… để chúng em hồn thành tốt đồ án cách thời hạn Em xin chân thành cảm ơn! i an TÓM TẮT ĐỒ ÁN Đề tài “Thiết kế mobile robot lau sàn” ứng dụng mobile robot Mobile robot ứng dụng ngày cao vào đời sống sinh hoạt, sản xuất, nhằm tiết kiệm thời gian nhân công, linh hoạt, tiện lợi, gọn nhẹ… Trên giới có nhiều loại hình robot mang tính phục vụ robot hút bụi, robot lau sàn nhà…Ở nước ta nhiều mẻ, đầu tư yếu nên phong trào chế tạo sử dụng robot phục vụ, đưa chúng vào sống cịn gặp nhiều khó khăn Đề tài giúp mở hướng việc sử dụng robot lau sàn văn phịng, cơng sở…Robot đem lại cho khách hàng cảm giác lạ thú vị, giúp cho trình robot dần thay người lĩnh vực hoạt động ngày nhanh hơn, giúp sống ngày trở nên tiện nghi Đề tài áp dụng kiến thức điều khiển động DC servo, lý thuyết truyền nhận khơng dây qua sóng Bluetooth, giao tiếp UART, cảm biến…Đặc biệt đề tài ứng dụng xử lý ảnh để điều khiển robot cách xác ii an ABSTRACTS The project "Design mobile robot floor cleaner" is based applications of mobile robots Mobile robots are increasingly applied in daily life, production, to save time workers, flexible, comfortable, lightweight In the world today there are many types of robots featuring served as vacuuming robot, robot mop the floor In our country so much new, weak investment should movements manufactured and used robots for services, bringing them to life was difficult Thread help open up a new direction in the use of robotic floor cleaner in the office, offices Robot will give customers a sense of novelty and fun, allowing the robot replacing human in the fields of activity are growing faster, longer days help life becomes more comfortable Topics apply knowledge of the DC servo motor controller, the theory of wave transmission through wireless Bluetooth, UART communication,sensor Special theme image processing applications to control a robot accurately iii an MỤC LỤC NỘI DUNG TRANG Lời cảm ơn i Tóm tắt đồ án ii Abstract iii Mục lục iv Danh mục bảng biểu vi Danh mục hình ảnh, biểu đồ vii Chƣơng TỔNG QUAN 1.1 Giới thiệu đề tài 1.1.1 Lý chọn đề tài 1.1.2 Yêu cầu giới hạn đề tài 1.1.3Đối tượng nghiên cứu 1.4 Mục tiêu nhiệm vụ nghiên 1.1.5 Phương pháp nghiên cứu 1.2 Các cơng trình nghiên cứu có liên quan 1.2.1 Các cơng trình nghiên cứu liên quan nước ngồi 1.2.2 Các cơng trình nghiên cứu nước 1.3Tổng quan Mobile Robot lau sàn sử dụng xử lý ảnh 1.3.1 Mobile robot phương pháp điều khiển 1.3.2 Mobile robot lau sàn sử dụng xử lý ảnh Chƣơng CƠ SỞ LÝ THUYẾT 11 2.1 Vi điều khiển PIC 16F887 11 2.1.1 Đặc trưng vi điều khiển PIC 16F887 11 2.1.2 Các thành phần PIC 16F887 11 2.2 Thị giác máy tính (Computer Vision) 11 2.2.1 Các lĩnh vực thị giác máy tính 11 2.2.2 Chức hệ thống thị giác máy tính 13 2.2.3 Các hệ thống thị giác máy tính 14 2.2.4 Ứng dụng giác máy tính 15 2.3 Tổng quan hệ thống xử lý ảnh 16 2.4 Lý thuyết ảnh số xử lý ảnh 18 2.4.1 Khái niệm ảnh phần tử ảnh (Pixel) 18 iv an 2.4.2 Cấu trúc file ảnh 20 2.4.3 Ảnh màu 21 2.4.4 Không gian màu (Color Space) 21 2.4.5 Tính tốn biểu đồ phân bố xác xuất (Histogram) 24 2.4.6 Chuyển đổi không gian màu 27 2.4.7 Giải thuật CAMSHIFT (Continuously Adaptive Mean Shift) 29 2.4.8 Một số hàm dùng xử lý ảnh 32 2.4.9 Kỹ thuật lọc số-làm trơn nhiễu 34 Chƣơng THIẾT KẾ PHẦN CỨNG VÀ PHẦN MỀM 36 3.1 Tổng quan mơ hình phần cứng 36 3.1.1 Mobile robot 36 3.1.2 Camera 38 3.1.3 Máy tính 39 3.1.4 Module Bluetooth 39 3.1.5 Cảm biến siêu âm SRF05 40 3.1.6Module cầu H L298 41 3.1.7Mạch điện điều khiển 42 3.1.8Động DC 43 3.1.9 Động RC Servo MG996R 44 3.1.10Nguồn động 44 3.1.11 Cơ cấu lau sàn 45 3.2 Thiết kế phần mềm 49 3.2.1 Tổng quan trình nhận dạng điều khiển máy tính 49 3.2.2 Cấu trúc lưu đồ giải thuật chương trình 49 3.2.3 Các phương pháp tìm đường robot 50 3.2.4 Thuật toán xử lý ảnh 57 3.2.5 Thuật tốn xử lý tín hiệu cảm biến 70 Chƣơng KẾT QUẢTHI CÔNG PHẦN CỨNG VÀ PHẦN MỀM 71 4.1 Kết thi công mobile robot 71 4.2 Kết thi công phần mềm 73 4.3 Kết thực nghiệm 76 4.3.1 Trường hợp khơng có vật cản 76 4.3.2 Trường hợp có vật cản 78 Chƣơng KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 82 v an 5.1 Kết luận 82 5.2 Đề nghị 82 5.3 Hướng phát triển đề tài 83 PHỤ LỤC 85 6.1 Giới thiệu PIC 16F887 85 6.1.1 Cấu trúc nhớ PIC16F887 85 6.1.2Các chức sử dụng đồ án 85 6.2 Chương trình viết code cho vi điều khiển PIC 16F887 90 6.3 Chương trình code cho xử lý ảnh 94 TÀI LIỆU THAM KHẢO 98 vi an DANH MỤC CÁC BẢNG BIỂU Bảng 2.1 : Các thành phần PIC16 Bảng 4.1 : Kết thực nghiệm không vật cản Bảng 4.2 : Kết di chuyển trung bình robot Bảng 4.3 : Kết thực nghiệm có vật cản nằm mặt sàn Bảng 4.4: Kết di chuyển trung bình robot Bảng 4.5 : Kết thực nghiệm có vật cản nằm rìa mặt sàn Bảng 4.6 : Kết di chuyển trung bình robot Bảng 6.1: Thanh ghi Port A Bảng 6.2: Thanh ghi Tris A Bảng 6.3: Quá trình hoạt động timer vii an DANH MỤC CÁC HÌNH VẼ Hình 1.1 : Chạy thử nghiệm mobile robot Hình 1.2 : Robot lau sàn nhà Hình 1.3 : Hình ảnh bên bên ngồi robot Hình 1.4 : Hình ảnh thực tế robot lau hồ bơi Hình 1.5 : Mobile robot Kinect Hình 1.6: Robot CVRL với camera Hình 1.7: Mơ quỹ đạo di chuyển Hình 1.8 : Mobile Robot bám đối tượng di động SRV1 Hình 1.9 : Một dạng robot tay máy Hình 1.10: Điều khiển robot remote Hình 1.11 : Tổng quan hệ thống Robot lau sàn Hình 2.1 : Các lĩnh vực liên quan đến Computer Vision Hình 2.2 : Robot ARV quân đội Hình 2.3 : Các bước xử lý ảnh Hình 2.4 : Ảnh tương tự ảnh số Hình 2.5 : Biểu diễn ảnh số không gian 2D Hình 2.6 : Phần tử ảnh Hình 2.7 : Biểu diễn ảnh với độ phân giải khác Hình 2.8 : Mảng hai chiều file ảnh Hình 2.9 : Các kiểu khơng gian màu Hình 2.10 : Khơng gian màu RGB Hình 2.11 : Khơng gian màu HSV Hình 2.12 : Biểu đồ Histogram biểu thị ánh sáng tăng dần từ trái qua phải Hình 2.13 : Histogram ảnh sáng Hình 2.14 : Histogram ảnh tối Hình 2.15 : Bốn biểu đồ ánh sáng Hình 2.16 : Ảnh gốc sau Histogram Hình 2.17 : (a) Ảnh màu RGB ; (b) Ảnh màu HSV ; (c) Khơng gian HSV Hình 2.18 : (a) Ảnh xám ; (b), (c) Ảnh nhị phân Hình 2.19 : Kết tìm kiếm với giải thuật CAMSHIFT Hình 2.20 : Tìm pixel trung vị cửa sổ lọc Hình 3.1: Tở ng quan mô hình phầ n cứng mobile robot tránh vâ ̣t cản Hình 3.2: Mơ hiǹ h Hình 3.3: Hình chiếu đứng Hình 3.4: Hình chiếu viii an Bảng 6.1 : Thanh ghi Port A Bảng 6.2: Thanh ghi Tris A b Chức TIMER , COUNTER Timer khối hoạt động độc lập với CPU, lập trình sử dụng timer làm giảm thời gian xử lý, giúp vi điều khiển hoạt động nhanh Ứng dụng chủ yếu timer định thời khoảng thời gian ngắn, đếm số lượng xung clock bên cho ứng dụng đếm sản phẩm, đọc số xung encoder Pic 16F887 có tích hợp timer: timer ( bit ), timer (16 bit ), timer (8 bit ) Nguyên tắc hoạt động timer: Nguyên tắc hoạt động chung timer tăng giá trị ghi đếm lên nhận xung clock (đã qua chia ) Khi ghi đếm đến giá trị lớn nhất, có xung clock tiếp tục tác động timer xảy kiện tràn timer (overflow), kiện xảy ngắt Ví dụ: Thanh ghi TMR0 ghi bit có chứa giá trị đếm TIMER 0: 85 an - Bảng 6.3: Quá trình hoạt động timer Timer Thanh ghi bit timer/counter (TMR0) Bộ chia prescaler bit (dùng chung với Watch dog timer) Hoạt động với xung clock bên bên Ngắt tràn timer Hình 6.2: Sơ đồ khối TIMER Timer - Timer có hai ghi chứa giá trị đếm, đếm lên đến 65535 xảy kiện tràn timer, timer thích hợp cho việc đếm xung encoder tốc độ cao, giống timer 0, timer hoạt động với hai chế độ: chế độ định thời chế độ đếm counter 86 an Hình 6.3: Sơ đồ khối TIMER Timer - Khác với timer timer 1, timer hoạt động chế độ định thời, timer Tuy nhiên timer có hai chia giá trị đặt thời gian định thời linh hoạt hơn, sai số tính tốn Hình 6.4: Sơ đồ khối TIMER 87 an c Chức PWM Nói đến PWM ta phải nói đến hai đặc tính là: tần số (do timer tạo ra) độ rộng xung (do ghi CCPRxL:CCPxCON tạo ra) Sơ đồ tạo xung PWM kết hợp khối CCPx với timer 2: Hình 6.5: Sơ đồ điều chế PWM Nguyên tắc hoạt động chế độ PWM Thanh ghi đếm timer TMR2 đếm đến giá trị CCPRxL :CCP Xcon khối CCPx trạng thái logic chân CCPx bị đảo, giá trị ghi TMR2 đến giá trị PR2 hồn tất chu kỳ tạo xung PWM 88 an Hình 6.6: Sơ đồ khối chế độ PWM 6.2 Chƣơng trình viết code cho vi điều khiển PIC 16F887 char uart_rd; int dem; int dem2; int servo0=32; int servo1=50; int servo2=21; unsigned int time=0; int distance=0; int huong=0; void dung(); void main() { ANSEL = 0; ANSELH = 0; TRISC3_bit=0; TRISC4_bit=0; RC3_bit=RC4_bit=0; 89 an PWM1_Init(1500); PWM2_Init(1500); PWM1_Set_Duty(0); PWM2_Set_Duty(0); PWM1_Start(); PWM2_Start(); UART1_Init(9600); delay_ms(100); OPTION_REG.T0CS=0; OPTION_REG.PSA=0; OPTION_REG.PS2=0; OPTION_REG.PS1=0; OPTION_REG.PS0=0; TMR0=145; INTCON.TMR0IF=0; INTCON.TMR0IE=1; INTCON.GIE=1; TRISC0_bit=0; RC0_bit=0; TRISB2_bit = 0; RB2_bit = 0; TRISB3_bit = 0; RB3_bit = 0; T1CON.TMR1CS = 0; T1CON.T1CKPS0 = 0; T1CON.T1CKPS1 = 1; TMR1H = 0; TMR1L = 0; TRISB1_bit = 0; RB1_bit = 0; TRISB0_bit = 1; RB0_bit = 0; OPTION_REG.INTEDG =1; INTCON.INTE=1; while(1){ uart_rd = UART1_Read(); 90 an if(uart_rd==119){ PWM1_Set_Duty(255); PWM2_Set_Duty(219); RC3_bit=0; RC4_bit=0; servo0=32; servo1=49; servo2=22; } if(uart_rd==97){ PWM1_Set_Duty(127); PWM2_Set_Duty(127); RC3_bit=0; RC4_bit=1; servo0=15; servo1=50; servo2=21; } if(uart_rd==100){ PWM1_Set_Duty(127); PWM2_Set_Duty(127); RC3_bit=1; RC4_bit=0; servo0=49; servo1=50; servo2=21; } if(uart_rd==115){ PWM1_Set_Duty(0); PWM2_Set_Duty(35); RC3_bit=1; RC4_bit=1; servo0=30; servo1=50; servo2=21; } 91 an if(uart_rd==101){ PWM1_Set_Duty(0); PWM2_Set_Duty(0); RC3_bit=0; RC4_bit=0; servo0=32; servo1=50; servo2=21; } if((distance>2)&&(distance 0) { int numObjects = hierarchy.size(); if(numObjects= 0; index = hierarchy[index][0]) { cv::Moments moment = moments((cv::Mat)contours[index]); double area = moment.m00; if(area>MIN_OBJECT_AREA && arearefArea) { x = (unsigned int) (moment.m10/area); y = (unsigned int) (moment.m01/area); objectFound = true; refArea = area; for( int i = 0; i< contours.size(); i++ ) { Double a=contourArea(contours[i],false); if(a>largest_area){ largest_area=a; largest_contour_index=i; bounding_rect=cv::boundingRect(contours[i]); } } 96 an rong=bounding_rect.height/2; dai=bounding_rect.width/2; } else objectFound = false; } if(objectFound ==true) { putText(cameraFeed,"Phat Hien Doi Tuong",cv::Point(0,45),2,1,cv::Scalar(0,200,0),2); line(cameraFeed,cv::Point(x-dai,yrong),cv::Point(x+dai,y-rong),cv::Scalar(0,255,0),2); line(cameraFeed,cv::Point(x+dai,yrong),cv::Point(x+dai,y+rong),cv::Scalar(0,255,0),2); line(cameraFeed,cv::Point(x+dai,y+rong),cv::Point(xdai,y+rong),cv::Scalar(0,255,0),2); line(cameraFeed,cv::Point(xdai,y+rong),cv::Point(x-dai,y-rong),cv::Scalar(0,255,0),2); } } else putText(cameraFeed,"tin hieu nhieu",cv::Point(0,45),1,2,cv::Scalar(0,200,0),2); } } 97 an TÀI LIỆU THAM KHẢO [1] http://www.wa4dsy.com/robot/suckmaster2-robot [2] http://www.gizmag.com/mint-automatic-floor-cleaner-release/14872/ [3] http://doantotnghiep.vn/do-an-tot-nghiep-co-dien-tu-thiet-ke-robot-lausan.html [4] http://nld.com.vn/khoa-hoc/robot-lam-sach-ho-boi20101117101410963.htm [5] http://docs.4share.vn/docs/29722/Robot_tu_hanh_tranh_vat_can_su_dung_ thiet_bi_Kinect.html [6] http://www.ics.forth.gr/cvrl/index_main.php?l=e&c=32 [7] http://ww1.microchip.com/downloads/en/DeviceDoc/41291G.pdf [8] payitforward.edu.vn [9] http://en.wikipedia.org/wiki/Computer_vision [10] http://docs.opencv.org/ [11] http://www.robotreviews.com/reviews/surveyor-srv-1-blackfin-robot-review 98 an S an K L 0 ... PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CƠ KHÍ CHẾ TẠO MÁY - ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ CHẾ TẠO MOBILE ROBOT LAU SÀN TRÁNH VẬT BẰNG CÔNG NGHỆ XỬ LÝ ẢNH GVHD : Th.S LÊ THANH TÙNG SVTH : TƠ... hướng tầm quan trọng công nghệ Robot ứng dụng xử lý ảnh Việt Nam chúng ta, nhóm sinh viên định chọn thực đề tài ? ?Thiết kế chế tạo Mobile Robot lau sàn? ??ng dụng cơng nghệ xử lý ảnh? ?? với mong muốn... 1.3Tổng quan Mobile Robot lau sàn sử dụng xử lý ảnh 1.3.1 Mobile robot phương pháp điều khiển 1.3.2 Mobile robot lau sàn sử dụng xử lý ảnh Chƣơng CƠ SỞ LÝ THUYẾT