xây dựng hệ thống xác định làn đường và nhận diện biển báo giao thông cho xe tự hành trên hệ điều hành ros

24 0 0
Tài liệu đã được kiểm tra trùng lặp
xây dựng hệ thống xác định làn đường và nhận diện biển báo giao thông cho xe tự hành trên hệ điều hành 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ên cạnh đó, các bài toán về giao thông cũng đang nhận được rất nhiều sự quan tâm trong cộng đồng công nghệ kỹ thuật, trong đó phải kể đến đề tài xe tự lái.Xe tự hành hay còn gọi là xe t

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

XÂY DỰNG HỆ THỐNG XÁC ĐỊNH LÀN ĐƯỜNG VÀNHẬN DIỆN BIỂN BÁO GIAO THÔNG CHO XE TỰ

HÀNH TRÊN HỆ ĐIỀU HÀNH ROS

Sinh viên thực hiện: Trịnh Thị Cúc - 20020637 Lê Văn Thông - 20020724 Giảng viên bộ môn: PSG.TS.Hoàng Văn Xiêm KS.Nguyễn Cảnh Thanh

HÀ NỘI - 2023

Trang 2

Lời Cảm Ơn

Nhóm xin gửi lời cảm ơn đến thầy Hoàng Văn Xiêm và thầy Nguyễn Cảnh Thanh đã trực tiếp hướng dẫn, góp ý và chia sẻ kinh nghiệm quý báu để nhóm hoàn thành tốt môn học và đề tài này.

Nhóm cũng xin chân thành cảm ơn Khoa Điện tử - Viễn thông, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tạo điều kiện thuận lợi để nhóm hoàn thành nhiệm vụ học tập và nghiên cứu của mình.

Hà Nội, ngày 01 tháng 06 năm 2023

Trang 3

Mục lục

Chương 1 Giới thiệu đề tài 5

1.1.Giới thiệu chung 5

1.2.Mục tiêu và nhiệm vụ 6

Chương 2 Cơ sở lý thuyết 7

2.1.Định nghĩa về xe tự hành 7

2.2.Tổng quan về hệ điều hành ROS 9

2.3.Xử lý ảnh với thư viện OpenCV 11

Chương 3 Triển khai đề tài 12

3.3.3 Blob Detection sử dụng OpenCV

3.4.Xây dựng thuật toán phát hiện làn đường 16

3.5.Xây dựng thuật toán điều khiển xe 17

Chương 4 Kết quả và đánh giá 22

Trang 4

LờI Mở ĐầU

Hiện nay, với sự phát triển mạnh mẽ của khoa học công nghệ kỹ thuật, rất nhiều những sản phẩm công nghệ chất lượng cao ra đời Cùng với xu hướng đó, robot tự động đang trở nên ngày một phổ biến nhờ khả năng hoạt động chính xác ở các trường hợp nguy hiểm, khắc nghiệt đối với con người Một trong những chức năng cơ bản của robot là khả năng hoạt động theo chức năng yêu cầu mà không cần tới sự can thiệp của con người Bên cạnh đó, các bài toán về giao thông cũng đang nhận được rất nhiều sự quan tâm trong cộng đồng công nghệ kỹ thuật, trong đó phải kể đến đề tài xe tự lái.

Xe tự hành (hay còn gọi là xe tự lái, xe tự động) là loại xe ô tô có khả năng thực hiện các chức năng lái xe mà không cần sự can thiệp hoặc điều khiển từ con người Điều này được thực hiện thông qua sự kết hợp của các công nghệ và hệ thống thông minh như cảm biến, máy tính, trí tuệ nhân tạo và hệ thống điều khiển tự động Các xe tự hành có khả năng phân tích và hiểu được môi trường xung quanh thông qua cảm biến như camera, radar, lidar và hệ thống GPS Dựa trên thông tin thu thập được từ các cảm biến, máy tính trên xe tự hành sẽ xử lý và đưa ra quyết định để điều khiển chính xác các chức năng của xe như lái, ga, phanh và tránh va chạm Mục tiêu của xe tự hành là tăng cường sự an toàn, giảm tai nạn giao thông và cải thiện hiệu suất và tiện ích của việc di chuyển Các công ty công nghệ hàng đầu và các hãng ô tô lớn đang đầu tư nghiên cứu và phát triển công nghệ xe tự hành để đưa chúng ra thị trường trong tương lai.

Trang 5

Chương 1

Giới thiệu đề tài

1.1 Giới thiệu chung

Đề tài này liên quan đến việc phát triển hệ thống xe tự hành có khả năng nhận biết và tuân thủ các biển báo giao thông, cùng với khả năng phát hiện và theo dõi đường để duy trì đúng làn đường khi di chuyển Mô phỏng trên Gazebo là một phần quan trọng của quá trình này, cho phép kiểm tra và đánh giá hiệu suất của hệ thống trước khi triển khai thực tế.

Để xây dựng hệ thống xe tự hành bám đường dựa trên biển báo, cần có sự kết hợp của các công nghệ như máy ảnh, xử lý hình ảnh, trí tuệ nhân tạo và các thuật toán phân loại Hệ thống sẽ sử dụng các máy ảnh hoặc cảm biến khác để nhận dạng và phân loại biển báo giao thông, từ đó nhận diện các chỉ dẫn và giới hạn tốc độ trên đường.

Mô phỏng trên Gazebo là quá trình tái tạo một môi trường ảo để kiểm tra và đánh giá hiệu suất của hệ thống xe tự hành Gazebo là một phần mềm mô phỏng phổ biến trong lĩnh vực robot và tự động hóa, cho phép mô phỏng các môi trường đa dạng và tương tác với các phần tử khác nhau như xe, cảm biến, và địa hình.Việc mô phỏng trên Gazebo giúp xác minh tính đúng đắn của hệ thống, kiểm tra khả năng phát hiện và nhận diện biển báo, đảm bảo hệ thống có thể duy trì đúng làn đường và xử lý các tình huống giao thông phức tạp Nó cũng cho phép thử nghiệm và tinh chỉnh các thuật toán và cài đặt trước khi triển khai trên thực tế.

Tóm lại, nhóm em đề tài nhằm phát triển và kiểm tra hệ thống xe tự hành có khả năng nhận biết biển báo và phát hiện đường trong một môi trường ảo Điều này đóng vai trò quan trọng trong quá trình phát triển và đánh giá hiệu suất của hệ thống trước khi triển khai trong môi trường thực tế.

5

Trang 6

1.2 Mục tiêu và nhiệm vụ

Mục tiêu của nhóm khi thực hiện đề tài này là muốn phát huy được các tiềm năng của robot trong thời đại hiện nay Đồng thời tạo ra sản phẩm đang là xu hướng công nghệ hiện nay.

Ngoài ra, trong quá trình nghiên cứu và thực hiện đề tài này, nhóm đã có khoảng thời gian quý báu để có cái nhìn tổng quan về những kiến thức đã học và phát huy sự sáng tạo của mình trong chuyên ngành Kỹ thuật Robot và hơn thế nữa là khả năng giải quyết được các vấn đề đã đặt ra ban đầu.

Nhiệm vụ nhóm đặt ra trong đề tài:

•Sử dụng phần mềm giả lậpGazebo và ROS để xây dựng môi trường mô phỏng và giao tiếp với robot.

•Phát hiện làn đường cho xe tự hành

•Phát hiện biển báo

•Điều khiển xe di chuyển tự động theo đúng các biển báo và làn đường phát hiện được

Trang 7

Chương 2

Cơ sở lý thuyết

2.1 Định nghĩa về xe tự hành

Xe tự hành là loại xe ô tô có khả năng thực hiện các chức năng lái xe mà không cần sự can thiệp hoặc điều khiển của con người Điều này được thực hiện thông qua sự kết hợp của các công nghệ và hệ thống thông minh như cảm biến, máy tính, trí tuệ nhân tạo và điều khiển tự động.

Xe tự hành có khả năng phân tích và hiểu được môi trường xung quanh thông qua cảm biến như camera, radar, lidar và hệ thống GPS Dựa trên thông tin thu thập được từ các cảm biến, máy tính trên xe tự hành sẽ xử lý và đưa ra quyết định để điều khiển chính xác các chức năng của xe như lái, ga, phanh và tránh va chạm.

Mục tiêu của xe tự hành là tăng cường sự an toàn, giảm tai nạn giao thông và cải thiện hiệu suất và tiện ích của việc di chuyển Xe tự hành có thể cung cấp lợi ích như khả năng tự động hóa trong lưu thông giao thông, giảm áp lực lái xe cho con người và tăng khả năng tương tác và kết nối với hệ thống giao thông thông minh.

Phân loại xe tự hành

Xe tự hành có thể được phân loại dựa trên các cấp độ tự động hóa và phạm vi hoạt động của chúng Dưới đây là một phân loại chung của xe tự hành:

Cấp độ 0 : Xe không tự động hóa - Đây là các loại xe truyền thống mà con người phải hoàn toàn điều khiển mọi khía cạnh của việc lái xe, bao gồm lái, ga, phanh và các chức năng khác Không có hệ thống tự động hỗ trợ cho người lái.

Cấp độ 1 : Tự động hóa phần chức năng - Đây là loại xe có một số chức năng tự động hóa nhất định, như hỗ trợ lái tự động trong một số tình huống như hỗ trợ đỗ xe tự động, hỗ trợ hướng dẫn trong làn đường, và hệ thống cảnh báo va chạm Tuy nhiên, người lái

7

Trang 8

vẫn phải tiếp tục giám sát và can thiệp khi cần thiết.

Cấp độ 2 : Tự động hóa tương đối - Ở cấp độ này, hệ thống tự động hóa có khả năng điều khiển lái xe, ga, phanh và thực hiện một số chức năng lái xe cơ bản trong một số điều kiện đường cụ thể Tuy nhiên, người lái vẫn cần sẵn sàng can thiệp và giám sát hoạt động của hệ thống.

Cấp độ 3 : Tự động hóa điều kiện nhất định - Ở cấp độ này, hệ thống tự động hóa có khả năng điều khiển toàn bộ quá trình lái xe trong một số điều kiện đường cụ thể Người lái không cần theo dõi hoạt động liên tục, nhưng vẫn phải sẵn sàng can thiệp khi hệ thống yêu cầu.

Cấp độ 4 : Tự động hóa cao - Ở cấp độ này, hệ thống tự động hóa có khả năng điều khiển toàn bộ quá trình lái xe mà không cần sự can thiệp của người lái trong các điều kiện đường nhất định Tuy nhiên, khả năng hoạt động của hệ thống có thể bị giới hạn trong một số tình huống đặc biệt.

Cấp độ 5 : Tự động hóa đầy đủ - Đây là cấp độ cao nhất của xe tự hành, trong đó hệ thống có khả năng hoàn toàn tự động hóa tất cả các khía cạnh của việc lái xe trong mọi điều kiện đường Người lái không cần can thiệp và có thể hoạt động trong chế độ toàn tự động.

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

Trang 9

Cấu tạo chung của xe tự hành

•Cảm biến: Xe tự hành được trang bị các loại cảm biến để thu thập thông tin về môi trường xung quanh Các cảm biến phổ biến bao gồm camera, radar, lidar và hệ thống GPS Cảm biến giúp xe nhận biết và phân tích các yếu tố như đối tượng xung quanh, biển báo giao thông, dấu vết đường và điều kiện môi trường.

•Hệ thống xử lý thông tin: Thông tin thu thập từ các cảm biến được gửi đến hệ thống xử lý thông tin Đây là nơi xử lý dữ liệu và áp dụng các thuật toán để nhận diện, phân loại và hiểu thông tin về môi trường Hệ thống xử lý thông tin thường sử dụng trí tuệ nhân tạo và các thuật toán học máy để giúp xe tự hành ra quyết định và hành động.

•Hệ thống điều khiển: Hệ thống điều khiển là trung tâm của xe tự hành, có nhiệm vụ điều khiển các chức năng lái xe như lái, ga, phanh và hệ thống treo Hệ thống này dựa trên thông tin từ hệ thống xử lý thông tin và đưa ra quyết định để điều khiển các bộ phận cơ khí của xe.

•Hệ thống liên lạc và kết nối: Xe tự hành cần có khả năng liên lạc và kết nối để truyền tải thông tin giữa các xe tự hành khác, hệ thống giao thông thông minh và nguồn dữ liệu ngoại vi khác Điều này giúp xe tự hành có thể nhận thông tin cập nhật về đường đi, giao thông và các tình huống đặc biệt.

•Hệ thống cơ khí và truyền động: Xe tự hành có các thành phần cơ khí và truyền động tương tự như xe ô tô truyền thống Điều này bao gồm động cơ, hộp số, hệ thống lái, hệ thống phanh và hệ thống treo Tuy nhiên, có thể có các cải tiến và điều chỉnh đặc biệt để tương thích với hệ thống điều khiển tự động và khả năng tự lái của xe.

•Hệ thống điều khiển và giao diện người dùng: Để tương tác với người dùng, xe tự hành cần có một giao diện người dùng thông minh Điều này có thể là màn hình cảm ứng, hệ thống giọng nói hoặc các giao diện khác cho phép người dùng nhập thông tin và tương tác với các chức năng của xe.

2.2 Tổng quan về hệ điều hành ROS

ROS (Robot Operating System) là một framework (khung công việc) phần mềm mã nguồn mở được phát triển để xây dựng và quản lý các ứng dụng robot ROS cung cấp một loạt các công cụ, thư viện và giao thức để hỗ trợ việc phát triển phần mềm cho robot.

9

Trang 10

ROS giúp đơn giản và tiết kiệm thời gian việc lập trình các hành vi phức tạp của robot ROS như là một mạng lưới điểm (node) được kết nối bởi nhiều node mà mỗi node có nhiệm vụ riêng tương ứng với các thành phần cấu tạo nên robot Mỗi node riêng có thể được tùy chỉnh phát triển và lập trình theo ý tưởng của người phát triển mà không cần quan tâm đến việc phải thống nhất sử dụng cùng một ngôn ngữ lập trình, điều đó có nghĩa là node này bạn phát triển trên ngôn ngữ C++ nhưng node khác bạn có thể phát triển trên ngôn ngữ Python.

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

Nodes: đơn vị cơ bản để giao tiếp với các thành phần của Robot Ví dụ như một con robot thường có các node như: Laser Scanner, Camera Các node có thể giao tiếp và tương tác với nhau qua Master.

Master : có vai trò kết nối các node với nhau, vì vậy, master luôn được khởi động đầu tiên bằng câu lệnh roscore, sau đó ta có thể gọi bất cứ node nào trong hệ thống Khi gọi xong, các node có thể kết nối và tương tác với nhau.

Parameter Server : là một cấu trúc nhiều tham số có thể truy cập trong lúc chạy ROS Các node sử dụng cấu trúc này nhằm lưu trữ và truy xuất các thông số trong thời gian chạy Do nó không có hiệu suất cao nên thường dùng với kiểu dữ liệu tĩnh, chẳng hạn như các thông số cấu hình, thời gian hệ thống.

Message: là một cấu trúc dữ liệu được các node dùng để trao đổi với nhau tương tự như kiểu double, int trong các ngôn ngữ lập trình Các node tương tác với nhau bằng cách send và receive ROS message.

Topics: là phương pháp giao tiếp trao đổi dữ liệu giữa hai node, nó bao gồm nhiều cấp bậc thông tin mà chúng có thể giao tiếp thông qua ROS message Hai phương thức trong topic bao gồm publish và subscribe.

Services: là một giao tiếp trao đổi dữ liệu/ thông tin giữa hai node thông qua phương thức request và response Thường được áp dụng trong trường hợp việc thực hiện một lệnh cần nhiều thời gian xử lý nên dữ liệu tính toán được lưu ở server và sẽ dùng khi cần xử lý Bags: là một định dạng tệp trong ROS dùng để lưu trữ dữ liệu message với phần mở rộng là bag có 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.

Trang 11

2.3 Xử lý ảnh với thư viện OpenCV

OpenCV là tên viết tắt của Open Source Computer Vision Library – có thể được hiểu là một thư viện mã nguồn mở cho máy tính Cụ thể hơn OpenCV là kho lưu trữ các mã nguồn mở được dùng để xử lý hình ảnh, phát triển các ứng dụng đồ họa trong thời gian thực.

OpenCV cho phép cải thiện tốc độ của CPU và GPU khi thực hiện các hoạt động real time Nó còn cung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị giác máy tính hay các learning machine khác.

OpenCV được sử dụng cho đa dạng nhiều mục đích và ứng dụng khác nhau bao gồm:

Trang 12

Chương 3

Triển khai đề tài

3.1 Thực hiện ý tưởng

Theo nhiệm vụ đặt ra ở Chương 1, trong môi trường mô phỏng, xe của nhóm được trang bị camera để thu các ảnh phía trước xe, dựa vào đó sẽ đưa ra các quyết định điều khiển cho xe, góc lái, tốc độ Để làm được điều này nhóm dùng 2 giải thuật liên quan đến xử lý ảnh và thị giác máy:

•Hệ thống nhận biết vạch kẻ đường và đưa ra quyết định xe chạy đúng theo làn đường nhận biết được.

•Hệ thống nhận biết các biển báo giao thông gồm: đi thẳng, rẽ trái, phải và dừng lại Đồng thời đưa ra quyết định với các biển báo trên một cách đúng đắn.

3.2 Mô tả hệ thống

Thông qua môi trường giả lậpGazebo và hệ điều hành ROS ta có thể xây dựng kiến trúc hệ thống như hình dưới:

Mô hình mô phỏng Gazebo và phần điều khiển đóng vai trò là các node trong hệ thống ROS, giao tiếp với nhau qua cơ chế publisher-subcriber.

Trong môi trường mô phỏng, ta sẽ liên tục truyền hình ảnh thu được từ camera của xe và hệ thống ROS, đồng thời nhận lại và thực thi các lệnh điều khiển bao gồm góc lái và tốc độ Hình3.1 mô tả kiến trúc hệ thống chung: 1 mạng lane detector (phát hiện làn đường) và một mạng sign detector (phát hiện biển báo) từ hình ảnh mô phỏng Trình điều khiển sẽ dựa vào kết quả nhận được từ việc xử lý hai nhiệm vụ trên và đưa ra quyết định điều khiển cho xe.

Trang 13

Hình 3.1: Kiến trúc hệ thống

3.3 Xây dựng môi trường mô phỏng Gazebo 3.3.1 Bản đồ hệ thống

Với đề tài này, nhóm xây dựng một bản đồ đơn giản để thể hiện lại làn đường và các loại biển báo cơ bản (rẽ trái, rẽ phải, đi thẳng và dừng lại) Bản đồ được nhóm vẻ với công cụ paint và có thể được thay thế dễ dàng, biển báo được sử dụng có thể thêm bớt nhanh chóng bằng việc sử dụng các model biển báo đã tạo Kết quả hiện thị được thể hiện ở hình

Trang 14

Hình 3.2: Bản đồ hoàn thiện

nó Đồng thời tạo một kết nối giữa các bánh xa với nhau để điều khiển tốc độ; một kết nối giữa 2 bánh trước để điều khiển góc lái.

Trong đề tài nhóm sử dụng mô hình deep learning neural network có thể phân loại biển báo giao thông bằng trong ảnh thu được của xe tự hành Để huấn luyện mô hình nhóm sử dụng bộ dữ liệu có sẵn tạiTraffic Signs Dataset Với mô hình này, ta có thể đọc và hiểu các biển báo giao thông là một nhiệm vụ rất quan trọng với xe tự hành Để nhận diện biển báo từ hình ảnh đã nhận từ camera của xe mô phỏng, nhóm đã thực hiện các bước như hình3.4.

3.3.3 Blob Detection sử dụng OpenCV

Blob: là một nhóm pixel được kết nối trong một hình ảnh có chung một số thuộc tính (ví dụ như thang độ xám) Hình3.5 thể hiện các kết nối là các đốm màu và mục tiêu của việc phát hiện đốm màu là xác định và đánh dấu các vùng này.

Cách hoạt động của Blob Detection

Thuật toán được điều khiển bởi các tham số và có các bước dưới đây:

•Thresholding: chuyển đổi ảnh ban đầu thành ảnh nhị phân theo ngưỡng từ minThresh-old Các ngưỡng này được tăng dần theo thresholdStep cho đến khi maxThresh-old.

•Grouping: trong mỗi ảnh nhị phân, các pixel trắng được kết nối thành các nhóm với nhau.

Ngày đăng: 04/05/2024, 14:50

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

Tài liệu liên quan