BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINHKHOA CƠ KHÍ ĐỘNG LỰC ĐỒ ÁN CUỐI KỲ MÔN HỌC: HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG Ô TÔĐỀ TÀI: AUTOMOTOUS FOLLOWING LINEGiảng vi
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA CƠ KHÍ ĐỘNG LỰC
ĐỒ ÁN CUỐI KỲ MÔN HỌC: HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG Ô TÔ
ĐỀ TÀI: AUTOMOTOUS FOLLOWING LINE
Giảng viên hướng dẫn: TS Lê Thanh Phúc
Sinh viên thực hiện: Mã Hiền Nhân 21145225
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA CƠ KHÍ ĐỘNG LỰC
ĐỒ ÁN CUỐI KỲ MÔN HỌC: HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG Ô TÔ
ĐỀ TÀI: AUTOMOTOUS FOLLOWING LINE
Giảng viên hướng dẫn: TS Lê Thanh Phúc
Sinh viên thực hiện: Mã Hiền Nhân 21145225
Trang 3TP Hồ Chí Minh, tháng 5 năm 2024
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
TP Hồ Chí Minh, ngày 16 tháng 5 năm 2024 Chữ ký giáo viên hướng dẫn
Trang 4TS Lê Thanh Phúc
Bảng phân công công viê ^c:
Thành viên MSSV Nhiê ;m v< Hoàn thành
Mã Hiền Nhân 21145225 100%Nguyễn Đức Tài 21145262 100%Dương Nguyễn Hoàng
Thương
Đặng Quang Hải 21145629 100%
Trang 5LỜI CẢM ƠN
Lời đầu tiên chúng em xin chân thành cảm ơn Ban giám hiệu Trường Đại học
Sư phạm Kỹ thuật TP.HCM đã tạo cho chúng em có một môi trường học tập thật tốt
thoải mái, cùng với cơ sở vật chất hiện đại
Chúng em xin chân thành gửi lời cảm ơn đến Khoa Cơ khí động lực đã giúpchúng em có thể mở rộng kiến thức và hiểu biết của mình về môn “Hệ thống điềukhiển tự động ô tô”, một môn học vô cùng phong phú và bổ ích, những tiết học vôcùng thú vị, hấp dẫn, nghiên cứu tổng quan về các hệ thống tự hành trên ô tô, sau đólắp mạch kết nối với Adruino lập trình điều khiển trên mô hình xe tự hành nhỏ dòđường đi Từ đó nhận thức được tầm quan trọng của hệ thống tự hành đối với ô tô giúpcho người lái và người ngồi trên xe cảm giác an toàn và thoải mái khi sử d<ng xe ô tô
Đặc biệt em xin gửi lời cảm ơn sâu sắc đến thầy TS Lê Thanh Phúc, giảng
viên bộ môn đã giúp em có thể tìm hiểu rõ hơn về hệ thống điều khiển tự động trong ô
tô, hướng dẫn tận tình, chỉ bảo chúng em trong suốt quá trình làm bài tập cuối kỳ.Mặc dù trong quá trình nghiên cứu đã có sự nỗ lực và cố gắng hết mình tìmhiểu, nghiên cứu thực hiện đề tài nhưng do những giới hạn về kiến thức, kinh nghiệm
và trải nghiệm thực tế của bản thân còn hạn chế nên chắc chắn em không tránh khỏinhững thiếu sót Vì vậy, em mong thầy góp ý để giúp em hoàn thiện hơn vấn đề này và
mở rộng thêm kiến thức của mình
Chúng em xin chân thành cảm ơn!
Kính chúc thầy thật nhiều sức khỏe !
1
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
2
Trang 7DANH MỤC HÌNH ẢNH
3
Trang 8DANH MỤC BẢNG
4
Trang 9MỤC LỤC
5
Trang 10CHƯƠNG 1: TỔNG QUAN GIỚI THIỆU
1.1 Lý do chọn đề tài
Ngày nay, các robot hay xe tự hành đã trở nên phổ biến, dần dần được hoànthiện đầy đủ và đã đạt được nhiều thành tựu to lớn trong các lĩnh vực khác nhau.Những con robot hay còn được gọi là AI có khả năng làm việc với tốc độ cao,chính xác và liên t<c giúp cho năng suất lao động tăng lên nhiều lần Chúng cóthể thay thế được cho con người làm việc trong những môi trường độc hại, nguyhiểm như đồng sơn, nhà máy hạt nhân, hàn hay các công việc có điện áp cao,…những công việc đòi hỏi sự tỉ mỉ và chính xác cao
Cùng với sự phát triển của công nghệ 4.0 thì xe tự hành cũng là hướng màcon người hướng tới ngày càng mạnh, nói chính xác là việc điều khiển khôngcần người lái can thiệp đến chiếc xe vẫn đảm bảo việc vận hành an toàn Chúngcòn được gọi là xe tự hành không người lái Vấn đề của xe tự hành là làm thếnào để xe có thể hoạt động, nhận biết được đường đi, môi trường xung quanh vàthực hiện được các nhiệm v< được yêu cầu Vấn đề trước mắt là di chuyển, xe tựhành sẽ di chuyển như thế nào và cơ cấu di chuyển ra làm sao sẽ là lựa chọn tốtnhất
Vì thế xe tự hành là phương tiện sẽ kết hợp rất nhiều thứ trên xe để có thểhoạt động tốt nhất và an toàn nhất như các cảm biến, radar, camera, các vi xử lý,
bộ điều khiển, bộ chấp hành, quản lý phần mềm và trí tuệ nhân tạo hay còn gọi
là AI,… để xe di chuyển mà không cần con người điều khiển , để đủ điều kiện
là hoàn toàn tự động, một chiếc xe phải có khả năng tự xử lý tự điều khiển màkhông cần sự can thiệp của con người
Đề tài nghiên cứu về việc xây dựng một mô hình xe tự hành có khả năng
dò tìm và di chuyển theo đường đi dựa trên hình ảnh từ camera là một đề tàiphong phú về ý tưởng và có nhiều tiềm năng ứng d<ng thực tiễn cao Đây là lĩnhvực đang nhận được sự quan tâm lớn của cộng đồng khoa học trên toàn cầu bởinhững thách thức và khả năng đưa cuộc cách mạng công nghiệp 4.0 vào cuộcsống Bên cạnh đó, nghiên cứu đề tài này sẽ giúp mở rộng kiến thức về các chủ
6
Trang 11đề liên quan đến trí tuệ nhân tạo, học máy, xử lý ảnh và robot học Đặc biệt, việc
áp d<ng Raspberry Pi - một nền tảng mở và phổ biến trong giáo d<c khoa họcmáy tính sẽ giúp tôi tiếp cận dễ dàng hơn với công nghệ
Mô hình xe tự hành được xây dựng trong đề tài có thể mở rộng sang nghiêncứu về Internet vạn vật và thành phố thông minh trong tương lai Kết quả nghiêncứu cũng góp phần phát triển khoa học công nghệ của đất nước Ngoài ra, đề tài
có tính thực tiễn cao, kết quả nghiên cứu có thể phát huy được ngay trong quátrình hoàn thiện hệ thống, mang lại nhiều lợi ích cho xã hội Vì vậy, đây là đề tàihấp dẫn, thú vị và ý nghĩa để tôi tiến hành nghiên cứu
1.2.Mục tiêu đề tài
- Xây dựng thành công mô hình xe tự hành tự xử lý ảnh, nhận dạng đường
đi, hướng di chuyển thông qua hình ảnh từ camera
- Nghiên cứu và áp d<ng được các thuật toán xử lý ảnh hiểu quả để pháthiện và xử lý đường đi chính xác
- Thiết kế được mô hình xử lý và lập trình điều khiển xử lý hình ảnh trênphần mềm Raspberry Pi
- Điều khiển xe di chuyển theo đường đi tự làm sẵn một cách chính xác, ổnđịnh, không va chạm
- Đánh giá và kiểm định chất lượng hệ thống thông qua các chỉ tiêu đượcđặt ra như độ chính xác cao, độ ổn định khi di chuyển, tốc độ xử lý hình ảnh vàphản hồi
- Rút ra kết luận và đề xuất hướng phát triển mô hình ph<c v< cho xe tựhành tương lai
7
Trang 12- Nghiên cứu các thuật toán xử lý hình ảnh từ camera để nhận diện đườngđi.
- Nghiên cứu thuật toán điều khiển hướng đi cho xe dựa trên xử lý hìnhảnh
- Nghiên cứu cài đặt phần mềm hệ thống và lập trình điều khiển RaspberryPi
- Nghiên cứu thiết kế mạch giao tiếp giữa Raspberry Pi và Arduino, giaotiếp điều khiển động cơ giữa Arduino và LN298
- Lập trình phần mềm điều khiển giao tiếp điều khiển động cơ giữaArduino và LN298
- Thử nghiệm và đánh giá hoạt động của mô hình
- Rút ra kết luận và đề xuất hướng phát triển cải tiến hoạt động của môhình
1.4 Giới hạn đề tài
Phạm vi đề tài chỉ áp d<ng trong môi trường đường đi tự làm sẵn, diện tíchhoạt động hạn chế Mặt đường di chuyển của xe phẳng, không có chướng ngạivật, độ dốc Chỉ xử lý hình ảnh 2 chiều từ camera, không sử d<ng các cảm biếnkhác Khả năng nhận diện đường đi hạn chế trong điều kiện ánh sáng phức tạp.Tốc độ di chuyển của xe còn thấp, chưa đáp ứng yêu cầu thực tế Khả năng chịulỗi của hệ thống còn hạn chế, dễ bị sai lệch khi gặp nhiễu Hiệu quả hoạt độngcủa thuật toán cần tiếp t<c cải tiến
1.5 Nội dung thực hiện
- Tìm hiểu các tài liệu, hướng dẫn về nguyên lý hoạt động và các thông số
kỹ thuật của Arduino, LN298, Raspberry pi
- Lựa chọn và lắp ráp phần cứng: bộ điều khiển động cơ, servo góc lái, pinnguồn, bánh xe, camera
- Thiết kế mạch giao tiếp LN298 và Arduino điều khiển xe chạy, thiết kếmạch giao tiếp giữa Raspberry pi và Arduino để xuất tín hiệu xử lý điều khiển
xe qua mạch tăng áp
8
Trang 13- Cài đặt và cấu hình hệ điều hành cho Raspberry Pi.
- Viết phần mềm xử lý ảnh từ camera bao gồm: phân tích hình ảnh, nhậndiện đường đi, trích xuất đặc trưng từ ảnh
- Phân tích, phát triển thuật toán điều khiển hướng đi của xe dựa trên kếtquả xử lý ảnh, tốc độ xe, và tính góc lái servo
- Viết chương trình Arduino nhận tín hiệu điều khiển từ Raspberry Pi đểđiều khiển bộ điều khiển động cơ qua LN298
- Làm biển báo và đèn tín hiệu giao thông
- Thử nghiệm mô hình trên đường đi tự làm, đánh giá hiệu quả điều khiển
- Viết báo cáo kết quả thực nghiệm, rút ra kết luận và hướng phát triển đềtài
1.6 Bố cục đề tài
Chương 1: Tổng quan giới thiệu
Chương 2: Cơ sở lý thuyết
Chương 3: Thiết kế mô hình, triển khai mô hình
Chương 4: Thuật toán xử lý ảnh dò đường đi
Chương 5: Giao tiếp giữa Raspberry pi và Arduino
Chương 6: Kết luận
9
Trang 14CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về xe tự hành
Xe tự hành có thể xem là một bước đột phá của ngành công nghiệp ô tô nóiriêng và các ngành công nghiệp khác nói chung Được phát triển để có thể tựđộng vận hành và điều khiển chuyển động mà không cần có sự can thiệp củangười điều khiển xe, việc ra xe tự hành ra đời sẽ làm thay đổi cách mà mọingười di chuyển cũng như tương tác với thế giới xung quanh
Với các hệ thống cảm biến tiên tiến, trí tuệ nhân tạo, và các thuật toán họcmáy phức tạp, xe tự hành có khả năng nhận diện, phản ứng và phản hồi linh hoạtvới môi trường đường sá và giao thông Chúng được thiết kế để cải thiện sự antoàn, hiệu suất và tiện ích cho người điều khiển
Các ứng d<ng của xe tự hành không chỉ giới hạn trong lĩnh vực giao thông
cá nhân, mà còn mở ra nhiều tiềm năng trong vận tải hàng hóa, dịch v< giaohàng, du lịch và công nghiệp Sự ra đời của xe tự hành hứa hẹn mang lại nhữngtiện ích lớn về mặt an toàn, tiết kiệm thời gian và tiện nghi cho cuộc sống hàngngày
2.2 Xử lý ảnh với thư viện OpenCV
2.2.1 Giới thiệu về thư viện OpenCV
OpenCV là một thư viện mã nguồn mở phổ biến trong lĩnh vực xử lý ảnh
và thị giác máy tính Được phát triển bởi Intel vào năm 1999, sau đó được duytrì bởi Willow Garage và hiện nay là dự án mã nguồn mở của OpenCV.org,OpenCV cung cấp một loạt các công c< và thuật toán mạnh mẽ cho việc xử lý
và phân tích hình ảnh
Với OpenCV, người phát triển có thể thực hiện các công việc như xử lýảnh số, nhận dạng khuôn mặt, phát hiện đối tượng, theo dõi chuyển động, vànhiều ứng d<ng khác liên quan đến thị giác máy tính Thư viện này hỗ trợ nhiều
10
Trang 15ngôn ngữ lập trình như C++, Python, Java và có sẵn trên nhiều hệ điều hànhkhác nhau như Windows, Linux và macOS
Với cộng đồng lớn và sự phổ biến rộng rãi, OpenCV đã trở thành một côngc< quan trọng không chỉ trong nghiên cứu mà còn trong các ứng d<ng thươngmại và công nghiệp Điều này đặc biệt đối với các lĩnh vực như xe tự hành, nhậndạng hình ảnh trong y tế, an ninh, và thậm chí trong ngành công nghiệp giải trí
và robot
2.2.2 Các khái niệm cơ bản về xử lý ảnh
Trong lĩnh vực xử lý ảnh sử d<ng OpenCV, có một số khái niệm cơ bản màngười làm việc cần hiểu:
- Hình ảnh số (Digital Image): Được biểu diễn dưới dạng ma trận số, trong
đó mỗi phần tử biểu thị một giá trị điểm ảnh
- Ma trận hình ảnh (Image Matrix): Là biểu diễn của hình ảnh dưới dạng
ma trận, trong đó mỗi giá trị của ma trận tương ứng với một điểm ảnh
- Đọc và hiển thị hình ảnh (Read and Display Image): Quá trình đọc hìnhảnh từ file và hiển thị nó trên màn hình
- Xử lý màu sắc (Color Processing): Là quá trình thao tác và biến đổi màusắc của hình ảnh, bao gồm việc chuyển đổi không gian màu và cân bằng màusắc
- Lọc ảnh (Image Filtering): Sử d<ng các bộ lọc để cải thiện chất lượngảnh, làm mờ hoặc làm nét ảnh, hoặc loại bỏ nhiễu
- Phân đoạn hình ảnh (Image Segmentation): Là quá trình chia hình ảnhthành các phần vùng khác nhau dựa trên đặc trưng như màu sắc hoặc cạnh biên
- Nhận diện đối tượng (Object Detection): Là quá trình nhận dạng và định
vị vị trí của các đối tượng trong hình ảnh
- Phát hiện cạnh (Edge Detection): Là quá trình xác định các ranh giới hoặcbiên cạnh trong hình ảnh
- Biến đổi hình ảnh (Image Transformation): Là quá trình biến đổi hìnhdạng, kích thước hoặc góc nhìn của hình ảnh
11
Trang 16OpenCV cung cấp một loạt các hàm và công c< để thực hiện các thao tácnày trên hình ảnh một cách dễ dàng và hiệu quả.
2.2.3 Thuật toán xử lý ảnh cho xe tự hành
Trong hệ thống xe tự hành, việc nhận biết và tuân thủ làn đường là mộtphần quan trọng để đảm bảo an toàn và hiệu suất khi di chuyển trên đường.OpenCV cung cấp một loạt các thuật toán xử lý ảnh để giải quyết vấn đề nàymột cách hiệu quả
Một trong những thuật toán quan trọng được sử d<ng là thuật toán pháthiện làn đường (lane detection) Thuật toán này nhận diện và theo dõi các đường
kẻ trên bề mặt đường, từ đó giúp xe tự hành có thể duy trì vị trí của mình tronglàn đường Quá trình này thường bao gồm các bước như chuyển đổi không gianmàu, lọc ảnh để loại bỏ nhiễu, phát hiện cạnh và phân đoạn hình ảnh để xác định
vị trí của các đường kẻ
Khi đã nhận diện được các làn đường, xe tự hành có thể sử d<ng thông tinnày để điều chỉnh hướng di chuyển và giữ cho phương tiện di chuyển ổn địnhtrong làn đường Ngoài ra, việc sử d<ng các kỹ thuật xử lý ảnh khác như phânđoạn vùng quan trọng của làn đường hoặc nhận diện biển báo đường bộ cũng cóthể được kết hợp để cải thiện khả năng điều khiển và tương tác của xe tự hànhvới môi trường xung quanh
Tích hợp OpenCV vào hệ thống xe tự hành mang lại lợi ích lớn về tính linhhoạt và hiệu quả trong triển khai các giải pháp xử lý ảnh phức tạp Sự kết hợpgiữa công nghệ xử lý ảnh và xe tự hành hứa hẹn mở ra những triển vọng mớitrong việc phát triển các hệ thống giao thông tự động an toàn và thông minhhơn
12
Trang 172.3 Raspberry Pi 3B+ và Arduino R3
2.3.1 Giới thiệu về Raspberry Pi 3B+
Raspberry Pi 3B+ là một trong những phiên bản nổi bật trong dòng sảnphẩm Raspberry Pi, một dòng máy tính nhúng giá rẻ và mạnh mẽ được pháttriển bởi Raspberry Pi Foundation Ra mắt vào tháng 3 năm 2018, Raspberry Pi3B+ nhanh chóng trở thành một lựa chọn phổ biến cho các dự án điện tử, IoT(Internet of Things), máy tính nhúng, giáo d<c và nhiều ứng d<ng khác
Với bộ xử lý ARM Cortex-A53 4 nhân tốc độ 1.4GHz, Raspberry Pi 3B+cung cấp hiệu suất mạnh mẽ trong một hình dạng nhỏ gọn Nó cũng đi kèm với1GB RAM, giúp xử lý các tác v< đa nhiệm một cách mượt mà Ngoài ra,Raspberry Pi 3B+ tích hợp Wi-Fi 802.11ac và Bluetooth 4.2, cung cấp kết nốikhông dây tiện lợi cho các dự án IoT và mạng không dây
Với các cổng HDMI, USB, Ethernet và khe cắm thẻ nhớ microSD,Raspberry Pi 3B+ cung cấp sự linh hoạt trong việc kết nối với các thiết bị ngoại
vi và lưu trữ dữ liệu Nó cũng có khả năng chạy các hệ điều hành như Raspbian(một phiên bản tùy chỉnh của Linux), Windows 10 IoT Core và nhiều hệ điềuhành nhúng khác, cho phép người dùng tận d<ng tối đa tiềm năng của nó chocác dự án khác nhau
13
Hình 2.1 Raspberry Pi 3B+
Trang 18Với sức mạnh tính toán và tính linh hoạt của mình, Raspberry Pi 3B+ đãtrở thành một công c< phổ biến và mạnh mẽ trong cộng đồng DIY (tự làm) vàngười học, cũng như trong các ứng d<ng thương mại và công nghiệp nhỏ Điềunày thể hiện sự ảnh hưởng và sức mạnh của nền tảng máy tính nhúng Raspberry
Pi trong việc thúc đẩy sự sáng tạo và phát triển công nghệ
2.3.2 Giới thiệu về Arduino UNO R3
Arduino UNO R3 là một trong những phiên bản phổ biến nhất của dòng bomạch Arduino, được biết đến là một nền tảng phát triển phần cứng mã nguồn
mở Được thiết kế với m<c đích đơn giản và dễ sử d<ng, Arduino UNO R3 làlựa chọn lý tưởng cho cả những người mới bắt đầu và những chuyên gia tronglĩnh vực điện tử và lập trình
Arduino UNO R3 đi kèm với một vi điều khiển ATmega328P và có mộtloạt các chân GPIO (General Purpose Input/Output) cho phép người dùng kếtnối với các cảm biến, module và các thành phần điện tử khác một cách dễ dàng
Nó cũng có các cổng kết nối như USB, điện áp DC và cổng cắm ICSP, tạo điềukiện thuận lợi cho việc nạp chương trình và giao tiếp với máy tính
Arduino UNO R3 hỗ trợ một loạt các ngôn ngữ lập trình, bao gồm C và C++, và có thể lập trình thông qua môi trường phát triển tích hợp (IDE) củaArduino, một phần mềm mã nguồn mở miễn phí và dễ sử d<ng Điều này giúp
14
Hình 2.2 Arduino UNO R3