Team 11 Final Presentation Visually Impaired Mapping System

advertisement
Team 11
Final Presentation
Visually Impaired Mapping System
Steve Crummel, Naim Falandino, Tim Seeger, Michael Volk
Problem Description




Lack of tools to help visually impaired persons
navigate structures (buildings)
Getting to a building is relatively easy (taxi)
Finding the way to a specific location is hard
Task: Invent some method for visually impaired
users to independently navigate structures.
Problem Analysis




PocketPC is the most viable platform for mobility
and performance
Pervasive use of text-to-speech in the
application to address accessibility requirements
Lightweight, portable format for representing
buildings had to be created
System for maintaining and distributing available
map data to the public
Solution




Web portal for maintaining and distributing
mapping data and client software
Well defined procedure for creating map data
and representing it in XML
Client software for PocketPC to load map data
and generate directions based on an
origin/destination system
Produce easy to follow directions that notify
users of static obstacles within the structure
Requirements








Accessible to visually impaired users
Large number of supported devices
Fast run-time performance
High-quality and high-performance text-to-speech engine
to produce clear text
Generate directions that are simple and easy to break up
into meaningful “chunks”
General schema for map data to account for as many
buildings as possible (if not all)
Allow authors of map data access to fine-tune
pathfinding variables
Very user friendly interface
System Architecture
Administrator
PC
Control Panel
PocketPC w/
client software
Map Resource DB
Internet
Web Portal
`
Windows 2003 Server
User
PC w/
accessibility software
VIMS Backend
Risks





Acquiring map data quickly
Developing a general schema for maps
Finding a high-quality, high-performance text-tospeech for PocketPC
Creating a workable interface on the Pocket PC
for visually impaired users
Pathfinding and direction generation algorithms
that perform well and are easy to fine-tune
Web Portal Design
Stored procedures for database activities
 Database manager to properly handle
opening and closing connections
 Security features to access control panel
 Fully accessible to screen readers
 Transitional HTML so website is fully
usable with many platforms and browsers

Map Schema






XML data format
Describes searchable areas in a building using
an absolute coordinate system
Defines a “rail” for each level
Contains all points of interest for a building
Stores common routes a user may have saved
General information section that can be
expanded upon as needed
Map Example
Location Variables

Attribute to scale the entire location size
 Large
performance gains
 Minimal introduction of rounding error
Per level rail cost assignment
 Per path space cost assignment
 Control of rail position given to map
authors to address specific building needs

Text-to-Speech Engine

Elan Acapela Mobility engine
 Easy
to use with C#
 High quality speech
 Low overhead
Only an evaluation version
 Cannot legally redistribute

Speech User Interface






Disable input from the touch screen
Make use of the standard directional pad and selection
key found on all Pocket PCs
Track which control currently has focus
Data structure to attach controls to one another via
linking in upwards and downwards direction
Help text for each control also in this data structure
Recursive function to determine the next enabled control
in a given direction
Client UI and Location Design
ControlInfo
-controlUp : Control
-controlDown : Control
-controlName : string
-controlHelp : string
-controlHandler : EventHandler
SearchForm
-directions : DirectionsForm
-help : HelpForm
-mapFile : string
-originReady : bool
-destinationReady : bool
-location : Location
-ctrlLookup : ControlLookup
-focused : Control
-ddlOType : ComboBox
-ddlDType : ComboBox
-ddlOrigin : ComboBox
-ddlDestination : ComboBox
-ddlCommonRoute : ComboBox
-btnSubmit : Button
-btnLoadMap : Button
-btnExit : Button
-btnHelp : Button
-lbLocationName : Label
-openMapFile : OpenFileDialog
TextToSpeech::TTS
HelpForm
-lbHelpText : Label
*
1
Collections::Hashtable
ControlLookup
Collections::CollectionBase
InterestPoints
IPCollection
Location
-name : string
-scale : int
-size : Position
-levelInfoArray : ArrayList
-interestPoints : InterestPoints
-commonRoutes : CommonRoutes
1
*
CommonRoutes
IP
2
1
DirectionsForm
LevelInfo
-lbOrigLabel : Label
-lbDestLabel : Label
-lbOrigin : Label
-lbDestination : Label
-lbDirectionText : Label
-map : SearchableMap
-directionList : ArrayList
-current : int
-_id : int
-_width : int
-_height : int
-_railCost : float
-_pathSpace : ArrayList
-_rail : ArrayList
Mapping::SearchableMap
PathSpace
-instance : SearchableMap
-map : Map
-start : AStarNode2D
-goal : AStarNode2D
-directions : ArrayList
-_vertices : int[]
-_cost : float
CR
*
-_origin : IP
-_destination : IP
-_name : string
-_type : string
-_position : Position
Position
-_x : int
-_y : int
-_z : int
Mapping Component Design
AStar
SearchableMap
-instance : SearchableMap
-map : Map
-start : AStarNode2D
-goal : AStarNode2D
-directions : ArrayList
Heap
#FStartNode : AStarNode
#FGoalNode : AStarNode
#FOpenList : Heap
#FClosedList : Heap
#FSuccessors : ArrayList
#FSolution : ArrayList
2
-FList : ArrayList
-FComparer : IComparer
-FUseObjectsComparison : bool
-FAddDuplicates : bool
IList
Map
-mainRailCost : float
Level
LevelCollection
#count : int
#levels : Level[]
1
AStarNode
AStarNode2D
-FX : int
-FY : int
-FParent : AStarNode
-FGoalNode : AStarNode
-FCost : double
-FGoalEstimate : double
*
#_rows : int
#_columns : int
#level : float[,]
ICloneable
Pathfinding Algorithm
Modified A*: Rail*
 Uses basic 2D A*

 Relatively
high-cost path spaces
 Low-cost “rails” defined by the map that
traverse path spaces
Manhattan distance heuristic
 Vector cross-product tie breaking

Pathfinding Testing
Console application written in C#
 Visually displays the search space grid
 Useful for getting quick feedback on:

 Heuristic
modifications
 Different origin/destination pairs
 Solution paths and generated directions
Direction Generation

Visually impaired users need different directions
 Warnings
of obstacles
 Distances between points
 90 degree turns only


Differential algorithm to determine right and left
turns relative to the direction of motion
Simple, consistent format for giving directions
 “Move

x feet. Then, turn {right, left}.”
Having only 90 degree turns is a big limitation
Conclusion





Overall a success
No other applications like this necessitated
significant design work
Good example of a fully featured product
prototype
Special thanks to Derrick of Team 9 and Steve of
Team 1 for letting us use their cameras
Extra special thanks to Mr. Tibbals of Comm Arts
for denying our camcorder request
Download