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

Đồ án Xe tự hành tránh vật cản sử dụng opencv, raspberry, c++

83 1,4K 18
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

Định dạng
Số trang 83
Dung lượng 2,5 MB

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

Nội dung

Nội dung của đồ án này gồm các phần: Chương 1: Tổng quan về xe tự hành và bài toán điều khiển xe tự hành. Chương 2: Cơ sở xây dựng chương trình điều khiển cho xe tự hành. Chương 3: Xây dựng mô hình và chương trình điều khiển cho xe tự hành.

Trang 1

MỤC LỤC

DANH MỤC CÁC HÌNH VẼ 3

LỜI NÓI ĐẦU 6

Chương 1: TỔNG QUAN VỀ XE TỰ HÀNH VÀ BÀI TOÁN ĐIỀU KHIỂN XE TỰ HÀNH 8

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

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

1.3 Đặt bài toán xây dựng mô hình và hệ thống điều khiển xe tự hành 17 1.4 Kết luận chương 1 19

Chương 2: CƠ SỞ XÂY DỰNG CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO XE TỰ HÀNH 20

2.1 Tổng quan về các thư viện sử dụng cho hệ thống điều khiển xe tự hành 20 2.1.1 Thư viện Opencv 20

2.1.2 Thư viện wiringPi 29

2.2 Logic mờ và bộ điều khiển mờ 31

2.2.1 Lịch sử phát triển của logic và bộ điều khiển mờ 31

2.2.2 Khái niệm và các phép toán trên tập mờ 33

2.2.3 Luật hợp thành mờ 35

2.2.4 Phương pháp giải mờ 37

2.2.5 Cấu trúc và các bước xây dựng bộ điều khiển mờ 41

2.3 Kết luận chương 2 44

Chương 3: XÂY DỰNG MÔ HÌNH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO XE TỰ HÀNH 45

Trang 2

3.1 Xây dựng mô hình 45

3.1.1 Xây dựng cấu trúc hệ thống và sơ đồ kết nối thiết bị 45

3.1.2 Các thiết bị phần cứng sử dụng trong hệ thống 48

3.2 Xây dựng chương trình điều khiển cho xe tự hành 57

3.2.1 Xây dựng phần điều khiển bám đường 58

3.2.2 Xây dựng phần điều khiển tránh vật cản 74

3.3 Thử nghiệm và đánh giá 78

3.4 Kết luận chương 3 81

KẾT LUẬN CHUNG 82

TÀI LIỆU THAM KHẢO 83

Trang 3

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Xe hơi trong năm 2017 11

Hình 1.2 Xe hơi trong năm 2021 12

Hình 1.3 Xe hơi trong năm 2026 13

Hình 2.1 Độ cao, miền xác định, miền tin cậy của tập mờ 34

Hình 2.2 Mô tả hàm liên thuộc của luật hợp thành 36

Hình 2.3 Các nguyên lý giải mờ theo phương pháp cực đại 39

Hình 2.4 Các khối chức năng của bộ điều khiển mờ 41

Hình 2.5 Sơ đồ cấu trúc bộ điều khiển mờ 42

Hình 3.1 Sơ đồ liên kết các phần cứng 45

Hình 3.2 Sơ đồ kết nối các thiết bị phần cứng 46

Hình 3.3 Sơ đồ bố trí của xe mô hình 47

Hình 3.4 Xe sau khi được lắp ráp 48

Hình 3.5 Raspberry Pi 3 49

Hình 3.6 GPIO Raspberry Pi 3 model B 51

Hình 3.7 Sơ đồ chân của module L298 52

Hình 3.8 Cảm biến siêu âm HC-SR04 53

Hình 3.9 Động cơ servo 54

Hình 3.10 Sơ đồ chân của động cơ RC servo 55

Hình 3.11 Sơ đồ hoạt động của động cơ RC Servo 56

Hình 3.12 Camera A4-Tech PK-720G 56

Hình 3.13 Sơ đồ thực hiện chương trình 58

Trang 4

Hình 3.14 Phạm vi tính tâm đường và tâm đường 59

Hình 3.15 Sơ đồ thực hiện thuật toán tìm tâm đường 59

Hình 3.16 Vùng ảnh left và right 60

Hình 3.17 Xe nằm giữa hai vạch đường 61

Hình 3.18 Xe nằm bên ngoài bên phải cả hai vạch đường 62

Hình 3.19 Xe nằm bên trong bên phải một vạch đường 62

Hình 3.20 Xe nằm bên ngoài bên trái cả hai vạch đường 62

Hình 3.21 Xe nằm bên trong bên trái một vạch đường 63

Hình 3.22 Xe nằm giữa, mất vạch đường bên phải 63

Hình 3.23 Xe lệch sang phải, mất vạch đường bên phải 63

Hình 3.24 Xe nằm giữa, mất vạch đường bên trái 64

Hình 3.25 Xe lệch sang trái, mất vạch đường bên trái 64

Hình 3.26 Xe không bắt được vạch đường 64

Hình 3.27 Góc thực 65

Hình 3.28 Sơ đồ thực hiện của bộ điều khiển mờ 66

Hình 3.29 Định nghĩa tập mờ cho biến ngôn ngữ gocthuc 67

Hình 3.30 Định nghĩa tập mờ cho biến ngôn ngữ DeltaPWM 70

Hình 3.31 Hàm thuộc đầu ra của luật hợp thành với giá tri gocthuc=26,25 73

Hình 3.32 Giải mờ sử dụng phương pháp điểm trọng tâm cho luật Sum-Min 73

Hình 3.33 Sơ đồ thực hiện thuật toán tìm vật cản 74

Hình 3.34 Ảnh đầu vào 75

Hình 3.35 Ảnh sau khi lọc màu 75

Hình 3.36 Vật cản sau khi tìm được 76

Trang 5

Hình 3.37 Sơ đồ thực hiện thuật toán điều khiển tránh vật cản 76

Hình 3.38 Vật cản nằm bên trái đường 76

Hình 3.39 Vật cản nằm bên phải đường 77

Hình 3.40 Vật cản nằm giữa đường 77

Hình 3.41 Tâm đường mới trường hợp vật cản nằm bên trái đường 77

Hình 3.42 Tâm đường mới trường hợp vật cản nằm bên phải đường 78

Hình 3.43 Tâm đường mới trường hợp vật cản ở giữa đường 78

Hình 3.44 Xe chạy thử nghiệm với đường vòng tròn 79

Hình 3.45 Thử nghiệm xe tránh vật cản 80

Trang 6

LỜI NÓI ĐẦU

Trên thế giới đã từng trải qua ba cuộc cách mạng công nghiệp lớn Sau mỗi một cuộc cách mạng, nó làm thay đổi thế giới trên tất cả các mặt kinh tế, xã hội

và văn hóa Và hiện nay thế giới đang bước vào cuộc cách mạng công nghiệp lần thứ tư Đây được gọi là cuộc cách mạng số, thông qua các công nghệ như Internet vạn vật (IoT), trí tuệ nhân tạo (AI), thực tế ảo (VR), tương tác thực tại ảo (AR), mạng xã hội, điện toán đám mây, phân tích dữ liệu lớn (SMAC) và đặc biệt 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ẽ áp đảo các phương tiện đang thịnh hành hiện nay Hiện đã có rất nhiều tập đoàn sản xuất xe hơi và công nghệ lớn trên thế giới đã tham gia vào cuộc chạy đua phát triển xe hơi công nghệ tự lái thông minh (gọi tắt là xe tự lái, xe tự hành) mà không cần đến bàn tay can thiệp của con người, trong đó có những tên tuổi nổi bật như Tesla, Daimler, Google

Yếu tố quan trọng để xe có thể tự động lái được đó chính là phần xử lý bám đường và tránh vật cản Nhận thấy được tầm quan trọng này, nên trong đồ án này

em sẽ nghiên cứu hệ thống điều khiển bám đường, tránh vật cản cho xe tự hành,

sử dụng camera xác định làn đường và cảm biến HC-SR04 để đo khoảng cách đến vật cản Với điều kiện đường có phân chia làn bởi các vạch sơn trắng như trên đường cao tốc thực tế

Để thực hiện được đồ án này em sử dụng phần cứng là máy tính nhúng Raspberry Pi 3 có cài đặt hệ điều hành raspbian-jessie, kết hợp với camera f4tech

và cảm biến siêu âm HC-SR04 Để viết chương trình điều khiển em sử dụng ngôn ngữ C++, thư viện opencv và wiringPi

Nội dung của đồ án này gồm các phần:

- Chương 1: Tổng quan về xe tự hành và bài toán điều khiển xe tự hành

Trang 7

- Chương 2: Cơ sở xây dựng chương trình điều khiển cho xe tự hành

- Chương 3: Xây dựng mô hình và chương trình điều khiển cho xe tự hành Trong quá trình làm đồ án, do trình độ chuyên môn còn hạn chế nên không thể tránh khỏi những sai sót, rất mong được sự đóng góp của các thầy, cô và bạn đọc để đồ án được hoàn thiện hơn

Em xin chân thành cảm ơn Thiếu tá – Tiến sĩ – Thầy giáo Phạm Văn Nguyên, cùng các thầy cô trong bộ môn Tự động và kỹ thuật tính đã tận tình, hướng dẫn, chỉ bảo và tạo điều kiện thuận lợi nhất để em có thể hoàn thành đồ án này

Hà nội, ngày tháng năm 2017

Học viên thực hiện

Lê Văn Thu

Trang 8

Chương 1: TỔNG QUAN VỀ XE TỰ HÀNH VÀ BÀI TOÁN

ĐIỀU KHIỂN XE TỰ HÀNH 1.1 Tổng quan về xe tự hành

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

Xe tự hành, cũng được biết đến như 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 và điều hướng mà không cần sự can thiệp của con người[3]

b) Lịch sử ra đời và phát triển

Các thí nghiệm về xe tự hành đã được tiến hành ít nhất là từ những năm

1920, thử nghiệm đầy hứa hẹn đã diễn ra vào những năm 1950 và công việc này

đã được bắt đầu kể từ đó Những chiếc xe tự hành đầu tiên xuất hiện vào những năm 1980, do trường đại học Carnegie Mellon của Navlab trong dự án ALV (Autonomous Land Vehicle) năm 1984, Mercedes-Benz và Bundeswehr của trường đại học Munich trong dự án Prometheus EUREKA vào năm 1987 kể từ

đó, nhiều công ty lớn và các tổ chức nghiên cứu đã phát triển xe tự hành, bao gồm Mercedes-Benz, General Motors, Continental Automotive Systems, IAV, Autoliv Inc., Bosch, Nissan, Renault, Toyota, Audi, Hyundai Motor Công ty, Volvo, Tesla Motors, Peugeot, Local Motors, AKKA Technologies, Vislab từ Đại học Parma, Đại học Oxford và Google Vào tháng Bảy năm 2013, Vislab chứng minh BRAiVE, một chiếc xe tự hành di chuyển trên một tuyến đường giao thông công cộng Trong năm 2015, năm quốc gia Mỹ (Nevada , Florida , California , Virginia,

và Michigan) cùng với Washington, DC cho phép thử nghiệm xe tự động hoàn toàn trên đường công cộng Trong khi xe ô tô tự trị nói chung đã được thử nghiệm trong thời tiết bình thường trên những con đường bình thường, Ford đã thử nghiệm

xe tự trị của họ trên những con đường phủ đầy tuyết

Trang 9

c) Ưu điểm của xe tự hành

- Tiết kiệm được vô số thời gian của con người

- Giải quyết các vấn đề về môi trường

- Hạn chế tắc đường

- Các xe có thể tự giao tiếp với nhau, giảm thiểu được các tai nạn giao thông

- Giảm được số tài xế, nhân viên chỉ dẫn giao thông công cộng

- Kết quả nghiên cứu cho thấy người điều khiển là nguyên nhân chính gây ra tai nạn giao thông Với xe tự hành, sự phân tâm khi mệt mỏi hay say rượu sẽ không ảnh hưởng tới khả năng làm chủ trên đường bởi nhiệm vụ này được máy tính đảm nhận

- Đã giảm bớt gánh nặng đặt lên người điều khiển trên đường cao tốc hay khi tắc đường bởi tất cả đều được tự động hóa Từ phát hiện điểm mù, cảnh báo làn đường khi khởi hành, quản lý gia nhập làn đường và thậm chí tự đậu xe,

- Từ trước đến nay, điều khiển một chiếc xe chỉ dành cho người có thể vượt qua kì thi lấy bằng lái Những người quá trẻ hoặc quá già, người khuyết tật hoặc

có triệu chứng tâm lý không thể có được trải nghiệm này Nhưng với xe tự hành, giao thông cá nhân sẽ mở ra tất cả các phân khúc đơn lẻ của xã hội Việc làm chủ một thiết bị di chuyển hiện đại sẽ nằm trong tầm tay của tất cả mọi người

- Về mặt thẩm mỹ, xe tự hành sẽ thay đổi cách nhìn nhận một chiếc xế hộp, hoặc ít nhất về khía cạnh nội thất sẽ rất khác biệt Vô-lăng, nút bấm, bàn đạp phanh, ga, cần sang số, đồng hồ tốc độ và nhiều cụm thiết bị khác bỗng trở nên thừa thãi Những nguyên tắc cứng nhắc như ghế ngồi phải hướng về phía trước sẽ không còn hiệu lực Nội thất xe sẽ được thiết kế phục vụ nhu cầu sinh hoạt và giải trí của người sử dụng Bạn có thể ăn, ngủ, nghỉ, thậm chí tận hưởng cuộc sống ngay trong lúc xe vẫn đang chạy trên đường Xét về tính ứng dụng, xe tự hành

Trang 10

giống như một ngôi nhà lưu động và trở thành giải pháp cho hiện trạng đô thị chật chội ngày nay

d) Nhược điểm của xe tự hành

- Hệ thống cơ sở hạ tầng còn chưa phù hợp với xe tự hành

- Kinh phí xây dựng hệ thống giao thông, biển bảng rất lớn

- Giá thành của các xe sẽ tương đối cao

- Công nghệ còn chưa thay thế được con người hoàn toàn

- Vấn đề việc làm sẽ mất cân đối: nhiều tài xế, nhân viên giao thông bị thất nghiệp

- Hệ thống này không thực sự hoàn hảo bởi sự phụ thuộc vào điều kiện môi trường Tính hiệu quả chỉ phát huy tối đa khi môi trường xung quanh hội tụ đủ tiêu chuẩn nhất định.Thời tiết không thuận lợi sẽ ảnh hưởng tới độ chính xác cũng như an toàn của xe khi vận hành

- Tuy nhiên, rào cản lớn nhất không đến từ khía cạnh kỹ thuật mà là luật pháp Ví dụ như khi tai nạn xảy ra, thật khó xác định lỗi thuộc về người ngồi trên

xe hay không Luật pháp dù có cải tiến vẫn chậm chạp hơn tốc độ phát triển của công nghệ Một số tiểu bang Hoa Kỳ đã chú ý tới điều luật dành cho xe tự động

và bán tự động

e) Dự đoán tương lai của xe tự hành

Ôtô trong tương lai sẽ được trang bị nhiều công nghệ tự lái hiện đại, giúp làm giảm căng thẳng và mệt mỏi cho các lái xe, đồng thời giảm thiểu khả năng va chạm với phương tiện khác

Công nghệ xe tự hành hứa hẹn mang đến cho con người sự an toàn, thoải mái và cá nhân hoá hơn

Trang 11

Ở Nhật dường như đang tiến gần hơn tới việc vận hành hệ thống giao thông công cộng một cách tự động sau khi một công ty nước này cho trình làng xe buýt không người lái, có tên Robot Shuttle

Hiện tại các công nghệ dành cho dòng xe cao cấp trước đây trở thành tiêu chuẩn như: bluetooth, GPS, cảm biến đỗ xe Xe hơi bây giờ còn được tích hợp một trạm phát Wi-Fi, cho phép người trên xe có thể truy cập internet và nó thực thụ trở thành một thiết bị di động với nhiều tính năng khác nhau (xem Hình 1.1) Đến năm 2021 sẽ có khoảng 10 chiếc xe tự hành đầu tiên được bán ra trên thị trường, nó được tích hợp thêm công nghệ giao tiếp giữa xe với xe giúp chúng cảm nhận và “nhìn thấy nhau”

Trên xe các tiện ích đa phương tiện như âm nhạc, video, dữ liệu được tích hợp sẵn trong kết nối internet trong xe dựa vào công nghệ điện toán đám mây Người dùng sử dụng chúng thông qua câu lệnh bằng giọng nói (xem Hình 1.2)

Hình 1.1 Xe hơi trong năm 2017

Trang 12

Đến năm 2026, xe tự hành có thể di chuyển hoàn toàn tự động, nó đủ tinh vi

và hiện đại để được sử dụng phổ biến Khi đó sẽ có pháp luật và quy định riêng dành cho xe tự hành Các vấn đề đạo đức cũng được quan tâm và thực hiện (xem Hình 1.3)

Công nghệ xe tự hành hứa hẹn mang đến cho con người sự an toàn, thoải mái và cá nhân hoá hơn Hiện tại thì đã có khá nhiều mẫu xe được trang bị các công nghệ tự động như tự ra/vào garage, hay tự động đỗ xe, … Có lẽ phải mất đến vài năm nữa cho đến khi chúng ta có những mẫu xe tự hành thực thụ có thể chạy trên đường một cách an toàn

Cuộc đua để đưa những chiếc xe tự hành đến với công chúng đang "nóng" hơn bao giờ hết khi những người khổng lồ công nghệ đang thử vận may ở lĩnh vực mới mẻ này và được coi là dòng xe của tương lai

Hình 1.2 Xe hơi trong năm 2021

Trang 13

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

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

Vào năm 2014, để thấy được tình hình nghiên cứu xe tự hành đang ở cấp độ nào, hiệp hội kỹ sư xe hơi (SAE) đã đưa ra 6 cấp độ cho xe tự hành[12]

Cấp độ 0 hoàn toàn không có tính năng tự lái Nhiều ô tô đang được lưu thông hiện nay được xếp vào cấp độ này, kể cả những ô tô được trang bị các tính năng như cảnh báo va chạm phía trước hay công nghệ cảnh báo điểm mù Ở cấp

độ này, người ngồi phía sau vô lăng phải tự mình điều khiển hoàn toàn các tính năng của xe, như lái xe, gia giảm tốc độ, hay phanh khi xe đang chạy

Cấp độ 1 được trang bị một vài tính năng hỗ trợ người lái Các loại ô tô tự lái ở cấp độ này có thể có một hoặc nhiều hệ thống điều khiển tốc độ của xe hoặc hướng lái, nhưng không thể đồng thời vận hành cả hai tính năng này Nhiều mẫu

ô tô hiện nay được trang bị tính năng Cruise Control nhằm giúp chiếc xe có thể tự vận hành ở tốc độ mong muốn của người lái xe, từ đó giảm tải việc liên tục phải giữ chân ga trên một quãng đường dài Đây là ví dụ cho một tính năng tự hành cấp độ một Tới năm 2021, hầu hết ô tô bán ra tại Mỹ sẽ được trang bị hệ thống

Hình 1.3 Xe hơi trong năm 2026

Trang 14

phanh tự động khẩn cấp, vốn cũng là một tính năng của xe tự hành cấp độ 1 Bên cạnh đó, một vài hãng xe như Subaru còn có cả hệ thống chủ động kiểm soát làn đường, qua đó có thể tự động lái xe trở về đúng làn đường khi xe chạy chệch làn trên những xe thuộc phân khúc phổ thông, nhưng các hệ thống này không thịnh hành bằng hệ thống Cruise Control

Cấp độ 2 được trang bị các hệ thống hỗ trợ người lái nhiều hơn Nhiều nhà sản xuất ô tô hạng sang hiện đã cung cấp các xe tự hành cấp độ hai có thể đồng thời tự điều khiển hướng lái và tốc độ, mà không cần sự tương tác từ người lái trong một khoảng thời gian ngắn (dưới 1 phút hay vài giây) Hiện tại, các “ông lớn” như Volvo, Mercedes-Benz và BMW đều đã cung cấp các tính năng tự hành cấp độ hai, nhưng tất cả đều yêu cầu người lái phải theo dõi điều kiện môi trường xung quanh khi xe di chuyển Hệ thống tự hành cấp độ hai nổi tiếng nhất hiện nay

có lẽ là Autopilot của Tesla Hệ thống này có thể đo lực xoay trên vô lăng để đảm bảo rằng người lái đang tập trung lái xe Xe tự hành ở cấp độ này không thể tự điều khiển ở mọi trường hợp, bao gồm cả việc nhập làn vào đường cao tốc hay lái

xe trong trình trạng tắc đường Hiện nay các xe tự hành đã được ra mắt trên thế giới mới chỉ dừng lại ở cấp độ này

Cấp độ 3 là tự hành có điều kiện Không giống như các xe tự hành cấp độ 2,

xe tự hành cấp độ 3 có thể tự điều khiển trong mọi tình huống, đồng thời liên tục

tự theo dõi điều kiện đường xá Song không giống như những cấp độ tự hành cao hơn, xe cấp độ 3 sẽ chuyển sang chế độ người lái điều khiển khi chúng không thể

xử lý tình huống Theo định nghĩa của SAE, xe tự hành cấp độ 3 sẽ yêu cầu người lái can thiệp khi hệ thống tự lái ngừng hoạt động Tuy nhiên, một số nhà sản xuất

ô tô cho rằng đây là một vấn đề về an toàn đối với người lái vì họ quá phụ thuộc vào các hệ thống này và có thể không sẵn sàng để can thiệp khi cần thiết Đây cũng là lý do mà nhiều hãng xe như Ford hay Volvo cho biết họ sẽ bỏ qua giai đoạn này

Trang 15

Cấp độ 4 được mô tả là gần như tự hành Ford và Volvo gần đây đều loan báo sẽ cho ra đời những chiếc xe tự hành cấp độ 4 trước năm 2021 Hiện chưa rõ liệu khách hàng bình thường có được sử dụng những chiếc xe này, hay chúng chỉ dành cho các hoạt động chia sẻ xe hoặc chỉ có mặt ở một số thành phố nhất định, nhưng rõ ràng là nhiều hãng xe đang hướng mục tiêu tới cấp độ này Xe tự hành cấp độ 4 sẽ không cần đến sự tương tác của người lái nữa mà thay vào đó sẽ tự động dừng lại khi các hệ thống tự hành ngừng hoạt động Đây là điểm khác biệt quan trọng của xe cấp độ 4 so với cấp độ 3 Nhiều nhà sản xuất ô tô như Tesla hay Mercedes-Benz đã tích hợp tính năng tự giảm dần tốc độ xe đến khi dừng hẳn hoặc bật đèn cảnh báo nguy hiểm khi phát hiện tín hiệu cho thấy người lái không tương tác với xe Nhiều hãng xe cho rằng việc tích hợp cả tính năng tự lái và có người lái là thừa và tốn kém Volvo là hãng xe duy nhất cho đến nay cho biết họ

sẽ tung ra chiếc XC90 tự hành cấp độ 4 với cả hai tính năng này

Cấp độ 5 là những xe tự hành hoàn toàn Dù cấp độ 4 và cấp độ 5 có vẻ như không mấy khác biệt, song trên thực tế, đây là một bước nhảy vọt khi xe tự hành cấp độ năm hoàn toàn không cần đến sự tương tác của người lái trong quá trình vận hành Các bộ phận cơ bản của xe như vô lăng, chân ga và chân phanh sẽ không còn cần thiết trên một chiếc xe tự hành cấp độ này bởi chúng không cần sự điều khiển của con người nữa

Hiện nay trên thế giới đã có rất nhiều hãng tham gia nghiên cứu xe tự hành

và trong tương lai gần họ sẽ ra mắt và thử nghiệm một số loại xe tự hành vào đời sống như:

- Audi: Chiếc Audi A7 đã hoàn tất hành trình tự lái dài 885km vào năm 2016 tuy nhiên Audi vẫn chưa có tuyên bố chính thức về ngày ra mắt của chiếc xe Audi cũng là hãng xe đầu tiên nhận được sự cho phép vận hành xe tự hành ở Nevada (2012) và California (2014)

Trang 16

- Daimler: Người đứng đầu của hãng, Thomas Weber tuyên bố Daimler muốn là hãng xe đầu tiên trang bị công nghệ tự hành trên các mẫu xe của mình,

và hứa với người tiêu dùng rằng hãng sẽ cho ra mắt mẫu xe tự hành đầu tiên vào cuối thập niên này

- Apple: Dự án Titan của Apple dự kiến cho ra mắt vào năm 2019 Tuy nhiên, chưa có thông báo chính thức nào về việc này nên cũng còn phải chờ xem liệu Apple có thể đánh bại Google trong lĩnh vực này hay không

- General Motors: Hãng xe sẽ cho ra mắt hệ thống xe tự hành dành cho nhân viên của hãng di chuyển trong công ty vào cuối năm 2016 Trên web của hãng cũng có nhắc đến việc cho ra mắt dòng xe bán tự hành vào năm 2020 và dòng xe

tự hành 100% vào thập niên kế tiếp

- Ford: Ford cũng vừa thành lập một đội ngũ kỹ sư chuyên nghiên cứu công nghệ tự hành vào tháng 6/2016 vừa qua Tuy nhiên, hãng cũng cho biết có thể đến năm 2020 các xe của Ford sẽ không phải là mẫu xe sở hữu công nghệ tự hành 100% vì Ford muốn phát triển công nghệ để có thể trang bị trên tất cả các phân khúc xe của hãng chứ không chỉ trang bị cho phân khúc siêu sang

- Nissan: Hãng xe Nhật cũng dự kiến cho ra mắt mẫu xe tự hành vào năm

2020 Hãng xe này đã nghiên cứu và làm việc với các nhà nghiên cứu đến từ các trường ĐH lớn trên thế giới như Oxford, Stanford, MIT nhằm sớm biến công nghệ này thành hiện thực

- Toyota: Người khổng lồ Nhật Bản tuyên bố sẽ cho ra mắt phiên bản Lexus

tự lái vào dịp thế vận hội Olympics Tokyo năm 2020

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

Trước tình hình nghiên cứu xe tự hành trên thế đang rất sôi động, vào ngày 2/11/2016 tập đoàn FPT đã chính thức phát động cuộc thi “Cuộc đua số” với chủ

đề “Xe không người lái” nhằm mục đích giúp cho các bạn trẻ Việt Nam xây dựng

Trang 17

một nền tảng vững chắc để đón nhận cơ hội và thành công trong cuộc cách mạng

số đang diễn ra hết sức mạnh mẽ trên toàn thế giới

Và để có cái nhìn toàn diện về công nghệ ô tô và robot trong cuộc cách mạng công nghiệp 4.0 này, ngày 15/4/2017, tại Hà Nội, FPT Software đã phối hợp với Vietnamworks tổ chức hội thảo về "Tương lai công nghệ ô tô và robot trong cuộc cách mạng công nghiệp 4.0" FPT Software cũng giới thiệu mô hình thử nghiệm

xe tự hành do công ty tự nghiên cứu phát triển từ tháng 8/2016 Nhóm nghiên cứu

đã tiến hành lắp ráp và lập trình xe tự hành trong 3 tháng với các linh kiện nhập

từ nhiều nước Theo đại diện FPT Software, xe có thể tự động nhận diện vật cản, leo trèo bãi đất, bãi cát, leo dốc đến 45 độ, lội nước ngập sâu 10cm, lội sình lầy, lội tuyết…

Xe chạy được trên đường cong (địa hình đơn giản) và tránh được vật cản nhờ thuật toán phát hiện biên của ảnh để xác định đường di chuyển của xe, đọc dữ liệu

từ cảm biến siêu âm, tính tốc độ động cơ, điều khiển động cơ PID cơ bản cho vòng tốc độ và vị trí …

Hiện nay trong nước mới chỉ có tập đoàn FPT đang tham gia nghiên cứu công nghệ xe không người lái

1.3 Đặt bài toán xây dựng mô hình và hệ thống điều khiển xe tự hành

Để nắm bắt được xu thế công nghệ xe tự hành, em lựa chọn đồ án “Nghiên cứu xây dựng hệ thống điều khiển bám đường, tránh vật cản cho xe tự hành” Với mục đích là xây dựng được mô hình xe tự hành có thể bám được đường dựa theo

mô phỏng đường thực tế và tránh được vật cản Để đạt được mục đích như vậy,

em đưa ra mục tiêu nghiên cứu như cứu như sau:

- Xây dựng được mô hình xe tự hành có đầy đủ trang, thiết bị cho việc xác định làn đường và vật cản, xe có thể di chuyển được trên sa hình mô phỏng đường thực tế

Trang 18

- Nắm được các thiết bị phần cứng được trang bị cho xe để có thể lập trình, làm việc được với xe

- Nắm được các cơ sở liên quan đến việc xác định làn đường, xác định vật cản và các thuật toán điều khiển

- Nghiên cứu đưa ra được thuật toán xác định làn đường

- Nghiên cứu đưa ra được thuật toán điều khiển xe bám đường

- Nghiên cứu đưa ra được thuật toán xác định vật cản

- Nghiên cứu đưa ra được thuật toán điều khiển tránh vật cản

- Kết hợp các thuật toán lại thành một chương trình điều khiển xe bám đường, tránh vật cản hoàn chình

- Chạy thử nghiệm xe và đưa ra đánh giá

Để thực hiện được các mục tiêu trên sử dụng các phương pháp sau:

- Phương pháp nghiên cứu tài liệu;

- Nghiên cứu xử lý ảnh sử dụng thư viện Opencv;

- Nghiên cứu các thiết bị phần cứng Raspberry Pi 3, cảm biến siêu âm SR04, camera A4 tech, điều khiển động cơ qua L298N;

HC Nghiên cứu thuật toán xác định làn đường, xác định vật cản và chương trình điều khiển xe

Trang 19

1.4 Kết luận chương 1

Trong chương 1, trình bày được khái niệm xe tự hành, lịch sử ra đời và phát triển của xe tự hành, ưu nhược điểm của xe tự hành, dự đoán tương lai và dự đoán công nghệ xe tự hành trong vòng 10 năm tới Trình bày được tình hình nghiên cứu

xe tự hành ở thế giới và trong nước Đưa ra được tính cấp thiết, phạm vi nghiên cứu, phương pháp nghiên cứu và hướng giải quyết của đồ án

Chương 1 giúp chúng ta hiểu được tổng quan về xe tự hành, xu thế phát triển của nó và nêu lên được nội dung mà đồ án này sẽ thực hiện

Trong chương 2 em tiếp tục trình bày về cơ sở xây dựng trương trình điều khiển cho xe tự hành Trong đó em sẽ trình bày tổng quan về thư viện Opencv và wiringPi, cơ sở lý thuyết về thuật toán điều khiển mờ

Trang 20

Chương 2: CƠ SỞ XÂY DỰNG CHƯƠNG TRÌNH ĐIỀU KHIỂN

CHO XE TỰ HÀNH

2.1 Tổng quan về các thư viện sử dụng cho hệ thống điều khiển xe tự hành

2.1.1 Thư viện Opencv

2.1.1.1 Tổng quan về thư viện Opencv

OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh, máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực[5]

OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học thuật và thương mại Nó có các interface C++, C, Python, Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tính toán hiệu quả và với sự tập trung nhiều vào các ứng dụng thời gian thực Được viết bằng tối ưu hóa C/C++, thư viện có thể tận dụng lợi thế của xử lý đa lõi Được

sử dụng trên khắp thế giới, OpenCV có cộng đồng hơn 47 nghìn người dùng và

số lượng download vượt quá 6 triệu lần Phạm vi sử dụng từ nghệ thuật tương tác, cho đến lĩnh vực khai thác mỏ, bản đồ trên web hoặc công nghệ robot[5]

OpenCV đang được sử dụng rộng rãi trong các ứng dụng bao gồm:

- Hình ảnh street view

- Kiểm tra và giám sát tự động

- Robot và xe hơi tự lái

- Phân tích hình ảnh y tế

- Tìm kiếm và phục hồi hình ảnh/video

- Phim - cấu trúc 3D từ chuyển động

Trang 21

- Nghệ thuật sắp đặt tương tác

OpenCV có một cấu trúc modul, cái mà là các gói thư viện được chia sẻ chung hoặc thư viện tĩnh Phía dưới là modul có[9]

- Core – là modul nhỏ gọn xác định cấu trúc dữ liệu cở bản, bao gồm mảng

đa chiều Mat và các hàm cơ bản được sử dụng bởi tất cả các modul khác

- Imgproc – là modul xử lý ảnh bao gồm lọc tuyến tính và phi tuyến tính, biến đổi hình học (thay đổi kích thước, affine và phối cảnh nhân tạo, sửa đổi dựa trên bảng chung), chuyển đổi không gian màu, lược đồ, v.v…

- Video – là modul phân tích video bao gồm đánh giá chuyển động, phép trừ nền và các thuật toán theo dõi đối tượng

- Calib3d – Các thuật toán hình học nhiều chiều cơ bản, hiệu chuẩn camera đơn và âm thanh, ước lượng các đối tượng, thuật toán tương phản stereo và các yếu tố tái tạo 3D

- Features2d – trình dò đặc trưng, mổ tả và kết nối mô tả

- Objdetect – phát hiện các đối tượng và các lớp được xác định trước (ví dụ khuân mặt, mắt, cốc, người, xe hơi, v.v…)

- Highgui – một giao diện dễ sử dụng để quay video, hình ảnh và codecs video, cũng như giao diện người dùng đơn giản

- Gpu – Các thuật toán tăng tốc CPU từ các modul opencv khác nhau

2.1.1.2 Các hàm cơ bản trong Opencv được sử dụng đến trong đồ án

Trang 22

- flags – cờ chỉ ra loại màu của ảnh load

CV_LOAD_IMAGE_ANYDEPTH – Nếu cài đặt, trả về ảnh 16 bít hoặc 32 bit khi đầu vào là tương ứng với ảnh độ sâu, trường hợp khác chuyển đổi thành 8 bit

CV_LOAD_IMAGE_COLOR – Nếu cài đặt, luôn luôn chuyển ảnh

< 0 trả về hình ảnh được tải (như với kênh alpha)

Hàm load ảnh “imread” đọc một ảnh từ một file đã chỉ và trả lại nó Nếu ảnh không thể đọc được (vì file lỗi, phân quyền, không hỗ trợ hoặc định dạng lỗi), hàm sẽ trả về một ma trận rỗng (Mat::data==NULL) Hiện tại, các định dạng file được hỗ trợ là:

- Windows bitmaps - *.bmp, *.dib (luôn luôn được hỗ trợ)

- JPEG files - *.jpeg, *.jpg, *.jpe (tùy thuộc hệ điều hành)

- JPEG 2000 files - *.jp2 (tùy thuộc hệ điều hành)

- Portable Network Graphics - *.png (tùy thuộc hệ điều hành)

- Portable image format - *.pbm, *.pgm, *.ppm (luôn luôn được hỗ trợ)

- Sun rasters - *.sr, *.ras (luôn luôn được hỗ trợ)

- TIFF files - *.tiff, *.tif (tùy thuộc hệ điều hành)

b) Hàm hiển thị ảnh

Hiển thị hình ảnh trong cửa sổ đã chỉ rõ

void imshow(const string& winname, InputArray mat)

Trang 23

độ sâu của nó

- Nếu hình ảnh là ảnh 8 bit không dấu, nó sẽ được hiện thị như là chính nó

- Nếu hình ảnh là ảnh 16 bit không hoặc 32 bit số nguyên, các pixel sẽ được chia cho 256 Nó là giá trị trong dải [0, 255*256] ánh xạ thành dải [0, 255]

- Nếu hình ảnh là ảnh 32 bit dấu phẩy động, các giá trị pixel được nhân với

255, đó là các giá trị trong dải [0, 1] ánh xạ thành dải [0, 255]

Nếu cửa sổ chưa được tạo trước khi gọi hàm này, nó sẽ gán cửa sổ đã tạo với

c) Hàm load video hay thu từ webcam

Để load video hay thu từ webcam ta cần phải khai báo class VideoCapture Đây là class thu video từ file video, chuỗi hình ảnh hoặc từ camera Class cung cấp giao diện ứng dụng C++ cho việc thu video từ camera hoặc đọc từ file video

và chuỗi ảnh

Khai báo biến VideoCapture có hỗ trợ các constructors sau:

Trang 24

VideoCapture::VideoCapture() VideoCapture::VideoCapture(const string& filename) VideoCapture::VideoCapture(int device)

Các tham số:

- filename – tên của file video được mở (ví dụ: video.avi) hoặc chuỗi hình ảnh (ví dụ: img_%02.jpg, cái mà sẽ đọc các mẫu như là img_00.jpg, img_01.jpg, img_02.jpg, …)

- divice – id của thiết bị thu video được mở Nếu chỉ có một camera được kết nối thì ta sẽ truyền vào 0

- Để mở file video hoặc một thiết bị thu video ta dùng một trong các hàm sau:

C++: bool VideoCapture::open(const string& filename)

C++: bool VideoCapture::open(int device)

Các tham số như đối với các tham số của constructors trên

Để đọc các frame tiếp theo của video ta sử các hàm:

VideoCapture& VideoCapture::operator>>(Mat& image) bool VideoCapture::read(Mat& image)

d) Chuyển ảnh qua không gian màu khác

Chuyển một ảnh từ không gian màu sang không gian khác

void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0) Các tham số:

- src – là ảnh đầu vào, 8 bit không dấu, 16 bit không dấu hoặc dấu phẩy động

- dst – là ảnh đầu ra có cùng kích thước và độ sâu với ảnh src

Trang 25

- code – là mã chuyển đổi không gian màu

- dstCn – số kênh màu trong ảnh đích, nếu tham số này bằng 0 thì số kênh màu sẽ tự động được suy ra từ src và code

Hàm chuyển một ảnh đầu vào từ một không gian màu sang không gian màu khác Trong trường hợp chuyển đổi từ không gian màu RGB đến không gian màu RGB, thứ tự các kênh màu phải chỉ rõ để tránh xung đột (RGB hay BGR) Chú ý rằng dạng màu mặc định trong OpenCV thường chỉ là RGB nhưng thực tế là BGR (các byte là ngược nhau) Vì vậy byte đầu tiên trong ảnh màu chuẩn (24 bit) sẽ là

8 bit của kênh màu xanh, byte thứ hai sẽ là màu xanh lục và byte thứ ba là màu

đỏ Các byte thứ bốn, năm và sáu sẽ là của pixel thứ hai

Các dải chuyển đổi của các giá trị của kênh màu R, G và B là:

- [0, 255] cho ảnh có loại CV_8U

- [0, 65535] cho ảnh có loại CV_16U

- [0, 1] cho ảnh có loại CV_32F

- Hàm có thể thực hiện các phép chuyển đổi sau:

- RGB <-> GRAY bởi các mã chuyển đổi không gian màu CV_BGR2GRAY, CV_RGB2GRAY, CV_GRAY2BGR và CV_GRAY2RGB

- RGB <-> CIE XYZ bởi các mã chuyển đổi không gian màu CV_BGR2XYZ, CV_RGB2XYZ, CV_XYZ2BGR và CV_XYZ2RGB

- RGB <-> YCrCb hoặc YCC bởi các mã chuyển đổi không gian màu CV_BGR2YCrCb, CV_RGB2YCrCb, CV_YCrCb2BGR và CV_YCrCb2RGB

- RGB <-> HSV bởi các mã chuyển đổi không gian màu CV_BGR2HSV, CV_RGB2HSV, CV_HSV2BGR và CV_HSV2RGB

- RGB <-> HLS bởi các mã chuyển đổi không gian màu CV_BGR2HLS, CV_RGB2HLS, CV_HLS2BGR và CV_HLS2RGB

Trang 26

- RGB <-> CIE L*a*b* bởi các mã chuyển đổi không gian màu CV_BGR2Lab, CV_RGB2Lab, CV_Lab2BGR và CV_Lab2RGB

- RGB <-> CIE L*u*v* bởi các mã chuyển đổi không gian màu CV_BGR2Luv, CV_RGB2Luv, CV_Luv2BGR và CV_Luv2RGB

- Bayer -> RGB bởi các mã chuyển đổi không gian màu

- dst - ảnh đầu ra có cùng kích thước và loại như src

- ksize – kích thước của nhân Gaussian ksize.width và ksize.height có thể khác nhau nhưng cả hai chúng phải là số dương và lẻ Hoặc chúng có thể bằng không và sau đó chúng sẽ được tính từ sigma*

- sigmaX – độ lệch chuẩn của nhân Gaussian theo hướng X

- sigmaY – độ lệch chuẩn của nhân Guassian theo hướng Y Nếu sigmaY =

0, nó sẽ được đặt bằng sigmaX, nếu cả hai sigma là 0, chúng sẽ được tính toán từ ksize.width và ksize.height

- borderType – phương thức ngoại suy pixel

f) Hàm phân ngưỡng động

Trang 27

Áp dụng ngưỡng động vào mảng

void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)

Các tham số:

- src - ảnh nguồn 8 bit đơn kênh

- dst - ảnh đích có cùng kích thước và loại với ảnh src

- maxValue – giá trị khác không được gán cho các pixel cái là điều kiện thỏa mãn

- adaptiveMethod – thuật toán phân ngưỡng động được sử dụng ADAPTIVE_THRESH_MEAN_C hoặc ADAPTIVE_THRESH_GAUSSIAN_C

- thresholdType – loại phân ngưỡng, phải là một trong hai THRESH_BINARY hoặc THRESH_BINARY_INV

- blockSize – kích thước vùng lân cận của một pixel, được sử dụng để tính toán giá trị ngưỡng cho pixel đó: 3, 5, 7 và v.v

- C – Hằng số trừ từ giá trị trung bình hoặc trọng số trung bình Thông thường

nó là số dương nhưng có thể là hoặc là số 0 nếu tốt

- Hàm chuyển ảnh xám thành ảnh nhị phân theo công thức:

- THRESH_BINARY

- THRESH_BINARY_INV

- Ở đó T(x, y) là ngưỡng tính toán được cho mỗi pixel riêng rẽ

Trang 28

- Theo phương thức ADAPTIVE_THRESH_MEAN_C, giá trị ngưỡng T(x,y) là giá trị trung bình của các lân cận của pixel (x,y) trừ đi C

- Theo phương thức ADAPTIVE_THRESH_GAUSSIAN_C, giá trị ngưỡng

là tổng trọng số (tương quan chéo với cửa sổ Gaussian) của lân cận của pixel (x,y) trừ đi C

- pt1 – điểm đầu tiên của đoạn thẳng

- pt2 – điểm thứ hai của đoạn thẳng

- color – màu của đoạn thẳng

- thickness – độ dày của đoạn thẳng

- lineType – loại đoạn thẳng:

8 – 8 đường nối

4 – 4 đường nối

CV_AA – đường antialiased

- shift – số các bit phân số trong tọa độ điểm

Hàm line vẽ một đoạn thẳng giữa các điểm pt1 và pt2 trong ảnh Đoạn thẳng

bị cắt bởi biên của ảnh Đối với các đường không antialiased với tọa độ nguyên,

8 đường nối hoặc 4 đường nối sử dụng thuật toán Bresenham Độ dày của đường được vẽ bằng các đoạn cuối làm tròn Đường antialiased được rút ra bằng cách sử dụng bộ lọc Gausian Để chỉ định màu của đường có thể sử dụng macro CV_RGB(r,g,b)

Trang 29

h) Hàm vẽ hình tròn trên ảnh

C++: void circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0)

Các tham số:

- img – hình ảnh hình tròn được vẽ lên

- center – tâm của hình tròn

- radius – bán kính hình tròn

- color – màu của hình tròn

- thickness – độ rộng của viền hình tròn, nếu nó là dương Nếu nó là âm nghĩa

là tô toàn bộ hình tròn

- lineType – loại đường bao của hình tròn

- shift – số bit phân đoạn trong tọa độ tâm và bán kính

2.1.2 Thư viện wiringPi

WiringPi là thư viện truy cập GPIO dựa trên các mã PIN, viết bằng ngôn ngữ

C cho BCM2835 được sử dụng trong Raspberry Pi Nó được phát hành theo giấy phép của GNU LGPLv3 và có thể sử dụng từ ngôn ngữ C, C++ và RTB (BASIC) cũng như nhiều ngôn ngữ khác với các phiên bản phù hợp Nó được thiết kế để tương thích với những ai sử dụng “wiring” của hệ thống Arduino

WiringPi bao gồm một tiện ích gpio cho dòng lệnh, cái mà có thể được sử dụng cho chương trình và cài đặt các chân GPIO Bạn có thể sử dụng nó để đọc

và ghi các chân và thậm chí sử dụng để kiểm soát chúng từ đoạn vỏ

WiringPi có thể mở rộng được và các modul cung cấp để mở rộng wiringPi cho việc sử dụng các thiết bị giao diện tương tự trên Gertboard, và để sử dụng các chip GPIO mở rộng phổ biến MCP23x17/MCP23x08, cũng như mô-đun cho phép các khối lên đến 4 74x595 thanh ghi dịch để kết hợp đồng thời cho việc thêm 32

Trang 30

bit của đầu ra như một đơn vị duy nhất Một mô-đun mở rộng cho phép bạn sử dụng Atmega (ví dụ Arduino, hoặc Gertboard) cũng như mở rộng nhiều GPIO hơn thông qua cổng truyền thông nối tiếp của Pi

WiringPi hỗ trợ đọc và ghi tín hiệu tương tự mặc dù trong nó không có phần cứng tương tự trên Pi theo mặc định Các mô-đun được cung cấp để hỗ trợ chip tương tự Gertboard và các thiết bị A/D, D/A khác có thể được thực hiện tương đối

dễ dàng[10]

Trước khi sử dụng thư viện GPIO WiringPi, bạn cần khai báo file header của

nó trong chương trình Để biên dịch chương trình cần phải bổ sung thêm thuộc tính –lwiringPi Có 4 cách để khởi tạo wiringPi:

int wiringPiSetup (void) ; int wiringPiSetupGpio (void) ; int wiringPiSetupPhys (void) ; int wiringPiSetupSys (void) ; Một trong các hàm cài đặt phải được gọi ở đầu của chương trình, nếu không chương trình sẽ làm việc không đúng

Sự khác nhau giữa 4 hàm cài đặt được chỉ ra là:

- wiringPiSetup(void) - Hàm này dùng để khởi tạo wiringPi và giả định chương trình sử dụng sơ đồ đánh số chân của wiringPi Hàm này cần được gọi dưới quyền root

- wiringPiSetupGpio(void) - Hàm này giống hệt như trên, tùy nhiên nó cho phép chương trình sử dụng số chân trực tiếp không cần lập lại bản đồ Hàm này cũng cần được gọi dưới quyền root

- wiringPiSetupPhys(void) - Cho phép chương trình sử dụng số chân vật lý trên chỉ trên đầu nối P1 Hàm này cần được gọi với quyền root

Trang 31

- wiringPiSetupSys(void) - Hàm này khởi tạo wiringPi nhưng sử dung giao diện /sys/class/gpio thay vì truy cập trực tiếp phần cứng Hàm này có thể được gọi với người dùng không cung cấp quyền root nếu các chân GPIO đã được xuất ra trước khi chương trình sử dụng Số chân trong chế độ này là số GPIO Broadcom gốc, giống như wiringPiSetupGpio() ở trên, vì vậy cần biết sự khác biệt giữa các bảng Rev 1 và Rev 2[11]

2.2 Logic mờ và bộ điều khiển mờ

2.2.1 Lịch sử phát triển của logic và bộ điều khiển mờ

Logic mờ được công bố lần đầu tiên tại Mỹ vào năm 1965 do giáo sư Lotfi Zadeh Kể từ đó, logic mờ đã có nhiều phát triển qua các chặng đường sau phát minh ở Mỹ, áp dụng ở Châu Âu và đưa vào các sản phẩm thương mại ở Nhật Ứng dụng đầu tiên của logic mờ vào công nghiệp được thực hiện ở Châu Âu, khoảng sau năm 1970 Tại trường Queen Mary ở Luân Đôn – Anh, Ebrahim Mamdani dùng logic mờ để điều khiển một máy hơi nước mà trước đây ông ấy không thể điều khiển được bằng các kỹ thuật cổ điển Và tại Đức, Hans Zimmermann dùng logic mờ cho các hệ ra quyết định Liên tiếp sau đó, logic mờ được áp dụng vào các lĩnh vực khác như điều khiển lò xi măng, … nhưng vẫn không được chấp nhận rộng rãi trong công nghiệp

Kể từ năm 1980, logic mờ đạt được nhiều thành công trong các ứng dụng ra quyết định và phân tích dữ liệu ở Châu Âu Nhiều kỹ thuật logic mờ cao cấp được nghiên cứu và phát triển trong lĩnh vực này

Cảm hứng từ những ứng dụng của Châu Âu, các công ty của Nhật bắt đầu dùng logic mờ vào kỹ thuật điều khiển từ năm 1980 Nhưng do các phần cứng chuẩn tính toán theo giải thuật logic mờ rất kém nên hầu hết các ứng dụng đều dùng các phần cứng chuyên về logic mờ Một trong những ứng dụng dùng logic

mờ đầu tiên tại đây là nhà máy xử lý nước của Fuji Electric vào năm 1983, hệ thống xe điện ngầm của Hitachi vào năm 1987

Trang 32

Những thành công đầu tiên đã tạo ra nhiều quan tâm ở Nhật Có nhiều lý do

để giải thích tại sao logic mờ được ưa chuộng Thứ nhất, các kỹ sư Nhật thường bắt đầu từ những giải pháp đơn giản, sau đó mới đi sâu vào vấn đề Phù hợp với việc logic mờ cho phép tạo nhanh các bản mẫu rồi tiến đến việc tối ưu Thứ hai, các hệ dùng logic mờ đơn giản và dễ hiểu Sự “thông minh” của hệ không nằm trong các hệ phương trình vi phân hay mã nguồn Cũng như việc các kỹ sư Nhật thường làm việc theo tổ, đòi hỏi phải có một giải pháp để mọi người trong tổ đều hiểu được hành vi của hệ thống, cùng chia sẽ ý tưởng để tạo ra hệ Logic mờ cung cấp cho họ một phương tiện rất minh bạch để thiết kế hệ thống Và cũng do nền văn hóa, người Nhật không quan tâm đến logic Boolean hay logic mờ; cũng như trong tiếng Nhật, từ “mờ’ không mang nghĩa tiêu cực

Do đó, logic mờ được dùng nhiều trong các ứng dụng thuộc lĩnh vực điều khiển thông minh hay xử lý dữ liệu Máy quay phim và máy chụp hình dùng logic

mờ để chứa đựng sự chuyên môn của người nghệ sĩ nhiếp ảnh Misubishi thông báo về chiếc xe đầu tiên trên thế giới dùng logic mờ trong điều khiển, cũng như nhiều hãng chế tạo xe khác của Nhật dùng logic mờ trong một số thành phần Trong lĩnh vực tự động hóa, Omron Corp có khoảng 350 bằng phát minh về logic

mờ Ngoài ra, logic mờ cũng được dùng để tối ưu nhiều quá trình hóa học và sinh học

Năm năm trôi qua, các tổ hợp Châu Âu nhận ra rằng mình đã mất một kỹ thuật chủ chốt vào tay người Nhật và từ đó họ đã nỗ lực hơn trong việc dùng logic

mờ vào các ứng dụng của mình Đến nay, có khoảng 200 sản phẩm bán trên thị trường và vô số ứng dụng trong điều khiển quá trình – tự động hóa dùng logic mờ

Từ những thành công đạt được, logic mờ đã trở thành một kỹ thuật thiết kế

“chuẩn” và được chấp nhận rộng rãi trong cộng đồng

Trang 33

2.2.2 Khái niệm và các phép toán trên tập mờ

2.2.2.1 Tập mờ kinh điển

Khái niệm tập hợp được hình thành trên nền tảng logic và được định nghĩa như là sự sắp xếp chung các đối tượng có cùng tính chất, được gọi là phần tử của tập hợp đó

Cho một tập hợp A, một phần tử x thuộc A được ký hiệu xA Để biểu diễn

A một tập hợp A trên tập nền X, ta dùng hàm thuộc A(x), với:

1( )

0

A

x A x

x A

µA(x) chỉ nhận một trong hai giá trị là “1” hoặc “0”

ký hiệu = (xM x thỏa mãn một số tính chất nào đó) Ta nói tập A được định nghĩa trên tập nền X

2.2.2.2 Định nghĩa tập mờ

Tập mờ B được xác định trên tập kinh điển M là một tập mà mỗi phân tử của

nó được biểu diễn bởi một cặp giá trị (x, µB(x)) Trong đó xM và µB(x) là ánh

xạ

- Ánh xạ µB(x) được gọi là hàm liên thuộc của tập mờ B

- Tập kinh điển M được gọi là cơ sở của tập mờ B

2.2.2.3 Các thông số đặc trưng cho tập mờ

Các thông số đặc trưng cho tập mờ là độ cao, miền xác định và miền tin cậy

- Độ cao của tập mờ B là giá trị lớn nhất trong các giá trị của hàm liên thuộc

Trang 34

Một tập mờ có ít nhất một phần tử có độ phụ thuộc bằng 1 được gọi là tập

mờ chính tắc (H = 1) Ngược lại, một tập mờ B với H < 1 gọi là tập mờ không chính tắc

- Miền xác định của tập mờ B (định nghĩa trên cơ sở M) được ký hiệu bởi S

là tập con của M có giá trị hàm liên thuộc khác không:

{ | B( ) 0}

- Miền tin cậy của tập mờ B (định nghĩa trên cơ sở M) được ký hiệu bởi T,

là tập con của M có giá trị hàm liên thuộc bằng 1:

{ | B( ) 1}

2.2.2.4 Các dạng hàm liên thuộc của tập mờ

Có rất nhiều cách khác nhau để biểu diễn hàm liên thuộc của tập mờ Dưới đây là một số dạng hàm liên thuộc thông dụng:

- Hàm liên thuộc hình tam giác

- Hàm liên thuộc hình thang

- Hàm liên thuộc dạng Gauss

- Hàm liên thuộc dạng Sign

Trang 35

- Hàm hình chuông

2.2.3 Luật hợp thành mờ

2.2.3.1 Mệnh đề hợp thành

Xét hai biến ngôn ngữ χ và γ; Biến χ nhận giá trị (mờ) A có hàm liên thuộc

µA(x) và γ nhận giá trị (mờ) B có hàm liên thuộc µB(x) thì hai biểu thức:

χ = A; γ = B được gọi là hai mệnh đề

Luật Điều khiển: nếu χ = A thì γ = B được gọi là mệnh đề hợp thành.Trong

đó χ = A gọi là mệnh đề điều kiện và γ = B gọi là mệnh đề kết luận

Một mệnh đề hợp thành có thể có nhiều mệnh đề điều kiện và nhiều mệnh

đề kết luận, các mệnh đề liên kết với nhau bằng toán tử "và" Dựa vào số mệnh đề điều kiện và số mệnh đề kết luận trong một mệnh đề hợp thành mà ta phân chúng thành các cấu trúc khác nhau:

- Cấu trúc SISO (một vào, một ra): Chỉ có một mệnh đề điều kiện và một mệnh đề kết luận Ví dụ: nếu χ = A thì γ = B

- Cấu trúc MISO (Nhiều vào, một ra): Có từ 2 mệnh đề điều kiện trở lên và một mệnh đề kết luận Ví dụ: nếu 𝜒1 = 𝐴1 và 𝜒2 = 𝐴2 thì γ = B

- Cấu trúc MIMO (Nhiều vào, nhiều ra): Có ít nhất 2 mệnh đề điều kiện và

2 mệnh đề kết luận Ví dụ: nếu 𝜒1 = 𝐴1 và 𝜒2 = 𝐴2 thì 𝛾1 = 𝐵1 và 𝛾2 = 𝐵2

2.2.3.2 Mô tả mệnh đề hợp thành

Xét mệnh đề hợp thành: nếu χ = A thì γ = B; Từ một giá trị x0 có độ phụ thuộc µA(x0) đối với tập mờ A của mệnh đề điều kiện, ta xác định được độ thoả mãn mệnh đề kết luận Biểu diễn độ thoả mãn của mệnh đề kết luận như một tập

mờ B’ cùng cơ sở với B thì mệnh đề hợp thành chính là ánh xạ: µA(x0) → µB(y) Ánh xạ này chỉ ra rằng mệnh đề hợp thành là một tập mà mỗi phần tử là một giá trị (µA(x0), µB’(y)) tức là mỗi phần tử là một tập mờ Mô tả mệnh đề hợp thành

Trang 36

tức là mô tả ánh xạ trên Ánh xạ (µA(x0), µB’(y)) được gọi là hàm liên thuộc của luật hợp thành Để xây dựng µB’(y) đã có rất nhiều ý kiến khác nhau Trong kỹ thuật điều khiển ta thường sử dụng nguyên tắc của Mamdani Từ đó ta có hai công thức xác định hàm liên thuộc cho mệnh đề hợp thành A => B:

Trang 37

B (y) thì giá trị của luật hợp thành R ứng với

x0 là tập mờ B’ thu được qua phép hợp 3 tập mờ: B’ = B1’∪ B2’∪ B3’

Tuỳ theo cách thu nhận các hàm liên thuộc µ '

- Luật hợp thành MAX-MIN nếu µ '

B (y) theo quy tắc min hoặc Prod

- Xác định µB ' (y) bằng cách thực hiện phép hợp các µB 'j (y)

2.2.4 Phương pháp giải mờ

Từ một giá trị rõ x0 ở đầu vào, sau khi qua khối luật hợp thành ta có tập mờ đầu ra B' Vấn đề đặt ra là cần phải xác định giá trị rõ y0 từ tập mờ đầu ra đó Muốn vậy ta cần thực hiện việc giải mờ Giải mờ là quá trình xác định một giá trị

Trang 38

rõ y0 nào đó có thể chấp nhận được từ hàm liên thuộc µB ' (y) của giá trị mờ B’ (tập mờ B’) Có hai phương pháp giải mờ chính là phương pháp cực đại và phương pháp điểm trọng tâm

2.2.4.1 Phương pháp cực đại

Để giải mờ theo phương pháp cực đại, ta cần thực hiện 2 bước:

- Xác định miền chứa giá trị rõ y0 (miền G): Đó là miền mà tại đó hàm liên thuộc µB’(y) đạt giá trị cực đại (độ cao H của tập mờ B’), tức là miền:

Miền chứa giá trị rõ G là khoảng [y1, y2] của miền giá trị của tập mờ đầu ra

B2 của luật điều khiển:

Trang 39

Vậy luật điều khiển quyết định là luật Rk, k∈ {1, 2, … , p} mà giá trị mở đầu ra của nó có độ cao lớn nhất (Bằng độ cao H của B’)

Để xác định y0 trong khoảng [y1, y2] ta có thể áp dụng theo một trong ba nguyên lý: Nguyên lý trung bình; nguyên lý cận trái và nguyên lý cận phải

- Nguyên lý trung bình: Giá trị rõ y0 sẽ là trung bình cộng của y1 và y2

2.2.4.2 Phương pháp điểm trọng tâm (phương pháp độ cao)

Giải mờ theo phương pháp điểm trọng tâm sẽ cho ra kết quả y' là hoành

độ của điểm trọng tâm miền được bao bởi trục hoành và đường µB ' (y) Công thức xác định:

Hình 2.3 Các nguyên lý giải mờ theo phương pháp cực đại

Trang 40

( ) ( )

Trong đó: S là miền xác định của tập mờ B’

2.2.4.3 Phương pháp điểm trọng tâm cho luật Sum-Min

Giả sử có m luật điều khiển được triển khai Lúc đó mỗi giá trị đầu ra của bộ điều khiển sẽ là tổng của m giá trị mờ đầu ra của từng luật hợp thành Ký hiệu mờ đầu ra của luật hợp thành thứ k là µB ' k(y) với k = 1, 2, 3, , m Với quy tắc Sum-Min, hàm liên thuộc sẽ là:

' ( )

k B k s

Nếu hàm liên thuộc có dạng Singleton thì ta được:

Ngày đăng: 11/08/2020, 15:21

TỪ KHÓA LIÊN QUAN

w