ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Nguyễn Thị Diễm An
CẢNH BÁO TỐC ĐỘ XE
LUẬN VĂN THẠC SĨ
NGÀNH KHOA HỌC MÁY TÍNH
Mã Số: 60.48.01.01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1.
PGS.TS TRẦN VĨNH PHƯỚC
TP HỒ CHÍ MINH – 2015
LỜI CÁM ƠN
Đầu tiên, em xin chân thành cám ơn sâu sắc đến thầy PGS.TS. Trần Vĩnh
Phước, người đã hướng dẫn và giúp đỡ em hoàn thành luận văn này.
Em xin trân trọng cám ơn các thầy- cô Trường Đại học Công nghệ Thông tin đã
truyền đạt những kinh nghiệm và kiến thức cho em trong suốt quá trình học.
Cuối cùng xin cám ơn mọi người trong gia đình đã tạo điều kiện tốt nhất để luận
văn này được hoàn thành.
TP. HCM, ngày 29 tháng 12 năm 2015
Nguyễn Thị Diễm An
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu và kết
quả nghiên cứu trong luận văn này là trung thực và không trùng lắp với các đề tài khác.
TP. HCM, ngày 29 tháng 12 năm 2015
Nguyễn Thị Diễm An
Mục lục
Mục lục ............................................................................................................................ 1
Danh mục các bảng ......................................................................................................... 4
Danh mục các hình vẽ ..................................................................................................... 5
MỞ ĐẦU ......................................................................................................................... 6
Chƣơng 1. TỔNG QUAN ............................................................................................... 7
1.1
Giới thiệu ........................................................................................................... 7
1.2
Một số phƣơng pháp cảnh báo tốc độ và giám sát phƣơng tiện ........................ 7
1.3
Xác định mục tiêu, đối tƣợng, phạm vi đề tài ................................................... 8
1.4
Cấu trúc luận văn ............................................................................................... 9
Chƣơng 2. KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC ...................................................... 11
2.1
Hệ thống định vị toàn cầu GPS [1] .................................................................. 11
2.1.1
Giới thiệu .................................................................................................. 11
2.1.2
Phân loại ................................................................................................... 11
2.1.3
Hoạt động .................................................................................................. 11
2.1.4
Độ chính xác ............................................................................................. 12
2.1.5
Các thành phần.......................................................................................... 12
2.1.6
Tín hiệu GPS ............................................................................................. 14
2.1.7
Ứng dụng GPS: ......................................................................................... 15
2.2
Công thức Haversine ....................................................................................... 15
2.2.1
Khái niệm .................................................................................................. 15
2.2.2
Công thức Haversine ................................................................................ 16
2.2.3
Công thức Haversine trong tính khoảng cách ngắn nhất .......................... 17
2.3
Kỹ thuật và thƣ viện ........................................................................................ 18
2.3.1
Apache Mina ............................................................................................. 18
2.3.2
Jetty Server ............................................................................................... 19
2.3.3
ResFb và Facebook Graph Api ................................................................. 19
2.3.4
Angularjs ................................................................................................... 22
2.4
Cơ sở dữ liệu lƣu trữ ........................................................................................ 23
2.4.1
Elasticsearch ............................................................................................. 23
1
2.4.2
Redis ......................................................................................................... 25
Chƣơng 3. XÂY DỰNG CHƢƠNG TRÌNH ................................................................ 26
3.1
Bài toán ............................................................................................................ 26
3.2
Giải bài toán..................................................................................................... 28
3.2.1
Cấu trúc hệ thống ...................................................................................... 28
3.2.2
Mô hình Use-Case của hệ thống ............................................................... 30
3.2.3
Biểu đồ thời gian của hệ thống ................................................................. 31
3.2.4
Qui trình xử lý dữ liệu. ............................................................................. 35
3.2.5
Hệ thống cảnh báo tốc độ ......................................................................... 36
3.3
Kết luận............................................................................................................ 43
Chƣơng 4. THỰC NGHIỆM ......................................................................................... 45
4.1
Cài đặt thiết bị gắn trên phƣơng tiện ............................................................... 45
4.1.1
Chức năng đăng nhập thông qua tài khoản Facebook .............................. 46
4.1.2
Chức năng chọn phƣơng tiện và cập nhật vị trí lên máy chủ ................... 52
4.1.3
Kỹ thuật worker và thƣ viện Apache Mina............................................... 53
4.2
Cài đặt máy chủ nhận dữ liệu .......................................................................... 56
4.2.1
Sơ đồ lớp của máy chủ nhận dữ liệu ......................................................... 57
4.2.2
Cài đặt các lớp trong máy chủ nhận dữ liệu ............................................. 57
4.3
Cài đặt máy chủ xử lý ...................................................................................... 61
4.3.1
Sơ đồ của máy chủ xử lý........................................................................... 62
4.3.2
Cài đặt các lớp trong máy chủ xử lý ......................................................... 63
4.4
Cài đặt web client ............................................................................................ 71
4.4.1
Đăng nhập ................................................................................................. 71
4.4.2
Xem lịch sử ............................................................................................... 73
4.5
Thực nghiệm .................................................................................................... 74
Chƣơng 5. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .................................................. 78
1.
Kết luận............................................................................................................ 78
2.
Hƣớng phát triển .............................................................................................. 78
TÀI LIỆU THAM KHẢO ............................................................................................. 79
PHỤ LỤC ...................................................................................................................... 81
Phụ Lục 1 Giao diện chƣơng trình ........................................................................... 81
1.
Giao diện của thiết bị định vị GPS ........................................................... 81
2
2.
Giao diện ngƣời dùng xem lịch sử ............................................................ 86
3
Danh mục các bảng
Bảng 4. 1. Bảng thực nghiệm chƣơng trình và kết quả .................................................. 74
4
Danh mục các hình vẽ
Hình 2. 1. Minh họa Facebook Graph ............................................................................ 20
Hình 2. 2. Sự tƣơng tác giữa ứng dụng Java với RestFb và RestFb với Facebook Api 20
Hình 2. 3. Trang chủ của RestFb.................................................................................... 22
Hình 3. 1. Bài toán ......................................................................................................... 26
Hình 3. 2. Cấu trúc hệ thống .......................................................................................... 28
Hình 3. 3. Mô hình use-case........................................................................................... 30
Hình 3. 4. Biểu đồ thời gian về cập nhật vị trí của phƣơng tiện .................................... 32
Hình 3. 5. Qui trình xử lý dữ liệu ................................................................................... 35
Hình 3. 6. Trƣờng hợp đi thẳng...................................................................................... 40
Hình 3. 7. Trƣờng hợp rẽ ............................................................................................... 42
Hình 4. 1. Đăng ký ứng dụng với Facebook .................................................................. 46
Hình 4. 2. Chọn nền tảng phát triển ứng dụng ............................................................... 46
Hình 4. 3. Tạo ứng dụng ................................................................................................ 47
Hình 4. 4. Chọn mục đích cho ứng dụng ....................................................................... 47
Hình 4. 5. Thêm gói và tên lớp cho ứng dụng ............................................................... 48
Hình 4. 6. Thêm mã hashes cho ứng dụng ..................................................................... 48
Hình 4. 7. Màn hình đăng nhập Facebook ..................................................................... 49
Hình 4. 8. Thêm thông tin về tài khoản Facebook ......................................................... 50
Hình 4. 9. Ủy quyền cho Facebook ................................................................................ 51
Hình 4. 10. Sơ đồ máy chủ nhận dữ liệu ........................................................................ 57
Hình 4. 11. Sơ đồ máy chủ xử lý ................................................................................... 62
Hình 4. 12. Chọn nền tảng ứng dụng web...................................................................... 72
Phụ lục 1. 1. Giao diện thiết bị định vị ban đầu ............................................................. 81
Phụ lục 1. 2. Giao diện đăng nhập Facebook ................................................................. 82
Phụ lục 1. 3. Giao diện sau khi đăng nhập ..................................................................... 83
Phụ lục 1. 4. Giao diện khi cập nhật vị trí ...................................................................... 84
Phụ lục 1. 5. Giao diện khi bị cảnh báo ......................................................................... 85
Phụ lục 1. 6. Giao diện đăng nhập web .......................................................................... 86
Phụ lục 1. 7. Giao diện xem lịch sử ............................................................................... 87
5
MỞ ĐẦU
Hằng ngày, chúng ta chứng kiến không ít các vụ tai nạn giao thông trên đƣờng
đi cũng nhƣ qua báo đài, các vụ giao thông đều gây hậu quả nghiêm trọng. Có nhiều
nguyên nhân dẫn đến các tai nạn, một trong số đó là ý thức tham gia giao thông của
ngƣời dân, ngƣời tham gia giao thông phóng nhanh, vƣợt ẩu, vƣợt quá tốc độ ... Đề tài
“Cảnh báo tốc độ xe” nhằm giúp giải quyết vấn đề ý thức tham gia giao thông, nhắc
nhở ngƣời điều khiển khi phƣơng tiện chạy quá tốc độ cho phép.
Đề tài nghiên cứu và xây dựng một hệ thống cảnh báo tốc độ xe. Hệ thống này
gồm một thiết bị di động gắn trên phƣơng tiện có các chức năng định vị, phát tín hiệu
cảnh báo, và truyền thông với server; máy chủ nhận dữ liệu nhận yêu cầu từ các thiết bị
di động; máy chủ xử lý nhận yêu cầu từ máy chủ nhận dữ liệu để phân tích, tính toán,
đƣa ra tín hiệu cảnh báo. Hệ thống này còn có công cụ theo dõi phƣơng tiện, cho phép
ngƣời dùng truy cập vào và xem thông tin về vị trí theo thời gian thực, lịch sử hành
trình của phƣơng tiện.
Hệ thống cảnh báo tốc độ xe đƣợc đề xuất trong luận văn là một giải pháp áp
dụng cho ngƣời điểu khiển phƣơng tiện và chủ sở hữu phƣơng tiện. Ngƣời điều khiển
phƣơng tiện và chủ sở hữu phƣơng tiện vừa đƣợc nhận cảnh báo từ thiết bị vừa có thể
xem lại lịch sử hành trình của phƣơng tiện.
Hệ thống định vị toàn cầu GPS là hệ thống xác định vị trí dựa trên vị trí của các
vệ tinh nhân tạo. Tại một thời điểm, tọa độ của một điểm trên mặt đất sẽ đƣợc xác định
nếu xác định đƣợc khoảng cách từ điểm đó đến ít nhất ba vệ tinh. Hơn nữa, hệ thống
định vị đƣợc sử dụng mi n phí nên nhiều bài toán và ứng dụng đƣợc giải quyết khi áp
dụng hệ thống định vị GPS.
Hệ thống “Cảnh báo tốc độ xe” cũng góp phần vào việc phát triển bài toán và
ứng dụng bằng kỹ thuật định vị GPS. Hệ thống này dùng thiết bị định vị để ghi lại vị trí
hiện tại của xe tại những thời điểm cách đều để so sánh tốc độ giới hạn từ tập dữ liệu
các biển báo giao thông.
6
GIỚI THIỆU TỔNG QUAN
Chƣơng 1. TỔNG QUAN
1.1
Giới thiệu
Việc áp dụng hệ thống GPS vào quản lý điều hành phƣơng tiện hiện nay đang
sôi động, nhiều hệ thống, nhiều ứng dụng đƣợc phát triển trong lĩnh vực này. Một số hệ
thống quản lý điều hành phƣơng tiện trong và ngoài nƣớc nhƣ: Vietmap GPS,
NguyenVietGPS, Here map, Google map... Vietmap GPS là một hệ thống quản lý điều
hành xe ở trong nƣớc với các chức năng nhƣ giám sát, theo dõi thông số vận tốc, trạng
thái tắt mở máy, mô phỏng lộ trình của xe, cảnh báo tốc độ, di chuyển ra ngoài khu vực
tuyến đƣờng cho phép. Vietmap GPS cho quản lý xe qua phần mềm trên di động hoặc
phần mềm trên máy tính. NguyenVietGPS cũng là một hệ thống quản lý điều hành xe
trong nƣớc, là một giải pháp quản lý điều hành xe với chức năng quản lý, giám sát,
chống trộm và một số yêu cầu riêng tùy thuộc vào khách hàng. Google map là một hệ
thống bản đồ đƣợc dùng phổ biến trên thế giới với các chức năng nhƣ: xem tuyến
đƣờng, chỉ đƣờng, xem kết quả tìm kiếm, khám phá bản đồ, đo khoảng cách giữa các
điểm, báo cáo sự cố dữ liệu, xem thông tin giao thông, chuyển tuyến, đi xe đạp và địa
hình... Here map là một hệ thống bản đồ của Nokia với các tính năng nhƣ: sử dụng bản
đồ offline, chỉ đƣờng, lƣu địa điểm ƣa thích, liên hệ với các địa điểm d dàng, tìm kiếm
địa điểm lân cận, Nokia LiveSight, lên lịch trình...Những ứng dụng này rất hữu ích cho
ngƣời điều khiển phƣơng tiện cũng nhƣ ngƣời quản lý phƣơng tiện. Hệ thống cảnh báo
tốc độ xe cũng là một hệ thống ứng dụng GPS vào việc quản lý và điều hành phƣơng
tiện.
1.2
Một số phƣơng pháp cảnh báo tốc độ và giám sát phƣơng tiện
Môt số hệ thống trong và ngoài nƣớc ứng dụng trong điều hành và quản lý
phƣơng tiện nhƣ: Vietmap GPS, NguyenVietGPS, Here map, Google map... đã nêu
trong phần giới thiệu. Trong đó Vietmap GPS, NguyenVietGPS là hệ thống gần với đề
tài luận văn nhất ở chức năng giám sát và cảnh báo tốc độ xe.
NguyenVietGPS thì không có chức năng cảnh báo tốc độ mà chỉ có chức năng
giám sát phƣơng tiện dành cho taxi, xe khách.... NguyenVietGPS cho ngƣời dùng quản
7
GIỚI THIỆU TỔNG QUAN
lý trên một hoặc nhiều xe, điều này giúp các doanh nghiệp có thể quản lý các phƣơng
tiện của mình. NguyenVietGPS cho biết thông tin của phƣơng tiện, cho phép xem trực
tuyến và xem lịch sử của phƣơng tiện về tốc độ vị trí, thời gian.
Vietmap GPS là hệ thống có cả chức năng giảm sát phƣơng tiện và cảnh báo tốc
độ. Chức năng giám sát phƣơng tiện thì cũng tuơng tự nhƣ NguyenVietGPS, cho phép
theo dõi thông số vận tốc, vị trí, thời gian. Chức năng cảnh báo tốc độ của Vietmap
GPS là cảnh báo tốc độ ngay trên đoạn đƣờng đang đi chứ không phải cảnh báo đoạn
đƣờng phía trƣớc hoặc tuyến đƣờng mà phƣơng tiện định rẽ khi gặp vòng xoay. Nếu
nhƣ đoạn đƣờng phía trƣớc hoặc đoạn đƣờng định rẽ có tốc độ giới hạn nhỏ hơn tốc độ
của phƣơng tiện thì khi tới đoạn đƣờng đó mà Vietmap GPS chƣa kịp cảnh báo tốc độ
thì xe đã vi phạm luật giáo thông và có khả năng bị phạt.
Hệ thống cảnh báo tốc độ xe của luận văn là giải pháp dành cho cá nhân và
doanh nghiệp mà muốn quản lý phƣơng tiện của mình với chức năng giám sát, theo dõi
phƣơng tiện nhƣ: NguyenVietGPS và Vietmap GPS, nhƣng phƣơng tiện này không do
các doanh nghiệp điều khiển mà do ngƣời khác điều khiển. Ngoài ra, hệ thống còn
cảnh báo tốc độ cho những ngƣời điều khiển phƣơng tiện. Cảnh báo tốc độ xe của hệ
thống có khác so với Vietmap GPS là cảnh báo trƣớc khi phƣơng tiện vào đoạn đƣờng
có tốc độ giới hạn nhỏ hơn tốc độ hiện tại của phƣơng tiện. Nhƣ vậy, hệ thống cảnh
báo tốc độ nhằm quản lý phƣơng tiện cho các doanh nghiệp và cảnh báo tốc độ cho
ngƣời điều khiển phƣơng tiện.
Xác định mục tiêu, đối tƣợng, phạm vi đề tài
1.3
Mục tiêu là xây dựng một hệ thống cảnh báo tốc độ xe với giải pháp dành cho
cá nhân và các doanh nghiệp quản lý, điều hành các phƣơng tiện. Hệ thống có chức
năng cảnh báo tốc độ cho ngƣời điều khiển phƣơng tiện, và cho chủ sở hữu là cá nhân
hoặc doanh nghiệp xem lại lịch sử để quản lý phƣơng tiện của mình. Với mục tiêu nhƣ
vậy thì những định hƣớng cơ bản của đề tài là:
-
Xây dựng hƣớng đi cho đề tài.
8
GIỚI THIỆU TỔNG QUAN
-
Thu thập tài liệu và ứng dụng một số thuật toán, phƣơng pháp để giải
quyết cho mục tiêu của đề tài.
-
Xây dựng hệ thống với một số công cụ, thƣ viện lập trình phù hợp.
-
Mô phỏng thiết bị gắn trên phƣơng tiện để kết nối với máy chủ gồm thiết
bị định vị và thiết bị phát tín hiệu cảnh báo.
-
Thiết kế máy chủ gồm máy chủ nhận dữ liệu thời gian thực từ thiết bị gắn
trên phƣơng tiện, và máy chủ xử lý để xử lý các yêu cầu từ thiết bị.
-
Xây dựng công cụ (web client) để cá nhân hoặc doanh nghiệp xem thông
tin về phƣơng tiện của mình.
Đối tƣợng nghiên cứu là dữ liệu không gian và thời gian của đối tƣợng. Đối
tƣợng trong luận văn là phƣơng tiện di chuyển. Dữ liệu không gian là vị trí của phƣơng
tiện trên con đƣờng bao gồm kinh độ và vĩ độ. Dữ liệu thời gian là thời điểm tƣơng ứng
có đƣợc vị trí đó.
Đề tài đƣợc nghiên cứu trong phạm vi thành phố Hồ Chí Minh. Cung cấp 2 chức
năng là cảnh báo tốc độ, quản lý và theo dõi phƣơng tiện nhờ vào thiết bị gắn trên
phƣơng tiện có kết nối GPS. Bài toán áp dụng cho phƣơng tiện trên những len cùng
chiều cùng tốc độ. Một đoạn đƣờng có nhiều len và tùy vào từng len trên đoạn đƣờng
đó mà sẽ quy định tốc độ khác nhau do mỗi len quy định cho các phƣơng tiện khác
nhau. Bài toán không xét đến tham số phƣơng tiện mà chỉ xét phƣơng tiện di chuyển
vào len nào thì sẽ tính tốc độ trên len đƣờng đó.
1.4
Cấu trúc luận văn
Luận văn đƣợc chia làm 5 chƣơng:
Chƣơng 1: Giới thiệu tồng quan về đề tài.
Chƣơng 2: Cơ sở khoa học của đề tài, các khái niệm, các kiến thức liên quan để
xây dựng đề tài.
Chƣơng 3: Xây dựng chƣơng trình.
9
GIỚI THIỆU TỔNG QUAN
Chƣơng 4: Cài đặt chƣơng trình, chạy chƣơng trình, thực nghiệm.
Chƣơng 5: kết luận và hƣớng phát triển của đề tài.
10
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
Chƣơng 2. KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
Cảnh báo tốc độ xe là chƣơng trình góp phần giải quyết vấn đề về ý thức tham
gia giao thông của ngƣời dân trên phạm vi cảnh báo về tốc độ của phƣơng tiện, tránh
phóng nhanh, vƣợt ẩu nhằm giảm tải tai nạn giao thông. Cảnh báo tốc độ xe đƣợc xây
dựng trên nhiều nền tảng, thƣ viện, phƣơng pháp cũng nhƣ các công thức toán học.
Ngoài ra, cảnh báo tốc độ xe còn ứng dụng hệ thống định vị toàn cầu GPS vào chƣơng
trình.
2.1
Hệ thống định vị toàn cầu GPS [1]
2.1.1 Giới thiệu
Hệ thống định vị toàn cầu (GPS: Global Positioning System) là hệ thống mà xác
định vị trí dựa trên các vệ tinh nhân tạo do Bộ Quốc Phòng Hoa Kỳ thiết kế, xây dựng
và vận hành. Vị trí của một điểm trên mặt đất sẽ đƣợc xác định bởi 3 vệ tinh. Tuy đƣợc
phát triển bởi Bộ Quốc Phòng nhƣng chính phủ Hoa Kỳ cũng cho mọi ngƣời trên thế
giới sử dụng một phần chức năng mà không quy định về quốc tịch.
2.1.2 Phân loại
Hệ thống định vị toàn cầu của Mỹ gồm 24 vệ tinh đƣợc Bộ Quốc Phòng đặt trên
quỷ đạo không gian. Các hệ thống dẫn đƣờng truyền hoạt động dựa trên các trạm phát
tín hiệu vô tuyến điện. Đƣợc biết đến nhiều nhất là các hệ thống sau: LORAN (LOng
RAnge Navigation), hoạt động ở giải tần 90-100 kHz, chủ yếu dùng cho hàng hải, hay
TACAN (TACtical Air Navigation) dùng cho quân đội Mỹ và biến thể với độ chính
xác thấp, VOR/DME – VHF (Omnidirectional Range/Distance Measuring Equipment)
dùng cho hàng không dân dụng.
2.1.3 Hoạt động
GPS hoạt động theo kiểu các vệ tinh bay vòng quanh Trái Đất hai lần trong một
ngày theo một quỹ đạo rất chính xác và phát tín hiệu có thông tin xuống Trái Đất. Các
máy thu GPS nhận thông tin này và bằng phép tính lƣợng giác tính đƣợc chính xác vị
trí của ngƣời dùng. Về bản chất máy thu GPS so sánh thời gian tín hiệu đƣợc phát đi từ
11
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
vệ tinh với thời gian nhận đƣợc chúng. Sai lệch về thời gian cho biết máy thu GPS ở
cách vệ tinh bao xa. Rồi với nhiều quãng cách đo đƣợc tới nhiều vệ tinh máy thu có thể
tính đƣợc vị trí của ngƣời dùng và hiển thị lên bản đồ điện tử của máy.
Máy thu phải nhận đƣợc tín hiệu của ít nhất ba vệ tinh để tính ra vị trí hai chiều
(kinh độ và vĩ độ) và để theo dõi đƣợc chuyển động. Khi nhận đƣợc tín hiệu của ít nhất
4 vệ tinh thì máy thu có thể tính đƣợc vị trí ba chiều (kinh độ, vĩ độ và độ cao). Một khi
vị trí ngƣời dùng đã tính đƣợc thì máy thu GPS có thể tính các thông tin khác, nhƣ tốc
độ, hƣớng chuyển động, bám sát di chuyển, khoảng hành trình, quãng cách tới điểm
đến, thời gian Mặt Trời mọc, lặn và nhiều thứ khác nữa.
2.1.4 Độ chính xác
Các máy thu 12 kênh song song (của Garmin) nhanh chóng khóa vào các quả vệ
tinh khi mới bật lên và chúng duy trì kết nối bền vững, thậm chí trong tán lá rậm rạp
hoặc thành phố với các toà nhà cao tầng. Trạng thái của khí quyển và các nguồn gây
sai số khác có thể ảnh hƣởng tới độ chính xác của máy thu GPS. Các máy thu GPS có
độ chính xác trung bình trong vòng 15 mét.
Các máy thu mới hơn với khả năng WAAS (Wide Area Augmentation System)
có thể tăng độ chính xác trung bình tới dƣới 3 mét. Không cần thêm thiết bị hay mất
phí để có đƣợc lợi điểm của WAAS. Ngƣời dùng cũng có thể có độ chính xác tốt hơn
với GPS vi sai (Differential GPS, DGPS) sửa lỗi các tín hiệu GPS để có độ chính xác
trong khoảng 3 đến 5 mét. Cục Phòng vệ Bờ biển Mỹ vận hành dịch vụ sửa lỗi này. Hệ
thống bao gồm một mạng các đài thu tín hiệu GPS và phát tín hiệu đã sửa lỗi bằng các
máy phát hiệu. Để thu đƣợc tín hiệu đã sửa lỗi, ngƣời dùng phải có máy thu tín hiệu vi
sai bao gồm cả ăn-ten để dùng với máy thu GPS của họ.
2.1.5 Các thành phần
GPS có 3 thành phần: không gian, kiểm soát, sử dụng.
-
Phần không gian gồm 27 vệ tinh (24 vệ tinh hoạt động và 3 vệ tinh dự
phòng) nằm trên các quỹ đạo xoay quanh trái đất. Chúng cách mặt đất 20200 km, bán
12
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
kính quỹ đạo 26600 km. Chúng chuyển động ổn định và quay hai vòng quỹ đạo trong
khoảng thời gian gần 24 giờ với vận tốc 7 nghìn dặm một giờ. Các vệ tinh trên quỹ đạo
đƣợc bố trí sao cho các máy thu GPS trên mặt đất có thể nhìn thấy tối thiểu 4 vệ tinh
vào bất kỳ thời điểm nào.Các vệ tinh đƣợc cung cấp bằng năng lƣợng Mặt Trời. Chúng
có các nguồn pin dự phòng để duy trì hoạt động khi chạy khuất vào vùng không có ánh
sáng Mặt Trời. Các tên lửa nhỏ gắn ở mỗi quả vệ tinh giữ chúng bay đúng quỹ đạo đã
định.
-
Phần kiểm soát: mục đích trong phần này là kiểm soát vệ tinh đi đúng
hƣớng theo quỹ đạo và thông tin thời gian chính xác. Có 5 trạm kiểm soát đặt rải rác
trên trái đất. Bốn trạm kiểm soát hoạt động một cách tự động, và một trạm kiểm soát là
trung tâm. Bốn trạm này nhận tín hiệu liên tục từ những vệ tinh và gửi các thông tin
này đến trạm kiểm soát trung tâm. Tại trạm kiểm soát trung tâm, nó sẽ sửa lại dữ liệu
cho đúng và kết hợp với hai an-ten khác để gửi lại thông tin cho các vệ tinh. Các đƣờng
bay của vệ tinh đƣợc ghi nhận bởi các trạm quan sát chuyên dụng của không quân Hoa
Kỳ đặt ở Hawaii, Kwajalein, Đảo Ascension, Diego Garcia, Colorado Springs,
Colorado và Cape Canaveral, cùng với các trạm quan sát NGA đƣợc vận hành ở Anh,
Argentina, Ecuador, Bahrain, Úc và Washington DC. Thông tin đƣờng bay của vệ tinh
đi đƣợc gởi đến Air Force Space Command's MCS ở Schriever Air Force Base 25 km
đông đông nam của Colorado Springs, do 2nd Space Operations Squadron (2 SOPS)
của U.S. Air Force vận hành. Sau đó 2 SOPS liên lạc thƣờng xuyên với mỗi vệ tinh
GPS thông qua việc cập nhật định vị sử dụng các ăng-ten mặt đất chuyên dụng hoặc
dùng chung (AFSCN)(các ăng-ten GPS mặt đất chuyên dụng đƣợc đặt ở Kwajalein,
đảo Ascension, Diego Garcia, và Cape Canaveral). Các thông tin cập nhật này đồng bộ
hóa với các đồng hồ nguyên tử đặt trên vệ tinh trong vòng một vài phần tỉ giây cho mỗi
vệ tinh, và hiệu chỉnh lịch thiên văn của mô hình quỹ đạo bên trong mỗi vệ tinh. Việc
cập nhật đƣợc tạo ra bở bộ lọc Kalman sử dụng các tín hiệu/thông tin từ các trạm quan
sát trên mặt đất, thông tin thời tiết không gian, và các dữ liệu khác.
-
Phần sử dụng là thiết bị nhận tín hiệu vệ tinh GPS và ngƣời sử dụng thiết
13
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
bị này. Dƣới đây là một số thông tin đáng chú ý về các vệ tinh GPS (còn gọi là
NAVSTAR, tên gọi chính thức của Bộ Quốc phòng Mỹ cho GPS):
Vệ tinh GPS đầu tiên đƣợc phóng năm 1978.
Hoàn chỉnh đầy đủ 24 vệ tinh vào năm 1994.
Mỗi vệ tinh đƣợc làm để hoạt động tối đa là 15 năm.
Vệ tinh GPS có trọng lƣợng khoảng 1500 kg và dài khoảng 17 feet
(5 m) với các tấm năng lƣợng Mặt Trời mở (có độ rộng 7 m²).
Công suất phát bằng hoặc dƣới 50 watts.
2.1.6 Tín hiệu GPS
Các vệ tinh GPS phát hai tín hiệu vô tuyến công suất thấp dải L1 và L2. (dải L
là phần sóng cực ngắn của phổ điện từ trải rộng từ 0,39 tới 1,55 GHz). GPS dân sự
dùng tần số L1 1575.42 MHz trong dải UHF. Tín hiệu truyền trực thị, có nghĩa là
chúng sẽ xuyên qua mây, thủy tinh và nhựa nhƣng không qua phần lớn các đối tƣợng
cứng nhƣ núi và nhà. L1 chứa hai mã "giả ngẫu nhiên"(pseudo random), đó là mã
Protected (P) và mã Coarse/Acquisition (C/A).
Mỗi một vệ tinh có một mã truyền dẫn nhất định, cho phép máy thu GPS nhận
dạng đƣợc tín hiệu. Mục đích của các mã tín hiệu này là để tính toán khoảng cách từ vệ
tinh đến máy thu GPS. Tín hiệu GPS chứa ba mẩu thông tin khác nhau – mã giả ngẫu
nhiên, dữ liệu thiên văn và dữ liệu lịch. Mã giả ngẫu nhiên đơn giản chỉ là mã định
danh để xác định đƣợc quả vệ tinh nào là phát thông tin nào. Có thể nhìn số hiệu của
các quả vệ tinh trên trang vệ tinh của máy thu Garmin để biết nó nhận đƣợc tín hiệu
của quả nào. Dữ liệu thiên văn cho máy thu GPS biết quả vệ tinh ở đâu trên quỹ đạo ở
mỗi thời điểm trong ngày. Mỗi quả vệ tinh phát dữ liệu thiên văn chỉ ra thông tin quỹ
đạo cho vệ tinh đó và mỗi vệ tinh khác trong hệ thống. Dữ liệu lịch đƣợc phát đều đặn
bởi mỗi quả vệ tinh, chứa thông tin quan trọng về trạng thái của vệ tinh (lành mạnh hay
không), ngày giờ hiện tại. Phần này của tín hiệu là cốt lõi để phát hiện ra vị trí.
14
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
2.1.7 Ứng dụng GPS:
2.1.7.1
Quản lý và điều hành xe
Giám sát quản lý vận tải, theo dõi vị trí, tốc độ, hƣớng di chuyển, Giám sát mại
vụ, giám sát vận tải hành khách, Chống trộm cho ứng dụng thuê xe tự lái, theo dõi lộ
trình của đoàn xe. Liên lạc, theo dõi định vị cho các ứng dụng giao hàng GPS có nhiều
ứng dụng mạnh mẽ trong quản lý xe ô tô, đặc biệt là các loại xe nhƣ: Xe taxi, xe tải, xe
công trình, xe buýt, xe khách, xe tự lái.
2.1.7.2
Khảo sát trắc địa, môi trƣờng
Có thể dùng GPS cho việc khảo sát trắc địa môi trƣờng. GPS thu thập dữ liệu
các công trình hạ tầng và trắc địa, các khu đô thị về vị trí, thời gian, không gian đƣa về
một trung tâm phân tích dữ liệu. Từ dữ liệu này các chuyên gia sẽ đánh giá sự biến đổi
cũng nhƣ tính toán để đƣa ra những giải pháp kịp thời nhƣ xây dựng, sửa chữa, nâng
cấp.
2.2
Công thức Haversine
2.2.1 Khái niệm
Công thức đƣợc sử dụng trong chƣơng trình là công thức Haversine [6]. Công
thức Haversine là một đẳng thức quan trọng đƣợc sử dụng trong quá trình điều hƣớng,
đƣa ra các great-circle distance (khoảng cách các vòng tròn lớn) giữa hai điểm trên bề
mặt khối cầu từ giá trị tọa độ (kinh độ, vĩ độ) cho trƣớc của chúng. Công thức
Haversine là trƣờng hợp đặc biệt của các thuật toán phổ biến trong lƣợng giác cầu
(spherical strigonometry).
Great-circle distance: Là khoảng cách ngắn nhất giữa hai điểm bất kì trên bề mặt
khối cầu tính dọc theo một hƣớng đi trên bề mặt khối cầu (nghĩa là đo đƣờng đi vòng
cung trên bề mặt, hoàn toàn khác với khoảng cách tính theo đƣờng thẳng nối hai điểm
đó qua bên trong khối cầu). Khoảng cách này thể hiện sự khác biệt trong khái niệm
khoảng cách giữa hai điểm trong hình học Euclidean và hình học không gian. Cụ thể:
Khoảng cách giữa hai điểm trong không gian Euclidean là độ dài đoạn thẳng nối hai
điểm đó. Trong hình học cầu, đoạn thẳng đƣợc thay thế bằng đƣờng cong.
15
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
Với hai điểm không đối xứng trực tiếp với nhau qua tâm của hình cầu (hoặc elip
tròn xoay) thì chỉ tồn tại duy nhất một great–circle (đƣờng cong lý tƣởng), hai điểm
này phân ly great-circle thành hai cung, độ dài của cung ngắn hơn chính là great-circle
distance (khoảng cách vòng cung lý tƣởng). Chú ý rằng hai đƣờng great-circle tƣơng
ứng phải cùng nằm trên một mặt phẳng cắt hình cầu qua tâm của nó.
Với hai điểm đối xứng với nhau qua tâm hình cầu sẽ có vô số các great circle
thỏa mãn giữa chúng và độ dài của các vòng cung này đều bằng nhau và bằng một nửa
chu vi của hình cầu đó (bằng πR – R là bán kính hình cầu).
Do trái đất cũng có hình dạng gần nhƣ một khối cầu, các phƣơng trình cho
great-circle distance đóng vai trò rất quan trọng trong bài toán tìm khoảng cách ngắn
nhất giữa các điểm trên bề mặt trái đất cũng nhƣ trong quá trình điều hƣớng (định
hƣớng đƣờng đi ngắn nhất cho các phƣơng tiện hàng không và hàng hải).
2.2.2 Công thức Haversine
Với hai điểm A và B thuộc mặt cầu (có bán kính R) với tọa độ địa lý (kinh độ,
vĩ độ) tƣơng ứng:
A(φ1, λ1)
B(φ2, λ2)
= φ2 – φ1
= λ2 – λ1
Với góc đƣợc tính theo đơn vị radian, ta có khoảng cách d giữa hai điểm A và B
(tính toán dựa trên great-circle – đƣờng tròn lý tƣởng đƣờng tròn trên bề mặt của hình
cầu có chu vi bằng chu vi của hình cầu đó và chia nó ra làm hai bán cầu bằng nhau)
trong phƣơng trình liên hệ sau:
( )
đặt h = haversin(d/R) với 0
h
1
16
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
h=
Từ phƣơng trình trên, ta tính đƣợc khoảng cách d một cách đơn giản nếu sử
dụng hàm nghịch đảo của hàm haversin hoặc sử dụng hàm arcsin (hàm sin nghịch đảo).
√
Dựa vào công thức trên, ta có công thức tính khoảng cách đƣờng tròn lý tƣởng
(Great Circle Dítance – C) nhƣ sau:
C = 2 arcsin(√ )
Suy ra:
√
Ứng dụng công thức Haversine vào việc tính toán khoảng cách trên bề mặt
trái đất:
Khi sử dụng Haversin trên bề mặt cầu trái đất, công thức chỉ có tính chất tính
toán gần đúng do đặc điểm đặc biệt của bề mặt trái đất là hình dạng không phải là một
hình cầu hoàn hảo mà có dạng nhƣ hình elip bị dẹt ở hai cực Bắc và Nam với bán kính
R xấp xỉ từ 6356.78 km ở cực đến 6378.14 km tại xích đạo. Do đó ở đây có một sự
điều chỉnh nhỏ nằm trong khoảng sai số 1% với quy ƣớc coi nhƣ trái đất là khối cầu
hoàn hảo với bán kính quy định nhƣ một đại lƣợng hình học không đổi R= 6367.45
km.
Nhƣ vậy, bỏ qua tính chất elip không đáng kể của bề mặt trái đất, ta có thể áp
dụng công thức Haversine trong các hàm tính toán về khoảng cách trong thông tin địa
lý với dữ liệu địa lý thông thƣờng.
2.2.3 Công thức Haversine trong tính khoảng cách ngắn nhất
Có 2 điểm A và B với tọa độ (lat1, lon1) và (lat2, lon2), với lat là kinh độ, lon là
vĩ độ.
Với công thức Haversine thì khoảng cách d = AB đƣợc tính nhƣ sau:
17
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
R = Bán kinh trái đất (6371 km)
= lat2 – lat1
= lon2 – lon1
c = 2* arcsin(√ )
d=R*c
Lƣu ý: các góc cần phải đổi ra đơn vị radian trƣớc khi tính toán các hàm lƣợng
giác và khoảng cách.
2.3
Kỹ thuật và thƣ viện
2.3.1 Apache Mina
Apache Mina [2] là thƣ viện ứng dụng network (mạng), giúp ngƣời dùng phát
triển với hiệu xuất cao và khả năng mở rộng các ứng dụng network một cách d dàng.
Appache Mina thƣờng đƣợc gọi là thƣ viện NIO (Non-Blocking IO), thƣ viện client
(máy khách) server (máy chủ) hoặc thƣ viện socket mạng (socket là một giao diện ứng
dụng mạng, thông qua giao diện này, ngƣời dùng điều khiển, truyền thông giữa 2 máy
sử dụng giao thức TCP hoặc UDP, socket là thiết bị truyền thông 2 chiều gửi và nhận
dữ liệu).
Nếu viết một ứng dụng socket mạng để áp dụng chƣơng trình với mức độ
chuyên sâu thì mất rất nhiều thời gian, nên Apache Mina cung cấp một thƣ viện socket
mạng với hiệu xuất cao và đƣợc nghiên cứu chuyên sâu để ngƣời dùng ứng dụng vào
chƣơng trình của mình một cách d dàng. Ngoài ra Apache Mina còn đƣợc biết đến
nhƣ một asynchronous IO (nhập xuất bất đồng bộ). Sự khác biệt giữa BIO và NIO là
trong BIO một yêu cầu đƣợc gửi đi và phải chờ đến khi nhận đƣợc dữ liệu trả về. Mặt
khác, trong NIO, là một hệ thống bất đồng bộ (non-blocking system), nghĩa là ứng
dụng đƣợc gọi khi có một số sự kiện. Trong NIO, không cần phải gọi và chờ một kết
quả, kết quả sẽ đƣợc gửi về khi đã xử lý xong.
18
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
Apache Mina đƣợc dùng khi ngƣời dùng cần một ứng dụng mạng không cần
hiệu xuất quá cao. Số lƣợng kết nối của ngƣời dùng có thể lên đến vài ngàn cùng một
lúc. Apache Mina cung cấp các giao thức khác nhau nhƣ: HTTP, XML, TCP, LDAP,
DHCP, NTP, DNS, XMPP, SSH, FTP... Hiện tại, Apache Mina đƣợc sử dụng bởi hàng
chục ứng dụng trên thế giới và có độ ổn định cao. Do đó, ngƣời dùng có thể yên tâm sử
dụng thƣ viện này khi cần một ứng dụng socket mạng.
2.3.2 Jetty Server
Jetty[9] cung cấp một máy chủ web và là javax.servlet container (thùng chứa
javax.servlet), thêm vào đó còn hỗ trợ SPDY, WebSocket, OSGi, jmx, jndi, JAAS và
nhiều tích hợp khác. Jetty là một mã nguồn mở, có thể sử dụng mi n phí và có thể
thƣơng mại hóa.
Jetty đƣợc sử dụng trong một loạt các dự án và sản phẩm trên cả 2 lĩnh vực là
phát triển và sản xuất. Jetty d dàng nhúng vào trong các thiết bị, công cụ, thƣ viện,
máy chủ ứng dụng (application servers) và các cụm (clusters). Một số trang web(web
page) sử dụng thƣ viện Jetty nhƣ: 1060 NetKernel, abaXX, ActiveMQ, Alibaba Japan,
Blue Elephant Systems, Hadoop ...
Phiên bản hiện tại của Jetty là Jetty 9, ngoài ra còn có các phiên bản trƣớc đó là
Jetty 7 và Jetty 8. Jetty có đầy đủ các tính năng cơ bản, là một mã nguồn mở, có thể sử
dụng và thƣơng mại đều đƣợc, linh hoạt và khả năng mở rộng tốt, khả năng nhúng d
dàng, hệ thống không đồng bộ...
2.3.3 ResFb và Facebook Graph Api
Facebook coi các mối quan giữa các thực thể nhƣ là một "Đồ thị xã hội" (Social
Graph). Và họ xây dựng ra một Api(Aplication Programming Interface : giao diện lập
trình ứng dụng), gọi là "Facebook Graph API", Api này cho phép lấy ra thông tin, sửa
đổi thông tin của các thực thể, chẳng hạn nhƣ đăng ảnh, viết bình luận, lấy ra danh sách
bạn bè.
19
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
Hình 2. 1. Minh họa Facebook Graph
RestFb [8] là một Java Api cho phép tƣơng tác với các Facebook Graph Api.
Muốn nắm rõ về RestFb thì đầu tiên phải biết về Facebook Graph Api.
Hình 2. 2. Sự tƣơng tác giữa ứng dụng Java với RestFb và RestFb với Facebook Api
Facebook Graph Api [5] là cách thao tác trên dữ liệu của đồ thị mạng xã hội
Facebook. Đó là một Api đƣợc truyền theo giao thức Http, dựa vào đó mà ứng dụng có
thể truy vấn dữ liệu, lấy thông tin, đăng tải hình ảnh, trạng thái. Facebook Graph Api
dựa trên giao thức Http. Do đó, bất kỳ ngôn ngữ nào có hỗ trợ Http thì đều làm việc
đƣợc với Facebook Graph Api.
Về cơ bản, Facebook Graph Api đƣợc đặt theo ý tƣởng của một đồ thị xã hội.
Một thông tin của Facebook bao gồm: node (nút) – một đối tƣợng cơ bản mà ngƣời
20
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
dùng sử dụng nhƣ một hình ảnh, một trang, một bình luận trên Facebook; edge (cạnh) là các kết nối giữa các node nhƣ kết nối giữa hình ảnh và trang chứa ảnh đó, hoặc giữa
một ghi chú và bức ảnh đƣợc ghi chú đó; field (trƣờng/lĩnh vực) – thông tin về node
nhƣ ngày sinh ngƣời dùng, hoặc tên một trang.
Có thể truy vấn Facebook Graph Api ngay trên trình duyệt, ví dụ gửi một đọan url truy
vấn “ thì nhận đƣợc kết
quả:
{
"data": {
"is_silhouette": false,
"url":
" />
1/p50x50/11896217_10154001910841729_1011974957258512846_n.png?oh=c90797
8890b6bc6877cd0f6a9a8f2c34&oe=569D3F9A&__gda__=1449537777_259e1907f71
c06db2fe367837d729fcf"
}
}
Trong dữ liệu trả về có thông tin về icon của Facebook, lấy giá trị url (địa chỉ web) và
đƣa lên trình duyệt truy vấn sẽ thấy đƣợc kết quả.
Để
biết
thêm
về
Facebook
Graph
Api
có
thể
vào
trang
“ và tìm đến phần Graph API để xem thông tin
về Facebook Graph Api.
Để sử dụng thƣ viện RestFb thì đầu tiên phải vào trang chủ của RestFb
( và tải về thƣ viện restfb.jar. Thƣ viện này chỉ hỗ trợ những ứng
dụng Java, những ứng dụng Java chỉ cần thêm thƣ viện này vào và gọi các phƣơng thức
của RestFb là có thể tƣơng tác với các Facebook Graph Api.
21
KHÁI NIỆM VÀ CƠ SỞ KHOA HỌC
Hình 2. 3. Trang chủ của RestFb
2.3.4 Angularjs
2.3.4.1
Giới thiệu
Angularjs là một bộ thƣ viện Javascript rất mạnh, thƣờng đƣợc xây dựng các
project (dự án) kiểu Single Page Application (SPA) (Về bản chất thì Angularjs hoạt
động trên Single Page, sử dụng Api để lấy dữ liệu). Angularjs hoạt động dựa trên các
thuộc tính mở rộng của Html. Đây là mã nguồn mở hoàn toàn mi n phí và đƣợc rất
nhiều lập trình viên ƣa chuộng và sử dụng. Để hiểu về Angularjs nhanh thì cần có kiến
thức nền về Javascript.
2.3.4.2
Đặc tính
Angularjs là một thƣ viện dựa trên Javascript để tạo ra các trang web với nhiều
nội dung, thƣờng đƣợc dùng làm frontend (giao diện ngƣời dùng) và dùng các Api lấy
dữ liệu để hiển thị, sử dung mô hình MVC (model - controllẻ - view). Angularjs tự
động tƣơng thích với các trình duyệt mà làm ứng dụng web không cần để ý nhiều đến
sự khác biệt giữa các trình duyệt. Ngoài ra, Angularjs là một mã nguồn mở hoàn toàn
mi n phí. Dựa vào những đặc tính nổi bật mà trang xem lịch sử của ngƣời dùng về
đƣờng đi, tốc độ của phƣơng tiện trong chƣơng trình đã ứng dụng thƣ viện Angularjs.
22