Đồ án Lập trình robot 3 bánh di chuyển theo người sử dụng cảm biến kinect (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Lập trình robot 3 bánh di chuyển theo người sử dụng cảm biến kinect (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:
do_an_lap_trinh_robot_3_banh_di_chuyen_theo_nguoi_su_dung_ca.pdf
Nội dung text: Đồ án Lập trình robot 3 bánh di chuyển theo người sử dụng cảm biến kinect (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 LẬP TRÌNH ROBOT 3 BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT GVHD: ThS. NGUYỄN TẤN NHƯ SVTH: LÊ NHẬT VŨ MSSV: 15341038 SVTH: HUỲNH NGỌC THẬT MSSV: 15341029 S K L 0 0 4 5 2 9 Tp. Hồ Chí Minh, tháng 01/2017
- 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: LẬP TRÌNH ROBOT 3 BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT GVHD: Th.S Nguyễn Tấn Như SVTH: Lê Nhật Vũ MSSV: 15341038 Huỳnh Ngọc Thật 15341029 Tp. Hồ Chí Minh - 01/2017
- 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: LẬP TRÌNH ROBOT 3 BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT GVHD: Th.S Nguyễn Tấn Như SVTH: Lê Nhật Vũ MSSV: 15341038 Huỳnh Ngọc Thật 15341029 Tp. Hồ Chí Minh - 01/2017 i
- 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 01 năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Lê Nhật Vũ MSSV: 15341038 Huỳnh Ngọc Thật MSSV: 15341029 Chuyên ngành: CNKT Điện Tử - Truyền Thông Mã ngành: 41 Hệ đào tạo: Đại học chính quy Mã hệ: 3 Khóa: 2015 Lớp: 153410A I. TÊN ĐỀ TÀI: LẬP TRÌNH ROBOT 3 BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT II. NHIỆM VỤ: 1. Cơ sở thực hiện: Trên cơ sở nghiên cứu và tham khảo những đồ án tốt nghiệp, công trình nghiên cứu khoa học trong lĩnh vực điều khiển Robot ứng dụng trên thực tế, ứng dụng lợi ích của Camera Kinect và sự hỗ trợ rất phong phú của hệ điều hành mã nguồn mở ROS cùng việc kết hợp các linh kiện để tạo ra Robot có chức năng di chuyển theo người nhằm ứng dụng vào thực tiễn cuộc sống như Robot vận chuyển hàng hoá trong kho hàng, xe chở em bé đi theo ba mẹ mà không cần đẩy, giúp người già hoặc người khuyết tật vận chuyển đồ đạc cần thiết, trong lĩnh vực y tế có thể ứng dụng để vận chuyển trang thiết bị khám chữa bệnh mà không cần người đẩy. 2. Nội dung thực hiện: - Tìm hiểu về động cơ servo DC. - Tìm hiểu về board Arduino DUE. - Tìm hiểu về Camera Kinect, cách sử dụng Camera Kinect dùng thư viện Skeleton_tracker để tracking vị trí con người. - Tìm hiểu về phần mềm viết chương trình cho Arduino DUE. - Tìm hiểu về phần mềm ROS. - Tìm hiểu thuật toán PID. - Chỉnh sửa mạch điện bên trong. - Viết chương trình xử lý cho board Arduino. ii
- - Cho Robot chạy thực nghiệm. - Điều chỉnh cho Robot hoạt động ổn định. - Viết quyển báo cáo đồ án tốt nghiệp. - Báo cáo đề tài tốt nghiệp . III. NGÀY GIAO NHIỆM VỤ: 26/09/2016 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 14/01/2017 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Th.S Nguyễn Tấn Như 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 01 năm 2017 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Lê Nhật Vũ Lớp: 153410A MSSV: 15341038 Họ tên sinh viên 2: Huỳnh Ngọc Thật Lớp: 153410A MSSV: 15341029 Tên đề tài: LẬP TRÌNH ROBOT 3 BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT. Xác nhận Tuần/ngày Nội dung GVHD Tuần 6 Gặp giáo viên hướng dẫn, nhận đề tài đồ án tốt (26/9 – 01/10) nghiệp. Tuần 7 Tìm tài liệu liên quan đến đề tài, viết đề cương (03/10 – 08/10) cho đề tài. Tuần 8 Kiểm tra, kết nối lại, sử dụng phần cứng Robot (10/10 – 15/10) của đề tài tốt nghiệp 7/2016. Tuần 9 Cài đặt các phần mềm hỗ trợ lập trình liên quan (17/10 – 22/10) đến đề tài. Tuần 10 Lập trình mô phỏng đề tài. (24/10 – 29/10) Tuần 11 Lập trình điều khiển tốc độ hai bánh xe Robot. (31/10 – 05/11) Tuần 12 Lập trình thu thập dữ liệu từ Camera Kinect. (07/11 – 12/11) Tuần 13,14 Lập trình cho cả hệ thống. (14/11 – 26/11) Tuần 15 Chạy thử nghiệm thực tế và kiểm tra đề tài. (28/11 – 03/12) Tuần 16 Cân chỉnh và kiểm tra lại mô hình, viết đề (05/12 – 10/12) cương cho luận văn. Tuần 17,18 Viết quyển luận văn. (12/12 – 24/12) Tuần 19,20 Chỉnh sửa, kiểm tra lần cuối và nộp quyển luận (26/12 – 07/01) văn. Tuần 21 Báo cáo đồ án tốt nghiệp. (09/01 – 14/01) 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 em tự thực hiện dựa vào một số tài liệu và không sao chép từ tài liệu hay công trình đã có trước đó. Nếu có sao chép chúng em hoàn toàn chịu trách nhiệm. Tp. Hồ Chí Minh, ngày 01 tháng 01 năm 2017 Sinh viên thực hiện 1 Sinh viên thực hiện 2 LÊ NHẬT VŨ HUỲNH NGỌC THẬT v
- LỜI CẢM ƠN Trong lời đầu tiên của báo cáo đồ án tốt nghiệp “Lập trình Robot 3 bánh di chuyển theo người sử dụng cảm biến Kinect” này, chúng em muốn gửi những lời cảm ơn và biết ơn chân thành nhất của mình tới những người đã hỗ trợ, giúp đỡ chúng em về kiến thức và tinh thần trong quá trình thực hiện đồ án. Đặc biệt là sự hướng dẫn tận tình của thầy NGUYỄN TẤN NHƯ và các thầy cô trong khoa Điện – Điện Tử Trường Đại học Sư Phạm Kỹ Thuật TPHCM. Chúng em xin gửi lời cảm ơn sâu sắc đến Thầy NGUYỄN TẤN NHƯ, Giảng viên 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 đỡ chúng em hoàn thành đề tài. Chúng em cũng xin gửi lời cảm ơn chân thành đến ba mẹ đã luôn ở bên hỗ trợ và động viên chúng em để hoàn thành tốt đề tài. Chúng em cũng gửi lời đồng cảm ơn đến các bạn lớp 153410 đã 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. Dù đã hết sức cố gắng nhưng do bản thân chúng em chưa có nhiều kinh nghiệm nên khó tránh khỏi những sai sót trong bài báo cáo. Chúng em rất mong nhận được những ý kiến đóng góp quý báo của thầy cô và các bạn để bài báo cáo của em được hoàn thiện hơn. Xin chân thành cảm ơn. Sinh viên thực hiện 1 Sinh viên thực hiện 2 LÊ NHẬT VŨ HUỲNH NGỌC THẬT vi
- MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình làm việc iv Lời cam đoan v Lời cảm ơn vi Mục lục vii Liệt kê hình vẽ x Liệt kê bảng vẽ xiv Tóm tắt xv CHƯƠNG 1. TỔNG QUAN 1 1.1. Đặt vấn đề 1 1.2. Mục tiêu 1 1.3. Nội dung nghiên cứu 2 1.4. Giới hạn 2 1.5. Bố cục 3 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 4 2.1. Hệ điều hành Robot Operating System (ROS) 4 2.1.1. ROS là gì? 4 2.1.2. Cấu trúc ROS 7 a. Tầng ROS Filesystem 7 b. Tầng ROS Computation Graph 9 c. Tầng ROS Community level 13 2.2. Thuật toán điều khiển PID 13 2.3. Giải thuật điều khiển động cơ (Differential Drive) 18 2.3.1. Định nghĩa 18 2.3.2. Mô hình động lực học 19 vii
- CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ. 22 3.1. Thiết kế sơ đồ khối hệ thống 23 3.2. Tính toán và thiết kế hệ thống 24 3.2.1. Khối điều khiển – Arduino DUE 24 3.2.2. Camera Kinect 26 3.2.3. Khối chấp hành – động cơ DC giảm tốc Faulhaber 12v 30 3.2.4. Khối cảm biến – Encoder 33 3.2.5. Khối công suất – Module mạch cầu H L298 36 3.2.6. Khối nguồn 38 3.3. Sơ đồ kết nối toàn hệ thống 39 CHƯƠNG 4. THI CÔNG HỆ THỐNG 41 4.1. Thi công hệ thống 42 4.1.1. Khung Robot 42 4.1.2. Các bộ phận bằng nhựa 43 4.1.3. Linh kiện cơ khí 44 4.2. Lập trình mô phỏng 46 4.2.1. Cơ sở lý thuyết mô phỏng 46 4.2.2. Lưu đồ giải thuật mô phỏng 48 4.2.3. Kết quả quá trình mô phỏng 51 4.3. Lập trình hệ thống 53 4.3.1. Sơ đồ hệ thống các Node trong chương trình 53 4.3.2. Lưu đồ giải thuật của hệ thống 54 4.4. Viết tài liệu hướng dẫn sử dụng, thao tác 55 4.4.1. Viết tài liệu hướng dẫn sử dụng 55 4.4.2. Quy trình thao tác 56 CHƯƠNG 5. KẾT QUẢ, NHẬN XÉT và ĐÁNH GIÁ 62 5.1. Kết quả quá trình thực hiện đề tài 62 5.1.1. Kết quả nhận diện con người 62 a. Khoảng cách nhận diện của Camera Kinect 63 b. Góc nhận diện của Camera Kinect 68 viii
- 5.1.2. Kết quả quá trình điều khiển Robot 72 a. Điều khiển Angular của Robot 72 b. Điều khiển Linear của Robot 78 5.2. Nhận xét và đánh giá chung 85 CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. 87 6.1. Kết luận . 87 6.2. Hướng phát triển 87 TÀI LIỆU THAM KHẢO 88 ix
- LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1: PR2 (Personal Robot),Turtlebot. 5 Hình 2.2: So sánh khối lượng khoa học giữa việc sử dụng ROS và không dùng 5 Hình 2.3: Cấu trúc tầng Filesystem 7 Hình 2.4: Mối quan hệ của Stack và Package 8 Hình 2.5: Tầng ROS Computation Graph 9 Hình 2.6: Cơ chế hoạt động của Parameter trên Master 10 Hình 2.7: Mối liên quan giữa các topic 11 Hình 2.8: Phương thức hoạt động của service 12 Hình 2.9: Giao tiếp cơ bản trong ROS 12 Hình 2.10: Mô hình bộ điều khiển PID 14 Hình 2.11: Đáp ứng của các hệ thống điều khiển 15 Hình 2.12: Cách tính toán PID. 16 Hình 2.13: Chuyển động của Robot 19 Hình 2.14: Mô hình động lực học 19 Hình 2.15: Mô hình Robot xoay và chạy theo người 20 Hình 2.16: Sơ đồ các node trong hệ thống 21 Hình 3.1: Sơ đồ khối hệ thống 23 Hình 3.2: Hình mặt trước và sau của board Arduino DUE 24 Hình 3.3: Sơ đồ chân của kit Arduino 25 Hình 3.4: Thiết bị Camera Kinect 26 Hình 3.5: Cấu tạo bên trong của Camera Kinect 27 Hình 3.6: Vùng hoạt động của Kinect 28 Hình 3.7: Góc hoạt động của Kinect 28 Hình 3.8: Bộ khung xương tạo ra từ Kinect 29 Hình 3.9: Điều chỉnh độ rộng xung PWM 31 Hình 3.10: Động cơ Faulhaber 12V 32 Hình 3.11: Hình đĩa quay của encoder tuyệt đối(a) va encoder tương đối (b) 33 Hình 3.12: Optical Encoder 34 Hình 3.13: Hai kênh A và B lệch pha nhau trong encoder 35 Hình 3.14: Cách đấu nối encoder trên động cơ vào mạch 36 Hình 3.15: Module mạch cầu H L298N 36 Hình 3.16: Sơ đồ chân Module L298 37 x
- Hình 3.17: Nguồn Acquy RL1212 cấp cho khối chấp hành 38 Hình 3.18: Sơ đồ kết nối phần cứng của Robot 39 Hình 4.1: Mô hình thực tế yêu cầu thi công 41 Hình 4.2: Bản vẽ hình chiếu đứng và hình chiếu cạnh khung Robot 42 Hình 4.3: Bản vẽ hình chiếu bằng khung Robot 43 Hình 4.4: Các bộ phận bằng nhựa của Robot 43 Hình 4.5: Các bộ phận bằng nhựa của Robot 44 Hình 4.6: Các bộ phận cơ khí của Robot 45 Hình 4.7: Chương trình mô phỏng cho hệ thống 46 Hình 4.8: /tf trên ROS 47 Hình 4.9: Chuyển đổi hệ trục toạ độ 48 Hình 4.10: Lưu đồ giải thuật chương trình mô phỏng 49 Hình 4.11: Hai con rùa xuất hiện 50 Hình 4.12: Con rùa thứ hai di chuyển theo con rùa thứ nhất 50 Hình 4.13: Con rùa thứ nhất xuất hiện 51 Hình 4.14: Con rùa thứ hai xuất hiện 51 Hình 4.15: Hai con rùa di chuyển. 52 Hình 4.16: Hai con rùa di chuyển 52 Hình 4.17: Sơ đồ hệ thống các Node 53 Hình 4.18: Lưu đồ giải thuật điều khiển của hệ thống 55 Hình 4.19: Hệ thống chạy thực tế 56 Hình 4.20: Quy trình các bước thực hiện 57 Hình 4.21: Chọn board Arduino 58 Hình 4.22: Chọn cổng giao tiếp cho board Arduino 58 Hình 4.23: Upload chương trình cho board Arduino 59 Hình 4.24: Build chương trình 59 Hình 4.25: Setup môi trường và chạy hệ thống 60 Hình 4.26: Hình ảnh hiện trên màn hình máy tính 60 Hình 4.27: Khi có người trước Camera Kinect 61 Hình 5.1: Động tác thực hiện để lấy khung xương cho Camera Kinect. 62 Hình 5.2: Khung xương sau khi Kinect nhận dạng được người. 63 Hình 5.3 Khoảng cách Kinect đo được trên lý thuyết 63 Hình 5.4: Khoảng cách xa nhất Kinect đo được trong điều kiện trong nhà 64 Hình 5.5: Khoảng cách xa nhất Kinect đo được trong điều kiện không có nắng 64 xi
- Hình 5.6: Khoảng cách xa nhất Kinect đo được trong điều kiện ngoài trời có nắng 65 Hình 5.7: Khoảng cách xa nhất Kinect đo được trong điều kiện không có ánh sáng 65 Hình 5.8: Khoảng cách gần nhất Kinect đo được trong điều kiện trong nhà 66 Hình 5.9: Khoảng cách gần nhất Kinect đo được trong điều kiện không có nắng 66 Hình 5.10: Khoảng cách gần nhất Kinect đo được trong điều kiện ngoài trời có nắng 67 Hình 5.11: Khoảng cách gần nhất Kinect đo được trong điều kiện không có ánh sáng 67 Hình 5.12: Góc lớn nhất Kinect đo được trong điều kiện trong nhà 68 Hình 5.13: Góc lớn nhất Kinect đo được trong điều kiện ngoài trời khi không có nắng 68 Hình 5.14: Góc lớn nhất Kinect đo được trong điều kiện ngoài trời khi có nắng 69 Hình 5.15: Góc lớn nhất Kinect đo được trong điều kiện không có ánh sáng 69 Hình 5.16: Góc nhỏ nhất Kinect đo được trong điều kiện trong nhà 70 Hình 5.17: Góc nhỏ nhất Kinect đo được trong điều kiện ngoài trời khi không có nắng 70 Hình 5.18: Góc nhỏ nhất Kinect đo được trong điều kiện ngoài trời khi có nắng 71 Hình 5.19: Góc nhỏ nhất Kinect đo được trong điều kiện không có ánh sáng 71 Hình 5.20: Tốc độ của 2 bánh xe khi Angular_Kinect nhỏ 73 Hình 5.21: Tốc độ của 2 bánh xe khi Angular_Kinect lớn 73 Hình 5.22: Biểu đồ vận tốc khi con người đứng ở giữa Kinect 74 Hình 5.23: Biểu đồ vận tốc khi con người đứng bên phải Kinect 74 Hình 5.24: Biểu đồ vận tốc khi con người đứng bên trái Kinect 75 Hình 5.25: Tốc độ của 2 bánh xe khi Kp_Angular bằng 2 75 Hình 5.26: Tốc độ của 2 bánh xe khi Kp_Angular bằng 6 76 Hình 5.27: Tốc độ của 2 bánh xe khi Kp_Angular bằng 10 76 Hình 5.28: Biểu đồ so sánh sự ảnh hưởng của Kp_Angular đến tốc độ bánh xe 77 Hình 5.29: Sự thay đổi tốc độ bánh xe khi con người di chuyển từ trái sang phải 78 Hình 5.30: Tốc độ của 2 bánh xe khi Linear_Kinect nhỏ. 79 Hình 5.31: Tốc độ của 2 bánh xe khi Linear_Kinect lớn 79 Hình 5.32: Biểu đồ thể hiện tốc độ 2 bánh xe khi con người di chuyển lại gần Robot 80 Hình 5.33: Biểu đồ thể hiện tốc độ 2 bánh xe khi con người di chuyển ra xa Robot 80 Hình 5.34: Tốc độ của 2 bánh xe khi Kp_Linear bằng 0.1 81 xii
- Hình 5.35: Tốc độ của 2 bánh xe khi Kp_Linear bằng 0.5 81 Hình 5.36: Tốc độ của 2 bánh xe khi Kp_Linear bằng 1 82 Hình 5.37: Biểu đồ so sánh sự ảnh hưởng của Kp_Linear đến tốc độ bánh xe 83 Hình 5.38: Sự thay đổi tuyến tính của tốc độ của bánh xe khi con người di chuyển 84 Hình 5.39: Kết quả thực tế và mô phỏng của đề tài 85 Hình 5.40: Robot di chuyển thẳng và quẹo cua 86 xiii
- LIỆT KÊ BẢNG Bảng Trang Bảng 2.1: Tác động của việc thay đổi một trong các thông số Kp, KI, KD độc lập 15 Bảng 2.2: Thông số điều chỉnh Kp, Ki, Kd 18 Bảng 3.1: Thông số kỹ thuật của Arduino Due 26 Bảng 5.1: Bảng thu thập dữ liệu của Kinect trong các điều kiện môi trường khác nhau 72 xiv
- TÓM TẮT Đề tài “Lập trình Robot 3 bánh di chuyển theo con người sử dụng cảm biến Kinect” sẽ nghiên cứu và thi công được một Robot có chức năng di chuyển theo người để ứng dụng vào thực tiễn thực hiện các công việc cụ thể như vận chuyển hàng hoá hay con người v.v. Dựa trên cơ sở thu thập dữ liệu hình ảnh bằng camera, qua bộ xử lý để điều khiển cơ cấu chấp hành là bánh xe di chuyển. Cụ thể, trong đề tài này nhóm chúng em sử dụng Camera Kinect với gói thư viện skeleton_marter hỗ trợ để đọc dữ liệu toạ độ vị trí hông của con người truyền về bộ xử lý trung tâm là máy tính sau đó lập trình giao tiếp dữ liệu với board Arduino để điều khiển cho các bánh xe chuyển động và tất cả các quá trình này đều được thực hiện dựa trên việc ứng dụng hệ điều hành điều khiển Robot là Robot Operating System (ROS). Đề tài thi công được Robot di chuyển hoàn toàn tự động theo con người là điểm nổi bật hơn so với các ứng dụng Robot điều khiển bằng tay trước đây. Có thể nhận diện và di chuyển theo một người trong đám đông hoặc nơi thiếu ánh sáng. Tuy nhiên, Robot còn hạn chế là không nhận dạng được con người trong môi trường có ánh sáng cao, di chuyển khó khăn trên bề mặt không bằng phẳng. Sau khi hoàn thành và chạy ổn định thì đề tài có ý nghĩa rất lớn trong cuộc sống, là cơ sở để phát triển ứng dụng Robot nhằm hỗ trợ tối đa cho con người. xv
- CHƯƠNG 1. TỔNG QUAN Chương 1. TỔNG QUAN 1.1. ĐẶT VẤN ĐỀ Trong xu thế nước ta đã và đang ngày càng đẩy mạnh công nghiệp hoá hiện đại hoá để tăng cường hội nhập vào sự phát triển không ngừng của thế giới. Ngày nay, việc ứng dụng khoa học kỹ thuật công nghệ để giảm sức lao động con người và nâng cao năng suất công việc. Vì vậy nghiên cứu chế tạo Robot để ứng dụng vào trong khoa học kỹ thuật và đời sống là một đề tài đã và đang được mọi người quan tâm nhiều nhất. Cảm biến Kinect là cảm biến chuyển động do hãng Microsoft sản xuất được giới thiệu vào tháng 11 năm 2010. Với sự phát triển không ngừng, việc sử dụng Camera Kinect để nhận diện con người kết hợp với hệ điều hành ROS sẽ làm giảm một khối lượng lớn công việc lập trình, do thời gian thực hiện đề tài hạn chế nên nhóm đã chọn Camera Kinect và hệ điều hành ROS để lập trình cho hệ thống từ đó rút ngắn thời gian hoàn thành đề tài. Robot di chuyển theo người là một loại Robot được ứng dụng rộng rãi. Nó có thể vận chuyển đồ cho người già, có thể chở em bé đi theo sau người chăm sóc, có thể ứng dụng vào xe lăn để làm phương tiện di chuyển cho người khuyết tật mà không cần người đẩy v.v. Robot di chuyển theo người được gắn một cảm biến Kinect để có thể nhận biết được người cần đi theo. Từ những lí do trên trong đề tài tốt nghiệp của mình, nhóm chúng em đã chọn đề tài : “Lập Trình Robot 3 Bánh Di Chuyển Theo Người Sử Dụng Cảm Biến Kinect” để vận chuyển vật nặng. Đề tài hoàn thành xong sẽ có ứng dụng rộng rãi trong đời sống và trong công nghiệp. 1.2. MỤC TIÊU Sử dụng hệ điều hành ROS để lập trình điều khiển cho mô hình Robot hai bánh và một bánh tựa hoạt động tốt đúng như đề tài đặt ra, sử dụng cảm biến Kinect để nhận biết và xác định vị trí con người từ đó Robot có thể di chuyển theo con người với khoảng cách xác định. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 1
- CHƯƠNG 1. TỔNG QUAN 1.3. NỘI DUNG NGHIÊN CỨU Trong quá trình nghiên cứu đề tài, nhóm chúng em lần lượt thực hiện các bước cụ thể như sau: - Tìm hiểu về động cơ servo DC. - Tìm hiểu về Board Arduino DUE. - Tìm hiểu về Camera Kinect, cách sử dụng Camera Kinect dùng thư viện Skeleton_tracker để tracking vị trí con người. - Tìm hiểu về phần mềm viết chương trình cho Arduino DUE. - Tìm hiểu về hệ điều hành Robot Operating System (ROS). - Tìm hiểu thuật toán PID. - Chỉnh sửa và kết nối các linh kiện phần cứng lại với nhau. - Viết chương trình xử lý cho board Arduino. - Nghiên cứu, lập trình nhận dữ liệu từ Camera Kinect, xử lý truyền nhận dữ liệu từ ROS xuống board Arduino và ngược lại. - Cho Robot chạy thực nghiệm. - Điều chỉnh cho Robot hoạt động ổn định. - Viết quyển báo cáo đồ án tốt nghiệp. - Báo cáo đề tài tốt nghiệp . 1.4. GIỚI HẠN Đề tài nghiên cứu Robot 3 bánh di chuyển theo người sử dụng cảm biến Kinect còn nằm trong những giới hạn cụ thể như sau: - Chỉnh sửa lại mô hình Robot. - Sử dụng động cơ servo DC 12V để cho Robot di chuyển. - Robot nhận biết vật thể bằng cảm biến Kinect. - Khoảng cách nhận biết tối đa là 4m. - Khoảng cách nhận biết tối thiểu là 0.5m. - Vận tốc tối đa của Robot là 0.5 m/s. - Robot có thể chở vật nặng 3kg. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2
- CHƯƠNG 1. TỔNG QUAN 1.5. BỐ CỤC Chương 1: Tổng Quan Đặt vấn đề liên quan đến đề tài, tìm hiểu những lý do và sự cần thiết để thực hiện đề tài, mục tiêu hoàn thành, giới hạn cũng như những bước đi từ cơ bản đến cụ thể mà nhóm sẽ thực hiện trong quá trình nghiên cứu đề tài. Chương 2: Cơ Sở Lý Thuyết Giới thiệu về các kiến thức lý thuyết cơ bản về hệ điều hành ROS, các giải thuật được sử dụng trong chương trình đề thực hiện đề tài. Chương 3: Tính Toán và Thiết Kế Trình bày sơ đồ khối của hệ thống và tính toán lựa chọn các thiết bị, linh kiện sử dụng trong đề tài. Chương 4: Thi Công Hệ Thống Chỉnh sửa mô hình xe và thiết kế ứng dụng phần mềm lập trình vào hệ thống. Chương 5: Kết Quả, Nhận Xét và Đánh Giá Trình bày những kết quả đạt được và nhận xét, đánh giá về ưu điểm, nhược điểm của sản phẩm. Chương 6: Kết Luận và Hướng Phát Triển Đưa ra kết luận chung và hướng phát triển của đề tài. 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. HỆ ĐIỀU HÀNH ROBOT OPERATING SYSTEM (ROS). 2.1.1. ROS là gì ? ROS là một hệ điều hành mã nguồn mở, dùng cho các ứng dụng Robot, được nghiên cứu đầu tiên tại Đại học Stanford và hiện nay được phát triển và mở rộng bởi Willow Garage. 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.v.v. Hơn thế nữa, ROS có thể ứng dụng trong lĩnh vực robotics, ROS hỗ trợ hầu hết các công cụ dành cho việc thu thập, xử lý, hiển thị, điều khiển.v.v.,giúp việc nghiên cứu và phát triển Robot được dễ dàng, thuận tiện hơn, cả trong học thuật và trong công nghiệp. ROS được xây dựng theo kiến trúc mở, các nhà khoa học, kỹ sư có thể chia sẻ, mở rộng, tích hợp nhiều thư viện, hệ thống khác nhau. Việc sử dụng hệ điều ROS giúp cho việc thử nghiệm các ý tưởng, thuật toán được dễ dàng, nhanh chóng hơn. Đặc biệt, ROS được xây dựng trên mã nguồn mở nhưng 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, Microsoft Robotics Studio và có tính tương tác với người cao, phục vụ cho cuộc sống thường ngày của con người. ROS là hệ điều hành được phát triển chuyên dụng cho các ứng dụng điều khiển Robot, với ROS ta có thể lập trình, biên dịch, chạy thực thi chương trình điều khiển qua nhiều máy tính và nhiều hệ thống Robot khác nhau. Về mặt trao đổi dữ liệu và giao tiếp trong ROS: ROS tích hợp một vài chuẩn giao tiếp khác nhau, bao gồm giao tiếp đồng bộ theo chuẩn RPC qua các services, truyền dữ liệu bất đồng bộ qua topics và lưu trữ dữ liệu trên Parameter Server. Với mã nguồn mở, ROS được sự quan tâm và đóng góp của cộng đồng trên khắp thế giới để xây dựng phát triển các dự án robotics, do đó có rất nhiều thư viện được tạo ra và hỗ trợ được nhiều tính năng từ đó có rất nhiều mô hình Robot đã được xây dựng thành công với hệ điều hành ROS như Robot PR2 (Personal Robot) của Willow Garage năm 2006 (hình 2.1a), hay sự phát triển thêm của Robot có trang bị BÔ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4



