Sử dụng IMU và LIDAR phục vụ xe tự hành trên môi trường ROS

73 437 3
Sử dụng IMU và LIDAR phục vụ xe tự hành trên môi trường ROS

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP SỬ DỤNG IMU VÀ LIDAR PHỤC VỤ XE TỰ HÀNH TRÊN MÔI TRƯỜNG ROS Giảng viên hướng dẫn: ThS MAI CƯỜNG THỌ Sinh viên thực hiện: NGUYỄN TUẤN ĐẠT - 58131281 TRẦN TRƯƠNG NGỌC SƠN - 58133435 Khánh Hòa - 2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP SỬ DỤNG IMU VÀ LIDAR PHỤC VỤ XE TỰ HÀNH TRÊN MÔI TRƯỜNG ROS Giảng viên hướng dẫn: ThS MAI CƯỜNG THỌ Sinh viên thực hiện: NGUYỄN TUẤN ĐẠT - 58131281 TRẦN TRƯƠNG NGỌC SƠN - 58133435 Khánh Hòa – Tháng 6/2020 LỜI MỞ ĐẦU Cuộc cách mạng 4.0 làm thay đổi mạnh mẽ ngành công nghiệp, đặc biệt lĩnh vực công nghệ ô tô Từ mảng “xe tự hành” tất hãng xe khắp giới quan tâm phát triển công nghệ liên quan đến mảng Đi đầu mảng “xe tự hành”, tập đoàn FPT triển khai dự án liên quan đến lĩnh vực automotive đạt nhiều kết khả quan Một số dự án thi lập trình xe tự hành dành cho sinh viên tồn quốc, tạo sân chơi cho sinh viên tiềm thỏa sức thể lực Từ làm tảng nói vào ngày khơng xa xe tự hành lăn bánh đường phố Việt Nam Về bản, tự hành khả cỗ máy thực nhiệm vụ mà khơng cần đến điều khiển người, hiểu cỗ máy có khả phản ứng cách thông minh với môi trường xung quanh Vậy xe tự hành xe tự lái đến địa điểm mục tiêu xác định, có khả tránh né vật cản, xác định đường đồng thời tuân theo hiệu lệnh giao thông đường Đối với việc phát triển xe tự hành phần mềm đóng vai trị quan trọng nhất, ví não xe, xe tự hành điều khiển 100% phần mềm Các nghiên cứu xe tự hành tập trung vào hai lĩnh vực là: Phát đường nhận dạng đối tượng Nhận dạng đối tượng phần quan trọng xe tự hành, gần cơng nghệ có bước phát triển lớn nhận dạng đối tượng xe đạp, người bộ, ô tô … Việc nhận dạng vật thể xác đinh vị trí tơ tham gia giao thơng vấn đề quan trọng xe tự hành Để xe tự hành hoạt động đường phố, yêu cầu xử lý nhận dạng vật thể xung quanh xe yêu cầu thiết yếu với độ xác gần tuyệt đối, giúp xe tránh né loại vật cản động, vật cản tĩnh hay quan trọng hết người tham gia giao thông Hiện nay, nước ta lĩnh vực chưa nhiều người nghiên cứu ứng dụng Vì chúng tơi chon đề tài “SỬ DỤNG IMU VÀ LIDAR PHỤC VỤ XE TỰ HÀNH TRÊN MÔI TRƯỜNG ROS” để làm đồ án tốt nghiệp Đề tài nghiên cứu sử dụng thiết bị cảm biến IMU LiDAR xử lý qua môi trường ROS (Robot Operating System) để giải toán đặt hỗ trợ cho xe tự hành, qua trình nghiên cứu thực nghiệm cho kết tốt CAM ĐOAN CỦA SINH VIÊN Chúng xin cam đoan cơng trình nghiên cứu chúng tơi hướng dẫn khoa học ThS Mai Cường Thọ Các nội dung nghiên cứu, kết đề tài trung thực chưa công bố hình thức trước Những nội dung phần khảo sát, phân tích, nhận xét đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngồi ra, đồ án cịn tham khảo phần mềm nhóm tác giả khác có trích dẫn thích nguồn gốc Nếu phát có gian lận chúng tơi xin hồn tồn chịu trách nhiệm nội dung đồ án Trường Đại Học Nha Trang không liên quan đến vi phạm tác quyền, quyền gây trình thực Nha Trang, tháng 07 năm 2019 Sinh viên Sinh viên Nguyễn Tuấn Đạt Trần Trương Ngọc Sơn LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tri ân sâu sắc thầy cô giảng dạy em suốt thời gian học tập khoa công nghệ thông tin trường Đại Học Nha Trang, đặc biệt em xin cảm ơn tới THS Mai Cường Thọ tạo điều kiện giới thiệu cho chúng em thi Cuộc Đua Số nhiệt tình hướng dẫn em hồn thành đồ án Em xin chân thành cảm ơn giúp đỡ anh chị tập đoàn FPT Software tạo điều kiện cho em có sân chơi thi đua, học hỏi kinh nghiệm, tìm hiểu cung cấp kiến thức tài liệu cho em trình thi đua làm đồ án Trong trình học tập, trình làm đồ án, khó tránh khỏi sai sót, mong thầy, bỏ qua Đồng thời trình độ lý luận kinh nghiệm thực tiễn hạn chế nên báo cáo đồ án tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp thầy, cô để em học hỏi thêm nhiều kinh nghiệm Em xin chân thành cảm ơn! Sinh viên Sinh viên Nguyễn Tuấn Đạt Trần Trương Ngọc Sơn TÓM TẮT ĐỒ ÁN Bài viết chia thành chương Chương I: Tổng quan đề tài: Phần trình bày lý chọn đề tài này, yêu cầu đề tài tổng quan phương pháp nghiên cứu hoạt động Chương II: Cơ sở lý thuyết: Tổng quan ROS (Robot Operation System) Mục tập trung giới thiệu ROS thành phần cấu trúc hệ thống hệ điều hành ROS - ROS hệ điều hành phổ biến lĩnh vực xe tự hành hệ thống robot - ROS phân phối Linux, tùy biến để sử dụng lập trình cho xe tự lái, robot … Phần giới thiệu qua cách tiếp cận với ROS thư viện bên ROS để phục cho việc lập trình xe tự hành Tổng quan cảm biến IMU LiDAR Đối với xe tự hành, vai trò hệ thống “giác quan” quan trọng Một xe tự hành tích hợp nhiều cảm biến thiết bị cảm biến đo lường qn tính, khoảng cách, hình ảnh, GPS… Mục tập trung giới thiệu số lý thuyết, cấu trúc, khái quát cách hoạt động ứng dụng IMU LiDAR Đồng thời đề cập đến số nhược điểm sử dụng IMU, đưa số lọc để giải vấn đề IMU Giới thiệu thiết bị cảm biến mà nghiên cứu để thực đồ án MPU9250 thiết bị IMU sử dụng phổ biến phục vụ việc xác định vị trí xe LiDAR A2 thiết bị quét laser dùng để xác định khoảng cách từ thiết bị đến mục tiêu Phần chúng tơi nói qua số thơng tin sau: - Sơ đồ kết nối MPU9250 LiDAR Nguyên lý hoạt động MPU9250 LiDAR Sử dụng giao diện I2C giúp MPU9250 giao tiếp với thiết bị bên Đặc điểm kỹ thuật LiDAR A2 Bộ lọc Kalmam Filter Phần giới thiệu lọc Kalman Filter - Nguyên lý thực Giới thiệu SLAM Chương III: Ứng dụng IMU LiDAR vào xe tự hành - Kalman Filter toán rời rạc Nguyên lý hoạt động SLAM - Kết hợp SLAM KF Ứng dụng LiDAR vào xe tự hành - Ứng dụng IMU vào xe tự hành Chương IV: Kết luận hướng phát triển Phần trình bày kết đạt áp dụng kiến thức, hướng phát triển tương lai MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài 1.2 Yêu cầu đề tài 1.3 Giải pháp nghiên cứu CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Tổng quan ROS 2.1.1 Giới thiệu ROS 2.1.2 Một số thành phần ROS 2.1.3 ROS COMPUTATION GRAPH LEVEL 2.1.4 Làm việc ROS 2.2 Tổng quan cảm biến IMU LiDAR 11 2.2.1 Bộ cảm biến IMU 11 2.2.2 Bộ cảm biến LiDAR 15 2.3 MPU9250 16 2.3.1 Giới thiệu chung 16 2.3.2 Kết nối hệ thống .17 2.3.3 Nguyên lí hoạt động 19 2.3.4 Giải pháp MPU-9250 sử dụng giao diện I2C 20 2.3.5 Định hướng trục MPU-9250 .21 2.4 LIDAR A2 22 2.4.1 Giới thiệu chung 22 2.4.2 Đặc điểm kỹ thuật 26 2.5 Bộ lọc Kalman Filter 29 2.5.1 Giới thiệu chung 29 2.5.2 Bộ lọc Kalman filter cho toán rời rạc 30 2.6 SLAM 32 2.6.1 Giới thiệu SLAM 32 2.6.2 Nguyên lý hoạt động SLAM 33 2.6.3 SLAM dựa lọc Kalman filter mở rộng 34 2.6.4 Hiện trạng SLAM 38 CHƯƠNG ỨNG DỤNG IMU VÀ LIDAR VÀO XE TỰ HÀNH 39 3.1 Giới thiệu thiết bị hướng xử lý 39 3.1.1 Giới thiệu thiết bị .39 3.1.2 Hướng xử lý 40 3.2 Ứng dụng LiDAR vào xe tự hành 40 3.2.1 Phân tích liệu 40 3.2.2 Tổ chức lưu trữ liệu 43 3.2.3 Xử lý liệu 43 3.3 Ứng dụng IMU vào xe tự hành 45 3.3.1 Phân tích liệu 45 3.3.2 Thu thập liệu tạo map 45 3.3.3 Theo dõi vị trí xe theo thời gian thực 48 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50 4.1 Kết luận 50 4.2 Những vấn đề hạn chế sau thực đề tài 50 4.3 Hướng phát triển 51 PHỤ LỤC 53 DANH MỤC CÁC TỪ VIẾT TẮT ▪ ▪ ROS - Robot Operation System BSD - Berkeley Software Distribution ▪ VSC - Version System Control ▪ ▪ SLAM - Simultaneous Localization and Mapping EKF - Extended Kalman filter ▪ ▪ RANSAC - Random Sampling Consensus RBPF - Rao-Blackwellization Particle Filter ▪ ▪ ▪ PF - Particle Filter MEMS - Micro-Electro-Mechanical Systems ADCs - Analog-to-Digital Converter ▪ ▪ DMP - Digital Motion Processor™ FIFO - First-In-First-Out ▪ ▪ ▪ MIPS - First-In-First-Out DSP - Digital Signal Processor ACC - Adaptive Cruise Control Qua hình 3.14 ta thấy lấy liệu thô từ IMU giá trị cho kết không ổn định, tích lỗi qua trình lấy liệu lớn Dữ liệu sau qua lọc Kalman Filter hình 3.15 thể hiện, giá trị cho có độ xác ổn định gấp nhiều lần so với liệu thô Tuy nhiên, liệu sau lọc cịn nhiễu tham số lọc chưa chuẩn xác Cần nhiều thời gian để tìm tham số chuẩn lọc cho đầu vào 3.3.2.3 Xây dựng sa hình ảo Đầu tiên khởi tạo sa hình ảo: - Map ảo có kich thước 700x700 pixel - Điểm bắt đàu xe sa hình ảo (375, 375) trung tâm map average góc từ trường xe đứng yên pos vị trí xe (375, 375) - _pos vị trí kế trước xe (375, 375) v = (vận tốc xe) imuAngle góc từ trường IMU Cơng thức tạo sa hình ảo với tỉ lệ 1/10 𝑣 = 𝑣0 + 𝑎𝑡 (3.5) 𝑝𝑜𝑠 𝑥 = 𝑣 ∗ 𝑠𝑖𝑛(𝑖𝑚𝑢𝐴𝑛𝑔𝑙𝑒 − 𝑎𝑣𝑒𝑟𝑎𝑔𝑒)/10.0 (3.6) 𝑝𝑜𝑠 𝑦 = −𝑣 ∗ 𝑠𝑖𝑛(𝑖𝑚𝑢𝐴𝑛𝑔𝑙𝑒 − 𝑎𝑣𝑒𝑟𝑎𝑔𝑒)/10.0 (3.7) 47 Hình 3.11: Sa hình ảo dựng từ liệu thu thập đồ vòng chung kết Cuộc đua số mùa năm 2018-2019 3.3.3 Theo dõi vị trí xe theo thời gian thực Để theo dõi chuyển động xe theo thời gian thực xa hình ảo, lưu map tạo vào vector điểm Áp dụng công thức 3.5-3.7 để ánh xạ vị trí xe lên hình ảo Từ vị trí ánh xạ xe sa hình ảo, tạo vùng quan tâm hình vng xung quanh vị trí xe để kiểm tra vị trí đặc biệt cách tính điểm giao vector điểm sa hình ảo vùng quan tâm Cách xét: Xét cạnh vùng quan tâm, tìm thấy: - điểm: Xe đoạn đường thẳng điểm: Xe ngã ba điểm: Xe ngã tư 48 Hình 3.12: Đi thẳng Hình 3.13: Ngã 49 CHƯƠNG 4.1 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Trong thời gian thực đồ án này, chúng tơi hồn thành yêu cầu đặt ra, cụ thể sau: - Tìm hiểu LiDAR IMU, cần thiết hệ thống cảm biến cảm giác thiết bị tự hành - Tìm hiểu mơi trường ROS (Robot Operating System) hệ thống phần mềm chuyên dụng để lập trình điều khiển robot - Tìm hiểu ngơn ngữ lập trình C++, python phục vụ lập trình nhúng - Nhận diện vật cản cách sử dụng LiDAR Xây dựng lộ trình cách sử dụng IMU Từ nhóm kết sau: - Sử dụng LiDAR để nhận diện loại vật cản tĩnh vật cản động xe di chuyển - Sử dụng IMU để tạo sa hình ảo từ ánh xạ vị trí xe lên xa hình thật - Người thực học hỏi thêm kiến thức xử lý thiết bị nhúng, môi trường ROS điều khiển thiết bị tự động Về kết thu đồ án, áp dụng vào sản phẩm xe tự hành thi “Cuộc Đua Số 2019 – 2020” Hiện xe né vật cản xác định vị trí xe sa hình với kết tương đối tốt 4.2 Những vấn đề hạn chế sau thực đề tài Do điều kiện thử nghiệm có hạn, môi trường liệu giới hạn phục vụ thi Cuộc đua số, đề tài tổng hợp từ nhiều lĩnh vực nên đề tài số hạn chế như: - Đề tài chưa ứng dụng vào điều kiện xe thực tế, dừng mức xe mơ hình sa bàn mẫu - Việc nhận diện loại vật cản chưa mức tuyệt đối, đặc biệt xe di chuyển với tốc độ cao độ xác chương trình - Việc sử dụng đôc lập IMU để xây dựng sa hình cho độ xác mức trung bình Vì thiết bị IMU tích lỗi cịn lớn xử lý qua lọc - Thiết bị LiDAR sử dụng quét vật cản dạng 2D 50 4.3 Chưa ứng dụng cơng nghệ SLAM vào thuật tốn xử lý điều khiển xe Hướng phát triển Đề tài cần phát triển nhiều để áp dụng vào thực tế Vì số phướng hướng nội dung để tiếp tục phát triển: - Nghiên cứu tìm hiều việc kết hợp hệ thống GPS IMU để cải thiện tích lỗi thiết bị IMU việc hỗ trợ xác định vị trí xe - Nghiên cứu thuật toán kết hợp LiDAR với Camera để nhận diện vật cản với độ xác cao Ngồi nhận diện vật cản xác định vị trí xe, việc nhận diện biển báo giao thông vấn đề quan trọng để giải toán xe tự hành Từ kết đạt kết hợp với kết nhóm đăng ký sử dụng camera Astra 3D để nhận diện biển báo giúp tăng cường tính xác thuật tốn nhận diện biển báo giao thơng lên nhiều lần Từ áp dụng vào xe mơ hình mẫu để tham gia thi “Cuộc đua số” kết tốt 51 TÀI LIỆU THAM KHẢO [1] http://wiki.ros.org/ [2] InvenSense Inc, “MPU-9250 Product Specification” [3] SLAMTECH, “RPLIDAR A2 - Low Cost 360 Degree Laser Range Scanner” [4] http://web.mit.edu/kirtley/kirtley/binlustuff/literature/control/Kalman%20filter.pdf [5] Camden Mark Koehr, Kenneth G Ricks, Committee Chair, Monica D Anderson, Edward Sazonov (2018), Evaluation Of Ros Slam Gmapping For Extraterrestrial Robotic Mining Luận văn thạc sĩ 52 PHỤ LỤC Hướng dẫn cài đặt ROS ROS có nhiều phiên cho phiên hệ điều hành: - ROS Noetic Ninjemys: ubuntu 20.x ROS Melodic Morenia: ubuntu 18.x - ROS Lunar Loggerhead: ubuntu 17.x ROS Kinetic Kame: ubuntu 16.x - … Hướng dẫn cài đặt ROS Melodic Morenia ubuntu 18.x 1.1 Cấu hình hệ thống B1 Cài đặt máy tính chấp nhận cập nhật package từ ros.org sudo sh -c 'echo "deb http://packages.ros.org/ros/ubunt u $(lsb_release -sc) main" > /etc/apt/sources.list.d/ro s-latest.list' B2 Nhập key cài đặt sudo apt-key adv keyserver 'hkp://keyserver.ubuntu.co m:80' recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C6 54 1.2 Cài đặt ROS B1 Cập nhật hệ thống sudo apt update B2 Cài đặt thư việc, package ROS sudo apt install ros-melodic-desktop-full 1.3 Cấu hình mơi trường làm việc Thêm mơi trường ROS vào bashrc echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc Cài đặt công cụ phụ thuộc để xây dựng ROS package 53 sudo apt install python-rosdep python-rosinstall python -rosinstall-generator python-wstool build-essential Khởi tạo rosdep sudo apt install python-rosdep sudo rosdep init rosdep update 1.4 Cài đặt rosbridge_suite Rosbridge cung cấp API JSON cho chức ROS cho chương trình khơng phải ROS Có nhiều giao diện người dùng có giao diện với rosbridge, bao gồm máy chủ WebSocket để trình duyệt web tương tác Rosbridge_suite gói meta chứa rosbridge, gói giao diện người dùng khác cho rosbridge gói WebSocket gói trợ giúp sudo apt-get install ros--rosbridge-server 1.5 Cài đặt môi trường làm việc Tạo thư mục cd ~ mkdir -p catkin_ws/src catkin_make lần cd catkin_ws catkin_make Thêm môi trường làm việc vào bashrc echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 54 SLAM ROS 2.1 Cài đặt package teleop_twist_keyboard: điều khiển xe bàn phím sudo apt-get install ros-melodic-teleop-twist-keyboard gmapping: thư viện hỗ trợ SLAM sudo apt-get install ros-melodic-gmapping joy: điều khiển Gamepad sudo apt-get install ros-melodic-joy SLAM git clone https://github.com/ttngocson/rosbot.git 2.2 Hướng dẫn gmapping roslaunch rosbot_description rosbot_rviz_gmapping.launc h Giao diện sau chạy lệnh - Gazebo 55 - Rviz Điều khiển xe - Gamepad logitech F710 roslaunch rosbot_navigation rosbot_joy.launch 56 - Sử dụng keyboard roslaunch rosbot_navigation rosbot_teleop.launch 57 Quá trình gmapping SLAM Sau hoàn thành liệu Chạy lệnh sau để lưu map rosrun map_server map_saver -f ~/catkin_ws/src/rosbot_n avigation/maps/test_map 58 Map sau lưu gồm file - test_map.yaml 59 - test_map.pgm 60 2.3 Load file saved map roslaunch rosbot_description rosbot_rviz_amcl.launch Từ rviz ta sử dụng “2D Nav Goal” để di chuyển xe đến vị trí định Xe tự động tìm đường tránh vật cản để đến điểm định 61 ... ứng dụng Vì chúng tơi chon đề tài “SỬ DỤNG IMU VÀ LIDAR PHỤC VỤ XE TỰ HÀNH TRÊN MÔI TRƯỜNG ROS? ?? để làm đồ án tốt nghiệp Đề tài nghiên cứu sử dụng thiết bị cảm biến IMU LiDAR xử lý qua môi trường. .. SLAM Chương III: Ứng dụng IMU LiDAR vào xe tự hành - Kalman Filter toán rời rạc Nguyên lý hoạt động SLAM - Kết hợp SLAM KF Ứng dụng LiDAR vào xe tự hành - Ứng dụng IMU vào xe tự hành Chương IV: Kết...BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP SỬ DỤNG IMU VÀ LIDAR PHỤC VỤ XE TỰ HÀNH TRÊN MÔI TRƯỜNG ROS Giảng viên hướng dẫn: ThS

Ngày đăng: 17/05/2021, 14:35

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan