TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP Thiết kế hệ điều khiển xe tự hành sử dụng bánh đa hướng trên nền tảng ROS NGUYỄN ĐỨC TIẾN Tien nd164066sis hust edu vn Ngành Kỹ thuật điều khiển và tự động hóa Chuyên ngành Tự động hóa công nghiệp Giảng viên hướng dẫn TS Nguyễn Mạnh Linh Bộ môn Tự động hóa công nghiệp Viện Điện HÀ NỘI, 012021 Chữ ký của GVHD ii iii ĐỀ TÀI TỐT NGHIỆP Thiết kế hệ điều khiển xe tự hành sử dụng bánh xe đa hướng trên nền tảng ROS Giáo viên hướng dẫn Ký và ghi rõ họ t.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP Thiết kế hệ điều khiển xe tự hành sử dụng bánh đa hướng tảng ROS NGUYỄN ĐỨC TIẾN Tien.nd164066@sis.hust.edu.vn Ngành Kỹ thuật điều khiển tự động hóa Chun ngành Tự động hóa cơng nghiệp Giảng viên hướng dẫn: TS Nguyễn Mạnh Linh Chữ ký GVHD Bộ mơn: Viện: Tự động hóa cơng nghiệp Điện HÀ NỘI, 01/2021 ii ĐỀ TÀI TỐT NGHIỆP Thiết kế hệ điều khiển xe tự hành sử dụng bánh xe đa hướng tảng ROS Giáo viên hướng dẫn Ký ghi rõ họ tên iii iv Lời cảm ơn Sau thời gian học tập nghiên cứu, em cố gắng để hoàn thành đồ án tốt nghiệp Để có báo cáo hồn thiện này, em xin gửi lời cảm ơn tới thầy cô viện Điện tạo điều kiện cho em học tập, nghiên cứu phát triển kỹ cần thiết Đặc biệt em xin chân thành cảm ơn sâu sắc tới TS Nguyễn Mạnh Linh với bạn nhóm lab WSR giúp đỡ em thời gian làm đồ án tốt nghiệp để em hồn thành đồ án cách tốt Tóm tắt nội dung đồ án Đề tài xây dựng tảng hệ điều hành dành cho robot (ROS – Robot Operating System), hệ điều hành mã nguồn mở tích hợp nhiều công cụ, thư viện lớn đông đảo nhà khoa học, cơng ty, phịng thí nghiệm khắp giới ROS dần trở thành tảng phổ biến sử dụng rộng rãi để nghiên cứu, chế tạo, phát triển robot Xe tự hành nhà bắt đầu có nhiều ứng dụng công nghiệp lĩnh vực khác Đây hướng mang tính trọng tâm tảng ROS Đây quy trình thực để hoàn thành mục tiêu đề tài : - Tìm hiểu hệ điều hành ROS - Nghiên cứu mơ q trình xây dựng đồ điều hướng đồ có sẵn Gazabo kết hợp với ROS - Thiết lập phần cứng di động (Mobile base) cho hệ thống dùng vi điều khiển PIC32MK(32bit) - Thiết lập hệ điều hành Ubuntu, ROS máy tính cá nhân - Đọc cảm biến lidar A1 giao tiếp với phần cứng di động - Tích hợp hệ thống để xây dựng đồ điều hướng đồ dựng dựa hệ thống xây dựng - Hiệu chỉnh thơng số gói ứng dụng thiết lập môi trường ROS Sinh viên thực Ký ghi rõ họ tên v MỤC LỤC CHƯƠNG TỔNG QUAN ĐỀ TÀI 1.1 Định hướng cho đề tài 1.2 Mục tiêu đề tài 1.3 Đối tượng phạm vi nghiên cứu 1.4 Các bước thực đề tài CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Hệ điều hành ROS (Robot Operating System) Giới thiệu tổng quan hệ điều hành ROS Các thông tin khác Mơ hình ROS Các package quan trọng ROS 10 2.2 Các kiến thức Robotics 18 Hệ tọa độ 18 Khung tọa độ 18 Odomertry 19 Pose 19 2.3 SLAM Navigation 20 Định vị robot (Robot Localization) 20 Xây dựng đồ (Robot Mapping) 20 SLAM (Simulatanous Localization and Mapping) 20 Dẫn đường (Robot Navigation) 21 2.4 Thuật toán Dijkstra cho global planner 21 2.5 Thuật toán Dynamic Window Approach 24 Khơng gian tìm kiếm 25 Tối ưu 27 2.6 Mơ hình động học Robot 27 Khung tọa độ gốc (𝑭𝑾) khung Robot (𝑭𝑹) 27 Khung tọa độ Robot khung bánh xe (𝑭𝒊) 28 CHƯƠNG THIẾT KẾ CHI TIẾT 30 3.1 Thiết kế chi tiết phần nguồn 30 Yêu cầu chức 30 Lựa chọn linh kiện 30 vi 3.2 Thiết kế chi tiết khối điều khiển trung tâm 30 Yêu cầu chức 30 Lựa chọn linh kiện 30 Nguyên lý hoạt động 31 Phân tích chức chi tiết package 32 3.3 Thiết kế chi tiết khối vi điều khiển 34 Yêu cầu chức 34 Lựa chọn linh kiện 34 Nguyên lý hoạt động 43 3.4 Thiết kế khối sensor 43 Yêu cầu chức 43 Lựa chọn linh kiện phân tích thiết kế 43 3.5 Thiết kế chi tiết khối động bánh xe 47 Yêu cầu chức 47 Tính tốn lựa chọn linh kiện phân tích thiết kế 47 CHƯƠNG TRIỂN KHAI VÀ KẾT QUẢ 51 4.1 Lựa chọn công cụ thực 51 4.2 Kế hoạch triển khai kiểm tra 51 Kiểm tra chất lượng nguồn acquy 51 Thực đọc liệu từ cảm biến 51 Kiểm tra khả robot 51 4.3 Kết đạt 52 Chất lượng nguồn acquy 52 Dữ liêu đọc từ cảm biến 52 Kết hoạt động xe 54 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57 ❖ Những việc làm 57 ❖ Hướng phát triển đồ án tương lai 57 TÀI LIỆU THAM KHẢO 58 PHỤ LỤC 59 vii DANH MỤC HÌNH VẼ Hình 2.1 Biểu tượng ROS Hình 2.2 Cấu trúc Filesystem ROS Hình 2.3 Cấu trúc chung ROS packages Hình 2.4 Các thành phần tầng ROS Computaion Graph Hình 2.5 Ví dụ chức ROS Master Hình 2.6 Chức năng, hoạt động Topic Hình 2.7 Chức năng, hoạt động ROS Service Hình 2.8 Mối quan hệ thành phần tầng ROS Computaion Graph Hình 2.9 Một số phiên ROS giai đoạn khác 10 Hình 2.10 Sơ đồ hoạt động package move_base 11 Hình 2.11 Bản đồ costmap ROS 12 Hình 2.12 Giá trị chi phí ảnh hưởng đén hoại động robot 13 Hình 2.13 Broadcasting listening tf package 16 Hình 2.14 Ví dụ sử dụng tf broadcasting stastic tf 17 Hình 2.15 Hệ trục tọa độ gồm ấm trà, robot, bàn 18 Hình 2.16 Tư robot (x,y,θ) 19 Hình 2.17 Các ứng dụng SLAM 21 Hình 2.18 Ví dụ thuật tốn Dijkstra 22 Hình 2.19 Ví dụ thuật tốn Dijkstra 23 Hình 2.20 Ví dụ thuật toán Dijkstra 23 Hình 2.21 Ví dụ thuật toán Dijkstra 24 Hình 2.22 Hoạch định đường dùng thuật tốn Dijkstra 24 Hình 2.23 Ví dụ tình 25 Hình 2.24 khơng gian vận tốc DWA 26 Hình 2.25 Vận tốc cửa sổ động Vd 26 Hình 2.26 Heading robot DWA 27 Hình 2.27 Khung tọa độ Robot khung tọa đô gốc 28 Hình 2.28 Khung tọa độ bánh xe khung tọa độ Robot 28 Hình 3.1 Sơ đồ nguyên lý hoạt đồn package thực thi máy tính PC 31 Hình 3.2 Tổng quan cấu trúc khối vi điều khiển 34 Hình 3.3 Vi điều khiển PIC32MK1024MCF064 35 Hình 3.4 Sơ đồ khối vi điều khiển 36 Hình 3.5 Bản vẽ 3D mạch điều khiển động 36 Hình 3.6 Sơ đồ nguyên lý khối nguồn 37 Hình 3.7 Sơ đồ nguyên lý khối điều khiển động 38 viii Hình 3.8 Sơ đồ ngun lý khối truyền thơng39Hinh 3.9 Bản vẽ 3D mạch thu thập tín hiệu sensor 40 Hình 3.10 Sơ đồ nguyên lý khối đọc encoder 40 Hình 3.11 Sơ đồ nguyên lý đọc cảm biến gia tốc 41 Hình 3.12 Sơ đồ nguyên lý khối đọc cảm biến siêu âm 42 Hình 3.13 Sơ đồ khối hoạt động khối điều khiển động 43 Hình 3.14 Cảm biến MPU6050 44 Hình 3.15 Cảm biến Lidar A1 45 Hình 3.16 Cảm biến siêu âm SRF05 45 Hình 3.17 Cảm biến địn h vị GPS Neo 6M 46 Hình 3.18 Bộ servo 8Nm JMC 2HSS86H + 86J18118 48 Hình 3.19 Bánh xe mecanum 49 Hình 3.20 Cách điều hướng xe sử dụng bánh mecanum 50 Hình 3.21 Sơ đồ thực thi động 50 Hình 4.1 Dữ liệu nhận từ encoder 52 Hình 4.2 Dữ liệu nhận từ lidar A1 53 Hình 4.3 Dữ liệu từ cảm biến IMU 53 Hình 4.4 Dữ liệu cảm biến SRF05 54 Hình 4.5 Tạo kế hoạch đường 54 Hình 4.6 Khả lấp kế hoạch tránh vật cản 55 Hình 4.7 Độ xác Odometry 55 Hình 4.8 Hình ảnh động bánh xe 56 Hình 4.9 Hình ảnh tổng thể xe 56 ix DANH MỤC BẢNG BIỂU Bảng 2.1 File costmap_common_params.yaml 14 Bảng 2.2 File global_costmap_params.yaml 15 Bảng 2.3 File local_costmap_params.yaml 15 Bảng 2.4 File base_local_planer_params.yaml 16 Bảng 2.5 Tham số bốn bánh xe 29 Bảng 3.1 Bảng thông số máy tính Asus FX505GD 30 DANH MỤC CHỮ VIẾT TẮT ROS SLAM DWA DOF PWM Robot Operating System Simulatanous Localization and Mapping Dynamic Window Approach Degrees of freedom Pulse Width Modulation x Hình 3.20 Cách điều hướng xe sử dụng bánh mecanum Hinh 3.21 Sơ đồ thực thi động Xe sử dụng bánh xe mecanum để di chuyển với 12 hướng khác hướng sẻ tương ứng với vận tốc khác Bộ điều khiển trung tâm gửi vận tốc mong muốn bánh xe xuống mạch điều khiển, vi điều khiển Pic chuyển tín hiệu thành dạng PWM với tần số khác cho driver hybrid servor 2HSS86H điều khiển động servo 86J1880EC Bộ encoder động gửi lại tín hiệu encoder động lên vi điều khiển gửi lại lên điều khiển trung tâm để tính tốn vận tốc thực tế động từ xử lý điều chỉnh vận tốc để truyền lại cho động để di chuyển vận tốc mong muốn 50 CHƯƠNG TRIỂN KHAI VÀ KẾT QUẢ Ở chương trình bày kế hoạch triển khai kết đạt Việc đo đạc tham số hệ thống so sánh với sản phẩm khác trình bày Việc so sánh kết với tiêu kỹ thuật ban đầu 4.1 Lựa chọn công cụ thực Sử dụng hệ điều hành Ubuntu 18.04 ROS hoạt động tốt tảng hệ điều hành Đối với công cụ code sử dụng MPLAB IDE X Visual studio code để code 4.2 Kế hoạch triển khai kiểm tra Kiểm tra chất lượng nguồn acquy Kết nối nguồn cho máy tính PC cho động cơ, hoạt động liên tục để kiểm tra chất lượng nguồn chạy bao lâu? Kiểm tra xem nguồn acquy có hoạt động ổn định khơng? Thực đọc liệu từ cảm biến Encoder Thực truyền lệnh điều khiển động để xác định vận tốc góc tối thiểu vận tốc góc tối đa bánh xe Kiểm tra tín hiệu truyền có bị gián đoạn hay bị tín hiệu không? Cảm biến lidar A1 Kiểm tra khả quét vật thể lidar xem có qt hay khơng? Kiểm tra tầm quét lidar bao nhiêu? Cảm biếm IMU6050 Kiểm tra xem liệu góc cảm biến có bị sai lệch nhiều khơng? Các liệu vận tóc góc, gia tốc góc có bị nhiễu nhiều hay không? Cảm biến siêu âm SRF05 Kiểm tra xem khả đo khoảng cách với vật cản trước có thỏa mãn không? Kiểm tra khả robot Kiểm tra khả lập kế hoạch di chuyển Trên phần mềm rviz, chọn điểm đích đến cho xe xem đường kế hoạch mà xe tạo Cho xe đoạn lại tiếp tục chọn điểm đích đến khác để xem kế hoạch khác xe Nếu đường tối ưu thuật tốn ROS thông số cài đặt hoạt động tốt kiểm tra khả tránh vật cản Trong trình đến điểm đích mà chọn phần mềm rviz, đặt vật cản đường để xem xe có nhận diện vật cản trước mặt có tạo đường khác hay khơng? Xem đường có tối ưu hay khơng? Nếu tối ưu có nghĩa xe hoạt động tốt 51 kiểm tra khả thẳng Chọn vận tốc mong muốn cho bánh băm xung PWM cho động bánh xe thẳng Khi xe di chuyển, quan sát giá trị độ lệch góc trả để xem xe có thực thẳng hay không? Nếu độ lệch góc ổn định xe thẳng Nếu góc lệch nhiều lệch liên tục xe lệch cần phải chỉnh lại Kiểm tra độ xác Odometry Cho xe di chuyển hiển thị hai thông tin Odometry phần mềm rviz, Odometry (của topic /odom) tính tốn từ encoder động Odometry thứ hai hợp /odom /imu/data (topic /odometry/filter) so sánh trực quan hai đường hiển thị Cho xe chạy đẩy làm cho xe bị lệch tức thời đoạn xem đường Odometry thay đổi Odometry hợp có xác hay không? 4.3 Kết đạt Chất lượng nguồn acquy Nguồn cho máy tính PC chạy liên tục tối đa 2h, nguồn cho động chạy 1.5h Tuy nhiên lần kiểm tra thời gian dùng acquy bị giảm đôi chút sử dụng thời gian Dữ liêu đọc từ cảm biến Dữ liệu từ encoder Hình 4.1 Dữ liệu nhận từ encoder Hình 4.1 Dữ liệu vận tốc động theo dõi module QEI vi điều khiển Pic32Mk gửi lên PC, cấp xung PWM với tần số f =483 (Hz) 52 Dữ liệu lidar A1 Hình 4.2 Dữ liệu nhận từ lidar A1 Hình 4.2 mơ tả liệu lidar A1, đường bao màu đỏ vật cản quét đường bao màu đen lần quét mặc định ban đầu dùng để lưu đồ Các đường thay đổi q trình qt ta bỏ vật cản xe di chuyển tới địa hình quét điểm Tất đường đen cập nhật lưu lại để xây dựng đồ Dữ liệu từ IMU Hình 4.3 Dữ liệu từ cảm biến IMU Hình 4.3: Dữ liệu đọc từ cảm biếm IMU6050 thông qua vi điều khiển Pic gửi lên máy tính PC linear_acceleration liệu gia tốc, angular_velocity liệu góc quay 53 Dữ liệu từ cảm biến siêu âm SRF05 Hình 4.4 Dữ liệu cảm biến SRF05 Hình 4.4: Dữu liệu đọc mạch thu thập tín hiệu sensor gửi lên máy tính PC, hình 4.4 bên trái khoảng cách khơng có vật cản trước, hình 4.4 bên phải có vật cản khoảng 6cm Kết hoạt động xe 4.3.3.1 Khả lập kế hoạch di chuyển Hình 4.5 Tạo kế hoạch đường Hình 4.5 mơ tả khả lập kế hoạch đường đi, có đường Đường xanh dương giả định thay đổi gặp vật cản đường màu xanh đường vạch định cụ thể thay đổi xe bắt đầu chạy đến điểm 54 Khả tránh vật cản Hình 4.6 Khả lấp kế hoạch tránh vật cản Hình 4.6 mơ tả khả lập kế hoạch gặp vật cản hệ thống Như nói trên, đường màu xanh dương gặp vật cản thay đổi cụ thể trường hợp biến khơng thể tìm đường đến địa điểm định Trong đường màu xanh giữ nguyên xe chưa di chuyển để tránh vật cản Độ xác Odometry Hình 4.7 Độ xác Odometry Hình 4.7 mơ tả hướng Odometry Thơng thường ban đầu chạy, giá trị Odometry trùng với gốc hệ tọa độ base_footprint; nhiên trình chạy có sai số chuyển đổi gặp môi trường di chuyển không phẳng Odometry bị lệch 55 Mơ hình thực tế xe Hình 4.9 Hình ảnh tổng thể xe Hình 4.8 Hình ảnh động bánh xe 56 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ❖ Những việc làm Sau kì học thực việc tìm hiểu ROS, phân tích thiết kế sản phẩm mang tính thực tế Mặc dù sản phẩm nhiều vấn đề cẩn phải khắc phục kết mà em thực Sản phẩm đáp ứng phần so với mục đích đề lúc đầu thẳng, tự quét vật cản, xây dựng đồ tránh vật cản Tuy nhiên nhiều điều mà em cịn thiếu sót chưa cải thiện độ nhiễu sản phẩm, thuật toán thực thi ❖ Hướng phát triển đồ án tương lai Xe cịn nhiều thứ phát triển Trong tương lai tới thiết kế thực thi thuật tốn để hồn thiện thêm hệ thống như: áp dụng lọc để lọc nhiễu tín hiệu, sử dụng thuật tốn xử lý tín hiệu để liệu mịn Đặc biệt lắp đặt thêm camera 3D để nhận diện vật thể 3D để dị đường tránh vật cản tốt Xe tai chưa có khả lùi chuồng để xạc tự động xe hết điện tương lai cần thiết kế để xe tự quay lại chuồng để xạc tự động 57 TÀI LIỆU THAM KHẢO ROS, "Robot Operating System Wiki," Global planner, [Online] Available: http://wiki.ros.org/global_planner ROS, " Robot Operating System," Costmap 2D, [Online]Available : [2] http://wiki.ros.org/costmap_2d [1] [3] I Charles River Analytics, "robot_localization," [Online] Available: http://docs.ros.org/lunar/api/robot_localization/html/ [4] Wiki, "Robot Operating System Wiki," Navigation, [Online] Available: http://wiki.ros.org/navigation/Tutorials/RobotSetup D A Wikipedia, "Wikipedia," [Online] Available:https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm ROS, "Robot Operating System," [6] [Online] Available: http://www.ros.org/is-ros-for-me/ [5] 58 PHỤ LỤC Hướng dẫn sử dụng để chạy sản phẩm xe tự hành : Bước 1: Thực cài đặt ROS Ubuntu, cài đặt số package cần thiết Bước 2: Mở tab Terminal (sử dụng tổ hợp phím Ctrl+Alt+N) Gõ lệnh sau : Roslaunch linorobot bringup.launch Bước 3: Mở thêm tab Terminal mới, Sau gõ lệnh : Roslaunch linorobot navigate.launch Bước 4: Trên hình Rviz thị ra, chọn điểm đích hướng di chuyển xe, chọn 2D Goal Nav click chuột kéo để xác định hướng File bringup.launch :