3.5. Tích hợp với bản đồ Google Map
Ứng dụng bản đồ Google Map hoạt động dựa trên hệ thống định vị toàn cầu GPS, mọi vị trí trên bản đồ Google Map đều được gắn vào một cặp kinh độ vĩ độ nhất định. Để có thể hiển thị vị trí của thiết bị trên bản đồ Google Map, chúng ta cần quy đổi từ toạ độ của thiết bị trong hệ quy chiếu trong nhà sang hệ quy chiếu trái đất sử dụng kinh độ và vĩ độ. Việc quy đổi này được thể hiện qua ánh xạ tuyến tính:
( ) ( )
Trong đó lần lượt là vĩ độ và kinh độ trong hệ quy chiếu trái đất. Do ánh xạ f là tuyến tính, ta có các phương trình sau:
{
Với là các hằng số. Để xây dựng ánh xạ f chúng ta cần tìm giá trị của các hằng số này. Dễ thấy rằng đây là hệ phương trình bậc nhất 3 ẩn do đó chúng ta cần có tối thiểu 3 điểm tham chiếu giữa bản đồ trong nhà và bản đồ Google Map. Sau khi tìm được giá trị của các hằng số
, chúng ta có thể tính được kinh độ và vĩ độ của bất cứ điểm nào trong bản đồ trong nhà bằng cách sử dụng hệ phương trình trên. Thật vậy, giả sử chúng ta đã có 3 điểm tham chiếu ( ) ( ) ( ) đến 3 điểm tương ứng là ( ) ( ) ( ), khi đó, các toạ độ thoả mãn các hệ phương trình sau: { {
Bài toán quy đổi toạ độ trong nhà sang toạ độ kinh độ, vĩ độ được quy về bài toán giải 2 hệ phương trình bậc nhất 3 ẩn để tìm các hằng số
. Với tối thiểu 3 điểm tham chiếu, 2 hệ phương trình này là giải được và có nghiệm, chúng ta có thể dễ dàng tính được giá trị của các hằng số
. Sử dụng giá trị của các hằng số này để xây dựng ánh xạ f quy đổi toạ độ trong nhà sang kinh độ và vĩ độ của trái đất.
Sau khi quy đổi toạ độ trong nhà sang kinh độ, vĩ độ của trái đất, kết quả định vị có thể được hiển thị lên bản đồ Google Map. Như vậy, chúng ta có thể tích hợp hệ thống định vị trong nhà với bản đồ Google Map (hoặc bất kỳ bản đồ nào sử dụng hệ toạ độ kinh độ và vĩ độ) bằng cách tham chiếu tối thiểu 3 điểm giữa bản đồ trong nhà và bản đồ Google Map.
3.6. Thiết kế và cài đặt hệ thống
Hệ thống được chia làm 2 thành phần chính là ứng dụng lập bản đồ từ trường và ứng dụng định vị. Trong đó, ứng dụng lập bản đồ từ trường có chức năng thu thập dữ liệu từ trường tại vị trí đo và tổng hợp thành bản đồ từ trường khu vực, ứng dụng định vị có chức năng nhận dữ liệu cảm biến từ trường, sử dụng thuật toán định vị để xác định vị trí và hiển thị vị trí của thiết bị lên bản đồ.
3.6.1. Ứng dụng lập bản đồ từ trường
Ứng dụng lập bản đồ từ trường giúp đơn giản hoá việc lập thu thập dữ liệu cảm biến từ trường và tham chiếu đến một hệ quy chiếu cho trước. Tiến trình thu thập dữ liệu được thực hiện qua 3 bước:
Bước 1: Di chuyển đến vị trí cần đo cường độ từ trường và nhập toạ độ vị trí thông qua giao diện của ứng dụng. Việc nhập toạ độ vị trí cần đo được thực hiện thông qua tương tác với 4 nút bấm trên giao diện ứng dụng tương ứng với 4 hướng tiến, lùi, trái, phải thể hiện các bước di chuyển của người sử dụng.
Bước 2: Thu thập dữ liệu từ trường tại vị trí hiện tại bằng cách bấm nút
Start trên giao diện ứng dụng. Ứng dụng sẽ thu thập giá trị từ cảm biến từ trường của điện thoại trong vòng 5 giây và lưu lại vào tệp.
Bước 3: Sau khi thu thập đủ dữ liệu ở tất cả các vị trí cần thiết. Lập bản đồ từ trường bằng cách quy đổi các giá trị về hệ quy chiếu bất biến trong phần 3.2 và ghi lại dữ liệu vào tệp để sử dụng trong định vị.
Lược đồ kiến trúc của ứng dụng lập bản đồ từ trường được trình bày trong hình 3.9. Trong đó bao gồm 2 tầng chính là tầng dữ liệu và tầng logic.
Tầng dữ liệu của ứng dụng nhận dữ liệu từ 3 nguồn: - Toạ độ vị trí mà người dùng nhập vào
- Dữ liệu cảm biến từ trường mà cảm biến của điện thoại đo được - Hướng và góc nghiêng của điện thoại từ cảm biến gia tốc và con quay hồi chuyển
Tầng logic của ứng dụng nhận dữ liệu từ tầng dữ liệu và thực hiện các tác vụ:
- Quy đổi dữ liệu cảm biến từ trường về hệ quy chiếu trái đất
- Ghi lại các dữ liệu từ trường và toạ độ để thành lập bản đồ từ trường Đầu ra cuối cùng của ứng dụng lập bản đồ là 1 tệp chứa các dữ liệu về toạ độ và cường độ từ trường. Tệp này được dùng làm bản đồ từ trường trong ứng dụng định vị.
Các thành phần chính trong ứng dụng:
- Data Adapter là thành phần có chức năng tổng hợp dữ liệu từ các nguồn. Các dữ liệu về toạ độ được người dùng nhập vào và dữ liệu cảm biến của điện thoại được tổng hợp và làm đầu vào cho chức năng hiệu chỉnh dữ liệu.
- Data Refiner là thành phần có chức năng hiệu chỉnh dữ liệu thô từ cảm biến cùng với các dữ liệu về toạ độ. Đối với các dữ liệu cảm biến từ trường, thành phần data refiner có chức năng quy đổi các giá trị cảm biến từ trường về hệ quy chiếu bất biến được trình bày trong mục 3.2, sau đó kết hợp với dữ liệu toạ độ để đưa ra đầu ra cuối cùng của ứng dụng là tệp bản đồ từ trường của khu vực được lập bản đồ.
Hình 3.10. Giao diện ứng dụng lập bản đồ từ trường
3.6.2. Ứng dụng định vị
Sau khi đã xây dựng được bản đồ từ trường, ứng dụng định vị có chức năng xác định vị trí của điện thoại thông minh trong khu vực và hiển thị lên
Bước 1: Ứng dụng thu thập dữ liệu cảm biến từ trường và hướng, góc xoay của điện thoại tại thời điểm tiến hành định vị. Dữ liệu cảm biến từ trường được quy đổi về hệ quy chiếu trái đất theo các công thức được đề cập trong mục 3.2 để làm đầu vào cho thuật toán định vị.
Bước 2: Ứng dụng đọc tệp bản đồ được tạo sẵn và thực thi thuật toán định vị để đưa ra kết quả định vị. Kết quả của thuật toán định vị là cặp giá trị toạ độ của thiết bị điện thoại trong khu vực được lập bản đồ.
Bước 3: Lưu lại kết quả định vị dưới dạng toạ độ và hiển thị kết quả lên bản đồ Google Map đã được tích hợp
Lược đồ kiến trúc của ứng dụng định vị được thể hiện trong hình 4.3. Trong đó bao gồm 2 tầng chính là tầng dữ liệu và tầng logic.
Tầng dữ liệu của ứng dụng truy cập dữ liệu cảm biến của điện thoại và nhận các dữ liệu về cường độ từ trường từ cảm biến từ trường, hướng và góc nghiêng của điện thoại từ cảm biến gia tốc và con quay hồi chuyển và chuyển các dữ liệu này đến tầng logic.
Sau khi có được dữ liệu từ tầng dữ liệu, tầng logic của ứng dụng thực hiện quy đổi dữ liệu từ trường sang hệ quy chiếu trái đất và thực thi thuật toán định vị để ước lượng vị trí của điện thoại. Đầu ra cuối cùng của ứng dụng định vị là bộ giá trị (x, y) thể hiện vị trí của điện thoại trong khu vực.
Các thành phần chính trong ứng dụng:
- Data Adapter là thành phần có chức năng ghi nhận và tổng hợp các dữ liệu từ cảm biến của điện thoại. Các dữ liệu được ghi nhận trong ứng dụng định vị bao gồm dữ liệu cảm biến từ trường và dữ liệu về góc nghiêng của điện thoại từ các cảm biến gia tốc và con quay hồi chuyển.
- Data Refiner là thành phần có chức năng hiệu chỉnh dữ liệu thô từ cảm biến cùng. Trong ứng dụng định vị, thành phần hiệu chỉnh dữ liệu thực hiện quy đổi các giá trị cảm biến từ trường về hệ quy chiếu trái đất.
- Location strategy là thành phần chính thực hiện việc định vị. Bằng cách sử dụng đầu vào là tập bản đồ có sẵn và dữ liệu cảm biến từ trường đã được hiệu chỉnh, ứng dụng ước lượng vị trí của điện thoại bằng cách thực hiện thuật toán k người láng giềng gần nhất với đầu vào tệp bản đồ và véc tơ cường độ từ trường tại vị trí cần định vị. Bên cạnh việc sử dụng thuật toán k người láng giềng gần nhất, ứng dụng cũng có thể được phát triển để cài đặt các thuật toán định vị khác.
Hình 3.13. Hiển thị kết quả định vị lên bản đồ
3.6.3. Khả năng mở rộng
Hệ thống được thiết kế để có khả năng mở rộng dễ dàng, không chỉ cường độ từ trường mà các tín hiệu khác cũng có thể được sử dụng cho định vị như cường độ tín hiệu Wi-Fi hay các loại sóng vô tuyến khác thông qua tính đóng gói dữ liệu. Hình 3.14 thể hiện tính đóng gói của dữ liệu trong hệ thống. Mọi dữ liệu cảm biến thu được đều được lưu trữ trong hệ thống độc lập với thành phần xử lý logic, điều này giúp cho hệ thống có tính mềm dẻo và có thể đáp ứng việc sử dụng các dữ liệu cảm biến khác trong tương lai, không ràng buộc với dữ liệu cảm biến từ trường.
Hình 3.14. Đóng gói dữ liệu trong hệ thống
Bên cạnh đó, hệ thống cũng được thiết kế để đáp ứng các thuật toán định vị khác nhau trong tương lai. Bằng cách cài đặt thuật toán định vị mới với giao diện trừu tượng sẵn có, chúng ta có thể dễ dàng thay đổi thuật toán định vị của hệ thống. Việc cài đặt thuật toán định vị mới có thể thực hiện dễ dàng bằng cách kế thừa các lớp trừu tượng AbstractIndoorLocationStrategy.
CHƢƠNG 4. THỰC NGHIỆM 4.1. Môi trƣờng thực nghiệm 4.1. Môi trƣờng thực nghiệm
Hệ thống được thử nghiệm trong 1 khu vực 5m x 14m trong Trung tâm thương mại Royal City để kiểm tra khả năng định vị của hệ thống. Thử nghiệm diễn ra vào ngày 20/7/2019. Việc thu thập dữ liệu từ trường để xây dựng bản đồ từ trường được thực hiện trên điện thoại XiaoMi A1. Bề mặt khu vực thử nghiệm được thể hiện trong hình 4.1. Hình ảnh và vị trí của khu vực thử nghiệm trên bản đồ được thể hiện trong hình 4.2 và 4.3.
Hình 4.1. Bề mặt khu vực thử nghiệm
Hình 4.3. Vị trí khu vực thử nghiệm trên bản đồ
Toàn bộ bề mặt khu vực thử nghiệm được chia thành một lưới các giao điểm cách nhau 1m như hình vẽ. Toàn bộ thử nghiệm được tiến hành trong khu vực thử nghiệm, trong quá trình thực hiện, thiết bị điện thoại không được mang ra khỏi khu vực thử nghiệm.
4.2. Phƣơng pháp thực hiện
4.2.1. Thực hiện lập bản đồ từ trường
Khu vực thử nghiệm có kích thước 5m x 14m được chia thành một lưới các ô vuông 1m x 1m như hình 4.1. Trên toàn bộ khu vực có 90 giao điểm được tạo bởi lưới và có toạ độ từ ( ) đến ( ). Người thực hiện lập bản đồ từ trường tiến hành di chuyển trên lưới và đo cường độ từ trường tại tất cả 90 giao điểm trong khu vực đã được đánh dấu. Giá trị cường độ từ trường tại mỗi vị trí được đo trong khoảng thời gian 5 giây và ghi lại vào bộ nhớ. Vị trí của các giao điểm cần đo được xác định bằng phương pháp đếm gạch, mỗi viên gạch lát trong khu vực có kích thước . Khi thực hiện đo cường độ từ trường tại mỗi vị trí, người thực hiện đứng thẳng, cầm điện thoại
4.2.2. Thực hiện định vị
Sau khi xây dựng được bản đồ từ trường của khu vực, ứng dụng được thử nghiệm khả năng định vị khi di chuyển trong khu vực. Để thực hiện kiểm tra khả năng định vị của hệ thống, người sử dụng di chuyển trong khu vực thử nghiệm theo một đường đi được xác định trước như trong hình 4.4. Quãng đường di chuyển trong thử nghiệm được chia thành 70 vị trí thử nghiệm định vị với khoảng cách mỗi vị trí là 0.2m. Mỗi vị trí thử nghiệm được đánh dấu 1 điểm trên hình.
Hình 4.4. Đường đi thử nghiệm
Đường đi thử nghiệm bao gồm 5 đoạn và 4 lần chuyển hướng, bắt đầu từ điểm ( ) và kết thúc ở điểm ( ). Lộ trình đường đi thử nghiệm như sau:
- Xuất phát ở ( ) và đi thẳng đến ( )
- Từ vị trí ( ) chuyển hướng và đi thẳng đến ( )
- Từ vị trí ( ) chuyển hướng và đi thẳng đến ( )
- Từ vị trí ( ) chuyển hướng và đi thẳng đến ( )
- Từ vị trí ( ) chuyển hướng và đi thẳng đến ( ). Kết thúc lộ trình. A(1, 1) B(1, 9.2) C(1.8, 10) D(3.8, 10) E(4.4, 9.4) F(4.4, 7.2) 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 X Y
Thực hiện di chuyển từng bước trên đường đi thử nghiệm và tiến hành định vị tại tất cả 70 vị trí thử nghiệm. Trong quá trình định vị, giữ điện thoại ở độ cao khoảng 1m so với mặt đất. Mỗi kết quả định vị đều được ứng dụng ghi lại vào tệp kết quả dưới dạng cặp giá trị toạ độ.
4.3. Kết quả thực nghiệm
Tiến hành lập bản đồ và thử nghiệm khả năng định vị của hệ thống như đã trình bày trong mục 4.2. Thuật toán định vị được sử dụng trong ứng dụng là thuật toán k người láng giềng gần nhất với k = 5. Thử nghiệm được lặp lại 5 lần và kết quả định vị được thể hiện trong hình 4.5. Trong đó, đường màu xanh là đường đi thực tế của người thực hiện trong khu vực và các điểm màu cam là kết quả định vị của ứng dụng được ghi lại. Vị trí thực tế và kết quả định vị được thể hiện trên cùng một hình vẽ cho chúng ta cái nhìn tổng quát nhất về độ chính xác của kết quả định vị. Các điểm màu cam biểu diễn kết quả định vị càng gần với đường màu xanh biểu diễn vị trí thực tế của điện thoại chứng tỏ kết quả định vị càng chính xác, ngược lại, các điểm màu cam càng xa đường màu xanh thì kết quả định vị càng thiếu chính xác.
Hình 4.5. Kết quả thử nghiệm định vị của hệ thống
0 1 2 3 4 5 6 0 2 4 6 8 10 12 14 X Y Kết quả định vị Vị trí thực tế Kết quả định vị
4.4. Đánh giá độ chính xác của hệ thống
Độ chính xác của hệ thống được đánh giá thông qua sai số của kết quả định vị. Sử dụng đầu ra của các thử nghiệm là các bộ giá trị toạ độ thực tế tại mỗi vị trí thử nghiệm và toạ độ kết quả định vị của hệ thống, chúng ta tính được sai số D của mỗi lần định vị được tính bằng khoảng cách từ vị trí thực tế
( ) tại mỗi vị trí thử nghiệm vị trí là kết quả định vị của hệ thống
( ), khoảng cách này được tính theo công thức:
| | √( ) ( )
Tiến hành tính sai số với tất cả lần thử nghiệm và mỗi lần thử nghiệm 70 phép định vị, chúng ta có được thống kê tổng quát về sai số và phân bố giá trị của sai số trong cả 5 lần thử nghiệm hệ thống trong bảng 4.1 và hình 4.6.
Tổng số phép thử 350
Sai số trung bình (m) 0.522
Độ lệch chuẩn (m) 0.415
Sai số nhỏ nhất (m) 0.043 Sai số lớn nhất (m) 2.364 Bảng 4.1. Thống kê sai số đầu ra của hệ thống
Hình 4.6. Phân bố giá trị sai số
12% 34% 35% 7% 1% 2% 3% 3% 1% 1% 1% 1% 0% 5% 10% 15% 20% 25% 30% 35% 40% 0 20 40 60 80 100 120 140 Tỉ lệ Tần suấ t Sai số (m)
Phân bố sai số của kết quả định vị