navigation with the dipole calculus
TRANSCRIPT
Navigation with the Dipole Calculus
GI Zeitgeist 2012GI Zeitgeist 2012
Germán Carrillo / Christoph Mülligann 17.03.2012
1. Objective2. Context3. Dipole Calculus4. The problem 5. SPARQ reasoner 6. The algorithm7. Implementation8. Conclusions and further work
Navigation with the Dipole Calculus
Agenda
Simulate the movement of a robot in a street network using Qualitative Spatial Reasoning (QSR)
1. Objective
Navigation with the Dipole Calculus
QSRQSR
• Deals with commonsense knowledge w/o numerical computation [Renz & Nebel, 2007]
• Comparative knowledge vs. metric information
• Knowledge is represented by relations and operations
• Relations are Jointly Exhaustive and Pairwise Disjoint
2. Context
Navigation with the Dipole Calculus
Constraint-based reasoningConstraint-based reasoning
• Constraint networks are set of relations to be validated • Check constraint network vs. domain knowledge
2. Context
Navigation with the Dipole Calculus
Constraint-based reasoningConstraint-based reasoning
• Constraint networks are set of relations to be validated • Check constraint network vs. domain knowledge • e.g. Relations “Greater than” and “Less than”
A LTLT B
2. Context
Navigation with the Dipole Calculus
BA
Constraint-based reasoningConstraint-based reasoning
• Constraint networks are set of relations to be validated • Check constraint network vs. domain knowledge • e.g. Relations “Greater than” and “Less than”
A LTLT B, B LTLT C
2. Context
Navigation with the Dipole Calculus
CB
Constraint-based reasoningConstraint-based reasoning
• Constraint networks are set of relations to be validated • Check constraint network vs. domain knowledge • e.g. Relations “Greater than” and “Less than”
A LTLT B, B LTLT C, A GTGT C ??
2. Context
Navigation with the Dipole Calculus
C A
Constraint-based reasoningConstraint-based reasoning
• Constraint networks are set of relations to be validated • Check constraint network vs. domain knowledge • e.g. Relations “Greater than” and “Less than”
A LTLT B, B LTLT C, A GTGT C
2. Context
Navigation with the Dipole Calculus
CBA
3. Dipole Calculus (1/3)
Navigation with the Dipole Calculus
(Qualitative calculus: relations and operations) • Entities are dipoles • Relations are defined in this way:
(A ee sB) (A rr e
B) (B rr s
A) (B ss e
A)
A errserrs B
ss: Startee: Endll: Leftrr: Right
3. Dipole Calculus (2/3)
Navigation with the Dipole Calculus
24 relations (A solid, B dashed): [Moratz et al., 2000]
3. Dipole Calculus (3/3)
Navigation with the Dipole Calculus
Limitations: Too coarse
A: solid, B: dashed ArrrrrrrrB
Image from http://www.sfbtr8.uni-bremen.de/project/r3/QualitativeCalculi/DipoleCalculus/DipoleCalculus.html
4. The problem
Navigation with the Dipole Calculus
• Robots usually have limited info. at their disposal
• In this case, the robot has the capability to assess spatial relations of its local view
• Start and end dipoles are known
• Bidirectional street network
5. SparQ reasoner
Navigation with the Dipole Calculus
“Toolbox for representing space and reasoning about space based on QS relations” [SparQ Manual]
QUALIFYQUALIFYConverts quantitative data into qualitative data
SCENARIO-CONSISTENCYSCENARIO-CONSISTENCYFor constraint-based reasoning
6. The algorithm
Navigation with the Dipole Calculus
INPUT start_dipole, target_dipoleSET meet_relation to “(ells errs lere rele)”PUSH start_dipole to selected_dipolesWHILE candidate_dipoles do not contain target_dipole IF selected_dipoles is not empty THEN POP current_dipole from selected_dipoles ELSE POP current_dipole from backup_dipoles ENDIF GET current_target_relation by calling QUALIFY of current_dipole and target_dipole GET candidate_dipoles leading away from the end point of current_dipole by calling OUTGOING_DIPOLES of current_dipole IF candidate_dipoles do not contain target_dipole THEN IF size of candidate_dipoles = 1 THEN POP candidate_dipole from candidate_dipoles PUSH candidate_dipole to selected_dipoles ELSE IF size of candidate_dipoles > 1 THEN FOR each candidate_dipole in candidate_dipoles GET candidate_current_relation by calling QUALIFY of candidate_dipole and current_dipole GET isConsistent by calling SCENARIO_CONSISTENCY of current_target_relation, candidate_current_relation and meet_relation IF isConsistent THEN PUSH candidate_dipole to selected_dipoles ELSE PUSH candidate_dipole to backup_dipoles ENDIF ENDFOR ENDIF ENDIF ENDIFENDWHILE
Start: AB End: IJ
6. The algorithm
Navigation with the Dipole Calculus
STEP 1STEP 1: QUALIFY over current and end dipoles
qualify( (ABAB 83 -7 87 -76) (IJIJ 249 -168 219 -135 ) )
AB llllllll IJ
6. The algorithm
Navigation with the Dipole Calculus
STEP 2STEP 2: Get candidates (robot's local view)
outgoing_dipoles( BB )
BCBC, BD BD, BE BE
6. The algorithm
Navigation with the Dipole Calculus
STEP 3STEP 3: For each candidate QUALIFY and SCENARIO-CONSISTENCY
scenario-consistency(
)
( AB llllllll IJ )( AB errserrs BC )
( BC {ellsells,errserrs,lerelere,relerele} IJ )
6. The algorithm
Navigation with the Dipole Calculus
STEP 4STEP 4: Select a consistent candidate
BCBC →
BDBD →
BEBE →
6. The algorithm
Navigation with the Dipole Calculus
Repeat from step 1 (Iterate through the network)
Dead-end handling
6. The algorithm
Navigation with the Dipole Calculus
Repeat from step 1 (Iterate through the network)
One more iteration
6. The algorithm
Navigation with the Dipole Calculus
RESULTRESULT
Route:ABABBEBEEGEGGJGJ IJIJ
7. Implementation (1/2)
Navigation with the Dipole Calculus
• To facilitate testing and replication
• Quantum GIS plug-in written in Python (*)
• Münster road network data from OpenStreetMap
• Start and end dipoles are selected graphically
• Logging messages with step-by-step operations
* http://downloads.tuxfamily.org/tuxgis/geoblogs/qsr_routing/zeitgeist2012/QualitativeRoute.zip
7. Implementation (2/2)
Navigation with the Dipole Calculus
8. Conclusions and further work
Navigation with the Dipole Calculus
• We have used QSR for simulating the movement of a robot in a street network
• QSR consisted of no more than qualifying relations and scenario consistency checks
• Dipole calculus was employed
• Results far from being a random search
• Improving decision making is required as well as quantitative evaluation
Thank you!
Navigation with the Dipole Calculus