TEAM 9: Chill
Spring 2007
MEMBERS
- Geeta Shroff (gshroff)
- Zane Starr (zcs)
- Brian Loo (bloo)
PROJECT CONCEPT
Geordi
To assist people navigating an unfamiliar building or
environment.
The system will leverage low cost of RFID tags as markers of
'points of interests' along with a headset and controller with an RFID
sensor to provide vocal realtime directions to navigate around an area
which has been marked.
MOTIVATION
How many times have you walked into a new build to be baffled
by the maps and arrows pointing in all sorts of directions? What if you
were visually impared and had trouble finding your way around new
environments, or perhaps just a different section of a building which
you've never been to?
We have realized a need for a system to help us navigate
around unfamiliar environments. Especially for grocery stores with
dynamic inventory and emergency personnel , who are often times
unfamilar with the location specific areas of a building.
GPS systems currently are a viable option for outdoor areas,
however GPS fails once you are indoors.
We envision a system consisting of a wireless headset, a radio
frequency identifying (RFID) tag reader, and an embedded processing
unit (PDA, phone, micro-controller) as well as RFID tags placed
strategically around a building to helping us navigate indoors in our
daily lives.
COMPETITIVE ANALYSIS
TECHNICAL SPECIFICATIONS
Hardware:
- Passive (UHF) RFID tags
- (UHF) RFID sensor
- HP iPaq h3615
Software:
- Database (to keep track of RFID tags)
- Text to voice software (to direct user)
- Voice to text software (to provide voice prompts to the
system)
-
Protocols:
- SPI -Serial Peripheral Interface (for RFID sensor)
REQUIREMENTS
- Functional requirements
- Download database and map via wi-fi (want)
- Receive command by voice to text (want)
- Output instructions by text to voice (want)
- Basic user interface through touchscreen (expect)
- Reliably detects passive RFID tags (expect)
- Determine location of tag through database (expect)
- Provide directions by text to voice (expect)
- Non-Functional requirements
- Read tags reliably with small (4”) antenna
for portability
- Search database for tag within 2 seconds
- Perform route calculation within 2 seconds
- Find shortest path to destination
- RFID Maintenance -preventing tags from falling off
ARCHITECTURE
USE CASES (INTERACTION DIAGRAMS)
SYSTEM STATES & TRANSITIONS
ERROR HANDLING
- Have exceptions thrown whenever an error is detected
within each module
-Utilize try catch statements to display message boxes to the user
during run time
- Check for physical connection with RFID sensor
-Inform user to reconnect cable
- On trying to write to RFID tag, multiple tags are detected
-Message box to inform user to move away from the multiple tags, and
towards a single tag
- Ensure Database is present
-Inform user database is not avaliable and to load a database onto the
PDA
- Node not found in database
-Application displays a message box to the user
- Unable to read/write to rfid tag
-Prompt user to move closer and repeat read/write
- Pathfind cannot find a possible path to the destination
node from the starting node
-Display message box informing user that there is no path possible
- Sound device unavaliable
-Windows application throws an exception. User will have to revert to
touch screen
- PDA out of memory (Unable to write to database)
-Message box to inform user. Will have to upgrade memory
IMPLEMENTATION DETAILS
To be completed.
TEST CASES
- Application Startup
- Why: Ensure that all components of the system are
turned on and connected.
- How: Inbuilt functionality. System checks for
connection with RFID reader via polling, existence of datbase file via
ferr, Voice recognition active catching exceptions, Sound output via
user re-enforcement
- Type: Fault free
- Application Shutdown
- Why: Enusre that all components of the system are
properly exited.
- How: Inbuilt functionality. Simply power cycle the
machine checking to make sure that the database file does not get
corrupted.
- Type: Fault free
- Data Transmission From Reading Tag to Outputing Directions
- Why: To check bounds for communication latency such
that user does not hit the next tag before the current tag is processed
- How: Using System timestamps. To time sending request
to rfid sensor and for rfid tag data to be sent back. Assuming a tag is
readily avaliable to be read.
- Type: Fault free
- Database benchmarking
- Why: Find out how fast nodes can be added and retrieved
from the database on the PDA
- How: Using system timestamps.
1) Measure time required to store 10, 50, 100, 200, 500 nodes
2) Measure time to retrieve 5/10/20/50 nodes from a database of
50/100/200/500 nodes
- Type: Fault Free
- Pathfind benchmarking
- Why: Find out how fast paths may be determined on the
PDA
- How: Using system timestamps. Measure time to find
paths of 5/10/20 in graphs of 50/100/200/500 nodes
- Type: Fault Free
EXPERIMENTAL EVALUATION
Time in ms |
|
|
|
|
|
|
|
|
|
|
|
Average |
Max |
Min |
Nodes:0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
Nodes:1 |
192 |
125 |
115 |
135 |
116 |
149 |
171 |
128 |
129 |
147 |
|
140.7 |
192 |
115 |
Nodes:10 |
1366 |
1406 |
1464 |
1589 |
1599 |
1434 |
1533 |
1505 |
1463 |
1539 |
|
1489.8 |
1599 |
1366 |
Nodes:20 |
3666 |
3100 |
3450 |
3562 |
3328 |
3961 |
3594 |
3629 |
5667 |
4135 |
|
3809.2 |
5667 |
3100 |
Nodes:30 |
5821 |
5684 |
3431 |
3994 |
4302 |
4352 |
4630 |
4469 |
4580 |
4050 |
|
4531.3 |
5821 |
3431 |
Nodes:40 |
5484 |
6333 |
6073 |
5688 |
5691 |
6875 |
5865 |
5988 |
6072 |
6209 |
|
6027.8 |
6875 |
5484 |
Nodes:60 |
13284 |
12331 |
11584 |
11645 |
9455 |
11219 |
11064 |
10840 |
10737 |
11162 |
|
11332.1 |
13284 |
9455 |
Nodes:80 |
14108 |
14776 |
16048 |
15879 |
16755 |
16531 |
15724 |
17658 |
14550 |
15161 |
|
15719 |
17658 |
14108 |
Nodes:120 |
25987 |
24755 |
25497 |
25487 |
27262 |
28193 |
28579 |
28830 |
28083 |
28639 |
|
27131.2 |
28830 |
24755 |
Nodes:160 |
41124 |
43900 |
44389 |
43434 |
48556 |
43331 |
44591 |
40835 |
41814 |
45399 |
|
43737.3 |
48556 |
40835 |
Nodes:200 |
52488 |
53700 |
54099 |
57162 |
61637 |
55745 |
51019 |
55959 |
52967 |
53042 |
|
54781.8 |
61637 |
51019 |
![](./website/DesktopInsert.jpg)
- Hypothesis:
Demonstrate that paths may be planned from the database in a
timely
manner
- Test Setup:
HP IPAQ 6515, user interface, database with nodes and links
inserted
- Metrics:
Time to find path in map. Given a pre-generated map (nodes and links)
Timer on PDA only gives resolution of 1 second.
Load Database
Start timer
Findpath from node 1 to node n
Stop timer
- Workload:
Testbench to call path find function on map
- Parameters:
Varying the size of the map (no of nodes)
Links between nodes stay the same. (node links form a grid)
Path requested from node 1 to node n;
- Experiment:
Number of
runs for each test: 10
No of nodes = { 1, 10 ,20 , 30,40,60,80,120,160,200}
- Data:
Time in ms
|
|
|
|
|
|
|
|
|
|
|
|
Average |
Max |
Min |
Getting:1 |
0 |
1000 |
1000 |
0 |
1000 |
1000 |
0 |
0 |
1000 |
1000 |
|
600 |
1000 |
0 |
Getting:10 |
2000 |
2000 |
1000 |
2000 |
2000 |
1000 |
2000 |
2000 |
1000 |
2000 |
|
1700 |
2000 |
1000 |
Getting:20 |
3000 |
3000 |
3000 |
3000 |
3000 |
3000 |
3000 |
3000 |
3000 |
3000 |
|
3000 |
3000 |
3000 |
Getting:40 |
5000 |
4000 |
4000 |
5000 |
4000 |
4000 |
4000 |
5000 |
4000 |
4000 |
|
4300 |
5000 |
4000 |
Getting:60 |
7000 |
5000 |
6000 |
6000 |
6000 |
5000 |
6000 |
6000 |
6000 |
5000 |
|
5800 |
7000 |
5000 |
Getting:80 |
10000 |
9000 |
9000 |
9000 |
9000 |
9000 |
9000 |
9000 |
9000 |
9000 |
|
9100 |
10000 |
9000 |
Getting:120 |
15000 |
14000 |
13000 |
14000 |
13000 |
14000 |
14000 |
13000 |
14000 |
14000 |
|
13800 |
15000 |
13000 |
Getting:160 |
19000 |
17000 |
18000 |
17000 |
18000 |
18000 |
17000 |
18000 |
18000 |
17000 |
|
17700 |
19000 |
17000 |
Getting:200 |
12000 |
11000 |
11000 |
10000 |
10000 |
10000 |
11000 |
10000 |
11000 |
10000 |
|
10600 |
12000 |
10000 |
LESSONS LEARNED
- Hardware:
- PDA-
Pda's run a variety of OS'es not all of them support Microsoft's .Net Framework
We found some trouble using USB and serial with the pda. We suspect some non-conventional
serial drivers which allow communication through serial but was not avaliable on our RFID reader.
- RFID-
UHF rfid provides a much more range (2-3ft with our tagsense nano reader)
compared with the HF reader (~1 inch)
RFID tags are very tempremental, the material which they are placed on can make a big difference.
Tools to debug RFID readers are also not very well developed, we suffered a malfunctioned reader unit which
would communicate to our computer but was simply not sending out any signals.
- PC-
Our choice to use c# and visual studio was a good one, as it allowed simple debugging of our hardware,
and a friendly GUI creation interface.
We generally had no problems with getting the PC to communicate with our devices over serial/USB
- Software:
- Building GUI-
C# was a good language to build a GUI from. However there were some problems initially with image scrolling and zooming,
mainly due to lack of prior experience.
We have had little experience with GUI's hence the layout of buttons and toolbars could be further improved in later versions.
- Porting to PDA-
We had hoped to simply drag and rearrange our Desktop application onto the PDA, howerver that proved troublesome.
There are difference in the .NET frameworks ( and .NET Compact Framework) which would simply not allow that.
There were also memory issues, and much of the PDA GUI had to be rewritten to accomodate the smaller memory footprint required.
There were also problems getting serial communication to work on the PDA, and as mentioned before, we had trouble getting the RFID reader to
correctly interface with it.
- Database for PDA-
The Object oriented database (db40) we used ported surprizingly well.
However we found that trying to build a graph in the database was much slower on the PDA,
we decided to build the graph in memory then only store the created graph into the database.
- Serial communication-
Generally we had no trouble working with serial with the PC connecting to either the PDA or RFID reader.
However we had trouble getting the PDA communicate with the RFID reader.
After failing to pinpoint the problem we decided to go with a bluetooth solution which worked well.
We suspect that the PDA required some software driver to work with the PC, and was not avaliable for the RFID reader.
- Path finding heuristic-
The A* algorithm serves our purpose well by being able to support different heuristics for our contextual applications.
A* also worked very well with the object oriented database. However we see a need to tune it further, as it would be increasingly
slower with a very dense graph. This may also be a limitation of the memory access time on the PDA.
FUN STUFF
To be completed.
REFERENCES
- Project
Proposal and Requirements, Team Project Presentation, January
31, 2007
- Design &
Architecture, Team Project Presentation, February 14, 2007
- Mid-semester
Project Status, Team Project Presentation, Date TBD
- Test Plan &
Experimental Validation Team Project Presentation, March 28,
2007
- What's Done, What's Left
Team Project Presentation, April 11, 2007
- Final Project
Presentation, Team Project Presentation, Date TBD
- GraceHopper submission 2007
- Project
Poster, May 4, 2007
Back to
the top of this page
18-549
course home page