Các thiết bị hỗ trợ lái xe là rất cần thiết để nhắc nhở người lái xe các thông tin về xe kịp thời và điều chỉnh các hành vi lái xe không đúng [1-T1] Theo dữ liệu phân tích thống kê trong
Trang 1MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC ii
DANH MỤC VIẾT TẮT iv
DANH MỤC CÁC HÌNH v
DANH MỤC CÁC BẢNG viii
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 3
1.1 Đặt vấn đề .3
1.2 Mục tiêu. 3
1.3 Phương pháp nghiên cứu .4
1.4 Ý nghĩa thực hiện .4
1.5 Giới hạn đề tài. 4
1.6 Các vấn đề nghiên cứu. 4
CHƯƠNG 2: CƠ SỞ LÝ LUẬN NHẬN DẠNG LÁI XE VÀ GIAO TIẾP MẠNG TRÊN XE 5
2.1 Nhận dạng hành vi phân tích lái xe 5
2.1.1 Nhận dạng hệ thống lái. 5
2.1.2 Nhận dạng tay lái xe. 10
2.1.3 Nhận dạng hành dộng đánh lái. 11
2.1.4 Thuật toán AdaBoost [2]. 13
2.2 Phương pháp phân tích hành vi người lái bằng thuật toán 15
2.2.1 Thuật toán say xỉn. 15
2.2.2 Adaboost nhận dạng hành vi lái. 17
2.2.3 Lựa chọn thuật toán để phân tích hành vi người lái. 19
2.3 Giao tiếp OBD2 thông qua mạng CAN. 20
2.3.1 Tìm hiểu về mạng CAN. 20
2.3.2 Tìm hiểu về OBD2. 22
2.4 Giao tiếp dữ liệu thông qua mạng LAN. 30
2.4.1 Tìm hiểu về Web Server. 30
2.4.2 NodeMCU Esp8266. 30
2.4.3 Giao thức HTTP. 31
Trang 22.5 Các mô hình tham khảo. 32
2.5.1 Các mô hình thương mại nhận dạng hành vi người lái 32
2.5.2 Các đồ án trước 33
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT LINH KIỆN ĐIỆN TỬ 34
3.1 Các Module và linh kiện điện tử. 34
3.1.1 Module nodeMCU ESP8266. 34
3.1.2 Module MCP2515. 37
3.1.3 Module MPU6050. 39
3.1.4 Micro SD card module. 41
3.1.5 Buzzer. 42
3.1.6 IC L7808CV. 43
3.2 Các phần mềm hỗ trợ. 44
3.2.1 Arduino IDE. 44
3.2.2 Sublime Text 3. 45
CHƯƠNG 4: THIẾT KẾ, THI CÔNG VÀ THỬ NGHIỆM HỆ THỐNG 47
4.1 Ý tưởng thiết kế. 47
4.2 Sơ đồ thiết kế tổng quát 48
4.3 Sơ đồ thiết kế chi tiết 49
4.4 Lưu đồ thuật toán 51
4.4.1 Thuật toán say xỉn. 51
4.4.2 Thuật toán cảnh báo Adaboost. 52
4.4.3 Thuật toán các trạng thái bất thường. 54
4.5 Thực nghiệm trên xe. 56
4.5.1 Tiến hành nạp chương trình. 56
4.5.2 Trích xuất dữ liệu thông qua cổng OBD2. 57
4.5.3 Kết quả thử nghiệm thực tế. 58
4.6 Thực nghiệm trên mạch giả lập. 60
4.6.1 Thiết kế mạch giả lập. 60
4.6.2 Thực nghiệm giao tiếp giữa mạch giả lập và mạch ECU main cảnh báo. 62
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63
5.1 Kết luận. 63
5.2 Hướng phát triển 63
TÀI LIỆU THAM KHẢO 65
Trang 3DANH MỤC VIẾT TẮT
CAN: Controller Area Network
IMU: Inertial Measurement Unit: Là một con chip để đo những chuyển động
GNSS: Global Navigation Satellite System: Hệ thống vệ tinh dẫn đường toàn cầu
OBD: On-Board Diagnostics: Hệ thống tự chuẩn đoán lỗi
HTTP: HyperText Transfer Protocol: Giao thức truyền tải siêu văn bản
HTML: Hypertext Markup Language: Ngôn ngữ đánh dấu siêu văn bản
RPM: Revolutions Per Minute: Số vòng quay mỗi phút
Trang 4DANH MỤC CÁC HÌNH
Hình 2.1: Xe chuyển làn từ phải sang trái 7
Hình 2.2: Hướng rẽ và quay đầu của xe giao thông bên phải 8
Hình 2.3: Dữ liệu thô [1] 9
Hình 2.4: Dữ liệu cảm biến sau khi lọc nhiễu [1] 10
Hình 2.5: Nhận dạng tay lái xe [1] 11
Hình 2.6: Tốc độ góc và thời gian để thay đổi làn đường bên trái[1] 12
Hình 2.7: Tốc độ góc và thời gian trong khi rẽ trái [1] 12
Hinh 2.8: (a) Rẽ trái (b) Rẽ phải (c) Quay đầu (d) Chuyển làn trái (e) Chuyển làn phải [1]……… 13
Hình 2.9: Các hệ tọa độ của cảm biến và xe 16
Hình 2.10: Mô hình nhận dạng hành động đánh lái 17
Hình 2.11 Sơ đồ thuật toán AdaBoost 18
Hình 2.12: Sơ đồ tính toán kết hợp thuật toán 19
Hình 2.13: Mô hình mạng CAN 20
Hình 2.14: Cấu trúc mạng CAN 21
Hình 2.15: Chuyển mã HEX sang tốc độ động cơ 28
Hình 2.16: Chuyển mã HEX sang tốc độ xe 29
Hình 2.17: Cách thức hoạt động Web Server 30
Hình 2.18: Chế độ wifi Station của nodeMCU Server 31
Hình 2.19: Client thực hiện HTTP request và hiển thị thông tin trên Web Page 32
Hình 2.20: TREK-132 32
Trang 5Hình 3.1: Module nodeMCU ESP8266 34
Hình 3.2: Chi tiết sơ đồ chân nodeMCU 36
Hình 3.3: Module MCP2515 37
Hình 3.4: Sơ đồ nguyên lý MCP2515 38
Hình 3.5: Module MPU6050 39
Hình 3.6: Sơ đồ nguyên lý cảm biến MPU 6050 41
Hình 3.7: Module SD Card 41
Hình 3.8: Buzzer 5V 42
Hình 3.9: IC L7808CV 43
Hình 3.10: Arduino IDE 44
Hình 3.11: Phần mềm Sublime Text 46
Hình 4.1: Tổng quát hệ thống 47
Hình 4.2: Sơ đồ tổng quát 48
Hình 4.3: Sơ đồ thiết kế chi tiết 49
Hình 4.4: Mạch hoàn chỉnh 50
Hình 4.5: Hộp ECU main hoàn chỉnh 50
Hình 4.6: Lưu đồ thuật toán say xỉn 51
Hình 4.7: Lưu đồ thuật toán cảnh báo Adaboost 52
Hình 4.8: Lưu đồ thuật toán trạng thái bất thường khi rẽ 54
Hình 4.9: Lưu đồ thuật toán trạng thái tăng tốc và phanh 55
Hình 4.10: Cáp chuyển đổi OBD2 sang DB9 56
Trang 6Hình 4.11: Cáp nạp chương trình 56
Hình 4.12: Kết quả dữ liệu CAN đọc được 57
Hình 4.13: Trích xuất dữ liệu cần thiết 58
Hình 4.14: Đồ thị gia tốc khi xe tăng tốc 58
Hình 4.15: Đồ thị gia tốc khi xe phanh đột ngột 58
Hình 4.16: Đồ thị tốc độ góc khi xe đi thẳng 59
Hình 4.17: Đồ thị tốc độ góc khi xe lạng lách 59
Hình 4.18: Đồ thị tốc độ góc khi xe quay vòng 59
Hình 4.19: Đồ thị tốc độ góc khi xe rẽ 60
Hình 4.20: Thiết bị mô phỏng dữ liệu mạng CAN 60
Hình 4.21: Sơ đồ mạch thiết bị mô phỏng 61
Hình 4.22: Kết nối mạch giả lập và ECU main cảnh báo 62
Hình 4.23: Hiển thị trên web 62
Trang 7DANH MỤC CÁC BẢNG
Bảng 2.1: Một số thao tác điều khiển 6
Bảng 2.2: Sơ đồ chân của jack OBD2 24
Bảng 2.3: Các chế độ của PIDs 25
Bảng 2.4: Bảng giá trị trả về 25
Bảng 2.5: Các mã PIDs chế độ 1 27
Bảng 2.6: Một số mã PIDs cho đề tài 27
Bảng 2.7: Mã PID của tốc độ dộng cơ 28
Bảng 2.8: Mã PID của tốc độ xe 29
Bảng 3.1: Sơ đồ chân của Module nodeMCU ESP8266 35
Trang 8MỞ ĐẦU
Hiên nay, với kinh tế phát triển, lượng xe tăng mỗi năm Đồng thời, lượng lái xe không chuyên nghiệp cũng tăng lên nhanh chóng Do hầu hết các lái xe mới tập lái đều chưa có kinh nghiệm, chưa quen với tình trạng xe và nhận thức kém về an toàn giao thông nên yếu tố cá nhân của người điều khiển phương tiện giao thông đã trở thành nguyên nhân chính dẫn đến tai nạn giao thông Các thiết bị hỗ trợ lái xe là rất cần thiết để nhắc nhở người lái xe các thông tin về xe kịp thời và điều chỉnh các hành vi lái xe không đúng
[1-T1] Theo dữ liệu phân tích thống kê trong Hình 1 Hầu hết tai nạn xuất phát từ yếu tố
cá nhân của lái xe Nó bao gồm hoạt động không đúng, phán đoán không chính xác, v.v T1] Để giảm thiểu tai nạn hơn nữa và bảo vệ an toàn cho người lái xe / người đi bộ, không chỉ cần liên tục cải tiến các trang thiết bị an toàn cho phương tiện cũng như điều kiện đường xá
[1-mà còn phải chú ý đến người lái xe như đối tượng nghiên cứu
Nhiều tài liệu khác nhau đã giới thiệu các phương pháp phân tích hành vi lái xe dựa trên
xử lý hình ảnh thị giác máy tính, kết hợp đa cảm biến, v.v Yoshifumi Kishimoto và Koji Oguri đã đề xuất một phương pháp dựa trên HMM (mô hình Markov ẩn) để ước tính khả năng người lái phanh gấp khi lái xe [1-T1] Antonio Prez, M Isabel Garca, Manuel Nieto, và các học giả khác đã nhận ra một hệ thống gọi là "Argos" Argos là một thiết bị ghi dữ liệu xe tiên tiến có thể giúp các nhà nghiên cứu khác nghiên cứu tốt hơn việc phân tích hành vi của người lái xe [1-T1] Reza Haghighi Osgouei và Seungmoon Choi đã hoàn thành mô hình hành vi lái
xe cho những người lái xe khác nhau dựa trên các nguyên tắc khách quan Nguyên tắc của chúng được xác định bởi một khoảng cách ngẫu nhiên của mô hình HMM được tổng hợp bởi mỗi người lái xe [1-T1] Cuong Tran, Anup Doshi và Mohan Manubhai Trivedi sử dụng các thay đổi quang học video và HMM để hoàn thành thuật toán ước tính chuyển động chân của người lái xe [1-T1] Các học giả của Đại học California trích xuất hình ảnh video từ bên ngoài của chiếc xe để phân tích hành vi lái xe theo tính tương quan vị trí với xe khác, và sau đó đánh giá chiếc xe đang ở trạng thái an toàn hay trạng thái nguy hiểm [1-T1] Shan Bao và Linda Ng Boyle đã hoàn thành các thí nghiệm lái xe qua ngã tư ở những người lái xe ở độ tuổi khác
Trang 9T1] Toshikazu Akita và những người khác đã đề xuất phương pháp mô hình hóa hành vi của người lái xe dựa trên hệ thống hợp nhất, chủ yếu là nhận dạng và phân tích trạng thái xe sau,
tỷ lệ nhận dạng chính xác cao hơn [1-T1]
Dựa vào những nghiên cứu ở trên, phương pháp nghiên cứu hiện tại phân tích hành vi lái
xe bao gồm thu thập dữ liệu lái xe, các thuật toán mô hình hóa lái xe và các ứng dụng Thu thập dữ liệu lái xe bao gồm quay video ô tô, cảm biến gắn trên ô tô và chẩn đoán trên xe (OBD) Về thuật toán mô hình hành vi lái xe, có HMM, máy vectơ hỗ trợ (SVM), và các định
lí khác Ứng dụng chính của phân tích hành vi lái xe là xác định tình trạng ngủ gật hoặc dự đoán hành động của người lái xe Trong bài báo này, một phương pháp phân tích hành vi lái
xe mới dựa trên các thuật toán OBD và AdaBoost của xe được đề xuất Phương pháp đề xuất thu thập thông tin xe vân hành, bao gồm tốc độ xe, tốc độ động cơ, vị trí bướm ga, và tính toán tải động cơ, từ giao tiếp OBD Sau đó, phương pháp được đề xuất sử dụng các thuật toán AdaBoost để tạo mô hình phân loại hành vi lái xe, và cuối cùng có thể đánh giá chảng hạn như hành vi lái xe hiện tại có thuộc lái xe an toàn hay không Kết quả thử nghiệm cho thấy tính đúng đắn của phương pháp phân tích hành vi lái xe được đề xuất có thể đạt được tỷ lệ chính xác trung bình là 99,8% trong các mô phỏng lái xe khác nhau
Kết hợp sử dụng dữ liệu con quay hồi chuyển của cảm biến để nắm bắt sự khác biệt về
sự thay đổi tốc độ góc của xe bao gồm hành động rẽ, thay đổi làn đường và quay đầu xe
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề
Lượng phương tiện ngày một tăng lên cùng với sự tiến bộ của công nghệ Tương tự, số
lượng người lái xe nghiệp dư và không có tay nghề cũng gia tăng, những người không có ý
thức lái xe và họ là nguyên nhân chính của hầu hết các vụ tai nạn Theo Tổ chức Y tế Thế
giới, tai nạn đường bộ là được coi là một trong những nguyên nhân gây tử vong đứng trong
top 10 trên toàn thế giới và nguyên nhân hàng đầu của chấn thương nghiêm trọng Ngoài vấn
đề về an toàn giao thông, tiêu thụ nhiên liệu và khí thải cũng là mục tiêu hàng đầu mà các nhà
sản xuất, ngành công nghiệp và trung tâm nghiên cứu khác trên thế giới phát triển các giải
pháp về giám sát hành vi lái xe
Có nhiều phương pháp phân tích hành vi lái xe khác nhau, ứng dụng nhiều công nghệ
tiên tiến như hệ thống định vị GPS, hệ thống vệ tinh dẫn đường toàn cầu (GNSS), sự dụng
cảm biến chuyển động trong xe IMU, có thể truy cập trong xe thông qua OBD hoặc CAN
Hoặc sử dụng thông tin thu thập trên xe thông qua cổng OBDII mạng CAN, dung cái thuật
toán để đánh giá Bên cạnh đó cần một công cụ hỗ trợ cảnh báo người lái để giúp họ tập trung
hơn và đồng thời giúp chủ xe giám sát hành vi lái xe thông qua web server IOT Giúp cho việc
nghiên cứu sáng chế các ứng dụng, giải quyết giảm tình trạng tai nạn, các vấn đề kinh tế, xã
hội nâng cao mức sống, sức khở hơn
Do vậy, nhóm đã thực hiện đề tài: Thiết kế, chế tạo mạch nhận dạng hành vi lái xe và
cảnh báo người lái
Đề tài này ứng dụng cả cảm biến chuyện động IMU rời, thu thập thông tin dữ liệu xe
thông qua cổng OBDII, sử dụng các thuật toán như Adaboost, thuật toán báo say xỉn, hướng
đi phát triển trong việc thu thập, phân tích, đánh giá hành vi lái xe
1.2 Mục tiêu
Tạo ra mạch “ECU main” nhằm thu thập thông tin mạng Can trên ô tô và các cảm biến
để nhận dạng hành vi người lái đồng thời cảnh báo nếu xảy ra tình huống xấu, bất thường
Trang 111.3 Phương pháp nghiên cứu
Để hoàn thành được đồ án này thì rất nhiều phương pháp nghiên cứu đã được sử dụng đến như phương pháp thu thập dữ liệu, phương pháp thử nghiệm,…thông qua việc tìm hiểu nghiên cứu các tài liệu trên các trang mạng, các diễn đàn
1.4 Ý nghĩa thực hiện
Đề tài đã giúp giải quyết được vấn đề theo dõi hành vi ngời lái Và đây cũng là nền tảng tốt cho những ai muốn nghiên cứu khai thác về dữ liệu mạng CAN thông qua OBD2
1.5 Giới hạn đề tài
Đề tài chỉ mới thực hiện được dòng xe Honda City phiên bản năm 2016
Đề tài chỉ theo dõi, nhận dạng, đánh giá hành vi người lái thông qua dữ liệu của xe mà chưa đánh giá sức khỏe của người lái
1.6 Các vấn đề nghiên cứu
Nghiên cứu cơ bản về lập trình Arduino IDE, HTML, JavaScript
Nghiên cứu chuẩn giao tiếp UART, SPI, I2C
Nghiên cứu mạch mô phỏng mạng CAN trên ô tô
Nghiên cứu lý thuyết và vai trò của CAN và OBD-II đối với nghành công nghệ ô tô, các giao thức kết nối
Lấy dữ liệu từ xe và cảm biến truyền lên web server thông qua kết nối WiFi
Kết nối các module để có thể truyền và nhận dữ liệu lên web server
Trang 12CHƯƠNG 2: CƠ SỞ LÝ LUẬN NHẬN DẠNG LÁI XE VÀ GIAO TIẾP MẠNG
TRÊN XE
2.1 Nhận dạng hành vi phân tích lái xe
Phương pháp nghiên cứu phân tích hành vi lái xe của nhóm bao gồm thu thập dữ liệu lái
xe, các thao tác điều khiển lái, các thuật toán mô hình hóa lái xe và các ứng dụng Thu thập
dữ liệu lái xe bao gồm các cảm biến gắn trên ô tô và chẩn đoán trên xe (OBD2) Về thuật toán
mô hình hành vi lái xe, có HMM (Hidden Markov Model), support vector machine (SVM), thuật toán đánh giá mức năng lượng điểm cuối và các định lí khác Ứng dụng chính của phân tích hành vi lái xe là xác định tình trạng ngủ gật hoặc dự đoán hành động thao tác điều khiển của người lái xe Trong báo cáo này:
Sử dụng phương pháp phân tích hành vi lái xe dựa trên các thuật toán OBD2 và AdaBoost của xe được đề xuất Phương pháp đề xuất thu thập thông tin xe vân hành, bao gồm tốc độ xe, tốc độ động cơ, vị trí bàn đạp ga, và tính toán tải động cơ, từ giao tiếp OBD2 Sau đó, phương pháp được đề xuất sử dụng các thuật toán AdaBoost để tạo mô hình phân loại hành vi lái xe,
và cuối cùng có thể đánh giá chảng hạn như hành vi lái xe hiện tại có thuộc lái xe an toàn hay không Kết quả thử nghiệm cho thấy tính đúng đắn của phương pháp phân tích hành vi lái xe được đề xuất có thể đạt được tỷ lệ chính xác trung bình là 99,8% trong các mô phỏng lái xe khác nhau
- Sử dụng phương pháp phân tích hành vi lái xe dựa theo nhận dạng thao tác điều khiển bằng thuật toán phát hiện điểm cuối dựa theo năng lượng dạng song dữ liệu tốc độ góc Z, các ngã
rẽ, thay đổi làn đường và quay đầu xe được xác định bởi thuật toán phù hợp với tốc độ góc của xe và góc lái của xe
Kết hợp 2 phương pháp trên ta đánh giá việc tài xế có thao tác nguy hiểm hay không dẫn đến việc cảnh báo tài xế và gửi thông tin cho người giám sát
2.1.1 Nhận dạng hệ thống lái
2.1.1.1 Mô hình nhận dạng điều khiển hệ thống lái
Để đạt được mục tiêu nhận dạng được các thao tác điều khiển nguy hiểm, trước tiên
Trang 13giao thông phức tạp và thay đổi cũng dẫn đến một loạt các thao tác nguy hiểm Các thao tác điều khiển phương tiện nguy hiểm, theo định nghĩa của Cơ quan an toàn đường cao tốc quốc gia Hoa Kỳ (NHTSA), bao gồm các tín hiệu và thay đổi làn đường không chính xác, cũng như thay đổi làn đường thường xuyên và nhanh chóng Tất nhiên, việc điều khiển phương tiện nguy hiểm không chỉ bao gồm những điều đã nói ở trên Một số thao tác điều khiển phương
tiện cần được công nhận trong bài viết này được liệt kê trong Bảng 2.1, trong đó các thao tác
điều khiển phương tiện từ số 1 đến số 3 là điều khiển phương tiện thông thường (không nguy hiểm) và điều số 4 đến số 9 tương ứng với việc điều khiển phương tiện nguy hiểm
1 Rẽ bình thường Thao tác rẽ đúng kỹ thuật
2 Chuyển làn bình thường Thao tác chuyển làn đúng kỹ thuật
3 Quay đầu bình thường Thao tác quay đầu đúng kỹ thuật
4 Rẽ đột ngột Rẽ đột ngột và có tín hiệu
5 Chuyển làn đột ngột Chuyển làn đột ngột và có tín hiệu
6 Quay đầu đột ngột Quay đầu đột ngột và có tín hiệu
7 Rẽ không do dự Rẽ bình thường hoặc đột ngột không có tín hiệu
8 Chuyển làn không do
dự
Chuyển làn bình thường hoặc đột ngột và không có tín hiệu
9 Quay đầu không do dự Quay đầu bình thường hoặc đột ngột và không có tín hiệu
Bảng 2.1: Một số thao tác điều khiển
Để nhận biết được cái thao tác điều khiển, chúng ta tập trung vào tốc độ góc của xe, được đặc trưng bởi dữ liệu con quay hồi chuyển thu được từ điện thoại thông minh gắn trên xe Một nghiên cứu hiện tại đã xác minh tính khả thi của việc sử dụng cảm biến điện thoại thông minh
Trang 14để xác định các thao tác điều khiển phương tiện bằng cách so sánh dữ liệu cảm biến di động
và sự khác biệt của cảm biến xe giữa kết quả thu thập dữ liệu điều khiển phương tiện
Trên Hình 2.1…, khi xe chuyển làn từ phải sang trái, trạng thái của xe trong suốt quá
trình được chia làm 2 phần Đầu tiên, khi xe rẽ sang trái T1, hướng rẽ trái và đường tạo thành một góc θ1 và dữ liệu con quay hồi chuyển cho thấy sự thay đổi tốc độ góc dương Thứ hai, khi xe rẽ sang phải vào thời điểm T2, hướng rẽ phải song song với hướng của đường và nó tạo thành một góc θ2 với hướng của phương tiện và dữ liệu con quay hồi chuyển cho thấy sự thay đổi tốc độ góc âm, trong khi dạng sóng hoàn toàn ngược lại khi xe thay đổi làn đường từ trái sang phải
Hình 2.1 Xe chuyển làn từ phải sang trái
Trang 15Các xe có thể được chia thành rẽ trái, rẽ phải và rẽ quay đầu Khi xe rẽ sang trái, dữ liệu con quay cho thấy sự thay đổi về tốc độ góc và khi rẽ sang phải, nó chỉ hiển thị ngược lại Ở các quốc gia có luồng giao thông bên tay phải, quay đầu thường có nghĩa là rẽ trái Dữ liệu
con quay hồi chuyển tương tự như quay sang trái, như trong Hình 2.2
2.1.1.2 Thu thập hiệu chỉnh dữ liệu cảm biến
Cảm biến con quay hồi chuyển được đặt trong xe để chuyển động góc và gia tốc của xe Cảm biến có có thể thu thập thông tin về chuyển động của xe trong không gian ba chiều, nhưng
do trạng thái không cố định trong xe, dữ liệu con quay hồi chuyển không thể phản ánh trực tiếp tốc độ góc của xe nên ta tập trung vào việc thu thập và hiệu chỉnh dữ liệu cảm biến quán tính sử dụng bộ lọc thông thấp để lọc nhiễu tần số cao, sau đó dữ liệu gia tốc được sử dụng để căn chỉnh con quay hồi chuyển với hệ thống tọa độ của xe
Thời gian của một thao tác lái nhất định của một chiếc xe là 2 s[1–T6], chu kỳ dạng sóng hoàn chỉnh được ghi lại bởi con quay hồi chuyển là 2 giây và tần số dạng sóng là 1/2 Hz Theo định lý lấy mẫu Nyquist, khi tần số lấy mẫu cao gấp đôi so với tín hiệu, tín hiệu số sau khi lấy mẫu có thể giữ lại thông tin của tín hiệu gốc Trong các ứng dụng trong thế giới thực, chúng
ta cần đảm bảo rằng tần số lấy mẫu cao gấp năm đến mười lần tần số cao nhất của tín hiệu
Hình 2.2 Hướng rẽ và quay đầu của xe giao thông bên phải
Trang 16Để có được thông tin về thao tác điều khiển phương tiện, nhóm sẽ đặt tốc độ lấy mẫu là 20
Trang 17Hình 2.4: Dữ liệu cảm biến sau khi lọc nhiễu [1]
2.1.2 Nhận dạng tay lái xe
Hiện tại, một số phương pháp nhận dạng việc đánh lái áp dụng phương pháp sử dụng tín hiệu tốc độ góc của xe và cùng sử dụng hệ thống đa cảm biến để nhận dạng Dựa trên các đặc điểm miền thời gian của tốc độ góc xe, các phương pháp khác thực hiện khai thác dữ liệu để nhận ra hành vi lái xe Tất cả các phương pháp này không chỉ làm tăng độ phức tạp tính toán
và tỷ lệ đánh giá sai, mà còn nhận ra các hành vi lái xe mà không cần xem xét toàn diện Mục đích chính của bài viết này là để nhận ra các thao tác lái khác nhau Tuy nhiên, không có đặc tính đầy đủ, dữ liệu tốc độ góc của xe không thể phân biệt giữa rẽ xe và quay đầu xe Trong
đồ án này nhóm đã kết hợp sự dụng phù hợp của tốc độ góc, góc lái hướng xe, xác định thao tác lái bằng cách thuật toán phát hiện điểm cuối
Trang 18số được đề xuất ở trên Trong bài báo này, chúng tôi áp dụng sơ đồ phát hiện điểm cuối dựa trên các tham số của dãy năng lượng ngắn hạn Với phương pháp này, nó dễ dàng để phân biệt
rõ ràng với tín hiệu nhiễu khi có Signal to Noise Ratio (SNR) rất cao
Short-term energy (Năng lượng ngắn hạn/xung ngắn hạn): sự khác biệt chính giữa tín hiệu và nhiễu nằm ở năng lượng của chúng Năng lượng tín hiệu bằng tổng sự chồng chất của năng lượng tín hiệu có hiệu quả và đoạn nhiễu, và năng lượng của đoạn tín hiệu nhiều hơn năng lượng của đoạn nhiễu [1–T14]
Trang 19Hình 2.6: Tốc độ góc và thời gian để thay đổi làn đường bên trái[1]
Hình 2.7 cho thấy dạng sóng của tốc độ góc của phương tiện điều khiển rẽ trái và dãy
năng lượng của nó Trong khung hình chữ nhật của hình đó, chúng ta có thể lấy điểm bắt đầu
và điểm kết thúc của hành vi lái xe bằng phương pháp phát hiện điểm cuối Từ dạng sóng của tốc độ góc của xe, chúng ta có thể thấy rằng tốc độ góc không quá 0,5 rad / s trong quá trình lái bình thường của xe, với thời gian 4 giây
Trang 20Dữ liệu tốc độ góc của chiếc xe được ghi lại bởi con quay hồi chuyển thể hiện rõ ràng các thao tác điều khiển và dãy năng lượng của nó có thể phản ánh chính xác các thao tác điều khiển
Hinh 2.8: (a) Rẽ trái (b) Rẽ phải (c) Quay đầu (d) Chuyển làn trái (e) Chuyển làn phải
[1]
2.1.4 Thuật toán AdaBoost [2]
2.1.4.1 Giới thiệu thuật toán AdaBoost
AdaBoost là một thuật toán học máy phân loại cổ điển Nguyên tắc cơ bản của thuật toán AdaBoost là sử dụng một số lượng lớn các bộ phân loại yếu kết hợp với nhau bằng một phương pháp nhất định tạo thành một bộ phân loại mạnh Bộ phân loại mạnh có khả năng phân loại mạnh
Trang 21Bộ phân loại mạnh được tạo như sau:
Giả sử được cung cấp một tập dữ liệu đào tạo hai phân loại:
2.1.4.2 Thuật toán cơ bản AdaBoost
Đầu vào: Dữ liệu training T = (x y1, 1) (, x y2, 2) (, , x N,y N)
, với
n i
x X R ,
1, 1
i
y − +Y
; thuật toán học yếu
Đầu ra: Bộ phân loại mạnh G (x)
(1) Khởi tạo phân phối giá trị trọng số của dữ liệu training
(2) m=1, 2, …, M (m là thời gian của train)
(a) Sử dụng tập dữ liệu train có phân bố trọng số Dm để học, lấy phân loại cơ bản
m m
m
e e
(5)
Trang 22(d) Cập nhật phân phối giá trị trọng số của dữ liệu training
2.2 Phương pháp phân tích hành vi người lái bằng thuật toán
2.2.1 Thuật toán say xỉn
2.2.1.1 Căn chỉnh hệ tọa độ
Ở bài viết này nhóm chúng em sử dụng cảm biến gia tốc với trục x dọc theo cảm biến biểu thị hướng ngang, trục y nằm ngang theo cảm biến biểu thị hướng dọc, trục z hướng thẳng đứng biểu thị hướng xoay của cảm biến (hình 2.9) khi cảm biến được đặt cố định trên xe sao cho hệ tọa độ của xe tương tự như hệ tọa độ cảm biến
Trang 23Hình 2.9: Các hệ tọa độ của cảm biến và xe
Trong quá trình lái xe, trục z của hệ tọa độ của xe luôn thẳng hàng với hướng gia tốc trọng trường (độ dốc sẽ tạm thời không được xem xét) Do đó, khi cảm biến ở vị trí không chắc chắn của xe, dữ liệu được ghi lại bởi ba trục của con quay hồi chuyển thường là dữ liệu vectơ phụ được phân phối trong ba trục đó, không thể phản ánh trực quan sự thay đổi tốc độ góc của xe Do đó, chúng ta cần phải căn chỉnh hệ thống tọa độ của cảm biến với hệ thống của chiếc xe
2.2.1.2 Nhận dạng hành động đánh lái
Hiên tại, bài viết này áp dụng phương pháp sử dụng tín hiệu rẽ của xe đồng thời kết hợp với tín hiệu tốc độ góc của cảm biến gia tốc để nhận dạng Dựa trên các đặc điểm miền thời gian của tốc độ góc và tín hiệu rẽ mà thực hiện khai thác dữ liệu để nhận ra hành vi lái xe
Trang 24Hình 2.10: Mô hình nhận dạng hành động đánh lái 2.2.2 Adaboost nhận dạng hành vi lái
2.2.2.1 Phương pháp phân tích hành vi lái xe dựa theo thuật toán Adaboost
Đề xuất phương pháp phân tích hành vi lái xe bao gồm mô-đun thu nhận hoạt động lái
xe mô-đun tiền xử lý dữ liệu và mô-đun phân loại AdaBoost Dữ liệu phân tích hành vi lái xe
sẽ được chia thành set training và set kiểm tra Tiền xử lý và trích xuất tính năng được áp dụng đồng thời cho cả hai bộ Phân loại làm cho các mẫu thử nghiệm thành mô hình lái xe dựa trên các thuật toán AdaBoost để phân loại và xác định danh mục mẫu thử nghiệm Số lượng mẫu phân loại đúng hoặc sai chia cho số lượng mẫu của bộ thử nghiệm là tỷ lệ phân loại đúng hoặc
tỷ lệ sai sót Trong mô-đun thu thập dữ liệu, lúc đầu, dữ liệu lái xe tốt và dữ liệu lái xe xấu phải được thu thập dưới dạng training Sau đó, thu thập một tập dữ liệu khác bao gồm dữ liệu
về hành vi lái xe tốt và dữ liệu về hành vi lái xe xấu như một tập hợp thử nghiệm sử dụng cùng một quy trình Sau bước tiền xử lý dữ liệu, mỗi mẫu lát thời gian có thể được coi là tốc độ thay đổi hoạt động lái xe Bài báo này sử dụng tập training để thiết lập mô hình phân loại lái
xe bằng các thuật toán AdaBoost và sau đó phương pháp được đề xuất có thể sử dụng tập thử nghiệm để đánh giá độ chính xác của mô hình Cuối cùng, phương pháp được đề xuất đánh giá giá trị của hành vi lái xe Hình 2.11 cho thấy sơ đồ của toàn bộ phương pháp được đề xuất
Trang 25Hình 2.11 Sơ đồ thuật toán AdaBoost
Trang 262.2.3 Lựa chọn thuật toán để phân tích hành vi người lái
Ở bài viết này nhóm đã sử dụng cả hai thuật toán say xỉn và AdaBoost để đánh giá hành
vi lái xe Dữ liệu đầu ra sẽ là tốc độ góc, gia tốc góc của cảm biến gia tốc cùng với dữ liệu được thu thập trên xe qua OBD2 như tốc độ động cơ, tốc độ xe, vị trí bàn đạp ga, … để tính
toán kết hợp Hình 2.12 sẽ cho thấy sơ đồ tính toán kết hợp
Trang 27
2.3 Giao tiếp OBD2 thông qua mạng CAN
2.3.1 Tìm hiểu về mạng CAN
2.3.1.1 Sơ lược về mạng CAN
CAN là viết tắt của Control Area Network – nghĩa là Mạng điều khiển cục bộ Là một
hệ thống truyền tải dữ liệu nối tiếp ứng dụng thời gian thực Nó là một hệ thống thông tin phức hợp có tốc độ truyền rất cao và đặc biệt là khả năng phát hiện ra hư hỏng
Bằng cách kết hợp dây đường truyền CANH và CANL, CAN thực hiện việc liên lạc dựa trên sự chênh lệch điện áp ECU hoặc các cảm biến lắp trên xe hoạt động bằng cách chia sẻ thông tin và liên lạc với nhau CAN có 2 điện trở 120Ω hình 2.13, dùng để thông tin liên lạc với đường truyền chính
Hình 2.13: Mô hình mạng CAN 2.3.1.2 Cấu trúc cơ bản của một bản tin
Cấu trúc một bản tin CAN tiêu chuẩn Hình 2.14
Trang 28Hình 2.14: Cấu trúc mạng CAN [3]
Start of frame: độ dài 1 bit, là biết khởi đầu 1 CAN frame Một CAN node muốn gửi một bản tin nào đó thì lúc này node đó sẽ đặt bit SOF về trạng thái Dominant (0) để thông báo cho các CAN node khác Các bit ID của bản tin, còn được gọi là các bit Arbitration (bit phân xử)
Các bit ID ngoài việc được sử dụng để xác định đối tượng của bản tin, nó còn được sử dụng để xác định mức ưu tiên, quyết định quyền truy nhập bus khi có nhiều thông tin được gửi đi đồng thời
Vùng bit Arbitration có chiều dài 12 bit với dạng khung chuẩn và 32 bit với dạng khung
mở rộng, trong đó mã ID dài 11 hoặc 29 bit
Bit cuối cùng của ô Arbitration là bit RTR (Remote Transmission Request), dùng để phân biệt giữa khung dữ liệu (bit trội) và khung yêu cầu dữ liệu (bit lặn)
• Vùng Control (điều khiển) dài 6 bit, trong đó 4 bit cuối mã hóa chiều dài dữ liệu
• Vùng Data có chiều dài từ 0 đến 8 byte, trong đó mỗi byte được truyền đi theo thứ tự từ bit
Trang 29• Vùng xác nhậc ACK (Acknowlegment) gồm 2 bit để các thành phần trên mạng CAN thực hiện kiểm tra mã CRC
• Kết thúc khung được đánh dấu bằng 7 bit lặn.[3]
Trong quá trình hoạt động, nếu 2 thành phần cùng gửi bản tin lên mạng CAN tại cùng một thời điểm, bản tin nào có ID thấp hơn, bản tin đó có mức ưu tiên cao hơn và được quyền
sử dụng mạng để gửi đi yêu cầu hoặc dữ liệu
Khung tiêu chuẩn
Được thống nhất và áp dụng đầu tiên tại Mỹ Với mục đích nhắm phát hiện các chất có hại trong khí xả thải vào khí quyển, hệ thống OBD cho phép ECU động cơ phát hiện bất kỳ
Trang 30hư hỏng nào của động cơ và hệ thống kiểm soát khí xả cũng như báo cho lái xe các trạng thái này qua đèn “check engine” Một chức năng của ECU động cơ để lưu các dữ liệu điều khiển quan trọng vào bộ nhớ trong khi phát hiện thấy hư hỏng
Tiêu chuẩn OBD-II cung cấp một danh sách các DTC có thể mở rộng Kết quả của việc tiêu chuẩn hóa này, một thiết bị duy nhất có thể truy vấn (các) máy tính trên xe trong bất kỳ phương tiện nào OBD-II này có hai mẫu OBD-IIA và OBD-IIB Việc tiêu chuẩn hóa OBD-
II được thúc đẩy bởi các yêu cầu về khí thải và mặc dù chỉ có mã và dữ liệu liên quan đến khí thải được yêu cầu truyền qua nó, hầu hết các nhà sản xuất đã làm cho Đầu nối liên kết dữ liệu OBD-II trở thành đầu nối duy nhất trên xe mà qua đó tất cả các hệ thống đều được chẩn đoán
và được lập trình Mã sự cố chẩn đoán OBD-II có 4 chữ số, đứng trước một chữ cái: P cho động cơ và hộp số (hệ thống truyền lực), B cho thân, C cho khung và U cho mạng
2.3.2.2 Tổng quan về OBD2 trên xe
Đặc điểm kỹ thuật OBD-II cung cấp giao diện phần cứng được tiêu chuẩn hóa — đầu nối J1962 16 chân (2x8) cái Không giống như đầu nối OBD-I, đôi khi được tìm thấy dưới mui xe, đầu nối OBD-II được yêu cầu trong phạm vi 2 foot (0,61 m) của vô lăng (trừ khi nhà sản xuất áp dụng biện pháp miễn trừ, trong trường hợp đó, tay lái vẫn ở đâu đó trong tầm với của người lái) SAE J1962 xác định sơ đồ chân của đầu nối
1 Nhà sản xuất quyết định 9 Nhà sản xuất quyết định
3 Nhà sản xuất quyết định 11 Nhà sản xuất quyết định
Trang 314 Chassis ground 12 Nhà sản xuất quyết định
5 Signal ground 13 Nhà sản xuất quyết định
6 CAN high (ISO 15765-4 and SAE
J2284)
14 CAN low (ISO 15765-4 and SAE
J2284)
7 K-line (ISO 9142-2) 15 L-line (ISO 9142-2)
8 Nhà sản xuất quyết định 16 Nguồn 12V
Bảng 2.2: Sơ đồ chân của jack OBD2 2.3.2.3 Tìm hiểu về OBD2 PIDs
OBD-II PID (ID thông số chẩn đoán trên xe) là mã được sử dụng để yêu cầu dữ liệu từ một phương tiện, được sử dụng như một công cụ chẩn đoán
Các chế độ
Chế độ
01 Biểu diễn dữ liệu hiên tại
02 Hiển thị dữ liệu khung cố định
03 Hiện thị mã chuẩn đoán được lưu trữ
04 Xóa mã lỗi và các giá trị lưu trữ
05 Kết quả kiểm tra, giám sát cảm biến oxy (chỉ dành cho CAN)
06 Kết quả kiểm tra, giám sát thành phần / hệ thống khác (Kết quả kiểm tra, giám
sát cảm biến oxy chỉ CAN)
07 Hiển thị Mã lỗi đang chờ xử lý (được phát hiện trong quá trình lái xe hiện tại
hoặc cuối quá trình)
Trang 3208 Điểu khiển sự hoạt động của các bộ phận trên ON – BOARD
09 Yêu cầu thông tin xe
0A Mã chuẩn đoán cố định (DTCs) (DTCs đã xóa)
Bảng 2.3: Các chế độ của PIDs
Các nhà sản xuất xe không bắt buộc phải hỗ trợ tất cả các dịch vụ Mỗi nhà sản xuất có thể xác định các dịch vụ bổ sung ở trên # 9 (ví dụ: dịch vụ 22 theo định nghĩa của SAE J2190 cho Ford / GM, dịch vụ 21 cho Toyota) cho các thông tin khác, ví dụ: điện áp của Accu trong
xe điện hybrid (HEV)
Bài viết này chủ yếu tập trung vào việc lấy thông tin trên xe Nên những thông tin cần thiết được lấy chỉ nằm ở chế độ 1 nên nhóm sẽ tập trung khai thái ở chế độ này Cụ thể ở chế này khi gửi yêu cầu cho PID này trả về 4 byte dữ liệu (A, B, C và D)
về
Mô tả Giá trị
nhỏ nhất
Giá trị lớn nhất Đơn vị Công thức
00 0 4 PID được hỗ trợ
[01 - 20]
Bit được mã hóa
Theo dõi trạng thái DTC khi bị xóa Bao gồm
Bit được mã hóa
Trang 33trạng thái đèn báo lỗi MIL và
số lượng mã DTCs
cơ
Áp suất nhiên liệu (đồng hồ áp suất)
Áp suất tuyệt đối trên đường ống nạp
64 2
A −
0F 15 1 Nhiệt độ khí
Trang 3410 16 2
Khối lượng không khí nạp (MAF)
Do yêu cầu của đề tài nên nhóm sẽ lấy 1 số mã PIDs
PID Số Byte Mô tả Đơn vị Công thức
0C 2 Tốc độ động cơ rpm ((A*256)+B)/4
04 1 Tính toán tải động cơ % A*100/255
Bảng 2.6: Một số mã PIDs cho đề tài
Honda City sử dụng 2 backbones CAN riêng biệt F-CAN bus xử lý các thành phần quan trọng của xe, chẳng hạn như động cơ, hệ thống truyền động, hệ thống lái, phanh và các chức năng điều khiển xe cơ bản khác Đồng hồ Taplo cũng có thể được tìm thấy F-CAN bus, vì nó dựa trên dữ liệu được gửi từ một số thành phần quan trọng nhất của xe để cung cấp các chỉ số chính xác cho người lái xe F-CAN của sử dụng một cặp dây (CAN_H và CAN_L) và hoạt động ở tốc độ 500Kbps Mặt khác, bus B-CAN chỉ sử dụng một dây duy nhất (SW-CAN) và hoạt động ở mức 33,33Kbps thấp hơn nhiều BCAN bus xử lý các chức năng ít quan trọng hơn như radio của xe, cửa sổ, khóa cửa, cài đặt tiện nghi, v.v
Mặc dù nhiều xe ngày nay được thiết kế mà không áp dụng các nguyên tắc bảo mật cơ bản, nhưng không phải tất cả các xe đều thiếu phân đoạn mạng CAN bus Một số xe đặt cổng chẩn đoán OBD-II cho một số CAN riêng biệt cho các mô-đun điều khiển xe quan trọng hơn
Do những hạn chế của cổng OBD-II trên một số phương tiện, có thể cần phải tìm một điểm vào thay thế cho CAN Honda Civic 2011 có nhiều địa điểm mà F-CANbus của nó có thể dễ dàng tiếp cận
Trang 35Tín hiệu tốc độ động cơ rpm
Bảng 2.7: Mã PID của tốc độ động cơ
Trong điều kiện bình thường, Module điều khiển hệ thống truyền lực (PCM) của động
cơ gửi bản tin 1DC trên mạng CAN 20 mili giây một lần hoặc 50 lần mỗi giây ECU điều khiển của cụm đồng hồ đo trên taplo liên tục nhận trên mạng CAN để tìm và xử lí các bản tin này Mỗi khi nhận được bản tin có ID là 1DC, vị trí kim trên đồng hồ đo tốc độ sẽ được cập nhật tương ứng
Trên nhiều xe Honda khác, ID thông báo CAN của 1DC được sử dụng riêng cho taplo RPM của động cơ trên mạng CAN bus Trong trường hợp này, ID 1DC có độ dài 7 byte Trong quá trình nghiên cứu này, người ta thấy rằng byte đầu tiên không bao giờ thay đổi từ giá trị
02 Tuy nhiên, hai byte tiếp theo biểu diễn theo hệ thập lục phân RPM thực tế của động cơ sau khi được mã hóa bằng thuật toán cơ bản Sau một số thử nghiệm, ta nhận thấy rằng công thức tính toán được sử dụng bên dưới để tính RPM động cơ gần đúng
Hình 2.15: Chuyển mã HEX sang tốc độ động cơ
Ví dụ, 1 bản tin với ID là 1DC và các Byte Data là 02 02 EC 00 00 00 00 Theo công thức ta lấy 2 byte D1 và D2, 02EC (mã HEX) sau đó ta chuyển sang mã DEC thành 748 rpm
Tốc độ xe
Kỹ thuật được sử dụng để điều khiển đồng hồ tốc độ của xe tương tự như kỹ thuật được
sử dụng để điều khiển đồng hồ đo tốc độ xe Tuy nhiên, dữ liệu tốc độ xe sử dụng ID CAN khác và cấu trúc thông báo phức tạp hơn
Trang 36ID RTR D0 D1 D2 D3 D4 D5 D6 D7
Bảng 2.8: Mã PID của tốc độ xe
Không giống như các bản tin 1DC cho RPM, có độ dài 4 byte, bản tin 158 CAN thông
thường có độ dài 8 byte Ngoài ra, trong khi bản tin 1DC RPM được gửi mỗi 20ms, bản tin
158 được phát sau mỗi 10ms hoặc 100 lần mỗi giây
Thông điệp CAN có thể được chia thành năm phần riêng biệt như sau:
Byte D0 & D1: Dữ liệu tốc độ sử dụng cho các mục đích khác ngoài đồng hồ tốc độ
Byte D2 & D3: Dữ liệu RPM của động cơ cho các mục đích khác ngoài đồng hồ tốc
độ động cơ
Byte D4 & D5: Dữ liệu tốc độ để hiển thị trên đồng hồ tốc độ
Byte D6: Tín hiệu đến đồng hồ đo quãng đường tăng dần
Byte D7: Tín hiệu cho biết xe đang chuyển động
Hình 2.16: Chuyển mã HEX sang tốc độ xe
Ví dụ, 1 bản tin với ID là 158 và các Byte Data là 06 0C 06 33 06 1A 0 236 Theo công
thức ta lấy 2 byte D4 và D5, 061A (mã HEX) sau đó ta chuyển sang mã DEC thành 1562
Sau đó chia cho 100 ta được 15,62 Làm tròn 15,5 km/h
Việc phân tích tương tự với các tính hiệu khác để cho ra những tín hiệu ta cần