Successfully reported this slideshow.
Upcoming SlideShare
×

# Navigation with the Dipole Calculus

898 views

Published on

We present an algorithm that enables robots to navigate a street network with a minimum of local and global knowledge using the Dipole calculus for qualitative spatial representation of line segments. A constraint-based approach is employed where decisions are made based on relational constraints imposed on possible route alternatives.

Published in: Technology, Education
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

### Navigation with the Dipole Calculus

1. 1. Navigation with theDipole Calculus GI Zeitgeist 2012 Germán Carrillo / Christoph Mülligann 17.03.2012
2. 2. Navigation with the Dipole CalculusAgenda1. Objective2. Context3. Dipole Calculus4. The problem5. SPARQ reasoner6. The algorithm7. Implementation8. Conclusions and further work
3. 3. Navigation with the Dipole Calculus1. ObjectiveSimulate the movement of a robot in a street networkusing Qualitative Spatial Reasoning (QSR)
4. 4. Navigation with the Dipole Calculus2. ContextQSR• 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
5. 5. Navigation with the Dipole Calculus2. ContextConstraint-based reasoning• Constraint networks are set of relations to be validated• Check constraint network vs. domain knowledge
6. 6. Navigation with the Dipole Calculus2. ContextConstraint-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 B A LT B
7. 7. Navigation with the Dipole Calculus2. ContextConstraint-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” B C A LT B, B LT C
8. 8. Navigation with the Dipole Calculus2. ContextConstraint-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” C A A LT B, B LT C, A GT C ?
9. 9. Navigation with the Dipole Calculus2. ContextConstraint-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 B C A LT B, B LT C, A GT C
10. 10. Navigation with the Dipole Calculus3. Dipole Calculus (1/3) (Qualitative calculus: relations and operations)• Entities are dipoles• Relations are defined in this way: s: Start e: End l: Left r: Right (A e sB) (A r eB) (B r sA) (B s eA) A errs B
11. 11. Navigation with the Dipole Calculus3. Dipole Calculus (2/3) 24 relations (A solid, B dashed): [Moratz et al., 2000]
12. 12. Navigation with the Dipole Calculus3. Dipole Calculus (3/3) Limitations: Too coarse A: solid, B: dashed ArrrrB rrrr Image from http://www.sfbtr8.uni-bremen.de/project/r3/QualitativeCalculi/DipoleCalculus/DipoleCalculus.html
13. 13. Navigation with the Dipole Calculus4. The problem• 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
14. 14. Navigation with the Dipole Calculus5. SparQ reasoner“Toolbox for representing space and reasoning about space based on QS relations” [SparQ Manual]QUALIFYConverts quantitative data into qualitative dataSCENARIO-CONSISTENCYFor constraint-based reasoning
15. 15. Navigation with the Dipole Calculus6. The algorithmINPUT 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 Start: AB End: IJ ENDIFENDWHILE
16. 16. Navigation with the Dipole Calculus6. The algorithmSTEP 1: QUALIFY over current and end dipoles 1 qualify( (AB 83 -7 87 -76) (IJ 249 -168 219 -135 ) ) AB llll IJ
17. 17. Navigation with the Dipole Calculus6. The algorithmSTEP 2: Get candidates (robots local view) 2 outgoing_dipoles( B ) BC, BD, BE BC BD
18. 18. Navigation with the Dipole Calculus6. The algorithmSTEP 3: For each candidate QUALIFY and 3 SCENARIO-CONSISTENCY scenario-consistency( ( AB llll IJ ) ( AB errs BC ) ( BC {ells,errs,lere,rele} IJ ) ells errs lere rele )
19. 19. Navigation with the Dipole Calculus6. The algorithmSTEP 4: Select a consistent candidate 4 BC → BD → BE →
20. 20. Navigation with the Dipole Calculus6. The algorithmRepeat from step 1 (Iterate through the network) Dead-end handling
21. 21. Navigation with the Dipole Calculus6. The algorithmRepeat from step 1 (Iterate through the network) One more iteration
22. 22. Navigation with the Dipole Calculus6. The algorithmRESULT Route: AB BE EG GJ IJ
23. 23. Navigation with the Dipole Calculus7. Implementation (1/2)• 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
24. 24. Navigation with the Dipole Calculus7. Implementation (2/2)
25. 25. Navigation with the Dipole Calculus8. Conclusions and further work• 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
26. 26. Navigation with the Dipole CalculusThank you!