VIMS_Final_Presentation.ppt
Download
Report
Transcript VIMS_Final_Presentation.ppt
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