1. Trang chủ
  2. » Luận Văn - Báo Cáo

LẬP TRÌNH ROBOT 3 BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT

105 2 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 10,32 MB

Nội dung

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 012017i 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 012017ii 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.iii 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Ụ: 26092016 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 14012017 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ỆPiv 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. Tuầnngày Nội dung Xác nhận GVHD Tuần 6 (269 – 0110) Gặp giáo viên hướng dẫn, nhận đề tài đồ án tốt nghiệp. Tuần 7 (0310 – 0810) Tìm tài liệu liên quan đến đề tài, viết đề cương cho đề tài. Tuần 8 (1010 – 1510) Kiểm tra, kết nối lại, sử dụng phần cứng Robot của đề tài tốt nghiệp 72016. Tuần 9 (1710 – 2210) Cài đặt các phần mềm hỗ trợ lập trình liên quan đến đề tài. Tuần 10 (2410 – 2910) Lập trình mô phỏng đề tài. Tuần 11 (3110 – 0511) Lập trình điều khiển tốc độ hai bánh xe Robot. Tuần 12 (0711 – 1211) Lập trình thu thập dữ liệu từ Camera Kinect. Tuần 13,14 (1411 – 2611) Lập trình cho cả hệ thống. Tuần 15 (2811 – 0312) Chạy thử nghiệm thực tế và kiểm tra đề tài. Tuần 16 (0512 – 1012) Cân chỉnh và kiểm tra lại mô hình, viết đề cương cho luận văn. Tuần 17,18 (1212 – 2412) Viết quyển luận văn. Tuần 19,20 (2612 – 0701) Chỉnh sửa, kiểm tra lần cuối và nộp quyển luận văn. Tuần 21 (0901 – 1401) Báo cáo đồ án tốt nghiệp. GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)v 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ẬTvi 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ẬTvii 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......................................................................................19viii 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 ...................................................................68ix 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.....................................................................................88x 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 ......................................................................... 37xi 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......... 64xii 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 ......................................... 81xiii 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.......................................................... 86xiv 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 ...............................................................................................................................72xv 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.CHƯƠNG 1. TỔNG QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 1 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.CHƯƠNG 1. TỔNG QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2 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 ms. Robot có thể chở vật nặng 3kg.CHƯƠNG 1. TỔNG QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3 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.CHƯƠNG 2. CƠ SỞ LÝ THUYẾT BÔ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4 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ịCHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5 thiết bị camera giám sát của hãng Turtobot (hình 2.1b) .v.v.,là sự chứng minh cho tính ứng dụng cao và phát triển rộng khắp của hệ điều hành ROS. a b Hình 2.1: PR2 (Personal Robot),Turtlebot. Ưu điểm của ROS. Khi sử dụng ROS để tạo ứng dụng robotics 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 vì 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. 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.CHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6 Từ hình 2.2 ta có thể thấy khối lượng công việc kỹ thuật cơ bản (required engineering) và khối lượng nghiên cứu khoa học nòng cốt (Core Research) cần phải làm khi ứng dụng và không sử dụng để hoàn thành sản phẩm. Với sự hiệu quả từ ROS, thời gian dành cho các công việc kỹ thuật cơ bản sẽ được giảm xuống rất đáng kể và do đó tăng thời gian cho công việc nghiên cứu chuyên sâu, số lượng kiến thức đạt được trong việc nghiên cứu đề tài sẽ lớn hơn nhiều lần. Một số đặc điểm làm cho ROS là một hệ điều hành nên được sử dụng đó là: ROS là hệ điều hành mã nguồn mở. Các tài liệu kỹ thuật, tài liệu hướng dẫn và các kênh hỗ trợ đầy đủ. Một trong những vẫn đề cốt lõi nhất khiến ROS trở nên mạnh mẽ đó là tính cộng đồng rất lớn. Nguồn tài nguyên được cộng đồng đóng góp hầu như được xây dựng, phát triển từ những viện nghiên cứu và những trường đại học hàng đầu. Các 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ư là: Visualization (Đồ họa). Object recognition (Nhận diện vật thể). Navigation (Định hướng di động). Manipulgationgrasping (Thao tácthu giữ). Xu hướng phát triển của ROS. Ngày xưa ROS chỉ chạy trên nền tảng Unix. Phần mềm cho ROS chủ yếu được thử nghiệm trên Ubuntu và Mac OS X. Nhưng hiện nay cộng đồng ROS cũng đã bắt đầu xây dựng cho Fedora, Gentoo, Arch Linux và các nền tảng Linux khác. ROS chưa hỗ trợ trên Microsoft Windows. ROS là hệ điều hành mã nguồn mở, do đó thu hút được sự quan tâm đóng góp của cộng đồng để phát triển hệ thống cũng như các công cụ và thư viện kèm theo. ROS cùng với các công cụ và thư viện hỗ trợ thường được phát hành ở dạng ROS Distribution tương tự như Linux distribution, cung cấp một bộ phần mềm để ngườiCHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7 dùng sử dụng, xây dựng và phát triển. Cộng đồng ROS tham gia đóng góp mã nguồn ngày càng phát triển, tuy vậy, vẫn tập trung chủ yếu Hoa Kỳ, Tây Âu, ngoài ra còn có Nhật Bản . 2.1.2. Cấu trúc ROS. Cấu trúc ROS gồm có ba tầng: Filesystem, Computation Graph và Community level. Bên cạnh đó còn có một số khái niệm cấp cao đặc trưng cho các ứng dụng Robot như hệ tọa độ, phép chuyển đổi, thông điệp mô tả. a. Tầng ROS Filesystem. Filesystem Level Stacks Stack Manifest Packages Manifest Messages Services Code Others Hình 2.3: Cấu trúc tầng Filesystem. Filesystem: 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ư hình 2.3. Stacks: là tập hợp các packages phối hợp với nhau để thực hiện một chức năng cụ thể, chẳng hạn như “navigation stack” là tập hợp các packages dẫn hướng cho Robot. Stack còn mô tả cách thức phần mềm ROS được xây dựng và chứa thông tin về phiên bản ROS đang sử dụng (hình 2.4).CHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8 Hình 2.4: Mối quan hệ của Stack và Package. Stack Manifests: (stack.xml) cung cấp cơ sở dữ liệu về một stack, bao gồm điều kiện cho phép (license) và các thông số phụ thuộc vào những stack khác. 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 Message (msg) Types: Thông tin mô tả message, được lưu trữ trong my_packagemsgMyMessageType.msg, định nghĩa cấu trúc dữ liệu cho các messages được gửi trong ROS. Service (srv) Types: thông tin mô tả các services, được lưu trữ trong my_packagesrvMyServiceType.srv, định nghĩa cấu trúc dữ liệu cho các lệnh truy cập (request) và các phản hồi (response) của các services trong ROS.CHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 9 b. Tầng ROS Computation Graph. Hình 2.5: Tầng ROS Computation Graph. Hình 2.5 là cấu trúc một tầng ROS Computation Graph. “Computation Graph” tạm gọi là lược đồ tính toán là một mạng peertopeer của ROS trong đó các dữ liệu được xử lý với nhau. Computation Graph cơ bản gồm các thành phần: các nút (nodes), Master, Parameter Server, messages, services, topics, và bags, tất cả các thành phần này đều cung cấp dữ liệu cho Graph bằng những phương thức khác nhau. Parameter Server: là một phần của Master cho phép dữ liệu được lưu trữ trong một vị trí trọng tâm và cho phép truy cập như hình 2.6.CHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 10 Hình 2.6: Cơ chế hoạt động của Parameter trên Master. Nodes: là đơn vị thực hiện các lệnh tính toán, xử lý dữ liệu. Hệ điều hành ROS được thiết kế module hoá, các module được xây dựng rất chi tiết và chuyên biệt, một hệ thống điều khiển Robot thường sẽ bao gồm nhiều nodes. Ví dụ, một node thu thập dữ liệu từ Camera Kinect, một node tính toán và gửi dữ liệu tính toán đến node khác.v.v. Mỗi node của ROS được xây dựng nhờ sử dụng một ROS client library ví dụ như roscpp hoặc rospy. Master: Các ROS Master cung cấp tên đăng ký và tra cứu đến phần còn lại của Computation Graph. Nếu không có Master, các node sẽ không thể tìm thấy nhau, trao đổi thông tin, hay gọi services đều không thực hiện được. Messages: Các node trong ROS giao tiếp với nhau thông qua các message. Một message đơn giản là một cấu trúc dữ liệu, bao gồm các trường được định kiểu. Các kiểu dữ liệu chuẩn (như integer, floating point, boolean,…) và mảng (array) với kiểu chuẩn đều được hỗ trợ. Messages có thể bao gồm các cấu trúc và các mảng lồng nhau (giống như kiểu structs trong ngôn ngữ C). Topics: Messages được định tuyến thông qua một hệ thống trao đổi (transportsystem), trong đó phân loại các thông điệp thành 2 dạng: publish (đưa tin) và subcribe (đăng ký nhận thông tin). Một node gửi đi một message bằng việc đưa thông tin tới một topic (chủ đề). Tên của topic được dùng để quy định nội dung của message. Một node liên quan đến loại dữ liệu như thế nào sẽ đăng ký nhận tin từCHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 11 topic tương ứng. Một topic có thể có nhiều đối tượng đưa tin (publishers) cũng như nhiều đối tượng đăng ký nhận tin (subcribers) và mỗi một node cũng có thể truyền tin nhiều topic khác nhau, cũng như có thể nhận tin từ nhiều topic. Các nguồn truyền tin và các đối tượng nhận tin nhìn chung không cần phải biết về sự tồn tại của nhau. Ý tưởng xây dựng ROS ở đây là tách biệt nguồn tạo ra thông tin với bộ phận sử dụng thông tin đó. Topic được xem như là một kênh truyền các thông điệp được định kiểu. Mỗi kênh truyền này có một tên riêng, và node nào cũng có thể kết nối với kênh này để gửinhận thông điệp, miễn là thông điệp cùng kiểu với topic đó như hình 2.7. Node_1 publishes Node_2 subcribes Node_3 Publishes and subcribes Topic: something_else Message type: std_msgFloat Topic: something Message type: std_msgInteger Topic: chatter Message type: std_msg String echo (‘hello word’) Hình 2.7: Mối liên quan giữa các topic. Services: Mô hình truyền nhận thông tin theo kiểu publishsubcribes là một mô hình rất linh hoạt, tuy nhiên đặc điểm của nó là thông tin được truyền đa đối tượng, một chiều (manytomany, oneway) đôi khi lại không phù hợp với các trường hợp cần tương tác theo kiểu requestreply (yêu cầuđáp ứng), kiểu tương tác này thường gặp trong các hệ thống phân phối. Vì vậy, phải có thêm một thành phần “services” trong ROS Graph, để thực hiện được các yêu cầu tương tác theo kiểu requestreply. Services là một cặp cấu trúc thông điệp, một thông điệp để gửi yêu cầu và một thông điệp dành cho đáp ứng. Một node cung ứng một service với một thuộcCHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 12 tính “name”, một client sử dụng service đó bằng cách gửi đi một thông điệp yêu cầu (request message) rồi đợi phản hồi như hình 2.8. Hình 2.8: Phương thức hoạt động của service. Bags: là một định dạng để lưu và phát lại dữ liệu từ các ROS messages. Bags là một cơ chế quan trọng để lưu trữ dữ liệu, ví dụ như dữ liệu từ cảm biến, camera, những dữ liệu này là cần thiết để phát triển và thử nghiệm các thuật toán. Bằng cách xây dựng hệ thống như ROS cho phép nguồn cung cấp thông tin và đối tượng nhận thông tin có thể tách rời riêng biệt, và mối quan hệ này được thực hiện thông qua thuộc tính “name”. “Name” là thuộc tính có vai trò rất quan trọng trong ROS. Hình 2.9: Giao tiếp cơ bản trong ROS. Các thành phần trong ROS ví dụ nodes, topics, services, parameters đều được đặt tên. Mỗi thư viện ROS Client đều có hỗ trợ commandline để liên kết các tênCHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 13 (remapping names), từ đó chương trình đã được biên dịch có thể cấu hình lại được khi chạy và cả khi hoạt động trong một cấu trúc Computation Graph khác. Trong ROS Computation Graph, ROS Master hoạt động như một nameservice, lưu trữ các topics và thông tin đăng ký services cho nodes. Một node giao tiếp với Master để báo thông tin đăng ký của node. Các nodes cũng có thể nhận thông tin về các nodes khác đã đăng ký với Master trong khi đang giao tiếp với Master. Trong trường hợp có thay đổi thông tin đăng ký với Master, Master cũng sẽ gửi lại thông tin (callbacks) đến các nodes, cho phép các node tự động tạo kết nối khi có nodes mới tham gia vào mạng, kết nối giữa các nodes là kết nối trực tiếp. Master chỉ cung cấp thông tin tra cứu (lookup information), giống như một máy chủ DNS. Nodes đăng ký nhận tin từ một topic khác, sẽ gửi yêu cầu kết nối trực tiếp đến nodes đó. Kết nối được khởi tạo khi các chuẩn kết nối (connection protocol) phù hợp với nhau. TCPROS là chuẩn giao thức phổ biến nhất thường được dùng trong ROS thông qua chuẩn TCPIP. c. Tầng ROS Community level. Nguồn tài nguyên ROS mà các đơn vị nghiên cứu có thể trao đổi phần mềm và kiến thức được gọi là ROS Community. Các tài nguyên bao gồm: Distribution: ROS Distributions là bộ phiên bản các stack tương thích mà người dùng lựa chọn để cài đặt. Phiên bản thứ bảy Hydro Medusa là phiên bản mới nhất hiện nay. Repository: ROS là nguồn tài nguyên dựa trên mã nguồn mở, do đó các trung tâm khác nhau có thể cùng và công bố những mã nguồn trên mô hình Robot của riêng họ. ROS wiki: là kênh tham khảo quan trọng nhất khi làm quen với ROS và là nơi lưu trữ các tài liệu, hướng dẫn về ROS mà bất kì ai cũng có thể đăng kí tài khoản để chia sẻ tài liệu, cập nhật, hay sử dụng,viết bài hướng dẫn và đặt câu hỏi.v.v. 2.2. THUẬT TOÁN ĐIỀU KHIỂN PID. Để điều khiển ngõ ra của thiết bị theo mong muốn và ổn định ví dụ như điều khiển động cơ, nhiệt độ, áp suất, tốc độ hay các biến khác trong các ứng dụng khác nhau chúng ta cần một thuật toán để điều khiển. Thuật toán PID là một trong những thuật toánCHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 14 phổ biến được giới thiệu để giải quyết các bài toán về điều khiển. Bộ điều khiển PID có thể sử dụng để điều khiển bất kỳ ngõ ra nào miễn sao giá trị của chúng bị tác động thông qua thuật toán PID. PID được viết tắc của các từ Propotional (tỉ lệ), Integral (tích phân), Derivative (đạo hàm) và là giải thuật điều khiển được dùng nhiều nhất trong các ứng dụng điều khiển tự động với yêu cầu chính xác (accurate), nhanh (fast response), ổn định (small overshot). Bộ điều khiển PID sẽ giám sát đầu ra của hệ thống, sau đó so sánh với giá trị mong muốn. Nếu hệ thống chưa đạt được giá trị mong muốn, nghĩa là sai số e khác không, bộ PID sẽ tính toán ra giá trị tác động u mới (tác động vào hệ thống) để hiệu chỉnh hệ thống. Quá trình này sẽ được thực hiện liên tục cho đến khi nào e = 0, lúc đó hệ thống sẽ đạt trạng thái ổn định. Hệ thống hoạt động theo nguyên lí này còn được gọi là hệ thống điều khiển vòng kín (Closed Loop Control) vì có hồi tiếp trạng thái của hệ thống về bộ điều khiển như hình 2.10 Hình 2.10: Mô hình bộ điều khiển PID. (nguồn https:vi.wikipedia.orgwikiPID). Các thành phần của bộ điều khiển PID  Thành phần tỉ lệ (KP) có tác dụng làm tăng tốc độ đáp ứng của hệ và làm giảm (chứ không triệt tiêu) sai số xác lập của hệ (steady – state error).  Thành phần tích phân (KI) có tác dụng triệt tiêu sai số xác lập nhưng có thể làm giảm tốc độ đáp ứng của hệ.  Thành phần vi phân (KD) làm tăng độ ổn định của hệ thống, giảm độ vọt lố và cải thiện tốc độ đáp ứng của hệ thống. Hệ PID có thể sử dụng ở ba chế độ P, PI, PD tùy vào đặc tính của hệ thống.  Hiệu chỉnh tỉ lệ P:

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 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 Tp Hồ Chí Minh - 01/2017 15341029 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 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 TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Họ tên sinh viên: CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày 01 tháng 01 năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Chuyên ngành: Hệ đào tạo: Khóa: Lê Nhật Vũ Huỳnh Ngọc Thật CNKT Điện Tử - Truyền Thông Đại học quy 2015 MSSV: 15341038 MSSV: 15341029 Mã ngành: 41 Mã hệ: Lớp: 153410A I TÊN ĐỀ TÀI: LẬP TRÌNH ROBOT BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT II NHIỆM VỤ: Cơ sở thực hiện: Trên sở nghiên cứu tham khảo đồ án tốt nghiệp, cơng trình nghiên cứu khoa học lĩnh vực điều khiển Robot ứng dụng thực tế, ứng dụng lợi ích Camera Kinect hỗ trợ phong phú hệ điều hành mã nguồn mở ROS việc kết hợp linh kiện để tạo Robot có chức di chuyển theo người nhằm ứng dụng vào thực tiễn sống Robot vận chuyển hàng hoá kho hàng, xe chở em bé theo ba mẹ mà không cần đẩy, giúp người già người khuyết tật vận chuyển đồ đạc cần thiết, lĩnh vực y tế ứ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 Nội dung thực hiện: - Tìm hiểu động servo DC - Tìm hiểu board Arduino DUE - Tìm hiểu Camera Kinect, cách sử dụng Camera Kinect dùng thư viện Skeleton_tracker để tracking vị trí người - Tìm hiểu phần mềm viết chương trình cho Arduino DUE - Tìm hiểu phần mềm ROS - Tìm hiểu thuật toán PID - Chỉnh sửa mạch điện bên - 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 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 TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC 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 BÁNH DI CHUYỂN THEO NGƯỜI SỬ DỤNG CẢM BIẾN KINECT Tuần/ngày Nội dung Tuần (26/9 – 01/10) Tuần (03/10 – 08/10) Tuần (10/10 – 15/10) Tuần (17/10 – 22/10) Tuần 10 (24/10 – 29/10) Tuần 11 (31/10 – 05/11) Tuần 12 (07/11 – 12/11) Tuần 13,14 (14/11 – 26/11) Tuần 15 (28/11 – 03/12) Tuần 16 (05/12 – 10/12) Tuần 17,18 (12/12 – 24/12) Tuần 19,20 (26/12 – 07/01) Tuần 21 (09/01 – 14/01) Gặp giáo viên hướng dẫn, nhận đề tài đồ án tốt nghiệp Tìm tài liệu liên quan đến đề tài, viết đề cương cho đề tài Kiểm tra, kết nối lại, sử dụng phần cứng Robot đề tài tốt nghiệp 7/2016 Cài đặt phần mềm hỗ trợ lập trình liên quan đến đề tài Lập trình mơ đề tài Xác nhận GVHD Lập trình điều khiển tốc độ hai bánh xe Robot Lập trình thu thập liệu từ Camera Kinect Lập trình cho hệ thống Chạy thử nghiệm thực tế kiểm tra đề tài Cân chỉnh kiểm tra lại mơ hình, viết đề cương cho luận văn Viết luận văn Chỉnh sửa, kiểm tra lần cuối nộp luận văn Báo cáo đồ án tốt nghiệp GV HƯỚNG DẪN (Ký ghi rõ họ tên) iv LỜI CAM ĐOAN Đề tài chúng em tự thực dựa vào số tài liệu không chép từ tài liệu hay cơng trình có trước Nếu có 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 Sinh viên thực LÊ NHẬT VŨ HUỲNH NGỌC THẬT v LỜI CẢM ƠN Trong lời báo cáo đồ án tốt nghiệp “Lập trình Robot 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 lời cảm ơn biết ơn chân thành tới người hỗ trợ, giúp đỡ chúng em kiến thức tinh thần trình thực đồ án Đặc biệt hướng dẫn tận tình thầy NGUYỄN TẤN NHƯ thầy 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 môn Điện Tử Công Nghiệp trực tiếp hướng dẫn tận tình giúp đỡ chúng em hồn thành đề tài Chúng em xin gửi lời cảm ơn chân thành đến ba mẹ bên hỗ trợ động viên chúng em để hoàn thành tốt đề tài Chúng em gửi lời đồng cảm ơn đến bạn lớp 153410 chia sẻ trao đổi kiến thức kinh nghiệm quý báu thời gian thực đề tài Dù cố gắng thân chúng em chưa có nhiều kinh nghiệm nên khó tránh khỏi sai sót báo cáo Chúng em mong nhận ý kiến đóng góp q báo thầy bạn để báo cáo em hoàn thiện Xin chân thành cảm ơn Sinh viên thực Sinh viên thực 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 TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung nghiên cứu 1.4 Giới hạn 1.5 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Hệ điều hành Robot Operating System (ROS) 2.1.1 ROS gì? 2.1.2 Cấu trúc ROS a Tầng ROS Filesystem b Tầng ROS Computation Graph 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 (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 TÍNH TỐN VÀ THIẾT KẾ .22 3.1 Thiết kế sơ đồ khối hệ thống 23 3.2 Tính tốn 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 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 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 phận nhựa 43 4.1.3 Linh kiện khí .44 4.2 Lập trình mơ 46 4.2.1 Cơ sở lý thuyết mô 46 4.2.2 Lưu đồ giải thuật mô .48 4.2.3 Kết q trình mơ .51 4.3 Lập trình hệ thống 53 4.3.1 Sơ đồ hệ thống Node chương trình 53 4.3.2 Lưu đồ giải thuật 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 KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ 62 5.1 Kết trình thực đề tài 62 5.1.1 Kết nhận diện người 62 a Khoảng cách nhận diện Camera Kinect .63 b Góc nhận diện Camera Kinect 68 viii 5.1.2 Kết trình điều khiển Robot 72 a Điều khiển Angular Robot 72 b Điều khiển Linear Robot 78 5.2 Nhận xét đánh giá chung .85 CHƯƠNG 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 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ Hình 5.24: Biểu đồ vận tốc người đứng bên trái Kinect Từ ba biểu đồ cho chúng thấy ảnh hưởng lớn Angular_Kinect đến tốc độ hai bánh xe Ở hình 5.22 hình đồ thị người đứng Kinect tương ứng Argular_Kinect xấp xỉ tốc độ hai bánh xe Robot xấp xỉ lúc Robot chuyển động thẳng Ở hình 5.23 người đứng lệch bên phải ta thấy tốc độ bánh xe trái chuyển động nhanh tốc độ bánh xe phải lúc Robot rẽ phải cịn hình 5.24 người lệch bên trái ta thấy tốc độ bánh xe phải nhanh tốc độ bánh xe trái lúc Robot rẽ trái - Xét ảnh hưởng Kp_Angular đến thay đổi tốc độ bánh xe  Với Kp_Angular = Hình 5.25: Tốc độ bánh xe Kp_Angular BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 75 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ  Với Kp_Angular = Hình 5.26: Tốc độ bánh xe Kp_Angular  Với Kp_Angular = 10 Hình 5.27: Tốc độ bánh xe Kp_Angular 10 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 76 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ Từ hình 5.25, 5.26, 5.27 cho thấy thay đổi Kp_Angular ảnh hưởng lớn đến đáp ứng tốc độ bánh xe Robot mà cụ thể Kp_Angular lớn tốc độ đáp ứng tốc độ hai bánh xe nhanh Có thể thấy cụ thể biểu đồ so sánh đây: b) a) c) Hình 5.28: Biểu đồ so sánh ảnh hưởng Kp_Angular đến tốc độ bánh xe Hình 5.28 (a) ta lấy Kp_Angular 2, hình 5.28 (b) Kp_Angular hình 5.28 (c) Kp_Angular 10 BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 77 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ - Xét di chuyển người thay đổi theo thời gian để thấy ảnh hưởng Angular_Kinect Cụ thể người di chuyển liên tục từ trái qua phải tốc độ hai bánh xe thay đổi, người bên trái V_right lớn V_left lúc Robot xoay trái, di chuyển đến tốc độ hai bánh xe lúc Robot thẳng người di chuyển sang đến bên phải V_left lớn V_right lúc Robot xoay phải, thay đổi thể hình 5.29 Hình 5.29: Sự thay đổi tốc độ bánh xe người di chuyển từ trái sang phải b Điều khiển Linear Robot - Sự thay đổi Linear_Kinect ảnh hưởng đến thay đổi vận tốc bánh xe trái (V_left) bánh xe phải (V_right) Nếu mục a xét thay đổi Angular_Kinect thay đổi góc phần xét thay đổi Linear_Kinect thay đổi di chuyển thẳng Robot  Khi Linear_Kinect nhỏ: Khi Linear_Kinect nhỏ tức người di chuyển gần Robot hơn, lúc tốc độ hai bánh xe người đứng vị trí giới hạn (0,5m) Robot tốc độ hai bánh xe Robot đứng n hình 5.30 BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 78 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ Hình 5.30: Tốc độ bánh xe Linear_Kinect nhỏ  Khi Linear_Kinect lớn: Khi Linear_Kinect lớn tức người di chuyển xa Robot, theo đường thẳng lúc tốc độ hai bánh xe lớn nhau, chuyển xa so với tầm nhìn Kinect Robot khơng cịn nhận thấy người Robot đứng lại, theo kết hình 5.31 Hình 5.31: Tốc độ bánh xe Linear_Kinect lớn BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 79 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ Để so sánh tốc độ hai bánh xe Linear_Kinect thay đổi có biểu đồ sau: Hình 5.32: Biểu đồ thể tốc độ bánh xe người di chuyển lại gần Robot Hình 5.33: Biểu đồ thể tốc độ bánh xe người di chuyển xa Robot Từ hình 5.32, 5.33 cho thấy Linear_Kinect thay đổi hai bánh xe Robot ln có tốc độ Đối với hình 5.32 đứng gần Robot với khoảng cách nhỏ 0,5m lúc tốc độ hai bánh xe Robot đứng yên Với hình 5.33 di chuyển xa Robot di chuyển tốc độ hai bánh xe tăng Từ nhận thấy Linear_Kinect điều khiển tốc độ bánh xe Robot dựa vào khoảng cách Robot người không giống Angular_Kinect điều khiển tốc độ bánh xe dựa vào góc quay BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 80 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ - Xét ảnh hưởng Kp_Linear đến thay đổi tốc độ bánh xe  Khi Kp_Linear = 0.1 Hình 5.34: Tốc độ bánh xe Kp_Linear 0.1  Khi Kp_Linear = 0.5 Hình 5.35: Tốc độ bánh xe Kp_Linear 0.5 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 81 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ  Khi Kp_Linear = Hình 5.36: Tốc độ bánh xe Kp_Linear Từ hình 5.34, 5.35, 5.36 thấy Kp_Linear ảnh hưởng lớn đến thay đổi tốc độ hai bánh xe, Kp_Linear lớn thay đổi nhanh, cụ thể thay đổi thấy rõ biểu đồ hình 5.37 Ban đầu ta đứng yên tùy theo khoảng cách mà Robot chạy nhanh hay chậm, di chuyển xa tốc độ hai bánh xe Robot bắt đầu tăng Ở hình 5.37(a) lấy Kp_Linear 0.1 ta thấy tốc độ thay đổi tốc độ hai bánh xe Robot thay đổi chậm di chuyển xa lại gần Robot, hình 5.37(b) lấy Kp_Linear 0.5 Kp_Linear tăng lên thấy thay đổi diễn nhanh hình 5.37(c) lấy Kp_Linear 1, tiếp tục tăng Kp_Linear lại thấy thay đổi lại diễn nhanh Vì từ ba hình thấy tăng Kp_Linear lớn tốc độ đáp ứng thay đổi tốc độ hai bánh xe Robot nhanh BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 82 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ b) a) 0) c) Hình 5.37: Biểu đồ so sánh ảnh hưởng Kp_Linear đến tốc độ bánh xe BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 83 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ - Xét di chuyển người thay đổi theo thời gian để thấy ảnh hưởng Linear_Kinect Cụ thể người liên tục di chuyển lại gần xa Robot tốc độ hai bánh xe hai tốc độ tăng giảm tuyến tính theo thay đổi người, theo kết hình 5.38 Hình 5.38: Sự thay đổi tuyến tính tốc độ bánh xe người di chuyển BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 84 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ CHUNG Trong suốt gần bốn tháng nghiên cứu, nỗ lực tìm hiểu tài liệu chun mơn, tài liệu tiếng Anh, tài liệu internet, với giúp đỡ, hướng dẫn tận tình Thầy Nguyễn Tấn Như, nhóm hồn thành đề tài tốt nghiệp với mơ hình Robot di chuyển theo người Với kết phân tích phần thấy Robot hoạt động ổn định theo yêu cầu đề tài Kết chạy thực tế đánh giá thực mơ phỏng, theo kết hình 5.39 Hình 5.39: Kết thực tế mơ đề tài Bên cạnh người di chuyển phạm vi nhận dạng Camera Kinect Robot di chuyển theo người di chuyển ngồi tầm kiểm sốt Camera Kinect Robot đứng lại Với kết chứng tỏ Camera Kinect tracking khung xương người Khi Robot nhận dạng khung xương người Robot khơng di chuyển theo người theo đường thẳng mà cịn quẹo cua, theo kết hình 5.40 BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 85 CHƯƠNG KẾT QUẢ, NHẬN XÉT ĐÁNH GIÁ Hình 5.40: Robot di chuyển thẳng quẹo cua Ngồi ra, nhóm tìm hiểu chức hoạt động số linh kiện có đề tài, lập trình ứng dụng kit Arduino, tìm hiểu ứng dụng thành công hệ điều hành ROS vào điều khiển thực tế Tuy nhiên, kiến thức nhóm cịn hạn hẹp nguồn tài liệu chủ yếu từ nước ngồi nên q trình hoạt động đề tài hạn chế Robot chưa hoạt động tốt bề mặt không phẳng, khối lượng Robot nặng ảnh hưởng đến việc di chuyển Chưa khai thác hết chức Camera Kinect BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 86 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Với cố gắng nỗ lực cá nhân nhóm, phân chia cơng việc hợp lí phối hợp nhịp nhàng hai thành viên nhóm kết đồ án hoàn thành thời gian qui định yêu cầu đặt đồ án Robot nhận diện di chuyển theo người hệ điều hành ROS Dù kết dừng lại mức mang tính chất tảng chủ yếu dựa vào thư viện có sẵn cộng đồng ROS hỗ trợ Và qua đồ án nhóm học nhiều kiến thức rút nhiều kinh nghiệm quý báo cách phối hợp làm việc nhóm, cách bố trí thời gian hợp lí, hiểu rõ khó khăn cần giải bắt tay vào nghiên cứu khoa học để khơng cịn ngỡ ngàng tới thành viên nhóm tự bước đường chọn tương lai 6.2 HƯỚNG PHÁT TRIỂN Với kiến thức chun mơn thời gian có hạn đề tài hoàn thành với yêu cầu đặt ban đầu, với đề tài mở rộng thêm như: - Trên Camera Kinect có động chân đế ta tận dụng để lập trình cho Robot tự động điều chỉnh theo chiều cao người - Khối lượng Robot cịn nặng phải sử dụng laptop điều khiển thay Laptop Rasberry Pi để lập trình cho Robot Robot nhỏ gọn BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 87 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Hồng Đức Nguyễn Văn Đức , “ Robot Tự Hành Tránh Vật Cản Sử Dụng Thiết Bị Kinect”, Đồ Án Tốt Nghiệp Đại Học, Trường ĐH Bách Khoa Tp.Hcm, 2012 [2] B Ilias, S.A Abdul Shukor, S Yaacob, A.H Adom and M.H Mohd Razali, “A Nurse Following Robot With High Speed Kinect Sensor”, ARPN Journal of Engineering and Applied Sciences, 12/2014 [3] Matteo Munaro, Filippo Basso and Emanuele Menegatti, “Tracking people within groups with RGB-D data”, 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, 10/2012 [4] J ¨ org St ¨ uckler and Sven Behnke, “Following Human Guidance to Cooperatively Carry a Large Object”, 2011 11th IEEE-RAS International Conference on Humanoid Robots,10/2011 [5] Usman Qayyum, “ROS Tutorial part 1,2,3” , video youtobe, 2012 [6] Jason M O’Kane, “A Gentle Introduction to Ros Book” 2014 [7] Nguyễn Tấn Lập Nguyễn Văn Nho, “Điều khiển robot từ xa dùng ROS”, Đồ Án Tốt Nghiệp Đại Học, Trường ĐH Sư Phạm Kỹ Thuật Tp.HCM, 7/2016 [8] Nhóm 11 Lớp K55M, “ Báo Cáo Tìm Hiểu Cảm Biến Kinect”, Trường ĐH Cơng Nghệ, 9/2016 [9] Tham khảo tài liệu, ví dụ trang web: http://wiki.ros.org/ROS/Tutorials, Open Source Robotics Foundation, thay đổi lần cuối lúc 03/12/2016 popibot BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 88

Ngày đăng: 13/06/2023, 21:50

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w