Bối cảnh và vấn đề nghiên cứu

Thực trạng hạ tầng giao thông đường bộ tại Việt Nam ghi nhận sự xuất hiện phổ biến của các hư hỏng bề mặt như ổ gà, ổ voi và các điểm sụt lún nguy hiểm. Dù các cơ quan chức năng đã triển khai nhiều biện pháp khắc phục, công tác sửa chữa trên thực tế vẫn chưa đáp ứng kịp thời do hạn chế về thời gian phát hiện và tiếp nhận thông tin. Tình trạng này dẫn đến nhiều vụ tai nạn giao thông nghiêm trọng cho người điều khiển phương tiện, từ chấn thương xây xát đến tử vong. Theo số liệu dự báo được tác giả viện dẫn từ các nghiên cứu giao thông, xe gắn máy vẫn tiếp tục là phương tiện di chuyển chủ yếu của người dân Việt Nam cho đến năm 2030, khiến nhóm đối tượng này chịu rủi ro cao nhất khi lưu thông qua các đoạn đường xuống cấp.

Xuất phát từ thực tiễn trên, khóa luận xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể như sau:

  1. Xây dựng một ứng dụng di động trên hệ điều hành Android có khả năng tự động phát hiện và ghi nhận các đoạn đường xấu khi người dùng điều khiển xe gắn máy lưu thông qua.
  2. Trực quan hóa dữ liệu thu thập được thành bản đồ các đoạn đường xấu nhằm hỗ trợ người tham gia giao thông chủ động phòng tránh và cung cấp dữ liệu phản ánh hiện trường cho các cơ quan quản lý đường bộ.
  3. Nghiên cứu và cài đặt thuật toán phát hiện dao động rung lắc dựa trên dữ liệu thu nhận từ cảm biến phần cứng của điện thoại thông minh.
  4. Phát triển các tính năng hỗ trợ di chuyển đường dài theo nhóm, bao gồm tạo hành trình du lịch, chia sẻ định vị, tốc độ thời gian thực và phát cảnh báo sự cố khẩn cấp.

Đối tượng và phạm vi nghiên cứu của đề tài được giới hạn:

  • Đối tượng nghiên cứu: Người tham gia giao thông bằng xe gắn máy sở hữu thiết bị di động chạy hệ điều hành Android; cán bộ thuộc các cơ quan chức năng chịu trách nhiệm quản lý, duy tu và khắc phục sự cố mặt đường.
  • Phạm vi nghiên cứu: Hệ thống phần mềm được triển khai và thử nghiệm trên nền tảng hệ điều hành Android, sử dụng các cảm biến phần cứng tích hợp sẵn và kết nối dữ liệu mạng di động.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp giữa lý thuyết đo lường chất lượng mặt đường, đại số vector không gian và các giải pháp công nghệ phần mềm di động:

  • Chỉ số độ nhám quốc tế (International Roughness Index - IRI): Ra đời từ năm 1986, IRI là thước đo độ thô ráp mặt đường chuẩn hóa toán học dựa trên mô hình mô phỏng một phần tư ô tô (quarter-car model), biểu diễn bằng đơn vị độ dốc ($in/mi$ hoặc $m/km$). Chỉ số này được quy định bắt buộc trong quản lý đường cao tốc tại Hoa Kỳ và chuẩn hóa theo các tiêu chuẩn kỹ thuật ASTM E1926-08 và ASTM E1364-95. Trong đề tài, tác giả kế thừa khái niệm IRI để thiết lập chỉ số độ nảy quy đổi tương thích với cảm biến điện thoại.
  • Cơ sở cảm biến phần cứng: Ứng dụng khai thác hai loại cảm biến tích hợp sẵn trên thiết bị Android:
    • Cảm biến gia tốc kế (Accelerometer Sensor): Đo lực gia tốc tác động lên thiết bị trên cả ba trục vật lý ($x, y, z$) tính bằng đơn vị $m/s^2$, bao gồm cả thành phần trọng lực.
    • Cảm biến gia tốc trọng trường (Gravity Sensor): Đo thành phần lực hấp dẫn tác động lên thiết bị trên ba trục vật lý ($x, y, z$) tính bằng $m/s^2$.
  • Lý thuyết hình học vector: Thuật toán tính độ nảy sử dụng nguyên lý phép chiếu vector trong không gian ba chiều (vector projection) để đo lường mức độ biến thiên giữa vector gia tốc tức thời và vector trọng trường tham chiếu.

Về mặt công nghệ và phương pháp thực nghiệm phần mềm, tác giả áp dụng:

  • Google Maps API và JSON Style Declarations: Sử dụng giao diện bản đồ "Standard" kết hợp tùy biến ẩn các nhãn công trình, trường học, công viên nhằm tối ưu hóa hiển thị bề mặt đường giao thông.
  • Thư viện chuyên dụng phía Client: Thư viện Glide xử lý tải và điều chỉnh kích thước ảnh đại diện người dùng; thư viện Paper lưu trữ đối tượng cài đặt ngoại tuyến (offline storage); thư viện Retrofit của Square đóng vai trò REST Client giao tiếp máy chủ.
Tiêu chí / Công nghệ AsyncTask Volley Retrofit
Bảng điều khiển (7 yêu cầu) 941 ms 560 ms 312 ms
1 thảo luận 4.539 ms 2.202 ms 889 ms
25 thảo luận 13.957 ms 4.275 ms 1.059 ms

Bảng: So sánh thời gian phản hồi giữa Retrofit với các thư viện mạng theo công bố tác giả trích dẫn

  • Nền tảng điện toán đám mây Firebase:
    • Firebase Authentication: Quản lý phiên xác thực người dùng qua giao thức OAuth 2.0 và OpenID Connect với tài khoản Google.
    • Firebase Cloud Storage: Cơ sở dữ liệu NoSQL lưu trữ hai tập hợp dữ liệu độc lập: collection raw (dữ liệu thô từ từng người dùng) và collection geopoints (dữ liệu cộng đồng đã xử lý).
    • Firebase Realtime Database: Đồng bộ dữ liệu định vị, tốc độ và cấu hình hệ thống tức thời dưới dạng cây JSON.
    • Firebase Cloud Functions: Khung xử lý không máy chủ (serverless) chạy mã JavaScript cấu hình bộ nhớ RAM 4GB, đóng vai trò trigger lắng nghe thay đổi để tự động hợp nhất các đoạn đường trùng lặp.
  • Phương pháp tối ưu hiệu năng: Ứng dụng bộ công cụ Profiler của Android Studio để giám sát hệ thống trong điều kiện vận hành thực tế, bao gồm: CPU Profiler (System Trace, Method/Function Trace, luồng thực thi), Memory Profiler (Java heap dump, phát hiện rò rỉ bộ nhớ), Network Profiler (Connection View, Thread View) và Energy Profiler (đo lường mức tiêu hao năng lượng từ CPU, mạng, GPS và wake locks).

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình phân tán Client - Server, tối ưu hóa quá trình xử lý nền nhằm giảm thiểu tài nguyên tiêu thụ trên thiết bị di động.

Mô hình xử lý dữ liệu tại thiết bị di động

Thiết bị di động sử dụng lớp SensorManager và giao diện SensorEventListener để lắng nghe dữ liệu bất đồng bộ từ gia tốc kế và cảm biến trọng trường. Quy trình xử lý tại máy khách diễn ra theo các bước:

  1. Dữ liệu thô từ hai cảm biến được ghi nhận độc lập vào hai tập tin riêng biệt trong bộ nhớ trong của ứng dụng (Local Storage) sau khi đi qua các bộ lọc lọc bỏ nhiễu thừa.
  2. Định kỳ mỗi 60 phút, một luồng chạy ngầm (Background Thread) được kích hoạt để đọc và xử lý dữ liệu thô tích lũy trong khoảng thời gian vừa qua.
  3. Thuật toán phân tích độ nảy chuyển đổi dữ liệu gia tốc thành các bản ghi tọa độ mặt đường.
  4. Nếu thiết bị có kết nối mạng Internet, dữ liệu xử lý được tải trực tiếp lên Firebase Cloud Storage. Nếu không có kết nối, dữ liệu được tạm lưu tại bộ nhớ cục bộ để chờ đồng bộ sau. Toàn bộ tập tin dữ liệu thô ban đầu lập tức bị xóa bỏ để giải phóng không gian lưu trữ.

Thuật toán tính toán độ nảy mặt đường

Dựa trên thuật toán của David Jackson trong dự án RoadQuality kết hợp bài toán chiếu vector không gian, ứng dụng tính toán đại lượng vô hướng $C$ đại diện cho giá trị IRI thích ứng thông qua phép nhân vô hướng giữa vector gia tốc $\vec{x}$ và vector trọng trường đơn vị $\vec{z}$:

// Hàm thực hiện việc tính toán giá trị phép chiếu vector gia tốc lên vector
// trọng trường. Trong trường hợp này là giá trị IRI.
public float project(Vector3D onToVector) {
    return this.dot(onToVector);
}

// Hàm thực hiện việc nhân 2 vector 3 chiều.
public float dot(Vector3D v) {
    return ((this.x * v.x) + (this.y * v.y) + (this.z * v.z));
}

Kết quả tính toán được phân loại thành ba trạng thái mặt đường và biểu diễn trực quan trên Google Maps:

Khoảng giá trị IRI Trạng thái đoạn đường Quy ước màu sắc hiển thị
$IRI \ge 0.4$ Đoạn đường xấu (nhiều ổ gà, ổ voi) Màu đỏ
$0.25 \le IRI < 0.4$ Đoạn đường có độ gồ ghề nhẹ Màu cam
$IRI < 0.25$ Đoạn đường tốt hoặc chưa có dữ liệu ghi nhận Không hiển thị màu

Kiến trúc xử lý phía máy chủ (Server Pipeline)

Phía máy chủ tổ chức lưu trữ dữ liệu thành hai collection riêng biệt trên Cloud Storage:

  • Collection raw: Tiếp nhận các đoạn đường tải lên từ thiết bị di động, gắn kèm định danh email người dùng (hoặc để trống nếu người dùng không đăng nhập).
  • Collection geopoints: Chứa tập dữ liệu chuẩn của cộng đồng hiển thị trực tiếp cho toàn bộ người dùng.

Khi có dữ liệu mới ghi vào collection raw, Firebase Cloud Functions kích hoạt một trigger xử lý nền viết bằng JavaScript với cấu hình tài nguyên 4GB RAM. Hàm này phân tích các đoạn tọa độ trùng nhau hoặc các đoạn đường có cùng quỹ đạo nhưng khác điểm đầu/cuối, tính toán gộp điểm và cập nhật bản ghi thống nhất vào collection geopoints.

Các tính năng hoàn chỉnh của ứng dụng

  1. Đăng nhập và phân quyền: Xác thực người dùng qua tài khoản Google, tự động phân quyền truy cập và kiểm soát quyền hệ thống (GPS, truy cập bộ nhớ, trạng thái mạng).
  2. Quản lý hành trình di chuyển nhóm: Tạo chuyến đi và sinh mã định danh hành trình bằng thuật toán mã hóa MDS; cho phép thành viên tham gia nhóm thông qua mã chia sẻ.
  3. Ghi nhận và hiển thị đường xấu tự động: Cơ chế chạy ngầm nhận diện rung chấn và cập nhật trực quan các đoạn đường xấu lên bản đồ.
  4. Chia sẻ vị trí và vận tốc thời gian thực: Cập nhật liên tục tọa độ và tốc độ của các thành viên trong đoàn thông qua Firebase Realtime Database.
  5. Cảnh báo sự cố đường dài: Cung cấp giao diện kích hoạt trạng thái gặp sự cố khẩn cấp, phát thông báo tức thì đến toàn bộ thành viên trong nhóm kèm vị trí hiện tại và hỗ trợ tính năng hủy thông báo.

Nội dung chính theo từng chương

Chương 1: Mục tiêu của đề tài

Chương mở đầu phân tích thực trạng giao thông đường bộ tại Việt Nam, nêu bật áp lực từ tình trạng ổ gà, ổ voi xuất hiện dày đặc gây nguy hiểm cho người đi xe gắn máy. Tác giả xác định nhiệm vụ xây dựng một giải pháp di động đóng góp vào việc tự động hóa quá trình nhận diện đường xấu và hỗ trợ cảnh báo cho cộng đồng. Nội dung chương đồng thời làm rõ đối tượng thụ hưởng và giới hạn kỹ thuật của đồ án trên nền tảng Android.

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

Nội dung chương tập trung giới thiệu các nền tảng công nghệ, công cụ phần mềm và lý thuyết cảm biến. Tác giả trình bày lịch sử và kiến trúc mã nguồn mở của hệ điều hành Android; cách thức nhúng và tùy biến Google Maps API thông qua tệp khai báo kiểu JSON; nguồn gốc chuẩn hóa và mô hình tính toán chỉ số độ nhám quốc tế IRI; nguyên lý hoạt động của cảm biến gia tốc kế và cảm biến trọng trường trên ba trục $x, y, z$. Đồng thời, chương cung cấp thông tin chi tiết về các thư viện Glide, Retrofit, Paper, các thành phần của hệ sinh thái Firebase (Authentication, Cloud Storage, Realtime Database, Cloud Functions) và phương pháp giám sát hiệu năng bằng bốn công cụ Profiler của Android Studio.

Chương 3: Mô hình

Chương 3 là phần trọng tâm về kỹ thuật, trình bày mô hình kiến trúc tổng thể giữa thiết bị di động và Firebase Server. Tác giả mô tả chi tiết mô hình thu thập dữ liệu ngầm và chu kỳ xử lý nền 60 phút tại máy khách; phân tích cơ sở toán học của phép chiếu vector 3 chiều để xây dựng hàm tính toán độ nảy thích ứng từ dữ liệu cảm biến; thiết lập ngưỡng phân loại IRI theo màu sắc (đỏ, cam); ứng dụng thuật toán mã hóa MDS tạo mã chuyến đi; thiết kế sơ đồ luồng (flowchart) và giao diện cho 5 tính năng cốt lõi. Cuối cùng, chương làm rõ mô hình kích hoạt không máy chủ (Cloud Functions trigger) với 4GB RAM để giải quyết bài toán đồng nhất các đoạn đường trùng lặp tại server.

Chương 4: Thực nghiệm và đánh giá

Tác giả tiến hành chạy thực nghiệm thực tế tại 3 vị trí mặt đường cụ thể được đối chiếu trực tiếp với hình ảnh và dữ liệu tọa độ trên Google Maps nhằm kiểm tra tính chính xác của thuật toán phân loại đường xấu. Chương 4 cũng ghi nhận các thử nghiệm về mức tiêu thụ pin và độ trễ khi vận hành các tính năng chia sẻ vị trí nhóm. Từ kết quả thu được, tác giả chỉ ra các điểm nghẽn kỹ thuật về tiêu hao năng lượng, sự phụ thuộc vào dịch vụ bên thứ ba và vấn đề sai số tọa độ GPS giữa các thiết bị di động khác nhau.

Chương 5: Tổng kết và hướng phát triển

Chương cuối cùng tổng kết các sản phẩm thực tế đã hoàn thành của đồ án, bao gồm ứng dụng di động hoàn chỉnh và thuật toán đo độ nảy vận hành ổn định trên thiết bị thử nghiệm. Tác giả thẳng thắn thừa nhận các tồn tại kỹ thuật chưa thể giải quyết triệt để và vạch ra các định hướng hoàn thiện trong tương lai về cấu trúc dự án và thuật toán xử lý dữ liệu.

Kết quả và đóng góp

Khóa luận đạt được các kết quả kỹ thuật cụ thể sau:

  • Xây dựng thành công ứng dụng di động Android hoàn chỉnh tích hợp khả năng đo lường và hiển thị tình trạng mặt đường dựa trên cảm biến phần cứng có sẵn, không đòi hỏi thiết bị chuyên dụng đắt tiền.
  • Cài đặt thành công thuật toán hình học vector thích ứng, xác lập bộ ngưỡng giá trị IRI ($IRI \ge 0.4$: đường xấu - đỏ; $0.25 \le IRI < 0.4$: gồ ghề - cam; $< 0.25$: đường bình thường) để tự động nhận diện ổ gà, đoạn mấp mô.
  • Thiết lập quy trình tiền xử lý dữ liệu cảm biến theo chu kỳ 60 phút trên luồng nền của thiết bị nhằm giảm tải lưu trữ bộ nhớ máy khách.
  • Xây dựng hệ thống backend serverless trên nền tảng Firebase, sử dụng Cloud Functions (4GB RAM) tự động phát hiện và đồng nhất các tập dữ liệu tọa độ trùng lặp từ bộ sưu tập raw sang bộ sưu tập geopoints.
  • Triển khai thành công bộ tính năng quản trị hành trình đường dài: mã hóa chuyến đi MDS, đồng bộ vị trí, vận tốc thời gian thực và phát thông báo sự cố khẩn cấp cho các thành viên.
  • Thực hiện kiểm nghiệm thực địa tại 3 vị trí đường giao thông thực tế, chứng minh tính khả thi của mô hình ghi nhận dữ liệu mặt đường.

Đóng góp chính của đề tài là việc ứng dụng thành công mô hình thu thập dữ liệu đám đông (crowdsourcing) vào công tác giám sát chất lượng đường bộ tại Việt Nam. Bằng việc tận dụng thiết bị di động cá nhân của người điều khiển xe gắn máy, giải pháp mở ra tiềm năng tạo lập cơ sở dữ liệu hạ tầng giao thông liên tục với chi phí vận hành thấp.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận ghi nhận các hạn chế kỹ thuật thực tế sau:

  • Tiêu hao năng lượng: Ứng dụng tiêu tốn nhiều pin trong quá trình sử dụng do phải duy trì đồng thời cảm biến gia tốc, cảm biến trọng trường, định vị GPS và tiến trình chạy ngầm liên tục.
  • Cấu trúc mã nguồn: Cấu trúc dự án (project architecture) phía ứng dụng Android được tác giả đánh giá là chưa thực sự hợp lý và tối ưu.
  • Phụ thuộc bên thứ ba: Hệ thống phụ thuộc lớn vào các dịch vụ đám mây của Google (Google Maps API, Firebase), tiềm ẩn rủi ro chi phí và giới hạn dịch vụ khi mở rộng quy mô.
  • Tính tương thích thiết bị: Ứng dụng chưa hoạt động ổn định trên toàn bộ các dòng máy và các phiên bản hệ điều hành Android khác nhau do sự phân mảnh phần cứng cảm biến giữa các nhà sản xuất.
  • Sai số tọa độ định vị: Tọa độ GPS từ thiết bị di động có tính chất tương đối; một thiết bị đứng yên tại chỗ vẫn có thể trả về nhiều tọa độ khác nhau, gây khó khăn cho việc xử lý đồng nhất dữ liệu quy mô lớn tại máy chủ.

Các hướng phát triển tiếp theo được đề xuất:

  • Tối ưu hóa thuật toán và cấu trúc mã nguồn nhằm giảm thiểu mức tiêu hao năng lượng pin của thiết bị di động.
  • Nâng cấp thuật toán lọc nhiễu tọa độ tại server hoặc tích hợp thêm API định vị nâng cao để cải thiện độ chính xác vị trí.
  • Kiểm thử và mở rộng khả năng tương thích của ứng dụng trên nhiều cấu hình phần cứng và phiên bản Android khác nhau.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Mạng máy tính, An toàn thông tin, Kỹ thuật phần mềm: Cung cấp tài liệu thực tế về phương pháp tích hợp cảm biến phần cứng (SensorManager) và lập trình luồng nền (Background Thread) trên Android.
  • Các nhóm nghiên cứu về Hệ thống giao thông thông minh (ITS) và Crowdsourcing: Cung cấp giải pháp mẫu về thu thập và đồng bộ hóa dữ liệu cộng đồng thời gian thực sử dụng kiến trúc không máy chủ Firebase Cloud Functions.
  • Nội dung tham khảo nổi bật: Thuật toán hình học vector tính độ nảy bề mặt đường tại Chương 3 và phương pháp ứng dụng bộ công cụ Android Profiler để đo lường, phân tích hiệu năng hệ thống tại Chương 2.

Câu hỏi thường gặp

1. Ứng dụng phân loại tình trạng mặt đường trên bản đồ dựa trên các ngưỡng giá trị nào?

Ứng dụng quy đổi độ lệch giữa vector gia tốc và vector trọng trường thành chỉ số tương đương IRI và hiển thị trực quan trên Google Maps theo ba mức:

  • $IRI \ge 0.4$: Phân loại là đường xấu, hiển thị đường kẻ màu đỏ.
  • $0.25 \le IRI < 0.4$: Phân loại là đường hơi gồ ghề, hiển thị đường kẻ màu cam.
  • $IRI < 0.25$: Phân loại là đường có chất lượng tốt hoặc chưa từng có dữ liệu ghi nhận, không hiển thị màu sắc trên bản đồ.

2. Dữ liệu cảm biến được thu thập và tiền xử lý tại điện thoại di động như thế nào?

Dữ liệu từ cảm biến gia tốc kế và cảm biến trọng trường được ứng dụng ghi nhận bất đồng bộ liên tục vào hai tập tin riêng trong bộ nhớ cục bộ. Định kỳ sau mỗi 60 phút, một luồng nền (Background Thread) sẽ chạy thuật toán tính độ nảy để trích xuất dữ liệu đoạn đường xấu. Sau khi xử lý xong, tập tin thô lập tức bị xóa; dữ liệu kết quả sẽ được tải lên máy chủ nếu có mạng, hoặc lưu tạm vào bộ nhớ máy để tải lên khi thiết bị kết nối lại Internet.

3. Cơ chế đồng nhất dữ liệu giữa người dùng cá nhân và cộng đồng trên Firebase được triển khai ra sao?

Cơ sở dữ liệu Firebase Cloud Storage chia thành hai collection: raw (chứa dữ liệu gửi lên từ từng người dùng kèm email định danh) và geopoints (chứa dữ liệu hiển thị chung cho cộng đồng). Khi có dữ liệu mới tại raw, Firebase Cloud Functions (được cấp phát cấu hình 4GB RAM) lập tức kích hoạt trigger chạy mã JavaScript để tìm kiếm các đoạn đường trùng nhau hoặc các đoạn có chung tuyến đường nhưng khác điểm đầu/cuối, sau đó gộp và cập nhật bản ghi duy nhất vào geopoints.

4. Tại sao tác giả chọn phương pháp chiếu vector thay vì các thuật toán đo chất lượng đường chuyên dụng?

Các thuật toán đo lường chất lượng mặt đường chuyên dụng đòi hỏi thiết bị phần cứng đo đạc chuyên nghiệp, phức tạp và tốn kém, không phù hợp với mục tiêu triển khai rộng rãi cho cộng đồng. Do đó, tác giả sử dụng thuật toán tính độ nảy dựa trên phép chiếu vector gia tốc tức thời lên vector gia tốc trọng trường trong không gian ba chiều nhằm tận dụng tối đa các cảm biến có sẵn trên điện thoại thông minh.

5. Những nhược điểm kỹ thuật chính nào được tác giả chỉ ra sau quá trình thử nghiệm thực tế?

Tác giả xác định năm hạn chế lớn: ứng dụng tiêu thụ nhiều pin của thiết bị khi hoạt động; cấu trúc dự án phía client chưa được thiết kế hợp lý; hệ thống phụ thuộc nhiều vào các dịch vụ bên thứ ba (Google Maps, Firebase); các tính năng chưa chạy ổn định trên các dòng máy và phiên bản Android khác nhau do phân mảnh cảm biến; và sai số tọa độ GPS từ thiết bị gây tải lớn cho thuật toán xử lý dữ liệu tại máy chủ.

Kết luận

Khóa luận tốt nghiệp của tác giả Lê Đình Khang đã nghiên cứu và phát triển thành công ứng dụng Android đo lường chất lượng đường giao thông bằng cách khai thác cảm biến gia tốc và trọng trường trên điện thoại thông minh. Giải pháp ứng dụng thuật toán chiếu vector không gian để phát hiện ổ gà, kết hợp cùng kiến trúc máy chủ không máy chủ Firebase Cloud Functions để tự động đồng nhất dữ liệu bản đồ cộng đồng. Mặc dù còn tồn tại một số hạn chế về mức tiêu hao pin và độ sai số cảm biến giữa các dòng máy, công trình đã đề xuất một phương án tiếp cận thực tế, giàu tiềm năng ứng dụng trong lĩnh vực giám sát giao thông thông minh dựa trên dữ liệu đám đông.