-
Notifications
You must be signed in to change notification settings - Fork 1
/
report.toc
153 lines (153 loc) · 11.7 KB
/
report.toc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
\contentsline {chapter}{\numberline {1}Introduction}{5}
\contentsline {section}{\numberline {1.1}Motivation}{5}
\contentsline {section}{\numberline {1.2}Project Scope}{5}
\contentsline {section}{\numberline {1.3}Objectives}{6}
\contentsline {section}{\numberline {1.4}Report Structure}{6}
\contentsline {chapter}{\numberline {2}Background}{8}
\contentsline {section}{\numberline {2.1}Global Positioning System}{8}
\contentsline {section}{\numberline {2.2}Indoor Positioning System}{9}
\contentsline {subsection}{\numberline {2.2.1}General}{9}
\contentsline {subsection}{\numberline {2.2.2}Current Approaches}{9}
\contentsline {section}{\numberline {2.3}Machine Learning}{11}
\contentsline {subsection}{\numberline {2.3.1}Naive Bayes classifiers}{12}
\contentsline {subsection}{\numberline {2.3.2}Bayesian Networks}{12}
\contentsline {section}{\numberline {2.4}Orienteering}{13}
\contentsline {chapter}{\numberline {3}Requirements and Specifiations}{14}
\contentsline {section}{\numberline {3.1}Requirements}{14}
\contentsline {subsection}{\numberline {3.1.1}Host requirements}{14}
\contentsline {subsection}{\numberline {3.1.2}Visitor requirements}{14}
\contentsline {subsection}{\numberline {3.1.3}Positioning requirements}{15}
\contentsline {subsection}{\numberline {3.1.4}Backend requirements}{15}
\contentsline {section}{\numberline {3.2}Specifications}{15}
\contentsline {subsection}{\numberline {3.2.1}Host}{16}
\contentsline {subsection}{\numberline {3.2.2}Visitor}{16}
\contentsline {subsection}{\numberline {3.2.3}Positioning system}{16}
\contentsline {subsection}{\numberline {3.2.4}Backend}{17}
\contentsline {subsection}{\numberline {3.2.5}Limitations}{17}
\contentsline {chapter}{\numberline {4}Design}{18}
\contentsline {section}{\numberline {4.1}Architectural design}{18}
\contentsline {subsection}{\numberline {4.1.1}User Space}{20}
\contentsline {subsection}{\numberline {4.1.2}Backend}{21}
\contentsline {subsection}{\numberline {4.1.3}Positioning System}{23}
\contentsline {subsection}{\numberline {4.1.4}Data Store}{27}
\contentsline {section}{\numberline {4.2}Data Flow and Subsystem Interaction}{29}
\contentsline {chapter}{\numberline {5}Implementation}{31}
\contentsline {section}{\numberline {5.1}Development approach}{31}
\contentsline {section}{\numberline {5.2}Backend}{33}
\contentsline {subsection}{\numberline {5.2.1}Database and REST API}{33}
\contentsline {subsection}{\numberline {5.2.2}Testing}{35}
\contentsline {section}{\numberline {5.3}Positioning System}{35}
\contentsline {subsection}{\numberline {5.3.1}Server}{35}
\contentsline {subsection}{\numberline {5.3.2}Learner}{37}
\contentsline {subsection}{\numberline {5.3.3}Planner}{39}
\contentsline {subsection}{\numberline {5.3.4}Testing}{39}
\contentsline {section}{\numberline {5.4}Administration App}{40}
\contentsline {subsection}{\numberline {5.4.1}Models and Tools Packages}{40}
\contentsline {subsection}{\numberline {5.4.2}Database}{40}
\contentsline {subsection}{\numberline {5.4.3}MainActivity}{42}
\contentsline {subsection}{\numberline {5.4.4}BuildingsActivity}{42}
\contentsline {subsection}{\numberline {5.4.5}EditBuildingActivity}{42}
\contentsline {subsection}{\numberline {5.4.6}EditRoomActivity}{42}
\contentsline {subsection}{\numberline {5.4.7}AddBuildingActivity}{43}
\contentsline {subsection}{\numberline {5.4.8}AddRoomActivity}{43}
\contentsline {section}{\numberline {5.5}Visitor App (Museum Guide)}{43}
\contentsline {subsection}{\numberline {5.5.1}MainActivity}{44}
\contentsline {subsection}{\numberline {5.5.2}BuildingActivity}{44}
\contentsline {subsection}{\numberline {5.5.3}GuideActivity and MapsActivity}{44}
\contentsline {section}{\numberline {5.6}Implementation issues}{45}
\contentsline {subsection}{\numberline {5.6.1}Going back to previous Activity}{46}
\contentsline {subsection}{\numberline {5.6.2}Bluetooth Scanning}{46}
\contentsline {subsection}{\numberline {5.6.3}JavaScript callbacks}{46}
\contentsline {subsection}{\numberline {5.6.4}Custom ListView}{47}
\contentsline {chapter}{\numberline {6}Results/Evaluation}{49}
\contentsline {section}{\numberline {6.1}IPS Performance Analysis}{49}
\contentsline {section}{\numberline {6.2}Project Evaluation}{53}
\contentsline {subsection}{\numberline {6.2.1}Host and Visitor applications}{54}
\contentsline {subsection}{\numberline {6.2.2}Positioning system}{55}
\contentsline {subsection}{\numberline {6.2.3}Backend}{55}
\contentsline {chapter}{\numberline {7}Professional and Ethical Issues}{56}
\contentsline {chapter}{\numberline {8}Conclusion and Future Work}{57}
\contentsline {section}{\numberline {8.1}Conclusion}{57}
\contentsline {section}{\numberline {8.2}Future Work}{58}
\contentsline {subsection}{\numberline {8.2.1}Security and Data collection}{58}
\contentsline {subsection}{\numberline {8.2.2}Graphics}{58}
\contentsline {subsection}{\numberline {8.2.3}Optimisation}{58}
\contentsline {subsection}{\numberline {8.2.4}Proximity interactions}{59}
\contentsline {section}{Bibliography}{60}
\contentsline {chapter}{\numberline {A}User Guide}{63}
\contentsline {section}{\numberline {A.1}Instructions}{63}
\contentsline {chapter}{\numberline {B}Example Files}{64}
\contentsline {section}{\numberline {B.1}domain.pddl}{64}
\contentsline {section}{\numberline {B.2}problem.pddl}{66}
\contentsline {section}{\numberline {B.3}learning.arff}{68}
\contentsline {section}{\numberline {B.4}unclassified.arff}{69}
\contentsline {section}{\numberline {B.5}RPs.data}{70}
\contentsline {section}{\numberline {B.6}rooms.data}{71}
\contentsline {chapter}{\numberline {C}Source Code}{72}
\contentsline {section}{\numberline {C.1}backend/MLServer/five-seconds}{72}
\contentsline {section}{\numberline {C.2}backend/MLServer/domain.pddl}{73}
\contentsline {section}{\numberline {C.3}backend/MLServer/src/tools/Rectangle.java}{75}
\contentsline {section}{\numberline {C.4}backend/MLServer/src/tools/Point.java}{77}
\contentsline {section}{\numberline {C.5}backend/MLServer/src/tools/RectangleDB.java}{78}
\contentsline {section}{\numberline {C.6}backend/MLServer/src/models/Room.java}{80}
\contentsline {section}{\numberline {C.7}backend/MLServer/src/models/Floor.java}{84}
\contentsline {section}{\numberline {C.8}backend/MLServer/src/models/Building.java}{85}
\contentsline {section}{\numberline {C.9}backend/MLServer/src/com/Planner.java}{88}
\contentsline {section}{\numberline {C.10}backend/MLServer/src/com/Server.java}{94}
\contentsline {section}{\numberline {C.11}backend/MLServer/src/com/Main.java}{99}
\contentsline {section}{\numberline {C.12}backend/MLServer/src/com/Learner.java}{100}
\contentsline {section}{\numberline {C.13}backend/nodeserver/server.js}{107}
\contentsline {section}{\numberline {C.14}backend/nodeserver/db.js}{120}
\contentsline {section}{\numberline {C.15}backend/nodeserver/models/room.js}{121}
\contentsline {section}{\numberline {C.16}backend/nodeserver/models/ExhibitRP.js}{122}
\contentsline {section}{\numberline {C.17}backend/nodeserver/models/RPMeasurement.js}{123}
\contentsline {section}{\numberline {C.18}backend/nodeserver/models/building.js}{124}
\contentsline {section}{\numberline {C.19}backend/nodeserver/models/RP.js}{125}
\contentsline {section}{\numberline {C.20}backend/nodeserver/package.json}{126}
\contentsline {section}{\numberline {C.21}android/IPS\_Admin/build.gradle}{127}
\contentsline {section}{\numberline {C.22}android/IPS\_Admin/src/res/layout/content\_edit\_building.xml}{128}
\contentsline {section}{\numberline {C.23}android/IPS\_Admin/src/res/layout/content\_add\_building.xml}{136}
\contentsline {section}{\numberline {C.24}android/IPS\_Admin/src/res/layout/activity\_main.xml}{144}
\contentsline {section}{\numberline {C.25}android/IPS\_Admin/src/res/layout/content\_edit\_room.xml}{145}
\contentsline {section}{\numberline {C.26}android/IPS\_Admin/src/res/layout/activity\_edit\_building.xml}{146}
\contentsline {section}{\numberline {C.27}android/IPS\_Admin/src/res/layout/content\_main.xml}{147}
\contentsline {section}{\numberline {C.28}android/IPS\_Admin/src/res/layout/activity\_edit\_room.xml}{148}
\contentsline {section}{\numberline {C.29}android/IPS\_Admin/src/res/layout/activity\_buildings.xml}{149}
\contentsline {section}{\numberline {C.30}android/IPS\_Admin/src/res/layout/content\_buildings.xml}{150}
\contentsline {section}{\numberline {C.31}android/IPS\_Admin/src/res/layout/activity\_add\_building.xml}{151}
\contentsline {section}{\numberline {C.32}android/IPS\_Admin/src/res/layout/activity\_add\_room.xml}{152}
\contentsline {section}{\numberline {C.33}android/IPS\_Admin/src/res/layout/content\_add\_room.xml}{153}
\contentsline {section}{\numberline {C.34}android/IPS\_Admin/src/res/menu/menu\_edit\_building.xml}{161}
\contentsline {section}{\numberline {C.35}android/IPS\_Admin/src/res/menu/menu\_buildings.xml}{162}
\contentsline {section}{\numberline {C.36}android/IPS\_Admin/src/res/menu/menu\_main.xml}{163}
\contentsline {section}{\numberline {C.37}android/IPS\_Admin/src/AndroidManifest.xml}{164}
\contentsline {section}{\numberline {C.38}android/IPS\_Admin/src/java/tools/Rectangle.java}{167}
\contentsline {section}{\numberline {C.39}android/IPS\_Admin/src/java/tools/Point.java}{169}
\contentsline {section}{\numberline {C.40}android/IPS\_Admin/src/java/tools/RectangleDB.java}{170}
\contentsline {section}{\numberline {C.41}android/IPS\_Admin/src/java/database/Database.java}{172}
\contentsline {section}{\numberline {C.42}android/IPS\_Admin/src/java/models/RPMeasurement.java}{181}
\contentsline {section}{\numberline {C.43}android/IPS\_Admin/src/java/models/Room.java}{182}
\contentsline {section}{\numberline {C.44}android/IPS\_Admin/src/java/models/Position.java}{186}
\contentsline {section}{\numberline {C.45}android/IPS\_Admin/src/java/models/Floor.java}{187}
\contentsline {section}{\numberline {C.46}android/IPS\_Admin/src/java/models/Building.java}{188}
\contentsline {section}{\numberline {C.47}android/IPS\_Admin/src/java/activities/EditRoomActivity.java}{191}
\contentsline {section}{\numberline {C.48}android/IPS\_Admin/src/java/activities/MainActivity.java}{194}
\contentsline {section}{\numberline {C.49}android/IPS\_Admin/src/java/activities/BuildingsActivity.java}{196}
\contentsline {section}{\numberline {C.50}android/IPS\_Admin/src/java/activities/AddRoomActivity.java}{199}
\contentsline {section}{\numberline {C.51}android/IPS\_Admin/src/java/activities/AddBuildingActivity.java}{201}
\contentsline {section}{\numberline {C.52}android/IPS\_Admin/src/java/activities/EditBuildingActivity.java}{203}
\contentsline {section}{\numberline {C.53}android/MuseumGuide/build.gradle}{206}
\contentsline {section}{\numberline {C.54}android/MuseumGuide/src/res/layout/activity\_building.xml}{207}
\contentsline {section}{\numberline {C.55}android/MuseumGuide/src/res/layout/content\_guide.xml}{208}
\contentsline {section}{\numberline {C.56}android/MuseumGuide/src/res/layout/activity\_guide.xml}{209}
\contentsline {section}{\numberline {C.57}android/MuseumGuide/src/res/layout/activity\_main.xml}{210}
\contentsline {section}{\numberline {C.58}android/MuseumGuide/src/res/layout/content\_main.xml}{211}
\contentsline {section}{\numberline {C.59}android/MuseumGuide/src/res/layout/content\_building.xml}{212}
\contentsline {section}{\numberline {C.60}android/MuseumGuide/src/res/layout/custom\_listview\_item.xml}{214}
\contentsline {section}{\numberline {C.61}android/MuseumGuide/src/res/layout/activity\_maps.xml}{215}
\contentsline {section}{\numberline {C.62}android/MuseumGuide/src/res/menu/menu\_main.xml}{216}
\contentsline {section}{\numberline {C.63}android/MuseumGuide/src/AndroidManifest.xml}{217}
\contentsline {section}{\numberline {C.64}android/MuseumGuide/src/java/test/ModelTest.java}{220}
\contentsline {section}{\numberline {C.65}android/MuseumGuide/src/java/tools/Rectangle.java}{223}
\contentsline {section}{\numberline {C.66}android/MuseumGuide/src/java/tools/Point.java}{225}
\contentsline {section}{\numberline {C.67}android/MuseumGuide/src/java/tools/RectangleDB.java}{226}