1. Trang chủ
  2. » Luận Văn - Báo Cáo

Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI

71 41 2

Đ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 đề Công Nghệ Nhận Diện Làn Đường, Biển Báo Cho Xe Tự Hành Sử Dụng Raspberry Pi
Tác giả Phạm Chí Đức
Người hướng dẫn Th.S Nguyễn Hồng Thắng
Trường học Trường Đại Học Giao Thông Vận Tải
Chuyên ngành Kỹ Thuật Cơ Khí
Thể loại luận văn tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 71
Dung lượng 3,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Luận văn tốt nghiệp ngành kỹ thuật cơ khí ô tô “Công nghệ nhận diện làn đường, biển báo cho xe tự hành bằng RASBERRY PI” là thành quả của quá trình nghiên cứu, nỗ lực không ngừng của em trong suốt thời gian qua với sự giúp đỡ tận tình của quý thầy Trường Đại Học Giao Thông Vận Tải Thành Phố Hồ Chí Minh, các bạn bè và đồng nghiệp trong ngành kỹ thuật cơ khí nói chung và chuyên ngành ô tô nói riêng.

Trang 1

VIỆN CƠ KHÍ

- -

LUẬN VĂN TỐT NGHIỆP

CÔNG NGHỆ NHẬN DIỆN LÀN ĐƯỜNG, BIỂN BÁO CHO XE TỰ HÀNH SỬ DỤNG RASPBERRY PI

Giảng viên hướng dẫn: Th.S Nguyễn Hồng Thắng

Sinh viên thực hiện: Phạm Chí Đức

Mã số sinh viên: 1751080012 Lớp: CO17A

TP HỒ CHÍ MINH, 2023

Trang 2

Luận văn tốt nghiệp ngành kỹ thuật cơ khí ô tô “Công nghệ nhận diện làn đường, biển báo cho xe tự hành bằng RASBERRY PI” là thành quả của quá

trình nghiên cứu, nỗ lực không ngừng của em trong suốt thời gian qua với sự giúp đỡ tận tình của quý thầy Trường Đại Học Giao Thông Vận Tải Thành Phố

Hồ Chí Minh, các bạn bè và đồng nghiệp trong ngành kỹ thuật cơ khí nói chung

và chuyên ngành ô tô nói riêng

Em xin bày tỏ sự biết ơn đến quý thầy hướng dẫn Th.S Nguyễn Hồng Thắng đã quan tâm, trực tiếp hướng dẫn tận tình để luận văn được hoàn thành

Đồng thời, em gửi lời cảm ơn đến ban giám hiệu nhà trường, phòng đào tạo, ban lãnh đạo viện cơ khí và bộ môn chuyên ngành đã tạo điều kiện cho em hoàn thành luận văn tốt nghiệp của mình

Sau cùng, em xin cảm ơn gia đình đã luôn bên cạnh, động viên và giúp đỡ trong suốt thời gian thực hiện luận văn

Xin chân thành cảm ơn!

Tp Hồ Chí Minh, ngày 23 tháng 11 năm 2022

Sinh viên thực hiện

Phạm Chí Đức

Trang 3

Trong thời đại cách mạng công nghiệp hóa, hiện đại hóa Xe hơi ngày càng được hiện đại hơn trong việc ứng dụng các công nghệ như Internet vạn vật (IOT), trí tuệ nhân tạo (AI) được tích hợp vào xe và đặc biệt hơn là xe tự hành

Các chuyên gia dự đoán, trong khoảng 15 đến 20 năm nữa, xe tự hành sẽ được phổ biến và thịnh hành hơn so với các phương tiện phổ thông hiện nay Hiện đã có rất nhiều tập đoàn sản xuất xe hơi và các tập đoàn công nghệ tham gia vào cuộc đua phát triển công nghệ tự lái thông minh cho xe hơi giúp cho xe có thể tự lái đến nơi cần thiết

mà không cần có sự can thiệp của con người Đặc biệt hơn là công nghệ tự hành đã bắt đầu được ứng dụng ở khuông viên Bình Dương với khả năng tự hành cấp độ 4

Mục đích của đề tài này là phần xử lý nhận diện được làn đường, biển báo vì dựa trên tính trạng giao thông ở Việt Nam thì xe tự hành nên có một phân đường riêng biệt Nên ứng dụng của đề tài này dựa trên điều kiện xe phải được phân chia làn bởi cách vạch sơn trắng và điều kiện ánh sáng thích hợp để nhận diện qua camera

Trên thực tế có nhiều phương pháp để nhận diện được làn đường một cách hiệu quả và chính xác nhất, vì thời gian hạn chế nên để phù hợp với khối lượng luận văn, em xin được dùng phương pháp nhận diện được vách kẻ trẳng thẳng làm cơ sở để ứng dụng vào đề tài Nội dung luận văn được xây dựng thành 4 chương sau đây:

Chương 1: Cơ sở lý thuyết

Chương 2: Cài đặt hệ điều hành và xây dựng mô hình

Chương 3: Xây dựng thuật toán nhận diện làn đường

Chương 4: Xây dựng thuật toán nhận diện biển báo

Thuật toán được xây dựng trên nền tảng mở OpenCV, sử dụng ngôn ngữ C++ thay cho ngôn ngữ Python phổ thông để tăng thời gian xử lý trên thời gian thực Đề tài được nghiên cứu để làm nền tảng cho việc phát triển và hoàn thiên hơn trong ứng dụng thực tế trong tương lai

Trang 4

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1

1.1 Tổng quan về xe tự hành 1

1.1.1 Khái niệm về xe tự hành 1

1.1.2 Lịch sử phát triển của xe tự hành 1

1.2 Tình hình xe tự hành trên thế giới và trong nước 3

1.2.1 Tình hình nghiên cứu xe tự hành của thế giới 3

1.2.2 Tình hình nghiên cứu xe tự hành trong nước 4

1.3 Định hướng đề tài 5

1.4 Khái niệm OpenCV 6

1.5 Một số phương pháp nhận diện làn đường 6

1.5.1 Phương pháp tìm đường thẳng bằng hàm Houghlines 6

1.5.2 Phương pháp phát hiện vạch làn trắng 8

1.5.3 Phương pháp nhận diện làn đường nâng cao 8

1.6 Lựa chọn phương pháp áp dụng vào mô hình 9

1.7 Sơ lược về linh kiện cho hệ thống 10

1.7.1 Raspberry Pi 3b+ 10

1.7.2 Module điều khiển động cơ L298N 13

1.7.3 Động cơ RC Servo MG996 18

1.7.4 Raspberry Pi camera 20

CHƯƠNG 2: XÂY DỰNG VÀ THIẾT KẾ SƠ ĐỒ MẠCH ĐIỆN HỆ THỐNG 22

2.1 Sơ đồ mô hình xe tự hành Raspberry Pi 22

2.2 Cài đặt hệ điều hành 24

2.3 Lập trình để thu hình ảnh thông qua camera bằng phương pháp OpenCV 26

Trang 5

CHƯƠNG 3: XÂY DỰNG THUẬT TOÁN NHẬN DIỆN LÀN ĐƯỜNG 30

3.1 Chuyển đổi tín hiệu hình ảnh 30

3.2 Tạo vùng làn đường cần theo dõi ROI (Region of interest) 30

3.3 chuyển đổi góc nhìn thẳng (Bird eye view) 31

3.4 Xác định phân ngưỡng ảnh (Threshhold) 33

3.5 Phát hiện cạnh Canny (Canny Edge Detection) 33

3.6 Xác định làn đường bằng biểu đồ phân phối Histogram 34

3.7 Xác định tâm làn đường và phương pháp bám đường 35

3.8 Lập trình cho mô hình 37

CHƯƠNG 4: XÂY DỰNG THUẬT TOÁN NHẬN DIỆN BIỂN BÁO BẰNG PHƯƠNG PHÁP CASCADE HAAR 41

4.1 Tổng quan về Haar cascade 41

4.1.1 Khái niệm Haar Cascade 41

4.1.2 Nguyên lý hoạt Động 41

4.2 Xây dựng tệp nhận diện biển báo 43

4.2.1 Cài đặt phần mềm 43

4.2.2 Lập trình để thu ảnh mẫu 43

4.2.3 Tạo thư mục ảnh dương 46

4.2.4 Huấn luyện mô hình nhận diện ảnh 48

4.3 Lập trình nhận diện biển báo chung với chương trình nhận diện làn đường 50

4.3.1 Code của hệ thống 50

4.3.2 Giải thích code của hệ thống 57

4.3.2.1 Tải tệp XML vào chương trình xác định làn đường 57

Trang 6

5.1 Những mặt tích cực và hạn chế của đề tài 60 5.2 Hướng phát triển của đề tài 61

Trang 7

Hình 1.1 Xe tụ hành và môi trường xung quanh 1

Hình 1.2 Các tính năng nhận diện qua camera của xe 2

Hình 1.3 Các cấp độ của xe tự hành 3

Hình 1.4 Xe tự hành Phenikaa-X 5

Hình 1.5 Một đoạn đường cao tốc 6

Hình 1.6 Đoạn cao tốc sau khi áp dụng phát hiện cạnh 7

Hình 1.7 Làn đường được phát hiện sau khi xử lý ảnh trên máy tính 7

Hình 1.8 Phương pháp phát hiện vạch làn trắng 8

Hình 1.9 Phương pháp nhận diện làn đường nâng cao 9

Hình 1.10 Raspberry Pi 3b+ 10

Hình 1.11 Sơ đồ mạch Raspberry Pi 3b+ 11

Hình 1.12 Module điều khiển động cơ L298N 13

Hình 1.13 Sơ đồ chân cắm của L298N 14

Hình 1.14 Sơ đồ mạch điền của L298N với Raspberry Pi 15

Hình 1.15 Điều khiển tốc độ động cơ DC bằng phương pháp tính hiều PWM 16

Hình 1.16 Các trường hợp chu kỳ xung 16

Hình 1.17 Nguyên lý hoạt động của mạch cầu H 17

Hình 1.18 Động cơ Servo MG996 18

Hình 1.19 Góc quay của Servo dựa trên xung điều khiển 20

Hình 1.20 Camera Raspberry Pi 20

Hình 2.1 Sơ đồ tổng thể mô hình xe tự hành Raspberry Pi 21

Hình 2.2 Sơ đồ khối nguyên lý hoạt động của mô hình sử dụng mạch Raspberry và Camera 22

Trang 8

Hình 2.4 Mô hình mô phỏng nhìn ngang 24

Hình 2.5 Các phiên bản hệ điều hành Raspberry OS 25

Hình 2.6 Giao diện của Raspberry Pi Imager 25

Hình 2.7 Giao diện khởi động đầu tiên của Raspberry Pi 26

Hình 2.8 Hình ảnh thông qua Webcam 28

Hình 2.9 Số khung hình mỗi giây thu được 29

Hình 3.1 Phần đường xe cần quan sát 31

Hình 3.2 Ứng dụng chuyển đổi góc nhìn thực tế 31

Hình 3.3 Ảnh sau khi đã được chuyển đổi góc nhìn 32

Hình 3.4 Góc nhìn của camera sau khi đã được phân ngưỡng ảnh 33

Hình 3.5 Camera sau khi dã được xử lý cạnh 34

Hình 3.6 Làn đường được xác định sau khi sử dụng biểu đồ phân phối 35

Hình 3.7 Tâm làn đường được xác định 36

Hình 3.8 Làn đường bị nghiêng về một phía so với tâm ảnh 36

Hình 3.9 Làn đường bị nghiêng về bên trái so với tâm ảnh 40

Hình 4.1 Các đặc điểm hình chữ nhật được sử dụng để phát hiện các điểm khác nhau trên ảnh 42

Hình 4.2 Áp dụng các tính năng hình chữ nhật để nhận diện khuôn mặt 42

Hình 4.3 Logo Cascade trainer GUI 43

Hình 4.4 Giao diện Cascade Trainer GUI 43

Hình 4.5 Các mẫu ảnh có chứa biển bảo nguy hiểm 45

Hình 4.6 Các mẫu ảnh không chứa biển báo nguy hiểm 45

Hình 4.7 Giao diện ô Cropper trên ứng dụng 46

Hình 4.8 Giao diện sau khi đã chọn thư mục có chứa tệp ảnh 46

Trang 9

Hình 4.10 Ảnh thu được sau khi cắt 47

Hình 4.11 Giao diện nhập đầu vào các thư mục 48

Hình 4.12 Quá trình huấn luyện nhận diện biển báo 48

Hình 4.13 Giao diện chạy thử nhận diện biển báo 49

Hình 4.14 Một số các mẫu ảnh cho ra sau khi chạy thử tệp XML 49

Hình 4.15 khoảng cách phát hiện được vật thể thông qua camera 59

Hình 4.16 khoảng cách phát hiện được vật thể so với thực tế 59

Hình 5.1 Khi xe lên dốc và bị mất làn đường 60

Trang 10

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Tổng quan về xe tự hành

1.1.1 Khái niệm về xe tự hành

Xe tự hành, còn được hiểu đến là xe tự lái, là một chiếc xe có khả năng hoàn thành các khả năng vận chuyển con người của xe truyền thống Nó có khả năng cảm nhận môi trường xung quanh và điều hướng thông qua cảm biến và camera mà không cần sự can thiệp của con người

Hình 1.1 Xe tự hành và môi trường xung quanh

1.1.2 Lịch sử phát triển của xe tự hành

Năm 1939, trong cuộc triển lãm của General Motors, Norman Bel Geddes đã tạo

ra chiếc xe hơi tự lái đầu tiên Đó là chiếc xe điện từ trường điều khiển bằng sóng vô tuyến tạo thành nhờ các gai kim loại từ hóa được gắn trên đường

Năm 1977, Nhật Bản đã cải tiến ý tưởng trên bằng cách sử dụng hệ thống camera chuyển dữ liệu đến máy tính để xử lý hình ảnh con đường Tuy nhiên, chiếc xe này chỉ

di chuyển được với tốc độ khoảng 32km/giờ Sau một thập kỷ, người Đức tiếp tục cho

ra đời một phương tiện được trang bị camera có thể tự lái với tốc độ khoảng 90km/giờ Khi công nghệ này được cải thiện thì khả năng phát hiện và phản ứng với môi trường của xe tự lái cũng tăng theo

Trang 11

Từ 1950 - 2000, các tính năng an toàn/tiện lợi, đai ghế điều khiển hành trình và Antilock Brakes (Hệ thống chống bó phanh) được khám phá

Trong năm 2000 - 2010, các tính năng tự động hóa, hệ thống kiểm soát hành trình, phát hiện điểm mù, cảnh báo va chạm, chệch làn và phanh chống bó cứng tiếp tục được phát triển Những tính năng này nhằm đảm bảo sự an toàn và tiện lợi cho người dùng

Kể từ năm 2016 đến nay, tính năng của xe tự hành đã dần trở nên tự chủ hơn như: giúp người lái xe đi đúng làn đường, phát triển công nghệ ACC (Adaptive Cruise

Control - hệ thống kiểm soát hành trình thích ứng) và khả năng tự đỗ xe

Hình 1.2 Các tính năng nhận diện qua camera của xe

Các chuyên gia dự tính từ nay đến năm 2025 sẽ tập trung nghiên cứu để nâng cấp các tính năng: an toàn tự động một phần, hỗ trợ giữ làn đường, kiểm soát hành trình, tự

đỗ xe, hỗ trợ lái khi kẹt xe,…để các phương tiện tự hành hoạt động hiệu quả và an toàn hơn

Giai đoạn từ 2010 - 2016, các khả năng hỗ trợ người lái như: camera chiếu hậu, phanh khẩn cấp tự động và hỗ trợ tập trung vào làn đường đã xuất hiện

Trang 12

1.2 Tình hình xe tự hành trên thế giới và trong nước

1.2.1 Tình hình nghiên cứu xe tự hành của thế giới

Hiện nay xe tự hành đã được chia thành 6 cấp độ tự hành dựa trên tiêu chuẩn của Hiệp hội kỹ sư ô tô (SAE) để mô tả các mức độ tự chủ của phương tiện Trong đó cấp

độ cơ bản nhất là 0 (Phương tiện không có thể tự vận hành) và cấp độ 5 là cấp độ phương tiện có thể hoàn toán tự chủ không cần đến sự can thiệp của con người

Hình 1.3 Các cấp độ của xe tự hành

-Cấp độ 0 hoàn toàn không có tính năng tự lái Hiện này hầu hết các ô tô đang lưu thông đang ở mức độ này, kể các những ô tô được trang bị tính năng cảnh báo va chạm hay cảnh bảo điểm mù Ở cấp độ này, người điều khiển phải tự mình điều khiển hoàn toàn các tính năng của xe như bám vững làn đường, tăng hoặc giảm tốc độ khi xe đang di chuyển trên đường

- Cấp độ 1, ở cấp độ này các yếu tố của quá trình điều khiển phương tiện được thực hiện một cách cô lập, sử dụng dữ liệu từ các cảm biến và máy ảnh, người lái xe vẫn phải chịu phần lớn trách nhiệm điều khiển Vào năm 2008 honda giới thiệu chức năng hộ trợ giữ làn đường trên dòng xe Honda Legend Ngoài ra ở cấp độ này còn có thể kể đến tính năng kiểm soát hành trình tự động

Trang 13

-Cấp độ 2, ở cấp độ này phương tiện có thể dảm nhận nhiều chức năng từ trình điều khiển và có thể kết hợp hai hoặc nhiều các tính năng lại với nhau bằng việc tiếp nhận tự nhiều nguồn dữ liệu như điều khiển phanh và giữ làn cùng một lúc Tuy nhiên, người điều khiển vẫn cần phải theo dõi để kiểm soát trong mọi tính huống

-Cấp độ 3, ở cấp độ này xe có khả năng tự lái ở trong một số trường hợp nhất định và nắm quyền kiểm soát tất cả các chức năng quan trọng về an toàn bằng cách tiếp nhận các dự liệu về bản đồ, radar, các cảm biến và hợp nhất dự liệu môi trường với bộ xử lý để đưa ra thuật toàn điều khiển

-Cấp độ 4, ở cấp độ này xe có thể hoàn toàn xử lý và tự mình di chuyển không cần đến sự can thiệp của con người Đặc biệt hơn ở cấp độ này xe còn có khả năng đảm bảo an toàn cho người sử dụng và có thể tự động dừng khi chế độ tự lái hỏng

-Cấp độ 5, phương tiện hoàn toàn không cần đến sự điều khiển và hiện diện của người lái trên xe và có thể di chuyển mọi nơi với điều khiển tủy chọn

1.2.2 Tình hình nghiên cứu xe tự hành trong nước

Vào những năm 2016 đến 2019, tập đoàn FPT cùng với những đơn vị tài trợ khác

đã phát động cuộc thi “Cuộc đua số” với tiêu chí đặt khả năng vận hành xe không người lái để giúp cho các sinh viên Việt Nam tham gia nghiên cứu và phát triển cũng như là có được một nền tảng vững chắc để đón nhận cơ hội tham gia vào cuộc cách mạng số đang được diễn ra trên toàn thế giới

Hiện nay tập đoàn Vingroup cũng đã bắt đầu thử nghiệm xe điện tự hành cấp độ

4 bao gồm 2 lidar và 6 camera góc rộng phối hợp tuệ nhân tạo ở khu du lịch Vinwonder (Nha trang) Xe có khả năng di chuyển, phát hiện người đi bộ và biển báo với độ chính xác cao Khi gặp các vận cản hoặc con người cách 30m xe sẽ giảm tốc độ

và đứng yên

Ngoài ra vào năm 2021 chiếc xe “không người lái” thông minh Phenikaa chính thức được giới thiệu tại Hà Nội Đây là xe tự hành do người Việt làm chủ công nghệ đầu tiên tại Việt Nam

Trang 14

Hình 1.4 Xe tự hành Phenikaa-X

Mẫu xe tự hành thông minh Phenikaa có công nghệ tự lái ở cấp độ 4 dưa trên thang đo 5 cấp độ cho xe tự lái của Hiệp hội Kỹ sư xe hơi (SAE) Mẫu xe có các chức năng hệ thống chuyển làn tự động, hệ thống nhận diện biển báo và người đi bộ, hệ thống định vị, chức năng phân tích quỹ đạo di chuyển của các xe xung quanh và khả năng thay đổi đường đi tùy theo vị trí của vật cản và các xe di chuyển xung quanh Tuy nhiên hiện nay xe chỉ được hoạt động trong các khu vực tư nhân như du lịch, resort và sân golf Để có thể hoàn toàn tự vận hành trên đường phố, xe cần phải giải quyết được nhiều vấn đề khác

1.3 Định hướng đề tài

Để nắm bắt được xu thế công nghệ xe tự hành, em lựa chọn đề tài “Ứng dụng

OpenCV nhận diện làn đường, biển báo cho xe tự hành bằng RASBERRY PI” Với

mục đích là xây dựng mô hình xe tự hành có khả năng nhận diện được làn đường và khả năng nhân diện biển báo để tham gia giao thông trên đường phố và trên làn đường dành riêng cho xe tự hành Đề tài sẽ đi vào giải quyết các vấn đề sau:

Vấn đề 1: xây dựng mô hình điều khiển bằng raspberry Pi 3b+

Vấn dề 2: Đưa ra thuật toán xác định làn đường dựa trên sự hỗ trợ của OpenCV

Trang 15

Vấn để 3: Đưa ra thuật toán xác định biển báo dựa trên phương pháp Haar Cascade

Để giải quyết các vấn đề trên, người kỹ sư phải nắm được các công nghệ liên quan đến đề tài Các phần dưới đây sẽ trình bày cụ thể khải niệm nguyên lý ưu nhược điểm, cũng như công nghệ để giải quyết vấn đề

1.4 Khái niệm OpenCV

Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky OpenCV viết tắt cho Open Source Computer Vision Library OpenCV là thư viện nguồn mở hàng đầu cho công việc xử lý ảnh và học sâu của máy, và hiện có thêm tính năng tăng tốc GPU cho các hoạt động được xử lý theo thời gian thực

OpenCV được sử dụng miễn phí cho cả học tập và mục đích thương mại OpenCV được thiết kế để hộ trợ hiệu quả về tính toán và chuyên dung cho các ứng dụng real-time (thời gian thực) và C++ là ngôn ngữ tối ưu nhất giúp cho thư viện này

có thể tận dụng được tối đa được bộ xử lý đa lõi

1.5 Một số phương pháp nhận diện làn đường

1.5.1 Phương pháp tìm đường thẳng bằng hàm Houghlines

Phương pháp này dựa trên kết quả phát hiện cạnh (Canny Edge Detection) để tiến hành phát hiện đường thẳng trên mỗi pixel thuộc cạnh được phát hiện trong ảnh,

ta lần lượt thử các phương trình đường thẳng đi qua pixel đó

Trang 16

Ta tiến hành phương phát hiện cạnh

Hình 1.6 Đoạn cao tốc sau khi áp dụng phát hiện cạnh

Sau khi duyệt hết tất cả các pixel, ta sẽ lọc theo một giá trị ngưỡng xác định trước và vùng quan tâm của camera ta có được làn đường cần xác định cho xe vận hành

Hình 1.7 Làn đường được phát hiện thông qua xử lý ảnh trên máy tính

Trang 17

1.5.2 Phương pháp phát hiện vạch làn trắng

Tương tự như phương pháp sử dụng hạm Houghlines, Ta vẫn sử dụng chuyển đổi phát hiện cạnh CannyEdge nhưng ta xác định ngưỡng Histogram để phát hiện các làn trắng được sơn trên làn đường

Hình 1.8 Phương pháp phát hiện vạch làn trắng

1.5.3 Phương pháp nhận diện làn đường nâng cao

Phương pháp này sử dụng mỗi frame ảnh được trích ra từ file video về thông tin làn đường và sẽ được tiến hành tăng cường chất lượng ảnh bằng các kỹ thuật xử lý tổ chức đồ (Histogram) sau khi đã lọc nhiễu ảnh bằng bộ lọc Gausian Thuật toán phát hiện đường biên Canny được dùng để phát hiện các điểm ảnh có khả năng thuộc các làn đường Tiếp theo, áp dụng thuật toán làm mảnh (Thinning algorithm) vào ảnh phát hiện biên Canny để nhận được ảnh đường biên có bề dày 1 pixel từ ảnh đầu vào Cuối cùng kỹ thuật nội suy đường cong Non-Uniform B-Spline (NUBS) để xây dựng các làn đường giới hạn trái và phải một cách tách biệt dựa trên các điểm điều khiển (Control points) được chọn từ các điểm ảnh đường biên thuộc giới hạn làn đường

Trang 18

Hình 1.9 Phương pháp nhận diện làn đường nâng cao

1.6 Lựa chọn phương pháp áp dụng vào mô hình

Theo yêu cầu và khả năng đáp ứng của phần cứng là sử dụng vi mạch Raspberry

Pi 3b+ ta áp dụng phương pháp phát hiện vạch đường trắng

Ưu điểm

-Giải thuật đơn giản và hiệu quả

-Tốc độ xử lý nhanh

-Không yêu cầu quá cao về phần cứng Giá thành thấp

-Có thể áp dụng vào các khu vực khuôn viên hoặc làn đường riêng biệt

-Dễ điều chỉnh các thông số cơ bản sao cho phù hợp với khu vực vận hành

Nhược điểm

-Xử lý ánh sáng làm thay đổi khả năng nhận diện của làn đường không được linh hoạt

-Không xác định chính xác độ cong làn đường khi ôm cua

-Chỉ có thể xác định 1 làn đường chưa áp dụng thuật toán đổi làn đường

Trang 19

1.7 Sơ lược về linh kiện cho hệ thống

1.7.1 Raspberry Pi 3b+

Hình 1.10 Raspberry Pi 3b+

Giới thiệu chung

Raspberry Pi được tạo ra bởi tổ chức Raspberry Pi Foundation thành lập vào năm

2009 Với sự hỗ trợ kết hợp cùng 3 hãng sản xuất linh kiện điện tử nổi tiếng:

EGOMAN QSIDA SONY Raspberry Pi được xem là 1 chiếc máy tính thu nhỏ với đầy đủ phần cứng mạnh mẽ, và hệ điều hành riêng biệt Ban đầu hãng sản xuất

Raspberry Pi nhằm cung cấp cho nhu cầu học tập của trẻ em Với kích thước nhỏ, ứng dụng được gói gọn và giá cả hợp lý Nhưng những tính năng trên cũng là điểm hết sức nổi bật của thiết bị so với máy tính thông thường Nhận thấy tiềm năng, Raspberry Pi được nâng cấp nhiều phiên bản nhanh chóng phát triển rộng rãi Đến nay trở thành chiếc mini Computer nổi bật, và được chú ý nhất Đã có hàng nghìn ứng dụng được thiết kế và cài đặt riêng cho Raspberry Pi

Nguồn điện

Raspberry Pi 3b+ được cấp nguồn 5V thông qua cổng micro USB, và giới hạn là 3A Nếu cấp nguồn vượt quá giới hạn sẽ làm hỏng bo mạch

Trang 20

Thông số kỹ thuật

Hình 1.11 Sơ đồ mạch Raspberry Pi 3b+

Raspberry Pi 4 B là sản phẩm mới nhất được phát hành năm 2019 Nhưng ở Việt Nam hiện nay vẫn ưa chuộng nhất phiên bản Raspberry Pi 3 B+ (2018) Pi 3 B+ thuộc dòng máy tính đơn Board Nổi bật với với bộ chip 4 nhân, 64 bit tốc độ lên đến 1.4GHz Phiên bản được hỗ trợ thêm Wifi Dual-band có tốc độ 2.4GHz và 5GHz, cổng Ethernet (tốc độ 300Mbps), hỗ trợ kết nối Bluetooth Low Energy và PoE (Power

over Ethernet) thông qua PoE HAT

Trang 21

Vi xử lý Broadcom BCM2837B0, quad-core A53 (ARMv8)

64-bit SoC @1.4GHz RAM

1GB LPDDR2 SDRAM

Kết Nối 2.4GHz and 5GHz IEEE 802.11 b/g/n/ac wireless

LAN, Bluetooth 4.2, BLE, Gigabit Ethernet over USB 2.0 (Tối đa 300Mbps)

Cổng USB

4 x 2.0

Video và âm thanh Cổng full-sized HDMI Cổng MIPI DSI Display

Cổng MIPI CSI Camera

Cổng stereo output

Composite video 4 chân

Multimedia H.264, MPEG-4 decode(1080p30) H.264 encode

(1080p30) OpenGL ES 1.1, 2.0 graphics

Nguồn điện sử dụng 5V/3A DC micro USB5V DC chân GPIO

Power over Ethernet (PoE)

Những lưu ý khi dùng Raspberry Pi

Ở các đầu GPIO không có bảo về cắm ngược nguồn vào Do đó ta cần phải kiểm tra hai cực của nguổn điện trước khi cấp cho Raspberry Pi khi không sử dụng đầu vào

Trang 22

MicroUSB Việc làm chập mạch nguồn vào của Raspberry Pi có thể làm hư hoàn toàn phần cứng Nên cấp nguồn từ cổng MicroUSB nếu có thể

Các chân 3.3V và 5V trên bảng mạch là các chân dung để cấp nguồn cần thiết cho các thiết bị khác, không phải là đầu cấp nguồn vào Việc nhầm lẫn sai vị trí có thễ hỏng mạch

Không cấp nguồn ngoài thông qua cổng USB cho Raspberry Pi với điện áp trên 5V có thể làm hỏng linh kiện

Cường độ dòng diện vào ra ở các chân GPIO của Raspberry Pi ở mức 50mA, cổng HDMI sử dụng 50mA, module camera sử dụng 250mA Do vậy khi kết nối với các thiệt bị nên đọc các thông số mà nhà sản xuất cung cấp để kết nối chinh xác đến Raspberry Pi nhầm tránh gây ra những hỏng hóc không đáng có

1.7.2 Module điều khiển động cơ L298N

Hình 1.12 Module điều khiển động cơ L298N

Trang 23

Thông số kỹ thuật

- Driver: L298N tích hợp hai mạch cầu H

- Điện áp điều khiển: +5 V ~ +12 V

- Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)

- Điện áp của tín hiệu điều khiển: +5 V ~ +7 V

- Dòng của tín hiệu điều khiển: 0 ~ 36mA

- Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃)

- Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃

Hình 1.13 Sơ đồ chân cắm của L298N

Chức năng của các chân

Bốn chân INPUT: IN1, IN2, IN3, IN4 là các chân nhận tín hiệu điều khiển được đặt ở góc dưới cùng bên phải L298N

Bốn chân OUTPUT: OUT1, OUT2, OUT3, OUT4 được nối với các chân tương ứng trên mạch L298N Các chân này sẽ được nối với động cơ DC hoặc động cơ bước Hai chân cho phép ENA và ENB dùng để điều khiển mạch cầu H trong IC L298N Sẽ nhận tính hiệu tự “0” cho đền “255” tương ứng với cường độ dòng điện từ

Trang 24

0 cho đến 2 ampe Các chân này cũng được dùng để điều khiển tốc độ của động cơ với tốc độ nhanh hay chậm

+ Khi ENA = 0: Động cơ không quay với mọi đầu vào

+ Khi ENA = 1:

+ IN1 = 1; IN2 = 0: Động cơ quay thuận

+ IN1 = 0; IN2 = 1: Động cơ quay nghịch

+ IN1 = IN2: Động cơ dừng ngay lập tức

Với ENB cũng tương tự với IN3, IN4

Sơ đồ mạch điện

Hình 1.14 Sơ đồ mạch điện của L298N với Raspberry Pi

- Motor được nối với cổng OUT1 và OUT2 để điều khiển chiều quay của motor

- Cực dương của pin được kết nối với đầu vào nguồn của module L298N và cực

âm được kết nối với GND

- Các chân input 1, input 2 và EnableA dùng để điều khiển chiều quay của động

cơ được lần lượt nối với các chân GPIO của Raspberry tùy theo người lập trình thiết lập

Trang 25

Hình 1.16 Các trường hợp chu kỳ xung

Trang 26

Chu kỳ xung = 25%: tức 25% thời gian trong chu kỳ xung điện áp ở giá trị HIGH

Chu kỳ xung = 50%: tức 50% thời gian trong chu kỳ xung điện áp ở giá trị HIGH

Chu kỳ xung = 100%: tức 100% thời gian trong chu kỳ xung điện áp ở giá trị HIGH

Vì vậy tùy thuộc vào kích thước của động cơ, chúng ta có thể chỉ cần kết nối đầu

ra Arduino với chân của điện trở hoặc chân của MOSFET và điều khiển tốc độ của động cơ bằng cách điều khiển đầu ra PWM Tín hiệu Raspberry công suất thấp bật và tắt chân tại MOSFET thông qua đó động cơ công suất cao được điều khiển

- Để điều khiển hướng quay, chúng ta chỉ cần đảo ngược hướng của dòng điện qua động cơ, và phương pháp phổ biến nhất để làm điều đó là sử dụng mạch cầu H Một mạch cầu H chứa bốn chân chuyển mạch, điện trở hoặc MOSFET, với động cơ ở trung tâm tạo thành một cấu hình giống như chữ H Bằng cách kích hoạt hai công tắc

cụ thể cùng một lúc, chúng ta có thể thay đổi hướng của dòng điện, do đó thay đổi hướng quay của động cơ

Hình 1.17 Nguyên lý hoạt động của mạch cầu H

Trang 27

Vì vậy, nếu chúng ta kết hợp hai phương thức này, PWM và H-Bridge, chúng ta

có thể kiểm soát hoàn toàn động cơ DC Có nhiều trình điều khiển động cơ DC có các tính năng này và L298N là một trong số đó

Module điều khiển động cơ L298N đảm nhiệm công việc di chuyển của mô hình bằng cách điều chỉnh tốc độ và chiều quay của 4 motor bánh xe Giúp điều hướng mô hình di chuyển theo ý muốn

1.7.3 Động cơ RC Servo MG996

Giới thiệu

Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín Tín hiệu ra của động cơ được nối với một mạch điều khiển Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ servo RC (radio-controlled) Trong thực tế, bản thân động cơ servo không phải được điều khiển bằng vô tuyến, nó chỉ nối với máy thu vô tuyến trên máy bay hay xe hơi Động cơ servo nhận tín hiệu từ máy thu này

Trang 28

Động cơ RC Servo MG996 là loại thường được sử dụng nhiều nhất trong các thiết kế Robot hoặc dẫn hướng xe Động cơ RC Servo MG996 có lực kéo mạnh, các khớp và bánh răng được làm hoàn toàn bằng kim loại nên có độ bền cao, động cơ được tích hợp sẵn driver điều khiển động cơ bên trong theo cơ chế phát xung - quay góc nên rất dễ sử dụng

Cấu tạo

Động cơ servo được cấu thành bởi 4 bộ phận: hộp giảm tốc, động cơ DC, biến trở

và bộ điều khiển Biến trở được nối với hộp số, nên khi động cơ quay thì biến trở cũng đồng thời quay theo một góc tuyệt đối ứng với vị trí ban đầu Mạch điều khiển đọc điện áp từ biến trở và so sánh với điện áp của tín hiệu Nhờ đó động cơ servo có thể xác định chính xác vị trí góc quay mong muốn

Các chân của động cơ Servo

Động cơ Servo thông thường sẽ có các chân: VCC, GND và tín hiệu Màu sắc dây của của động cơ sẽ được quy định như sau

+ GND: Màu nâu, chân MASS của Servo

+ VCC: Màu đỏ, chân cấp nguồn 4,8-7V của Servo

+ Tín hiệu: Màu vâng, ngỏ vào của tín hiệu điều khiển góc quay của Servo

Nguyên lý hoạt động

Trang 29

Hoạt động của Servo được dựa trên nguyên lý nhận xung PWM và cho ra góc quay RC servo chỉ có thể xoay ở góc cố định và không thể xoay quanh

Hình 1.19 Góc quay của servo dựa trên xung điều khiển

1.7.4 Raspberry Pi camera

Giới thiệu

Raspberry Pi camera là module camera được chính Raspberry Pi Foundation thiết

kế và đưa vào sản xuất đại trà Raspberry Pi camera được tích hợp camera 5

Megapixel có độ nhạy sáng cao, có thể chụp tốt ở nhiều điều kiện ánh sáng khác nhau,

cả trong nhà và ngoài trời Điểm đặc biệt mà camera mang lại đó là chụp hình độ nét cao trong lúc quay phim

Trang 31

CHƯƠNG 2: XÂY DỰNG VÀ THIẾT KẾ SƠ ĐỒ MẠCH ĐIỆN HỆ THỐNG

2.1 Sơ đồ mô hình xe tự hành Raspberry Pi

Hình 2.1 Sơ đồ tổng thể mô hình xe tự hành Raspberry Pi

Hệ thống bao gồm:

-1 Raspberry Pi 3b+ điều khiển cho cả hệ thống

-2 Motor được điểu khiển thông qua Module điều khiển động cơ L298N

-Camera kết nối với Raspberry Pi

-Servo điều khiển góc lái

-Nguồn điện cấp cho toàn bộ hệ thống

Nguyên lý hoạt động

Mô hình xe tự hành Raspberry mô phỏng quá trình di chuyển từ vị trí này tới vị

trí khác bám theo đoạn đường được cho trước giúp cho quá trình vận chuyển đơn giản

và không cần đến sự tác động của người điều khiển phương tiện

Việc xác định được làn đường và biển đều do ứng dụng của Camera gắn với

Raspberry Pi Mô hình sẽ tiến hành tự động di chuyển khi xác định được làn đường

Động cơ sẽ dừng lại nếu như camera không còn xác định được làn đường nữa Nếu ô

Trang 32

tô phát hiện biển bảo nguy hiểm hoặc dừng ở một khoảng cách gần xe cũng sẽ dừng lại Tất cả các tác động trên đều được lập trình sẵn trong mạch Raspberry Pi

Hình 2.2 Sơ đồ khối nguyên lý hoạt động của mô hình sử dụng mạch Raspberry

và Camera

Mô hình xe tự hành sẽ dừng hẳn giúp đảm bảo an toàn cho người lái và yêu cầu người lái phải tự vận hành phương tiện, ngoài ra còn bảo vệ cho người lái tránh gặp những tình huống không mong muốn nếu như không chú ý biển báo Tuy nhiên, tính năng vận hành có thể chưa chính xác và yêu cầu người lái tập trung, tỉnh táo và can thiệp kịp thời để tránh những trường hợp đáng tiếc xảy ra

Trang 33

Hình 2.3 Mô hình mô phỏng nhìn từ trên xuống

Hình 2.4 Mô hình mô phỏng nhìn ngang

2.2 Cài đặt hệ điều hành

Để có thể sử dụng Raspberry Pi đầu tiên ta cần phải cài đặt hệ điều hành tương ứng cho mục đích sử dụng Ta tiến hành tải hệ điều hành Raspberry Pi OS (Raspbian) trực tiếp từ website của nhà sản xuất:

Trang 34

Hình 2.5 Các phiên bản hệ điều hành Raspberry Pi OS

Khi ta đã tải xong ta sử dụng phần mềm Raspberry Pi Image ta tiến hành ghi cài đặt vào thẻ nhớ SD để cái dặt hệ điều hành

Hình 2.6 Giao diện của Raspberry Pi Imager

Sau khi cài xong thẻ, ta tiến hành rút thẻ ra khỏi máy tính và cắm vào Raspberry

Pi Lúc này ta khởi động Raspberry Pi và liên kết Pi với màn hình để tiến hành thực hiện các thiết lập cơ bản ban đầu

Trang 35

Hình 2.7 Giao diện khởi động đầu tiên Raspberry Pi

2.3 Lập trình để thu hình ảnh thông qua camera bằng phương pháp OpenCV

Sau khi đã cài xong hệ điều hành ta tiến hành bật ứng dụng Geeny để lập trình cho hệ thống, để thu được hình ảnh thông qua camera ta có đoạn code dưới đây

Ngày đăng: 14/01/2024, 00:20

HÌNH ẢNH LIÊN QUAN

Hình 1.3 Các cấp độ của xe tự hành - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 1.3 Các cấp độ của xe tự hành (Trang 12)
Hình 1.4 Xe tự hành Phenikaa-X - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 1.4 Xe tự hành Phenikaa-X (Trang 14)
Hình 1.6 Đoạn cao tốc sau khi áp dụng phát hiện cạnh - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 1.6 Đoạn cao tốc sau khi áp dụng phát hiện cạnh (Trang 16)
Hình 1.7 Làn đường được phát hiện thông qua xử lý ảnh trên máy tính - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 1.7 Làn đường được phát hiện thông qua xử lý ảnh trên máy tính (Trang 16)
Hình 1.9 Phương pháp nhận diện làn đường nâng cao - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 1.9 Phương pháp nhận diện làn đường nâng cao (Trang 18)
Hình 1.11 Sơ đồ mạch Raspberry Pi 3b+ - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 1.11 Sơ đồ mạch Raspberry Pi 3b+ (Trang 20)
Hình 1.17 Nguyên lý hoạt động của mạch cầu H - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 1.17 Nguyên lý hoạt động của mạch cầu H (Trang 26)
2.1. Sơ đồ mô hình xe tự hành Raspberry Pi - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
2.1. Sơ đồ mô hình xe tự hành Raspberry Pi (Trang 31)
Hình 2.3 Mô hình mô phỏng nhìn từ trên xuống - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 2.3 Mô hình mô phỏng nhìn từ trên xuống (Trang 33)
Hình 2.7 Giao diện khởi động đầu tiên Raspberry Pi - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 2.7 Giao diện khởi động đầu tiên Raspberry Pi (Trang 35)
Hình 3.1 Phần đường xe cần quan sát - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 3.1 Phần đường xe cần quan sát (Trang 40)
Hình 3.2 Ứng dụng chuyển đổi góc nhìn thực tế - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 3.2 Ứng dụng chuyển đổi góc nhìn thực tế (Trang 40)
Hình 3.5 Camera sau khi đã được xử lý cạnh - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 3.5 Camera sau khi đã được xử lý cạnh (Trang 43)
Hình 3.9 Làn đường bị nghiên về bên trái so với tâm ảnh - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 3.9 Làn đường bị nghiên về bên trái so với tâm ảnh (Trang 49)
Hình 4.14 Một số các mẫu ảnh cho ra sau khi chạy thử tệp XML - Công nghệ nhận diện làn đường, biển báo cho xe tự hành sử dụng Raspberry PI
Hình 4.14 Một số các mẫu ảnh cho ra sau khi chạy thử tệp XML (Trang 58)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w