1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo Đồ Án chuyên Đề 3 Đề tài mô phỏng xe tự hành tránh chướng ngại vật sử dụng gazeboros

30 3 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Mô Phỏng Xe Tự Hành Tránh Chướng Ngại Vật Sử Dụng Gazebo/Ros
Tác giả Hoàng Tiến Lực, Nguyễn Trường Đô, Dương Cao Nguyên, Trần Hoài Tiến, Trần Mạnh Thắng
Người hướng dẫn TS. Nguyễn Vũ Anh Quang
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt - Hàn
Thể loại báo cáo đồ án
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 30
Dung lượng 1,41 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (11)
    • 1.1 Tổng quan về đồ án (11)
    • 1.2 Nhiệm vụ đồ án (11)
    • 1.3 Mục tiêu của đồ án (11)
    • 1.4 Phạm vi đồ án (11)
    • 1.5 Cấu trúc đồ án (11)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (13)
    • 2.1 Xe tự hành là gì (13)
    • 2.2 Tổng quan về ROS (13)
    • 2.3 Simultaneous Localization and Mapping (SLAM) (15)
    • 2.4 Gazebo Simulation (16)
    • 2.5 Navigation và Điều hướng (17)
  • CHƯƠNG 3: QUÁ TRÌNH THỰC HIỆN (19)
    • 3.1 Ý tưởng thực hiện (19)
    • 3.2 Mô tả hệ thống (20)
    • 3.3 Yêu cầu hệ thống (21)
    • 3.4 Các Bước thực hiện (22)
  • CHƯƠNG 4: KẾT QUẢ THỰC HIỆN (27)

Nội dung

Một yêu cầu cơ bản của các robot tự động là khảnăng hoạt động theo chức năng mong muốn mà không cần sự can thiệp của conngười trong quá trình làm việc.. Trong đó thông tin về các hệ thốn

TỔNG QUAN

Tổng quan về đồ án

Robot đã trở thành một phần không thể thiếu trong cuộc sống hiện đại, đóng vai trò quan trọng trong các lĩnh vực lao động, khoa học và dịch vụ Chúng đang tạo ra một cuộc cách mạng trong các ngành như khoa học quân sự, giáo dục và giải trí Trong bối cảnh học online và thiếu sự gặp gỡ trực tiếp, nhóm em sẽ thiết kế một robot tự hành bám đường trong mô phỏng Gazebo để nghiên cứu và phát triển công nghệ này.

Nhiệm vụ đồ án

Sử dụng phần mềm giả lập Gazebo và ROS để hiện thực hệ thống

Mục tiêu của đồ án

Nhóm nghiên cứu đặt mục tiêu phát huy tiềm năng của robot trong thời đại hiện nay, đồng thời phát triển sản phẩm phù hợp với công nghệ tiên tiến.

Quá trình thực hiện đề tài không chỉ giúp nhóm ôn lại kiến thức đã học từ thầy cô, mà còn là cơ hội để phát huy sự sáng tạo trong các ứng dụng tự động trong lĩnh vực robot Điều này còn giúp nhóm giải quyết hiệu quả các vấn đề và yêu cầu mà ý tưởng ban đầu đã đề ra.

Phạm vi đồ án

Đồ án không chỉ tập trung vào việc mô phỏng mà còn tạo nền tảng vững chắc cho việc phát triển ứng dụng thực tế, bao gồm robot giao hàng, robot giám sát và robot hướng dẫn trong các môi trường phức tạp.

Cấu trúc đồ án

Đồ án gồm có 4 chương:

Tóm tắt sơ lược tổng quan đồ án, nhiệm vụ, mục tiêu đồ án và cấu trúc đồ án. Chương 2: CƠ SỞ LÝ THUYẾT

Giới thiệu về các công nghệ sử dụng trong đồ án.

Chương 3: QUÁ TRÌNH THỰC HIỆN

Chương 3: KẾT QUẢ THỰC HIỆN

Kết quả đạt được đồng thời đưa ra những việc làm cải tiến đồ án trong tương lai. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

CƠ SỞ LÝ THUYẾT

Xe tự hành là gì

Xe tự hành là phương tiện giao thông có khả năng tự điều khiển, sử dụng hệ thống phần cứng hỗ trợ để hoạt động với ít hoặc không cần sự can thiệp của con người.

Xe tự hành được phân loại theo mức độ can thiệp của con người theo tiêu chuẩn của The Society of Automotive Engineers (SAE) Các loại xe này được chia thành nhiều cấp độ khác nhau, phản ánh mức độ tự động hóa và sự tham gia của người lái.

Hình 1: Phân loại xe tự hành

Tổng quan về ROS

Robot Operating System (ROS) là một hệ thống phần mềm linh hoạt và chuyên dụng cho lập trình và điều khiển robot ROS cung cấp các thư viện, công cụ lập trình, công cụ đồ họa và hỗ trợ giao tiếp trực tiếp với phần cứng, cùng với các thư viện giúp lấy dữ liệu từ cảm biến và các thuật toán phổ biến trong lập trình robot.

ROS giúp đơn giản hóa và tiết kiệm thời gian trong việc lập trình các hành vi phức tạp của robot Nó hoạt động như một mạng lưới các node, mỗi node đảm nhiệm một nhiệm vụ riêng biệt tương ứng với các thành phần của robot Các node này có thể được tùy chỉnh và lập trình theo ý tưởng của người phát triển mà không cần phải sử dụng cùng một ngôn ngữ lập trình, cho phép linh hoạt trong việc phát triển, ví dụ như một node có thể được viết bằng C++ trong khi node khác có thể sử dụng Python.

ROS bao gồm các cấu thành bởi các thành phần như sau:

Các node là đơn vị cơ bản giúp robot giao tiếp với các thành phần cấu thành của nó, chẳng hạn như laser scanner và camera.

Node gửi vận tốc đến thiết bị điều khiển động cơ Các nodes này có thể giao tiếp và tương tác với nhau qua Master.

Master là thành phần quan trọng trong việc kết nối các node trong hệ thống Nó được khởi động đầu tiên bằng lệnh roscore, sau đó cho phép bạn gọi bất kỳ node nào Khi các node đã được gọi, chúng có thể kết nối và tương tác lẫn nhau một cách hiệu quả.

Parameter Server là một cấu trúc nhiều tham số trong ROS, cho phép các node lưu trữ và truy xuất thông số trong thời gian thực Mặc dù không có hiệu suất cao, Parameter Server thường được sử dụng cho các kiểu dữ liệu tĩnh như thông số cấu hình và thời gian hệ thống.

Cấu trúc dữ liệu ROS message được các node sử dụng để trao đổi thông tin, tương tự như các kiểu dữ liệu như double và int trong các ngôn ngữ lập trình Các node tương tác thông qua việc gửi và nhận ROS message.

Topics là phương pháp giao tiếp giữa hai node, cho phép trao đổi dữ liệu qua nhiều cấp bậc thông tin thông qua ROS message Hai phương thức chính trong topics bao gồm publish và subscribe, giúp các node tương tác hiệu quả hơn trong hệ thống ROS.

Dịch vụ là quá trình trao đổi dữ liệu giữa hai nút thông qua phương thức yêu cầu và phản hồi Thường được sử dụng trong các trường hợp yêu cầu xử lý lệnh mất nhiều thời gian, dữ liệu tính toán sẽ được lưu trữ trên máy chủ và sử dụng khi cần thiết.

Bags là định dạng tệp trong ROS, có phần mở rộng bag, được sử dụng để lưu trữ dữ liệu message Chúng đóng vai trò quan trọng và có thể được xử lý, phân tích bởi các công cụ mô phỏng trong ROS như Rviz.

Simultaneous Localization and Mapping (SLAM)

SLAM (định vị và lập bản đồ đồng thời) là một phương pháp quan trọng cho xe tự hành, cho phép xây dựng bản đồ và xác định vị trí của xe trên bản đồ đó cùng lúc Thuật toán SLAM giúp xe lập bản đồ các môi trường chưa biết, cung cấp thông tin cần thiết để thực hiện các nhiệm vụ như lập kế hoạch đường đi và tránh chướng ngại vật.

Gazebo Simulation

Gazebo là một trình mô phỏng động 3D chuyên dụng, cho phép mô phỏng chính xác và hiệu quả các quần thể robot trong các môi trường phức tạp, cả trong nhà lẫn ngoài trời Khác với các công cụ trò chơi, Gazebo mang lại khả năng mô phỏng vật lý với độ chân thực cao, cùng với bộ cảm biến và giao diện thân thiện cho người dùng và chương trình.

Hình 4: Công cụ mô phỏng Gazebo

Những công dụng điển hình của Gazebo bao gồm:

 kiểm tra thuật toán robot,

 thực hiện kiểm thử hồi quy với các tình huống thực tế

Một số tính năng chính của Gazebo bao gồm:

 nhiều động cơ vật lý,

 một thư viện phong phú về các mô hình và môi trường robot,

 nhiều loại cảm biến khác nhau,

 giao diện lập trình và đồ họa tiện lợi

Navigation và Điều hướng

Điều hướng là quá trình mà robot tự hành di chuyển từ vị trí hiện tại đến vị trí đích, đồng thời đảm bảo tránh các chướng ngại vật và tối ưu hóa lộ trình di chuyển.

Navigation là một thành phần quan trọng trong các ứng dụng robot tự hành, chẳng hạn như giao hàng, dọn dẹp, hay dẫn đường.

Hệ thống điều hướng trong ROS thường dựa trên gói navigation stack, bao gồm các thành phần chính sau:

Hình 5: Navigation Stack ROS a Localization (Định vị):

 Vai trò: Xác định vị trí hiện tại của robot trong bản đồ.

Công cụ sử dụng trong định vị robot bao gồm AMCL (Adaptive Monte Carlo Localization), một phương pháp dựa trên bộ lọc hạt, kết hợp dữ liệu từ Lidar và bản đồ để xác định vị trí chính xác Ngoài ra, trong một số ứng dụng khác, có thể sử dụng GPS, camera hoặc IMU để hỗ trợ quá trình định vị Bên cạnh đó, việc tạo bản đồ cũng là một phần quan trọng trong quá trình này.

 Vai trò: Tạo bản đồ môi trường, giúp robot hiểu được không gian di chuyển.

 Công cụ sử dụng: o SLAM (Simultaneous Localization and Mapping): Ví dụ như gmapping hoặc cartographer.

 Output: Một bản đồ 2D hoặc 3D, sử dụng định dạng Occupancy Grid Map

(OGM). c Path Planning (Lập kế hoạch đường đi):

 Vai trò: Tìm đường đi tối ưu từ vị trí hiện tại đến đích.

Thành phần chính của hệ thống bao gồm Global Planner, chịu trách nhiệm lập kế hoạch đường đi tổng thể dựa trên bản đồ tĩnh, và Local Planner, giúp lập kế hoạch trong phạm vi gần để tránh chướng ngại vật động Ngoài ra, chức năng Tránh vật cản đóng vai trò quan trọng trong việc đảm bảo an toàn cho quá trình di chuyển.

 Vai trò: Sử dụng dữ liệu cảm biến như Lidar, camera để phát hiện và tránh va chạm.

 Công cụ: Local planners như DWA (Dynamic Window Approach) hoặc teb_local_planner.

QUÁ TRÌNH THỰC HIỆN

Ý tưởng thực hiện

Dự án "Xe tự hành DiffBot" nhằm giải quyết các vấn đề di chuyển tự động trong môi trường thực tế, bao gồm định vị, điều hướng và tránh vật cản Xe tự hành này sử dụng cấu trúc robot hai bánh xe chủ động (Differential Drive) và tích hợp các công cụ từ ROS (Robot Operating System) để tương tác hiệu quả với cảm biến, bản đồ và hệ thống điều hướng.

 Lidar (Light Detection and Ranging):

– Quét môi trường xung quanh để phát hiện và đo khoảng cách tới các chướng ngại vật.

– Dữ liệu từ Lidar giúp xây dựng bản đồ 2D và hỗ trợ tính năng tránh va chạm trong thời gian thực.

– Thu thập dữ liệu hình ảnh từ môi trường.

– Có thể sử dụng để nhận diện vật thể hoặc hỗ trợ định hướng trực quan.

– Đo gia tốc và góc quay để cung cấp thông tin về chuyển động của xe.

– Hỗ trợ duy trì cân bằng và xác định hướng di chuyển.

– Gắn trên các bánh xe để đo tốc độ và khoảng cách di chuyển.

– Cung cấp dữ liệu odometry cho việc tính toán vị trí của xe.

 Cảm biến siêu âm (Ultrasonic Sensor):

– Phát hiện vật cản ở khoảng cách gần, giúp tăng cường khả năng tránh va chạm.

– Xử lý tín hiệu từ các cảm biến và điều khiển động cơ.

– Quản lý hoạt động cơ bản ở mức phần cứng.

– Hai động cơ chính điều khiển chuyển động, tạo ra cơ chế lái dựa trên chênh lệch tốc độ giữa hai bánh (Differential Drive).

3 Phần mềm và thuật toán:

– Cung cấp các chức năng định vị, lập kế hoạch đường đi, và tránh vật cản.

– AMCL (Adaptive Monte Carlo Localization): Giúp xác định vị trí của xe trên bản đồ.

– Move_base: Lập kế hoạch và theo dõi đường đi tối ưu từ vị trí hiện tại đến đích.

 SLAM (Simultaneous Localization and Mapping):

– Xây dựng bản đồ môi trường và định vị robot đồng thời, đặc biệt hữu ích trong môi trường chưa biết trước.

– Điều khiển động cơ bánh xe dựa trên dữ liệu tốc độ và hướng.

Mô tả hệ thống

Giao diện phần cứng điều khiển ROS tích hợp controller_manager cho robot thực, với thư mục Scripts trong gói chứa base_controller cấp thấp đang hoạt động trên vi điều khiển Teensy.

DiffBot là một robot được điều khiển bởi nhiều gói phần mềm khác nhau Gói diffbot_bringup khởi chạy các tập tin cần thiết để mở trình điều khiển phần cứng như camera, lidar, imu và siêu âm Gói diffbot_control cấu hình diff_drive_controller ROS Control cho cả mô phỏng trong Gazebo và robot thực tế Mô tả URDF của DiffBot, bao gồm các cảm biến, được cung cấp bởi gói diffbot_description Gói diffbot_gazebo chứa các tệp cấu hình và khởi chạy mô phỏng cụ thể cho DiffBot Định nghĩa tin nhắn dành riêng cho DiffBot, bao gồm cả dữ liệu mã hóa, có trong gói diffbot_msgs Gói diffbot_navigation hỗ trợ điều hướng dựa trên gói move_base với các tập tin khởi chạy và cấu hình Cuối cùng, gói diffbot_slam thực hiện bản địa hóa và lập bản đồ đồng thời thông qua các triển khai như gmapping để tạo ra bản đồ môi trường.

Yêu cầu hệ thống

 ROS 1 Noetic trên Ubuntu 20.04 Focal Fossa:

– Hệ thống phần mềm này được phát triển và kiểm thử trên ROS 1 Noetic, m ột phiên bản ổn định của ROS dành cho Ubuntu 20.04.

– Noetic là phiên bản cuối cùng của ROS 1, hỗ trợ tốt cho các hệ thống hiện đại với Python 3 và C++.

 Ubuntu Mate 20.04 (arm64) trên Raspberry Pi 4 B (4GB RAM):

Hệ điều hành Ubuntu Mate được cài đặt trên robot thực tế, hoạt động trên nền tảng phần cứng Raspberry Pi 4 B Ubuntu Mate là một hệ điều hành nhẹ, được tối ưu hóa đặc biệt cho các thiết bị ARM.

– Raspberry Pi là bộ điều khiển chính của robot, xử lý dữ liệu cảm biến, thực thi các thuật toán và giao tiếp với các thiết bị khác.

2 Các phụ thuộc cần thiết:

Gói phần mềm Ubuntu bao gồm các gói cần thiết cho dự án, được liệt kê trong tài liệu dự án Những gói này bao gồm các công cụ hệ thống, thư viện ROS và phần mềm hỗ trợ như python3-vcstool.

Các gói ROS, chẳng hạn như rplidar_ros, là những thành phần thiết yếu để làm việc với các cảm biến Lidar Việc tải và tích hợp các gói này vào không gian làm việc Catkin là cần thiết để đảm bảo chức năng hoạt động hiệu quả.

3 Công cụ tự động hóa cài đặt phụ thuộc:

– vcstool là một công cụ để quản lý các repository git trong dự án ROS.

Công cụ này cho phép người dùng tải xuống tất cả các phụ thuộc ROS từ các repository đã được liệt kê, giúp tiết kiệm thời gian so với việc tải từng gói một cách thủ công.

– Lệnh để cài đặt công cụ: sudo apt install python3-vcstool

– Sau khi cài đặt, bạn có thể sử dụng vcstool để tự động hóa việc tải các gói từ file repos.

Các Bước thực hiện

1 Tạo không gian làm việc Catkin

 Đầu tiên, tạo không gian làm việc mới hoặc vào một không gian đã có: mkdir -p catkin_ws/src cd catkin_ws/src

 Thư mục src trong không gian làm việc sẽ chứa các gói ROS.

 Clone mã nguồn của DiffBot từ GitHub vào thư mục src:

12 git clone https://github.com/fjp/diffbot.git

3 Import các phụ thuộc bằng vcs

 vcs import giúp tải về các phụ thuộc được định nghĩa trong file repos (dạng

YAML). vcs import < src/diffbot/diffbot_dev.repos

4 Cài đặt các phụ thuộc nhị phân

 rosdep tự động tải và cài đặt các thư viện và gói cần thiết từ hệ thống hoặc ROS: rosdep install from-paths src ignore-src -r -y

5 Biên dịch không gian làm việc

 Biên dịch mã nguồn trong không gian làm việc bằng một trong hai công cụ: catkin_make

6 Source các gói đã biên dịch

 Sau khi biên dịch, cần "source" tập tin thiết lập (setup.bash) để ROS nhận diện các gói mới: source devel/setup.bash

7 Chạy mô phỏng Diffbot trong Gazebo Đầu tiên, bạn cần khởi động mô phỏng của DiffBot trong môi trường Gazebo, với thế giới mô phỏng được chỉ định Chạy lệnh sau trong terminal: roslaunch diffbot_gazebo diffbot.launch world_name:='$(find diffbot_gazebo)/worlds/turtlebot3_world.world'

Hình 6: Chạy mô phỏng trong Gazebo

Để khởi chạy gói SLAM của DiffBot trên thiết bị đầu cuối thứ hai, bạn cần sử dụng lệnh sau để áp dụng phương pháp lập bản đồ và tạo bản đồ: roslaunch diffbot_slam diffbot_slam.launch slam_method:=gmapping.

Hình 7: Chạy SLAM với gmapping

9 Khám phá môi trường Để khám phá môi trường và giúp robot thu thập dữ liệu cho quá trình SLAM, bạn có thể điều khiển robot bằng cách sử dụng các công cụ sqt_robot_steering

Sau khi khám phá môi trường mới trong mô phỏng, bạn có thể lưu bản đồ bằng công cụ map_saver từ gói map_server trong ROS Để thực hiện việc này, hãy sử dụng lệnh: rosrun map_server map_saver -f ~/map.

11 Chạy dự án và quan sát xe tự hành

To navigate an autonomous vehicle to a selected destination on the map in RVIZ, the vehicle will determine the optimal route while avoiding obstacles Execute the following command: `roslaunch diffbot_navigation diffbot.launch world_name:='$(find diffbot_gazebo)/worlds/turtlebot3_world.world' map_file:='~/map.yaml'`.

12 Xem mô hình xe trong RVIZ

Thực hiện lệnh: roslaunch diffbot_description view_diffbot.launch

Hình 8: Mô hình xe tụ hành trong RVIZ

KẾT QUẢ THỰC HIỆN

Video mô phỏng : https://drive.google.com/drive/folders/12emP45LOf5bx_QpxMAshZNzNqd2o0JA1? usp=drive_link

Link github: https://github.com/hoangtienluc/xe-t-h-nh

Chạy mô phỏng trong Gazebo

Chạy môi trường SLAM với gmapping

Chạy mô hình xe robot trong RVIZ

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

 Hiện cơ bản các chức năng hệ thống

 Hệ thống có thể kết nối với các phần cứng để phát triển sau này

 Chưa hiện thực được hết các chức năng của hệ thống

 Hệ thống nhận diện hoạt động chưa được ổn định

2 Cải tiến trong tương lai

Nhóm đã hoàn thành các tính năng cơ bản của hệ thống, nhưng vẫn còn một số chức năng chưa được thực hiện Để phát triển một hệ thống hiệu quả trong thế giới thực, cần thêm nhiều giai đoạn, kiến thức và kinh nghiệm Hiện tại, nhóm chỉ có thể đề xuất các phương hướng phát triển mà họ cho là hợp lý cho hệ thống trong tương lai.

Thực hiện các chức năng còn thiếu của hệ thống như : nhận diện vật thể, né tránh người đi đường, nhận diện tín hiệu đèn giao thông.

Thực hiện cải thiện các chứng năng chính của hệ thống.

Thực hiện phần cứng cho hệ thống.

Ngày đăng: 19/12/2024, 14:41

TỪ KHÓA LIÊN QUAN

w