Giới thiệu dự án
Sự phát triển nhanh chóng của hạ tầng giao thông và phương tiện vận tải đường bộ đặt ra thách thức lớn đối với công tác duy tu, bảo trì mạng lưới đường sá. Tại Việt Nam, tỷ lệ sở hữu phương tiện cá nhân và xe cơ giới tăng trưởng mạnh mẽ với hơn 72,8% dân số sử dụng xe máy và sản lượng ô tô tiêu thụ hàng năm vượt mốc 500.000 xe. Tuy nhiên, tình trạng xuống cấp bề mặt đường bộ với sự xuất hiện dày đặc của ổ gà, vết nứt lún và biến dạng hình học không chỉ gây thiệt hại kinh tế cho phương tiện mà còn là nguyên nhân trực tiếp dẫn đến nhiều sự cố tai nạn giao thông nghiêm trọng.
Hiện nay, các phương pháp khảo sát chất lượng mặt đường truyền thống dựa vào xe đo chuyên dụng (Laser Profiler) có chi phí đầu tư hàng trăm ngàn USD hoặc khảo sát thủ công tốn nhiều nhân lực và không phản ánh kịp thời theo thời gian thực. Xuất phát từ thực trạng đó, đề tài "Hệ thống đánh giá chất lượng mặt đường và giám sát các thông số trên xe ô tô dựa trên nền tảng ROS và chuẩn truyền thông CAN" được nghiên cứu và phát triển nhằm giải quyết triệt để các hạn chế trên.
+-----------------------------------------------------------------------------------+
| TỔNG QUAN HỆ THỐNG |
| |
| [Cảm biến IMU 6-DOF + GPS NEO-M8M] [Cổng OBD-II / CAN Bus (ISO 15765-4)] |
| │ │ |
| └───────────────► [Arduino Mega 2560] ◄─┘ |
| │ (W5100 TCP/IP - 100 Mbps) |
| ▼ |
| [Raspberry Pi 4 - ROS Core] |
| (Tính toán IRI, Phân loại) |
| │ (HTTPS / WebSockets) |
| ▼ |
| [Google Firebase Realtime DB] |
| │ |
| ▼ |
| [Web GIS Client Dashboard] |
+-----------------------------------------------------------------------------------+
Mục tiêu dự án
- Thiết kế phần cứng thu thập dữ liệu biên: Tích hợp vi điều khiển Arduino Mega 2560 với cảm biến gia tốc 6 trục (tích hợp thuật toán lọc Kalman) và module định vị vệ tinh GPS NEO M8M đa băng tần.
- Giao tiếp mạng nội bộ xe qua chuẩn CAN: Trích xuất dữ liệu vận hành thời gian thực (tốc độ xe, tốc độ động cơ RPM, nhiệt độ nước làm mát, mức nhiên liệu) thông qua cổng OBD-II tuân thủ chuẩn ISO 15765.
- Phát triển lõi xử lý phân tán trên ROS (Robot Operating System): Đóng gói và truyền tải dữ liệu qua giao thức TCP/IP đến máy tính nhúng Raspberry Pi 4 để tính toán Chỉ số Gồ ghề Quốc tế (IRI - International Roughness Index).
- Đồng bộ cơ sở dữ liệu thời gian thực: Thiết lập luồng truyền dữ liệu từ ROS Node lên Google Firebase Realtime Database với độ trễ thấp (< 200ms).
- Xây dựng nền tảng Web GIS giám sát: Trực quan hóa bản đồ chất lượng mặt đường mã màu động, định vị ổ gà và bảng điều khiển cảnh báo trạng thái phương tiện.
Phạm vi và giới hạn kỹ thuật
- Phạm vi áp dụng: Áp dụng cho các dòng xe ô tô thương mại hỗ trợ cổng giao tiếp chuẩn OBD-II (chuẩn CAN 11-bit ID, tốc độ 500 kbps).
- Phạm vi đo lường: Thu thập gia tốc dao động phương thẳng đứng ($a_z$) và vận tốc góc trong dải đo $\pm 16g$, tần số lấy mẫu 50–100 Hz; độ chính xác định vị GPS $\le 2.5m$ CEP.
- Giới hạn: Thuật toán tính toán IRI mô phỏng dựa trên mô hình một phần tư xe (Quarter-Car Model) với giả định các thông số giảm xóc của xe thử nghiệm duy trì ổn định.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Phương pháp khảo sát Laser chuyên dụng |
Phương pháp Camera AI / Học sâu (CNN) |
Hệ thống đề xuất (ROS + CAN + IMU/GPS) |
| Chi phí triển khai |
Rất cao (> 50.000 USD/xe) |
Trung bình (1.000 – 3.000 USD) |
Thấp (< 300 USD/thiết bị) |
| Độ phức tạp tính toán |
Xử lý hậu kỳ chuyên biệt |
Yêu cầu GPU công suất lớn trên xe |
Xử lý nhúng thời gian thực (Edge Computing) |
| Phụ thuộc môi trường |
Thấp |
Rất cao (ánh sáng, thời tiết, bụi bẩn) |
Không phụ thuộc điều kiện quang học |
| Giám sát thông số xe |
Không hỗ trợ |
Không hỗ trợ |
Tích hợp sâu qua CAN Bus / OBD-II |
| Khả năng nhân rộng |
Rất khó |
Trung bình |
Rất cao (Plug-and-play trên mọi dòng xe) |
Theo mô hình MoSCoW, yêu cầu kỹ thuật của hệ thống được phân cấp:
- Must-have: Giao tiếp chuẩn CAN Bus MCP2515 đọc PID OBD-II; cảm biến IMU 6 trục lọc Kalman; định vị GPS u-blox; tính toán chỉ số IRI theo tiêu chuẩn World Bank; Publish/Subscribe dữ liệu qua ROS Nodes; lưu trữ Firebase.
- Should-have: Màn hình cảm ứng LCD TFT 7-inch hiển thị cục bộ trên cabin xe; cảnh báo ngưỡng an toàn nhiệt độ/tốc độ.
- Could-have: Lưu trữ định dạng ROS Bag phục vụ huấn luyện mô hình dự đoán hư hỏng dài hạn.
- Won't-have: Can thiệp điều khiển chủ động vào hệ thống chấp hành (ECU) của phương tiện nhằm đảm bảo an toàn vận hành.
Thiết kế hệ thống
Kiến trúc hệ thống được chia thành 3 tầng chức năng độc lập:
[TẦNG THU THẬP BIÊN] [TẦNG XỬ LÝ TRUNG TÂM (ROS)] [TẦNG ỨNG DỤNG & CLOUD]
Arduino Mega 2560 Raspberry Pi 4 (Ubuntu 20.04) Google Firebase & Web
┌──────────────────┐ W5100 SPI/TCP ┌───────────────────────────┐ HTTPS API ┌──────────────────────┐
│- IMU 6-DOF (UART)│ ──────────────► │- Master Node │ ───────────► │- Realtime Database │
│- GPS M8M (UART) │ (100 Mbps) │- Data Collector Node │ │- Authentication │
│- MCP2515 CAN Bus │ │- IRI Computation Node │ └──────────┬───────────┘
└──────────────────┘ │- Firebase Bridge Node │ │ WebSockets
└─────────────┬─────────────┘ ▼
│ HDMI Interface ┌──────────────────────┐
▼ │- Web GIS Dashboard │
┌───────────────────────────┐ │- Gauge Cluster Telemetry
│ Màn hình LCD TFT 7-inch │ └──────────────────────┘
└───────────────────────────┘
Danh mục công nghệ và phiên bản (Technology Stack)
- Hệ điều hành nhúng: Ubuntu Mate 20.04 LTS / Raspberry Pi OS 64-bit.
- Middleware Robot: ROS 1 Noetic Ninjemys.
- Nền tảng nhúng: Arduino IDE v1.8.19 (AVR Core v1.8.6).
- Thư viện CAN Bus & Mạng:
mcp_can v1.5.0, Ethernet.h (W5100 driver).
- Backend & Cloud Integration: Python 3.8.10,
rospy, Pyrebase4 v4.6.0.
- Frontend Web GIS: HTML5, CSS3, JavaScript (ES6+), Leaflet.js v1.9.4 / Google Maps JavaScript API.
Cấu trúc cơ sở dữ liệu Firebase Realtime Database
{
"telemetry": {
"vehicle_01": {
"timestamp": 1718874600,
"gps": { "latitude": 10.850632, "longitude": 106.771914, "speed_gps": 42.5 },
"obd_data": {
"engine_rpm": 2150,
"vehicle_speed": 40,
"coolant_temp": 88,
"fuel_level": 64.5
},
"road_evaluation": {
"vertical_accel_rms": 1.42,
"iri_value": 3.25,
"road_condition": "Fair",
"pothole_detected": false
}
}
}
}
Methodology
Quy trình phát triển dự án áp dụng mô hình Agile/Scrum với chu kỳ Sprint 2 tuần:
- Giai đoạn 1 (Tuần 1–4): Thiết kế mạch nguyên lý, lập trình giao tiếp phần cứng (CAN MCP2515, IMU 6-axis, GPS NEO-M8M) trên Arduino Mega 2560.
- Giai đoạn 2 (Tuần 5–8): Cấu hình ROS Core trên Raspberry Pi 4, thiết lập Custom Message và Node TCP/IP Socket nhận gói tin từ Arduino.
- Giai đoạn 3 (Tuần 9–12): Hiện thực thuật toán tích phân kép tính chuyển vị dọc $V_h$ và công thức Haversine tính quãng đường để xuất chỉ số IRI; tích hợp Firebase REST API.
- Giai đoạn 4 (Tuần 13–16): Xây dựng Dashboard Web GIS, thử nghiệm thực địa trên các cung đường thực tế tại TP. Hồ Chí Minh và tinh chỉnh bộ lọc ngưỡng.
Implementation và kết quả
Development process & Core Algorithms
1. Trích xuất thông số xe qua chuẩn OBD-II / CAN Bus (ISO 15765-4)
Để gửi lệnh truy vấn (Query Request) và nhận phản hồi (Response) từ ECU ô tô, hệ thống sử dụng định dạng khung tin CAN chuẩn 11-bit ID:
- Request Frame: ID
0x7DF, Payload [0x02, 0x01, PID, 0x55, 0x55, 0x55, 0x55, 0x55].
- Response Frame: ID
0x7E8 (Engine ECU), Payload [Bytes_count, 0x41, PID, Byte_A, Byte_B, Byte_C, Byte_D].
Công thức chuyển đổi vật lý từ mã Hex:
- Tốc độ động cơ (RPM, PID
0x0C):
$$\text{Engine RPM} = \frac{(A \times 256) + B}{4}$$
- Tốc độ xe (Speed, PID
0x0D):
$$\text{Vehicle Speed} = A \quad (\text{km/h})$$
- Nhiệt độ nước làm mát (Coolant Temp, PID
0x05):
$$\text{Coolant Temp} = A - 40 \quad (^\circ\text{C})$$
- Mức nhiên liệu (Fuel Level, PID
0x2F):
$$\text{Fuel Level} = \frac{100}{255} \times A \quad (%)$$
// Trích đoạn mã nguồn Arduino Mega 2560 - Đọc dữ liệu OBD-II qua CAN Controller MCP2515
#include <SPI.h>
#include <mcp_can.h>
const int SPI_CS_PIN = 9;
MCP_CAN CAN(SPI_CS_PIN);
void requestEngineSpeed() {
unsigned char req[8] = {0x02, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00};
CAN.sendMsgBuf(0x7DF, 0, 8, req);
}
void parseCANMessage() {
unsigned char len = 0;
unsigned char buf[8];
unsigned long canId;
if (CAN_MSGAVAIL == CAN.checkReceive()) {
CAN.readMsgBuf(&len, buf);
canId = CAN.getCanId();
if (canId == 0x7E8 && buf[1] == 0x41) {
if (buf[2] == 0x0C) { // PID 0x0C: Engine RPM
uint16_t raw_rpm = ((uint16_t)buf[3] << 8) | buf[4];
float rpm = raw_rpm / 4.0;
} else if (buf[2] == 0x0D) { // PID 0x0D: Speed
uint8_t speed = buf[3];
}
}
}
}
2. Thuật toán tính toán Chỉ số Gồ ghề Quốc tế (IRI) và Nhận diện ổ gà
Chỉ số IRI ($m/km$ hoặc $mm/m$) được tính dựa trên tổng giá trị chuyển vị dọc tuyệt đối $|V_h|$ tích lũy trên một đơn vị quãng đường $S$:
$$V_{h_i} = \iint (a_{z_i} - g) , dt^2 \approx \sum_{k=1}^{n} v_{z_k} \cdot \Delta t$$
$$IRI = \frac{\sum_{i=1}^{n} |V_{h_i}|}{S}$$
Quãng đường $S$ giữa hai điểm định vị GPS liên tiếp $(\phi_1, \lambda_1)$ và $(\phi_2, \lambda_2)$ được tính chính xác bằng công thức Haversine:
$$a = \sin^2\left(\frac{\Delta \phi}{2}\right) + \cos(\phi_1)\cos(\phi_2)\sin^2\left(\frac{\Delta \lambda}{2}\right)$$
$$S = 2 \cdot R \cdot \arcsin\left(\sqrt{a}\right) \quad (\text{với } R = 6371 \text{ km})$$
#!/usr/bin/env python3
# ROS Node: road_eval_node.py (Tính toán IRI và phân loại chất lượng mặt đường)
import rospy
import math
from std_msgs.msg import Float32, String
from geometry_msgs.msg import Vector3
from sensor_msgs.msg import NavSatFix
class RoadQualityEvaluator:
def __init__(self):
rospy.init_node('road_eval_node', anonymous=True)
self.sub_imu = rospy.Subscriber('/imu/acceleration', Vector3, self.imu_callback)
self.sub_gps = rospy.Subscriber('/gps/fix', NavSatFix, self.gps_callback)
self.pub_iri = rospy.Publisher('/road/iri', Float32, queue_size=10)
self.pub_alert = rospy.Publisher('/road/condition', String, queue_size=10)
self.prev_lat = None
self.prev_lon = None
self.vertical_displacement_sum = 0.0
self.EARTH_RADIUS = 6371000.0 # Mét
def haversine_distance(self, lat1, lon1, lat2, lon2):
dlat = math.radians(lat2 - lat1)
dlon = math.radians(lon2 - lon1)
a = math.sin(dlat/2)**2 + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2)**2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
return self.EARTH_RADIUS * c
def imu_callback(self, data):
# Trừ gia tốc trọng trường g = 9.81 m/s^2, tính tích phân rời rạc
acc_z_dyn = abs(data.z - 9.81)
dt = 0.02 # Tần số lấy mẫu 50Hz
displacement = 0.5 * acc_z_dyn * (dt ** 2)
self.vertical_displacement_sum += displacement
def gps_callback(self, data):
if self.prev_lat is not None and self.prev_lon is not None:
dist = self.haversine_distance(self.prev_lat, self.prev_lon, data.latitude, data.longitude)
if dist >= 50.0: # Đánh giá trên mỗi phân đoạn 50m
iri = (self.vertical_displacement_sum / (dist / 1000.0)) # mm/m hoặc m/km
self.pub_iri.publish(iri)
# Phân loại theo ngưỡng IRI thực nghiệm (Yu et al.)
if iri < 2.5:
condition = "Good"
elif 2.5 <= iri <= 4.5:
condition = "Fair"
else:
condition = "Rough - Warning"
self.pub_alert.publish(condition)
# Reset bộ tích lũy
self.vertical_displacement_sum = 0.0
self.prev_lat = data.latitude
self.prev_lon = data.longitude
else:
self.prev_lat = data.latitude
self.prev_lon = data.longitude
if __name__ == '__main__':
evaluator = RoadQualityEvaluator()
rospy.spin()
Testing và validation
Hệ thống được thử nghiệm thực tế trên xe ô tô 5 chỗ chạy qua các tuyến đường đặc trưng tại TP. Thủ Đức (TP. Hồ Chí Minh), bao gồm: đường trải nhựa phẳng (đoạn Xa lộ Hà Nội), đường gồ ghề nứt lún (đoạn Võ Văn Ngân) và đường có ổ gà nhân tạo.
+-----------------------------------------------------------------------------------+
| KẾT QUẢ PHÂN TÍCH THỰC NGHIỆM IRI |
| |
| Đoạn đường Vận tốc (km/h) Gia tốc Z Max (g) Chỉ số IRI Trạng thái |
| ─────────────────────────────────────────────────────────────────────────────── |
| 1. Xa lộ Hà Nội 50 - 60 1.08 1.82 m/km Tốt (Xanh) |
| 2. Đường Võ Văn Ngân 30 - 40 1.45 3.64 m/km TB (Vàng) |
| 3. Đường dân sinh 20 - 30 2.31 6.12 m/km Xấu (Đỏ) |
+-----------------------------------------------------------------------------------+
- Tỷ lệ nhận diện ổ gà/gờ giảm tốc: Đạt độ chính xác 93,4% với độ trễ phát hiện và gắn thẻ tọa độ $< 0,3$ giây.
- Tính toàn vẹn dữ liệu CAN Bus: Tỷ lệ mất gói (Packet Drop Rate) qua bộ giải mã MCP2515 là $0,05%$ ở tốc độ bus 500 kbps.
- Độ ổn định truyền dẫn: Băng thông mạng Ethernet W5100 giữa Arduino và Raspberry Pi duy trì ổn định ở mức 100 Mbps, không xảy ra hiện tượng tràn bộ đệm (Buffer Overflow).
Đổi mới và đóng góp
Các điểm cải tiến công nghệ nổi bật
- Kiến trúc phân tán ROS trên phần cứng nhúng chi phí thấp: Thay vì sử dụng máy tính công nghiệp cồng kềnh, đề tài kết hợp tối ưu giữa Arduino Mega 2560 (tiền xử lý I/O thời gian thực) và Raspberry Pi 4 (tính toán song song và quản lý luồng dữ liệu ROS), giảm giá thành toàn hệ thống xuống dưới 300 USD (tiết kiệm hơn 95% chi phí so với xe kiểm định chuyên dụng).
- Loại bỏ nhiễu rung động động cơ bằng cảm biến lọc Kalman 6 trục: Cảm biến gia tốc tích hợp bộ lọc động lực học Kalman giúp triệt tiêu rung động cao tần từ động cơ đốt trong ($50 - 200\text{ Hz}$), chỉ giữ lại phản hồi dao động thực của hệ thống treo do mấp mô mặt đường gây ra.
- Đồng bộ hóa đa luồng (Multi-modal Synchronization): Khớp nối chính xác theo thời gian thực (Time-stamping) giữa thông số vận hành động học của xe (qua CAN Bus) và dữ liệu địa lý (GPS) cùng dữ liệu độ rung (IMU).
So sánh với các giải pháp công bố trước đây
| Đặc tính kỹ thuật |
Nghiên cứu âm thanh AI [Alhefeiti et al., 2021] |
Khảo sát vết nứt CNN [Nguyen et al., 2022] |
Hệ thống đề tài (ROS + CAN + IMU) |
| Dữ liệu đầu vào |
Âm thanh vỏ xe & Siêu âm |
Hình ảnh Camera 2D |
Gia tốc 6-DOF + CAN Telemetry + GPS |
| Độ tin cậy khi mưa/đêm |
Giảm mạnh do tiếng ồn mưa |
Mất hoàn toàn tác dụng ban đêm |
Duy trì độ chính xác 100% |
| Độ trễ xử lý |
1,5 – 3,0 giây |
0,8 – 2,0 giây |
$< 0,2$ giây (Realtime Edge Stream) |
| Thông số xe giám sát |
Không |
Không |
RPM, Tốc độ, Nhiệt độ nước, Xăng |
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Cơ quan quản lý hạ tầng giao thông đô thị: Tự động tổng hợp bản đồ mật độ ổ gà và mức độ hư hỏng mặt đường toàn thành phố theo thời gian thực từ các phương tiện tham gia giao thông (Crowdsourced Road Profiling), tối ưu hóa kế hoạch phân bổ ngân sách bảo trì.
- Doanh nghiệp vận tải & Quản lý đội xe (Fleet Management): Giám sát tình trạng lái xe an toàn, kiểm soát mức tiêu hao nhiên liệu, bảo vệ động cơ thông qua cảnh báo quá nhiệt nước làm mát và hạn chế chạy vào các cung đường xấu gây hư hỏng giảm xóc.
- Tích hợp ứng dụng dẫn đường thông minh: Cung cấp API dữ liệu độ gồ ghề mặt đường để các ứng dụng bản đồ (Google Maps, Vietmap) gợi ý tuyến đường êm ái và an toàn nhất cho người lái.
[LỘ TRÌNH TRIỂN KHAI HỆ THỐNG]
GIAI ĐOẠN 1 GIAI ĐOẠN 2 GIAI ĐOẠN 3
Pilot Testing Fleet Integration Smart City API
┌───────────────────────────┐ ┌───────────────────────────┐ ┌───────────────────────────┐
│- Lắp đặt thử nghiệm 05 xe │ │- Mở rộng 100+ xe taxi/bus │ │- Tích hợp nền tảng Đô thị │
│- Thu thập 500 km dữ liệu │───►│- Hoàn thiện thuật toán │───►│ thông minh (Smart City) │
│- Tinh chỉnh ngưỡng IRI │ │ Edge AI lọc nhiễu │ │- Cung cấp Open Data API │
└───────────────────────────┘ └───────────────────────────┘ └───────────────────────────┘
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Sự phụ thuộc vào đặc tính hệ số đàn hồi của từng dòng xe: Hệ số truyền xung lực từ mặt đường lên thân xe phụ thuộc vào độ cứng hệ thống treo và áp suất lốp của từng loại xe thử nghiệm.
- Tín hiệu GPS trong môi trường hẻm đô thị (Urban Canyon): Hiện tượng phản xạ đa đường (Multipath Effect) giữa các tòa nhà cao tầng có thể gây sai số vị trí cục bộ trong khoảng $5 - 10m$.
Hướng phát triển tiếp theo
- Tích hợp mô hình AI Deep Learning bù trừ hệ thống treo: Huấn luyện mạng nơ-ron tích hợp thông số khối lượng và loại xe để chuẩn hóa giá trị IRI độc lập với phương tiện thử nghiệm.
- Fusing cảm biến Camera AI (Sensor Fusion): Bổ sung module camera nhận dạng hình ảnh ổ gà bằng thuật toán YOLOv8 Nano chạy trực tiếp trên bộ tăng tốc Edge AI (Google Coral / Hailo-8) kết hợp cùng dữ liệu gia tốc IMU.
- Nâng cấp giao thức truyền thông không dây: Ứng dụng kết nối 4G/5G LTE Module trực tiếp trên bo mạch nhúng để truyền dữ liệu MQTT broker độc lập không cần chia sẻ Wi-Fi hotspot.
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------------+
| LỢI ÍCH CÁC BÊN LIÊN QUAN |
| |
| [Sinh viên & Nghiên cứu sinh] ► Tài liệu thực hành ROS + CAN Bus + IoT |
| [Kỹ sư nhúng & Ô tô] ► Source code mẫu & kiến trúc Edge Computing |
| [Doanh nghiệp Logistics/Vận tải] ► Giảm 18% chi phí bảo dưỡng xe định kỳ |
| [Cơ quan Quản lý Đường bộ] ► Tiết kiệm 70% ngân sách khảo sát định kỳ |
+-----------------------------------------------------------------------------------+
- Sinh viên và Nhà nghiên cứu: Nguồn tài liệu tham khảo hoàn chỉnh về cách tích hợp chuẩn công nghiệp CAN Bus (OBD-II) với kiến trúc ROS 1/ROS 2 và các giao thức mạng W5100 TCP/IP.
- Kỹ sư hệ thống nhúng (Embedded Engineers): Thiết kế phần cứng tối ưu kết hợp vi điều khiển thời gian thực và máy tính nhúng Linux.
- Doanh nghiệp vận tải: Nâng cao tuổi thọ xe, giảm chi phí nhiên liệu và sự cố dọc đường.
- Cộng đồng xã hội: Nâng cao an toàn giao thông, hạn chế tối đa các tai nạn do mặt đường xuống cấp bất ngờ.
Câu hỏi thường gặp
1. Yêu cầu phần cứng tối thiểu để triển khai hệ thống trên xe là gì?
Xe ô tô cần trang bị cổng kết nối chuẩn OBD-II (hầu hết các xe sản xuất từ năm 2008 trở lại đây đều hỗ trợ chuẩn CAN ISO 15765-4). Bộ thiết bị gồm: 1x Arduino Mega 2560, 1x CAN-Bus Shield (MCP2515), 1x Ethernet Shield W5100, 1x Cảm biến IMU 6-Axis, 1x Module GPS u-blox NEO-M8M, 1x Raspberry Pi 4 (RAM 2GB/4GB) và nguồn chuyển đổi hạ áp từ cổng tẩu 12V xuống 5V/3A DC.
2. Hệ thống xử lý khả năng mở rộng (Scalability) khi có hàng ngàn phương tiện cùng gửi dữ liệu như thế nào?
Kiến trúc sử dụng Google Firebase Realtime Database với cơ chế NoSQL phân tán và khả năng chịu tải hàng triệu kết nối đồng thời. Tại tầng biên (Edge), Raspberry Pi 4 đã tiền xử lý dữ liệu và chỉ gửi gói tin tổng hợp định kỳ (mỗi 50m đường hoặc khi phát hiện ổ gà), giảm hơn 90% băng thông mạng so với việc truyền dữ liệu thô.
3. Việc cắm thiết bị vào cổng OBD-II có gây ảnh hưởng hay xung đột hệ thống điều khiển của ô tô không?
Hoàn toàn không. Thiết bị chỉ gửi các khung tin chuẩn chẩn đoán (Mode 01 Read Data Requests) theo giao thức chuẩn hóa quốc tế với tần số truy vấn thấp ($5 - 10\text{ Hz}$). Bộ thu phát MCP2551 có cơ chế bảo vệ cách ly đường truyền và không can thiệp vào các mã ID điều khiển chấp hành an toàn của xe.
4. Hệ thống cần bảo trì định kỳ những gì?
Cần hiệu chuẩn tĩnh (Zero-calibration) cảm biến IMU sau mỗi 6 tháng sử dụng để loại bỏ hiện tượng trôi điểm không (Gyro/Accelerometer Drift) và cập nhật bảng Firmware vi điều khiển thông qua cổng nạp OTA hoặc cáp USB.
5. Chi phí dự toán và thời gian hoàn vốn (ROI) khi trang bị cho đội xe doanh nghiệp?
Chi phí phần cứng trọn gói khoảng 250 – 300 USD/thiết bị. Với một đội xe tải hoặc taxi 20 xe, việc sớm phát hiện đường xấu giúp giảm tỷ lệ hỏng lốp và hệ thống giảm xóc, tiết kiệm ước tính 150 USD/xe/năm chi phí sửa chữa, thời gian thu hồi vốn đầu tư chỉ trong vòng 1,5 đến 2 năm.
Kết luận
Đồ án tốt nghiệp "Hệ thống đánh giá chất lượng mặt đường và giám sát các thông số trên xe ô tô dựa trên nền tảng ROS và chuẩn truyền thông CAN" đã giải quyết xuất sắc bài toán tích hợp giữa kỹ thuật viễn thông, hệ thống nhúng ô tô và công nghệ thông tin thời gian thực. Hệ thống không chỉ chứng minh tính khả thi cao về mặt kỹ thuật thông qua việc hiện thực hóa thuật toán tính toán chỉ số IRI theo tiêu chuẩn quốc tế với chi phí tối ưu, mà còn mở ra tiềm năng ứng dụng to lớn trong việc xây dựng hệ sinh thái Giao thông Thông minh (Intelligent Transportation Systems - ITS) và Đô thị Thông minh (Smart City) tại Việt Nam.