Luận văn Xe tự động di chuyển dựa vào vật mốc dùng xử lý ảnh (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Xe tự động di chuyển dựa vào vật mốc dùng xử lý ảnh (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
luan_van_xe_tu_dong_di_chuyen_dua_vao_vat_moc_dung_xu_ly_anh.pdf
Nội dung text: Luận văn Xe tự động di chuyển dựa vào vật mốc dùng xử lý ảnh (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG XE TỰ ĐỘNG DI CHUYỂN DỰA VÀO VẬT MỐC DÙNG XỬ LÝ ẢNH GVHD: TS.NGUYỄN THANH HẢI SVTH: PHẠM GIA TRÍ MSSV: 12141237 SVTH: HUỲNH TRỌNG TRƯỜNG MSSV: 12141247 S K L 0 0 4 3 4 0 Tp. Hồ Chí Minh, tháng 07/2016
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ - CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: XE TỰ ĐỘNG DI CHUYỂN DỰA VÀO VẬT MỐC DÙNG XỬ LÝ ẢNH GVHD : TS. Nguyễn Thanh Hải SVTH : Phạm Gia Trí MSSV : 12141237 SVTH : Huỳnh Trọng Trường MSSV : 12141247 Tp. Hồ Chí Minh – 7/2016
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ - CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: XE TỰ ĐỘNG DI CHUYỂN DỰA VÀO VẬT MỐC DÙNG XỬ LÝ ẢNH GVHD : TS. Nguyễn Thanh Hải SVTH : Phạm Gia Trí MSSV : 12141237 SVTH : Huỳnh Trọng Trường MSSV : 12141247 Tp. Hồ Chí Minh – 7/2016
- TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Tp. HCM, ngày 01 tháng 04 năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Phạm Gia Trí MSSV: 12141237 Huỳnh Trọng Trường MSSV: 12141247 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 52510302 Hệ đào tạo: Đại học chính quy Mã hệ: 1 Khóa: 2012 Lớp: 12141DT1C I. TÊN ĐỀ TÀI: XE TỰ ĐỘNG DI CHUYỂN DỰA VÀO VẬT MỐC DÙNG XỬ LÝ ẢNH II. NHIỆM VỤ 1. Các số liệu ban đầu: - Đọc tài liệu trước đó. - Dựa vào những mô hình robot trước đó. 2. Nội dung thực hiện: - Gia công khung xe. - Thiết kế mạch công suất. - Kết nối toàn bộ hệ thống camera, máy tính, Arduino, mạch công suất. - Tìm hiểu hệ điều hành ROS. - Tìm hiểu thuật toán PID, thuật toán hướng rẽ. - Lập trình Arduino điều khiển động cơ dùng PID. - Tìm hiểu lý thuyết xử lý ảnh, thư viện OpenCV. - Tìm hiểu, viết và chạy thử nghiệm chương trình dò line dùng xử lý ảnh. - Tìm hiểu, viết và chạy thử nghiệm chương trình nhận dạng vật mốc. - Kết hợp dò line và nhận dạng vật mốc gởi tín hiệu điều khiển cho Arduino định hướng đi của xe. - Chạy thử nghiệm, cân chỉnh hệ thống. - Viết báo cáo luận văn. - Báo cáo đề tài tốt nghiệp. ii
- III. NGÀY GIAO NHIỆM VỤ: 01/04/2016 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 07/07/2016 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS. Nguyễn Thanh Hải CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP iii
- TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Tp. HCM, ngày 01 tháng 04 năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Phạm Gia Trí Lớp: 12141DT1C MSSV: 12141237 Họ tên sinh viên 2: Huỳnh Trọng Trường Lớp: 12141DT1C MSSV: 12141247 Tên đề tài: XE TỰ ĐỘNG DI CHUYỂN DỰA VÀO VẬT MỐC DÙNG XỬ LÝ ẢNH Xác nhận Tuần/ngày Nội dung GVHD Tuần 1 Gặp giáo viên hướng dẫn, chọn đề tài. Tuần 2 Cài đặt chương trình và công cụ để sử dụng cho đề tài (Ubuntu 14.04, ROS Indigo). Tìm hiểu về ROS phần cơ bản (filesystem, stack, package, service ). Tuần 3 Tìm hiểu về ROS phần nâng cao (Computation Graph, Node, Message, Topic, Bags ). Tuần 4 Viết một số chương trình ví dụ sử dụng ROS để làm quen hơn với công cụ ROS. Tuần 5 Tìm hiểu về encoder, pwm, thuật toán PID. Nghiên cứu thuật toán điều khiển hướng đi robot. Nghiên cứu, viết chương trình Arduino điều khiển động cơ. Tuần 6 Tìm hiểu giao tiếp giữa các node trên máy tính với node trên Arduino. Cài đặt gói hỗ trợ driver cho camera, chụp ảnh vật mẫu. Tuần 7, 8 Nghiên cứu về thuật toán tìm điểm đặc trưng SIFT. Viết chương trình xử lý ảnh vật mẫu. Tuần 9 Tìm hiểu phương pháp xử lý ảnh dò line. Viết chương trình xử lý ảnh dò line. Tuần 10 Kết hợp các chương trình. Chạy thử mô hình robot. Tuần 11 Chỉnh sửa và hoàn thiện chương trình. Viết luận văn. Tuần 12 Viết luận văn. Tuần 13 Chỉnh sửa và hoàn thành luận văn. GV HƯỚNG DẪN (Ký và ghi rõ họ và tên) iv
- LỜI CAM ĐOAN Đề tài này là do chúng tôi tự thực hiện dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó. Người thực hiện đề tài Phạm Gia Trí Huỳnh Trọng Trường v
- LỜI CẢM ƠN Chúng em xin gởi lời cảm ơn sâu sắc đến Thầy Nguyễn Thanh Hải - Trưởng bộ môn điện tử công nghiệp, cùng lời cảm ơn sâu sắc đến thầy Nguyễn Tấn Như thuộc bộ môn điện tử công nghiệp đã trực tiếp hướng dẫn và tận tình giúp đỡ tạo điều kiện để hoàn thành tốt đề tài. Chúng em xin gởi lời chân thành cảm ơn các thầy cô trong Khoa Điện-Điện Tử đã tạo những điều kiện tốt nhất cho chúng em hoàn thành đề tài. Chúng em cũng gởi lời đồng cảm ơn đến các bạn lớp 12141DT1 đã chia sẻ trao đổi kiến thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài. Cuối cùng, chúng con xin gởi lời cảm ơn đến cha mẹ, những người đã cho chúng con cuộc sống này để chúng con được ăn học và phát triển như ngày hôm nay. Xin chân thành cảm ơn! Người thực hiện đề tài Phạm Gia Trí Huỳnh Trọng Trường vi
- MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iv Cam đoan v Lời cảm ơn vi Mục lục vii Liệt kê hình vẽ ix Liệt kê bảng vẽ xii Tóm tắt xiii CHƯƠNG 1. TỔNG QUAN 1 1.1 Đặt vấn đề 1 1.2 Mục tiêu 2 1.3 Nội dung nghiên cứu 2 1.4 Giới hạn 3 1.5 Bố cục 3 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 4 2.1 Tổng quan về Robot 4 2.2 Tổng quan về ROS (Robot Operating System) 5 2.2.1 Giới thiệu về hệ điều hành ROS 5 2.2.2 Mô hình ROS 6 2.3 Giới thiệu về xử lý ảnh 10 2.3.1 Hệ thống xử lý ảnh 10 2.3.2 Những vấn đề cơ bản của xử lý ảnh 11 2.3.3 Tổng quan về thư viện OpenCV 14 2.3.4 Phép biến đổi đặc trưng bất biến tỉ lệ – SIFT trong xử lý ảnh 17 2.4 Thuật toán PID điều khiển tốc độ động cơ 24 2.4.1 Điều khiển bằng khâu vi tích phân tỉ lệ PID 24 2.4.2 Đặc tính bộ điều khiển P, I, D 25 2.5 Thuật toán điều khiển hướng đi của robot 27 CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ 30 vii
- 3.1 Giới thiệu 30 3.2 Thiết kế sơ đồ khối 30 3.2.1 Khối nguồn 30 3.2.2 Khối camera 32 3.2.3 Khối PC và xử lý dữ liệu ảnh 32 3.2.4 Khối xử lý trung tâm 34 3.2.5 Khối chấp hành 36 3.3 Sơ đồ nguyên lý mạch điện hệ thống 43 CHƯƠNG 4. THI CÔNG HỆ THỐNG 44 4.1 Thi công phần mạch điện 44 4.2 Thi công phần khung robot 45 4.2.1 Khung robot 45 4.2.2 Các bộ phận bằng nhựa 46 4.2.3 Linh kiện cơ khí 47 4.2.4 Bố trí các bộ phận của robot 48 4.3 Lập trình hệ thống 48 4.3.1 Lưu đồ giải thuật 48 4.3.2 Phần mềm lập trình Arduino 61 4.4 Hướng dẫn vận hành mô hình robot 68 CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 72 5.1 Kết quả 72 5.1.1 Mô hình Robot 72 5.1.2 Hoạt động của Robot 72 5.2 Nhận xét, đánh giá 74 CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 77 6.1 Kết luận 77 6.2 Hướng phát triển 77 TÀI LIỆU THAM KHẢO 78 PHỤ LỤC 80 viii
- LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1: Ứng dụng hệ điều hành ROS 5 Hình 2.2: Tầng ROS Filesystem 6 Hình 2.3: Tầng ROS Computation Graph 7 Hình 2.4: Mô tả phương thức hoạt động của service 9 Hình 2.5: Sơ đồ khối hệ thống xử lý ảnh 10 Hình 2.6: Minh họa không gian màu RGB 11 Hình 2.7: Giá trị mức xám của điểm ảnh 13 Hình 2.8: Ảnh xám và ảnh nhị phân 14 Hình 2.9: Xây dựng không gian tỷ lệ 20 Hình 2.10: Quá trình lựa chọn các điểm đặc trưng 21 Hình 2.11: Bộ mô tả điểm đặc trưng 23 Hình 2.12: Sơ đồ điều khiển sử dụng bộ điều khiển PID 24 Hình 2.13: Ảnh hưởng KP tới đáp ứng hệ thống 25 Hình 2.14: Ảnh hưởng KI tới đáp ứng hệ thống 25 Hình 2.15: Ảnh hưởng KD tới đáp ứng hệ thống 26 Hình 2.16: Mô hình điều khiển robot bằng hiệu vận tốc 27 Hình 3.1: Sơ đồ khối toàn bộ hệ thống 30 Hình 3.2: Nguồn Acquy RL1212 cấp cho khối chấp hành 31 Hình 3.3: Webcam Logitech C270 31 Hình 3.4: Xác định được vùng line 33 Hình 3.5: Hình ảnh vật mẫu thu về được từ camera 33 Hình 3.6: Khối xử lý trung tâm sử dụng Kit Arduino loại Due 34 Hình 3.7: Sơ đồ chân Kit Arduino loại Due 34 Hình 3.8: Động cơ DC giảm tốc servo Faulhaber 12V 36 Hình 3.9: Điều chỉnh độ rộng xung PWM 37 Hình 3.10: Optical encoder 38 Hình 3.11: Hai kênh A và B lệch pha trong encoder 39 Hình 3.12: Module L298N điều khiển động cơ 40 Hình 3.13: Sơ đồ nguyên lý module L298N 41 Hình 3.14: Sơ đồ nguyên lý mạch điện của hệ thống 43 ix
- Hình 4.1: Sơ đồ mạch điện toàn hệ thống 44 Hình 4.2: Bản vẽ chi tiết khung robot 45 Hình 4.3: Các bộ phận bằng nhựa của robot 46 Hình 4.4: Các bộ phận cơ khí của robot 47 Hình 4.5: Vị trí các bộ phận bên trong robot 48 Hình 4.6: Sơ đồ khối hoạt động của hệ thống robot 48 Hình 4.7: Sơ đồ khối truyền nhận dữ liệu trên ROS 49 Hình 4.8: Lưu đồ chương trình chính trên máy tính 50 Hình 4.9: Lưu đồ chương trình con dò line dùng xử lý ảnh 51 Hình 4.10: Sơ đồ khối xử lý ảnh dò line 52 Hình 4.11: Vùng xác định line 52 Hình 4.12: Nhị phân hóa ngược vùng cần quan tâm 53 Hình 4.13: Đường bao quanh các đối tượng 53 Hình 4.14: Vùng line được xác định 54 Hình 4.15: Lưu đồ chương trình con nhận dạng vật mốc 54 Hình 4.16: Sơ đồ khối xử lý ảnh vật mốc 55 Hình 4.17: Ảnh 3 vật mẫu thu thập 55 Hình 4.18: Ảnh thu nhận từ camera 56 Hình 4.19: Điểm đặc trưng 3 vật mẫu 57 Hình 4.20: Điểm đặc trưng ảnh thu nhận được 57 Hình 4.21: Vật mẫu trong hình ảnh thu nhận từ camera 58 Hình 4.22: Lưu đồ chương trình chính trên Arduino 59 Hình 4.23: Lưu đồ chương trình ngắt timer 3, timer 4 60 Hình 4.24: Lưu đồ chương trình ngắt timer 5 61 Hình 4.25: Lưu đồ chương trình con xử lý di chuyển cho robot 62 Hình 4.26: Di chuyển đến thư mục Downloads 63 Hình 4.27: Giải nén kho lưu trữ tải về 63 Hình 4.28: Di chuyển thư mục kết quả /opt/ 63 Hình 4.29: Chạy chmod install .sh 64 Hình 4.30: Arduino IDE 64 Hình 4.31: Arduino Toolbar 64 Hình 4.32: Arduino IDE Menu 64 Hình 4.33: File menu 65 x
- Hình 4.34: Examples 65 Hình 4.35: Edit menu 66 Hình 4.36: Sketch menu 66 Hình 4.37: Tool menu 67 Hình 4.38: Chọn Board 67 Hình 4.39: Cổng usb camera bên trái và Arduino bên phải 69 Hình 4.40: Quá trình nạp code xuống Kit Arduino 69 Hình 4.41: Chạy roscore 70 Hình 4.42: Chạy rosrun ObjectLocationUsing2DFeature detects_end 70 Hình 4.43: Chạy rosrun rosserial_python serial_node.py /dev/ttACM0 71 Hình 4.44: Công tắc để cấp nguồn cho hệ thống 71 Hình 5.1: Mô hình robot sau khi lắp ráp hoàn chỉnh 72 Hình 5.2: Robot nhận dạng một đường line 73 Hình 5.3: Robot nhận dạng ba đường line tại ngã tư 73 Hình 5.4: Robot nhận dạng vật mẫu dựa trên thuật toán SIFT 74 Hình 5.5: Nhận thấy đường line trong điều kiện ánh sáng yếu 75 Hình 5.6: Nhận thấy vật mốc nhiều góc độ 75 Hình 5.7: Số khung hình camera thu nhận trong 1s 76 xi
- LIỆT KÊ BẢNG Bảng Trang Bảng 3.1: Thông số kỹ thuật của nguồn acquy RL1212 31 Bảng 3.2: Thông số kỹ thuật webcam Logitech 32 Bảng 3.3: Thông số PC 32 Bảng 3.4: Thông số kỹ thuật kit Arduino Due 35 Bảng 3.5: Thông số kỹ thuật động cơ giảm tốc servo Faulhaber 12V 40 Bảng 3.6: Thông số kỹ thuật module L298N 41 Bảng 3.7: Chức năng các chân điều khiển module L298N 41 xii
- TÓM TẮT Ngày nay, trong thời kì Công nghiệp hóa và Hiện đại hóa đất nước, ngành công nghiệp robot phát triển rất nhanh chóng và mạnh mẽ, robot dần thay thế con người làm việc trong các môi trường độc hại và nặng nhọc cũng như những công việc đòi hỏi sự chính xác cao. Trong đó robot di động (xe tự hành) đang được chú trọng phát triển bởi tính linh hoạt, thông minh và ứng dụng của nó. Công nghệ robotic phát triển đòi hỏi không những các cơ cấu chân tay mà còn những cơ cấu cảm nhận, đặc biệt xử lý ảnh được coi như một công nghệ tiên tiến hàng đầu. Luận văn này đề cập đến vấn đề xây dựng mô hình xe tự động di chuyển dùng công nghệ xử lý ảnh để dò line và nhận dạng vật mốc. Luận văn tìm hiểu cơ sở lý thuyết của xử lý ảnh để thực hiện việc phát hiện và định vị đưòng line. Bên cạnh đó là tập trung nghiên cứu vấn đề phép biến đổi đặc trưng bất biến tỷ lệ – SIFT cho quá trình thực hiện nhận dạng vật mốc quyết định hướng đi cho robot. Đề tài ứng dụng hệ điều hành ROS (Robot Operation System) giúp cho robot hoạt động linh hoạt và tối ưu. Mô hình bao gồm Camera Logitech, khung robot, máy tính, phần mềm Ubuntu và thư viện xử lý ảnh OpenCV. Với những vấn đề nghiên cứu và tiến hành ở trên, đề tài đã thực hiện được xe có khả năng di chuyển theo line và nhận dạng vật mốc. xiii
- CHƯƠNG 1. TỔNG QUAN Chương 1. TỔNG QUAN 1.1. ĐẶT VẤN ĐỀ Ngày nay, điều khiển tự động đã trở thành một nhu cầu không thể thiếu được của con người dưới sự xuất hiện của các học thuyết và các ứng dụng cụ thể trong đời sống hằng ngày. Con người đang cố gắng sáng tạo ra các con robot có khả năng làm việc thay cho con người, chúng ta thường bắt gặp robot trong các dây chuyền công nghiệp sản xuất tự động hay robot giúp việc trong gia đình. Trong đó, xe tự hành (robot di động) là một lĩnh vực được quan tâm hiện nay. Được định nghĩa là một loại xe tự động di chuyển dưới sự điều khiển tự động trong nhiều môi trường khác nhau: đất, nước, không khí để thực hiện các nhiệm vụ được giao. Tính tự động hóa có nghĩa là robot phải dựa vào chính khả năng của nó qua những dữ liệu vận hành có ích từ bộ phận cảm biến, camera và tự nó đưa ra quyết định. Xe tự hành (robot di động) là một hướng phát triển rất tốt trong tương lai cùng với các ứng dụng truyền thống như robot trong công nghiệp, y tế, một số lĩnh vực khác sẽ hứa hẹn đáp ứng một nhu cầu lớn của xã hội. Vì thế, nhóm chọn đề tài “Xe tự động di chuyển dựa vào vật mốc dùng xử lý ảnh” để nghiên cứu. Hiện nay, đã có một số đề tài liên quan đến nội dung nhóm nghiên cứu. Chẳng hạn, đề tài “Robot Tự Hành Tránh Vật Cản Sử Dụng Thiết Bị Kinect” [1]: chương trình sẽ xử lý ảnh khôi phục được không gian phía trước robot dưới dạng 3D, cung cấp đầy đủ thông tin về môi trường cho robot. Hoàn thành kế hoạch di chuyển đến đích có vật cản với sai số chấp nhận được ở môi trường trong nhà. Cũng như, đề tài “Triển Khai Thuật Toán Định Hướng Trên Ros Cho Robot Tự Hành Trong Nhà” [2]: đã ứng dụng được giải thuật điều khiển định hướng trên nền hệ điều hành ROS [3][4]. Ứng dụng camera Kinect trong việc quét bản đồ và phát hiện vật cản giúp robot có thể xử lý và hoạch định đường đi trong môi trường trong nhà. Hay là, nội dung nghiên cứu “Ứng Dụng OpenCV Và Kinect Hỗ Trợ Dò Đường Đi Cho Robot” [5]: thực hiện được việc xử lý ảnh dùng thư viện OpenCV và thuật toán SIFT (Scale - Invariant Feature Transform) [6][7][8]định vị đối tượng trong khung hình điều khiển hướng đi của robot và bắt lấy đối tượng khi khoảng cách phù hợp cánh tay robot. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 1
- CHƯƠNG 1. TỔNG QUAN Kế thừa một số tính năng từ 3 đề tài trên và lấy nó làm tài liệu nghiên cứu, nhóm tiến hành thực hiện đề tài với một số chức năng nổi bật: robot dò line dựa vào quá trình xử lý ảnh sử dụng thư viện OpenCV, sử dụng SIFT là thuật toán hiệu quả trong nhận dạng đối tượng vật mốc kể cả các khung hình có bị mờ do di chuyển của robot hay do ảnh hưởng của ánh sáng để định hướng đi của robot. Đề tài sử dụng camera Logitech thay vì Kinect giao tiếp máy tính để mở rộng tầm quan sát giúp cho việc dò line và nhận dạng đối tượng dễ dàng hơn. Việc xử lý dữ liệu được thực hiện trên hệ điều hành ROS cũng sẽ giảm đi một lượng đáng kể các công việc lập trình, thiết lập hệ thống. 1.2. MỤC TIÊU Đề tài thực hiện thiết kế và thi công mô hình xe tự động di chuyển chạy theo đường line, kết hợp nhận dạng vật mốc để định hướng đi của xe. Trong đó, quá trình xử lý dữ liệu trên máy tính đều dựa vào xử lý ảnh và nhận tín hiệu điều khiển di chuyển của xe bằng Kit Arduino Due. 1.3. NỘI DUNG NGHIÊN CỨU Trong quá trình nghiên cứu, nhóm sẽ thực hiện những nội dung sau: - Gia công khung xe. - Thiết kế mạch công suất. - Kết nối toàn bộ hệ thống camera, máy tính, Arduino, mạch công suất. - Tìm hiểu hệ điều hành ROS. - Tìm hiểu thuật toán PID, thuật toán hướng rẽ. - Lập trình Arduino điều khiển động cơ dùng PID. - Tìm hiểu lý thuyết xử lý ảnh, thư viện OpenCV. - Tìm hiểu, viết và chạy thử nghiệm chương trình dò line dùng xử lý ảnh. - Tìm hiểu, viết và chạy thử nghiệm chương trình nhận dạng vật mốc. - Kết hợp dò line và nhận dạng vật mốc gởi tín hiệu điều khiển cho Arduino định hướng đi của xe. - Chạy thử nghiệm, cân chỉnh hệ thống. - Viết báo cáo luận văn. - Báo cáo đề tài tốt nghiệp. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2
- CHƯƠNG 1. TỔNG QUAN 1.4. GIỚI HẠN - Khung xe có kích thước dài 39cm, rộng 36cm, cao 38cm. - Sử dụng 2 module Driver L298 công suất 20W, 2 động cơ DC servo giảm tốc 12VDC công suất 17W điều khiển hệ thống 2 bánh xe. - Hai bánh xe robot đường kính 0.95cm. - Camera Logitech C270 kết nối máy tính đặt trên xe thực hiện xử lý ảnh. - Sử dụng Kit Arduino Due điều khiển động cơ giảm tốc. - Mô hình chỉ sử dụng trong địa hình tương đối bằng phẳng, môi trường trong nhà để giảm ảnh hưởng của ánh sáng đến quá trình nhận dạng vật mốc và dò line, bề mặt dán line cần sự chênh lệch rõ ràng mức xám của đường line và vùng xung quanh, kết hợp dò line và nhận dạng vật mốc làm cho tầm quan sát của camera hạn chế nên cần đặt vật mốc ở khoảng cách phù hợp. 1.5. BỐ CỤC Chương 1: Tổng Quan Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án. Chương 2: Cơ Sở Lý Thuyết Chương này chúng ta tìm hiểu tổng quan về Robot Operating System các thuật toán điều khiển, xử lý ảnh. Chương 3: Tính Toán Và Thiết Kế Chương này giới thiệu các khối xử lý cần thiết và sơ đồ nguyên lý. Chương 4: Thi Công Hệ Thống Chương này tập trung thi công mô hình phần cứng bao gồm phần thi công mạch điện và thi công khung robot cũng như các giải thuật dò line, nhận dạng vật mốc cho máy tính, điều khiển động cơ cho Arduino. Chương 5: Kết Quả_Nhận Xét_Đánh Giá Trình bày kết quả chạy thực tế, đánh giá kết quả thực nghiệm. Chương 6: Kết Luận Và Hướng Phát Triển Trình bày những kết quả đạt được trong luận văn, các mặt hạn chế và hướng phát triển mở rộng ứng dụng của đề tài trong thực tế. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2. CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ ROBOT [9] Cuộc cách mạng công nghiệp là những bước phát triển vượt bậc của con người, cuộc cách mạng cho phép ứng dụng rộng rãi các robot trong nhiều lĩnh vực của cuộc sống. Yếu tố này phù hợp với nhận thức về vấn đề an toàn trong công việc, robot thay thế cho con người trong sản xuất, trong lao động, trong các nhà máy, điều đó đã góp phần vào sự xuất hiện nhu cầu sử dụng các robot. Ngày nay, trong đời sống có rất nhiều công việc do tính chất công việc nặng nhọc, môi trường làm việc khó khăn độc hại rất nguy hiểm và tác hại trực tiếp đối với con người. Một số nơi địa hình quá khó khăn để di chuyển (vùng rừng núi, sa mạc, vùng có lở núi, động đất, vùng bị cháy rừng, vùng nhiễm phóng xạ, khu vực bị khủng bố). Ở những nơi này con người rất cần tới sự hỗ trợ của robot. Với mô hình robot đa năng có sự tuỳ biến cao, dễ lắp đặt và vận chuyển, được thiết kế và lập trình từ máy tính cá nhân, robot có thể làm việc độc lập theo chu trình được cài đặt sẵn hoặc theo sự điều khiển từ xa qua vô tuyến từ người điều khiển, tính chất và công việc cụ thể được thay đổi dễ dàng, khả năng kết nối với các thiết bị chuyên dụng linh hoạt. Robot có kích thước tương đối và làm việc được trong nhiều môi trường khắc nghiệt về thời tiết, khí hậu độc hại và nguy hiểm đối với con người. Ngoài ra, robot có thể được thiết kế cho phù hợp với các công việc mang tính chất tự động hoá cao, có thể ứng dụng vào các dây chuyền sản xuất tự động ở các nhà máy, xí nghiệp, các khu công nghiệp, khu chế xuất. Hiện nay, hầu hết các thiết bị robot và dây chuyền tự động hoá được sử dụng trong các ngành công nghiệp sản xuất và chế biến đều được nhập từ nước ngoài rất đắt tiền, trong khi nhu cầu ở nước ta đang rất cao và trong nước có khả năng chế tạo sản xuất để phù hợp với điều kiện làm việc ở Việt Nam. Lĩnh vực thiết kế, chế tạo robot và các thiết bị điều khiển tự động rất mới mẻ và có tiềm năng rộng lớn không những ở trong nước mà còn cả trên thế giới. Việc thâm nhập, nghiên cứu và chế tạo một số mô hình điều khiển tự động như robot thông minh, robot thăm dò, robot sản xuất là một hướng cần thiết nhằm rút ngắn khoảng cách giữa khoa học công nghệ trong nước và trên thế giới trong lĩnh vực này. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 2.2 TỔNG QUAN VỀ ROS (ROBOT OPERATING SYSTEM) [10] 2.2.1 Giới thiệu về hệ điều hành ROS Hình 2.1 Ứng dụng hệ điều hành ROS ROS là một hệ điều hành mã nguồn mở, dùng cho các ứng dụng robot như hình 2.1. Về cơ bản, ROS có những đặc tính thiết yếu của một hệ điều hành như khả năng thực hiện các tác vụ (task) song song, giao tiếp, trao đổi dữ liệu với nhau giữa các tác vụ, quản lý dữ liệu. Hơn thế nữa, để ROS có thể ứng dụng trong lĩnh vực robotics, ROS còn được phát triển riêng biệt về các thư viện, công cụ dành cho việc thu thập, xử lý, hiển thị, điều khiển. ROS có thể kết hợp, tương tác với nhiều robot framework khác như Player, YARP, Orocos, CARMEN, Orca, Moos và Microsoft Robotics Studio. Xây dựng ứng dụng robotics trên nền ROS sẽ giảm đi một lượng đáng kể các công việc lập trình, thiết lập hệ thống. Những phần này có thể tận dụng nguồn tài nguyên mã nguồn mở vô cùng phong phú của cộng đồng. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Những tài nguyên được cung cấp từ ROS thể hiện được sức mạnh trong các lĩnh vực robotics như: - Đồ họa (Visualization) - Nhận diện vật thể (Object recognition) - Định hướng di động (Navigation) - Thao tác/thu giữ (Manipulgation/grasping) 2.2.2 Mô hình ROS Cấu trúc ROS gồm có ba tầng: Filesystem, Computation Graph và Community. Tầng ROS Filesystem Hình 2.2 Tầng ROS Filesystem Filesystem hình 2.2 là nguồn tài nguyên ROS được lưu trữ trên bộ nhớ hệ thống, bao gồm những thành phần như: - Packages: Gói dữ liệu là đơn vị chính trong tổ chức phần mềm của hệ điều hành ROS. Một package có thể chứa các lệnh thực thi của ROS (các nodes), một thư viện phụ thuộc ROS, tập dữ liệu, các file cấu hình, hoặc các dữ liệu cần thiết khác trong hệ thống. - Manifests: là bảng kê khai thông tin dữ liệu của package (manifest.xml), cung cấp cơ sở dữ liệu về package đó, bao gồm điều kiện cho phép (license) và những yếu tố phụ thuộc của gói dữ liệu đó. Manifest còn chứa thông tin về đặc trưng của ngôn ngữ lập trình ví dụ như các cờ báo (flags) của trình biên dịch. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6
- S K L 0 0 2 1 5 4



