TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG THẠCH HOÀNG HIỆP LUẬN VĂN TỐT NGHIỆP XE TỰ HÀNH TRONG NHÀ DÙNG CẢM BIẾN LIDAR KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA TP. HỒ CHÍ MINH, 2021 TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG THẠCH HOÀNG HIỆP – 1711353 LUẬN VĂN TỐT NGHIỆP XE TỰ HÀNH TRONG NHÀ DÙNG CẢM BIẾN LIDAR AUTONOMOUS MOBILE ROBOT USING LIDAR SENSOR KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA GIẢNG VIÊN HƯỚNG DẪN HUỲNH VĂN KIỂM TP.
HỒ CHÍ MINH, 2021 TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ Độc lập - Tự do - Hạnh phúc BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG TP. NHẬN XÉT LUẬN VĂN TỐT NGHIỆP CỦA CÁN BỘ HƯỚNG DẪN Tên luận văn: XE TỰ HÀNH TRONG NHÀ DÙNG CẢM BIẾN LIDAR AUTONOMOUS MOBILE ROBOT USING LIDAR SENSOR Nhóm Sinh viên thực hiện: Cán bộ hướng dẫn: Thạch Hoàng Hiệp 1711353 Huỳnh Văn Kiểm Đánh giá Luận văn 1. Về cuốn báo cáo: Số trang __________ Số chương ___________ Số bảng số liệu __________ Số hình vẽ ___________ Số tài liệu tham khảo __________ Sản phẩm ___________ Một số nhận xét về hình thức cuốn báo cáo: ……………………………………………………………………………………………………………………………….
Về nội dung luận văn: ………………………………………………………………………………………………………………………………. Về tính ứng dụng: ………………………………………………………………………………………………………………………………. Về thái độ làm việc của sinh viên: ………………………………………………………………………………………………………………………………. Đánh giá chung: Luận văn đạt/không đạt yêu cầu của một luận văn tốt nghiệp kỹ sư, xếp loại Giỏi/ Khá/ Trung bình Điểm từng sinh viên: Thạch Hoàng Hiệp: ………./10 Cán bộ hướng dẫn (Ký tên và ghi rõ họ tên) TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.
HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ Độc lập - Tự do - Hạnh phúc BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG TP. NHẬN XÉT LUẬN VĂN TỐT NGHIỆP CỦA CÁN BỘ PHẢN BIỆN Tên luận văn: XE TỰ HÀNH TRONG NHÀ DÙNG CẢM BIẾN LIDAR AUTONOMOUS MOBILE ROBOT USING LIDAR SENSOR Nhóm Sinh viên thực hiện: Cán bộ phản biện: Thạch Hoàng Hiệp 1711353 Đánh giá Luận văn 5. Về cuốn báo cáo: Số trang __________ Số chương ___________ Số bảng số liệu __________ Số hình vẽ ___________ Số tài liệu tham khảo __________ Sản phẩm ___________ Một số nhận xét về hình thức cuốn báo cáo: ………………………………………………………………………………………………………………………………. Về nội dung luận văn: ……………………………………………………………………………………………………………………………….
Về tính ứng dụng: ………………………………………………………………………………………………………………………………. Về thái độ làm việc của sinh viên: ………………………………………………………………………………………………………………………………. Đánh giá chung: Luận văn đạt/không đạt yêu cầu của một luận văn tốt nghiệp kỹ sư, xếp loại Giỏi/ Khá/ Trung bình Điểm từng sinh viên: Thạch Hoàng Hiệp:………./10 Người nhận xét (Ký tên và ghi rõ họ tên) TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ Độc lập - Tự do - Hạnh phúc BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG TP.
ĐỀ CƯƠNG CHI TIẾT TÊN LUẬN VĂN: XE TỰ HÀNH TRONG NHÀ DÙNG CẢM BIẾN LIDAR Cán bộ hướng dẫn: Huỳnh Văn Kiểm Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 31/7/2021. Sinh viên thực hiện: Thạch Hoàng Hiệp – 1711353 Nội dung đề tài: Đề tài hướng đến robot có khả năng di chuyển linh hoạt hỗ trợ con người vận chuyển các thiết bị, hàng hoá giúp tiết kiệm thời gian, sức lực. Nội dung đề tài: - Thiết kế phần cứng robot có khả năng di chuyển linh hoạt. - Xây dựng phần mềm dựa trên nền tảng ROS và dữ liệu từ cảm biến Lidar: + Robot lập bản đồ môi trường trên thuật toán gmapping.
+ Điều hướng trên bản đồ đã dựng dựa vào thuật toán định vị bằng bộ lọc AMCL và thuật toán Dijkstra. + Robot tránh vật cản dựa vào thuật toán Dynamic Window Approach. Kế hoạch thực hiện: - Thiết kế phần cơ khí cho robot. - Tìm hiểu và cài đặt nền tảng ROS.
- Tính toán chọn linh kiện và thiết kế phần cứng cho robot: + Xây dựng thuật toán PID điều khiển 2 bánh xe robot. + Đọc dữ liệu từ cảm biến IMU. + Xây dựng gói giao tiếp giữa vi điều khiển và ROS. - Lập bản đồ với thuật toán gmapping.
- Điều hướng trên bản đồ đã dựng. Xác nhận của Cán bộ hướng dẫn TP. (Ký tên và ghi rõ họ tên) Sinh viên (Ký tên và ghi rõ họ tên) DANH SÁCH HỘI ĐỒNG BẢO VỆ LUẬN VĂN Hội đồng chấm luận văn tốt nghiệp, thành lập theo Quyết định số …………………… ngày …………………. của Hiệu trưởng Trường Đại học Bách khoa TP.
LỜI CẢM ƠN Quá trình thực hiện luận văn tốt nghiệp là một trong những giai đoạn quan trọng trong quãng đời mỗi sinh viên. Luận văn tốt nghiệp là tiền đề nhằm trang bị cho chúng em những kiến thức quý báu, trao dồi kỹ năng tự tìm hiểu, nghiên cứu trước khi lập nghiệp. Trước hết, em xin chân thành cảm ơn quý thầy, cô khoa Điện, điện tử. Đặc biệt là các thầy, cô trong bộ môn Tự động hóa đã tận tình chỉ dạy và trang bị cho em những kiến thức cần thiết trong suốt thời gian ngồi trên ghế giảng đường, làm nền tảng cho em có thể hoàn thành được đề tài luận văn này.
Em xin trân trọng cảm ơn thầy Huỳnh Văn Kiểm vì những chỉ dẫn, đánh giá, định hướng và những chia sẻ kinh nghiệm bổ ích của thầy từ đồ án tới luận văn, tạo điều kiện để em có thể hoàn thành tốt luận văn này. Những sự chỉ dẫn, định hướng ấy thực sự quý báu không chỉ trong quá trình thực hiện luận văn này mà còn là hành trang tiếp bước cho em trong quá trình học tập và lập nghiệp sau này. Và cuối cùng, xin gửi lời cảm ơn đến gia đình, bạn bè, những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập và cuộc sống. Hồ Chí Minh, ngày 31 tháng 7 năm 2021 Sinh viên Thạch Hoàng Hiệp MỤC LỤC TÓM TẮT LUẬN VĂN.
TỔNG QUAN VỀ ĐỀ TÀI. Định hướng cho đề tài. Mục tiêu của đề tài. Mục đích thực hiện đề tài luận văn.
Nhiệm vụ của luận văn. Phương pháp thực hiện. Giới thiệu về Robot Operating System. Tổng quan về nền tảng ROS dành cho robot.
Cấu trúc ROS. ROS Filesystem Level. ROS Computation Graph Level. ROS Community Level.
Thuật toán PID. Mô hình chuyển động. Mô hình quan sát. Các thuật toán trong Navigation stack.
Thuật toán Dijkstra. Thuật toán Dynamic Window Approach. Không gian tìm kiếm. Ước lượng vị trí với AMCL.
Thuật toán định vị Monte-Carlo. Bộ lọc thích nghi AMCL. THIẾT KẾ PHẦN CỨNG ROBOT. Tổng quan hệ thống phần cứng.
Sơ đồ tổng quát hệ thống. Thiết kế cơ khí cho xe. Máy tính Raspberry Pi 3B+. Kit phát triển STM32F407 Discovery.
Cảm biến Lidar. Lựa chọn động cơ DC. Lựa chọn cầu H điều khiển động cơ. Cảm biến IMU.
Nguồn pin cấp cho robot. Thiết kế chương trình nhúng. Điều rộng xung PWM khiển tốc độ động cơ qua cầu H L298N. Đọc encoder tính toán tốc độ động cơ.
Áp dụng thuật toán PID điều khiển tốc độ động cơ. Đọc cảm biến IMU. Giao tiếp nối tiếp giữa vi điều khiển STM32 và ROS. XÂY DỰNG PHẦN MỀM TRÊN NỀN TẢNG ROS.
Thiết lập gói khởi động cho robot. Xây dựng mô hình toán học ước lượng vị trí robot. Thiết lập gói khởi động “robot_bringup”. Thiết lập cây TF và mô hình URDF của robot.
Ứng dụng thuật toán SLAM để vẽ bản đồ môi trường. Tổng quan các gói cần thiết cho việc dựng bản đồ. Sử dụng package gmapping để dựng bản đồ. Thiết lập “robot_teleop” package điều khiển bằng bàn phím.
Tổng hợp các node trong dựng bản đồ. Điều hướng trên bản đồ đã dựng sử dụng navigation stack. Tổng quan Navigation stack. Thiết lập gói điều hướng cho robot.
Cấu hình chi tiết các thông số cho gói điều hướng. KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ. Môi trường thử nghiệm. Quá trình mapping và kết quả vẽ bản đồ.
Kết quả điều hướng trên bản đồ đã dựng. Hướng phát triển. 80 TÀI LIỆU THAM KHẢO. 81 DANH MỤC HÌNH VẼ Hình 1.1: Robot khử khuẩn bằng UV .1: Cộng đồng phát triển ROS trên thế giới .2: PR2 và turtlebot 3 là các robot ứng dụng thành công ROS .3: Cấu trúc ROS filesystem level .4: Mô hình giao tiếp cơ bản trong ROS .5: Mô hình giao tiếp giữa hai node .6: Mô hình thuật toán PID [4] .7: Trạng thái của robot theo mô hình xác suất .8: Mối quan hệ giữa khoảng cách đến chướng ngại vật và .9: Thuật toán Dijkstra để tìm đường đi ngắn nhất giữa a và b [9] .10: Quá trình tìm đường đi bằng thuật toán Dijkstra .11: Không gian tìm kiếm vận tốc của robot .12: Robot tự định vị với thuật toán MCL .1: Sơ đồ tổng quát phần cứng .2: Thiết kế tổng thể của khung xe .3: Mặt cạnh của khung xe .4: Mô hình robot sau khi hoàn tất thiết kế .5: Máy tính Raspberry Pi 3B+ .6: Kit STM32F407 Discovery .7: Cảm biến RPLidar A1 .8: Động cơ DC giảm tốc GM25-370 có encoder .9: Mạch điều khiển động cơ DC L298N .10: Cảm biến góc GY-25 MPU6050 .11: Xung PWM được điều chế với Duty Cycle khác nhau .12: Thuật toán PID điều khiển DC motor .13: Giao diện hiển thị điều chỉnh thông số PID .14: Đáp ứng hệ thống với KP = 0.15: Khung truyền giao tiếp giữa vi điều khiển và ROS .1: Mô hình ước lượng vị trí robot từ giá trị encoder .2: Hệ tọa độ base_link và laser_link trong mô hình robot .3: Mô tả từng bộ phận và khớp nối trong URDF [12] .4: Mô tả hình dạng, kích thước, vị trí của mô-đun [12] .5: Mô hình URDF của robot .6: Cây TF của robot .7: Quá trình tạo bản đồ của slam_gmapping .8: Bản đồ sau khi dựng .9: Sơ đồ các node và topic trong gmapping .10: Biểu đồ cây TF với gói slam_gmapping .11: Mối liên hệ giữa các node và topic trong gói navigation [8] .12: Sơ đồ mối quan hệ giữa các node trong gói điều hướng .1: Phòng thử nghiệm kết quả .2: Di chuyển của robot khi thực hiện dựng bản đồ.3: Bản đồ sau khi dựng .3: Bản đồ được đo vẽ .4: Chỉ định vị trí ban đầu cho robot .5: Chỉ định vị trí mục tiêu cho robot .6: Robot di chuyển đến mục tiêu .7: Robot tránh vật cản trên đường đi.
78 DANH MỤC BẢNG Bảng 2.1: Thuật toán Dijkstra [9] .1: Thông số kỹ thuật Pi 3B+ .2: Thông số kỹ thuật động cơ DC GM25-370 .3: Thông số kỹ thuật Encoder .4: Thông số kỹ thuật L298N.5: Thông số kỹ thuật GY-25 MPU6050 .7: Hàm đọc xung encoder .8: Giải thuật PID trong chương trình .9: Khung truyền dữ liệu cảm biến GY-25 MPU6050 .