no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Next revision
common-sense_reasoning_about_object_locations [2013/02/12 17:41] – external edit 127.0.0.1
Line 1: Line 1:
 +====== Commonsense knowledge about object locations ======
  
 +Commonsense knowledge about typical object locations was acquired by the Open Mind Indoor Common Sense (OMICS [[http://openmind.hri-us.com/]]) project. We processed the natural language database entries and translated them to well-defined concepts within the KnowRob ontology as described in [[http://ias.cs.tum.edu/_media/spezial/bib/kunze10omics.pdf|Putting People's Common Sense into Knowledge Bases of Household Robots]]. In [[http://ias.cs.tum.edu/_media/spezial/bib/kunze12objsearch.pdf| Searching Objects in Large-scale Indoor Environments: A Decision-thereotic Approach]] we applied this knowledge in object search tasks.
 +
 +===== Getting Started =====
 +First you have to build the rospackage knowrob_omics and then run it using rosprolog.
 +<code>
 + rosmake knowrob_omics
 + rosrun rosprolog rosprolog knowrob_omics
 +</code>
 +
 +===== Queries about object locations =====
 +To query the probability of finding an object in a given room type you can use the following query:
 +<code>
 + ?- probability_given(knowrob:'OmicsLocations', Obj, knowrob:'Kitchen', Pr).
 + Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#CitrusFruit',
 + Pr = 0.003865979381443299 ;
 + Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#Bowl-Eating',
 + Pr = 0.006443298969072165
 +</code>
 +
 +If you are interested in what type of room you could find a given object use the following query:
 +<code>
 + ?- bayes_probability_given(knowrob:'OmicsLocations', Room,
 + knowrob:'Sandwich',Pr).
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Kitchen',
 + Pr = 0.21657432923639094 ;
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#OfficeRoom',
 + Pr = 0.05065150074968034 ;
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Hallway',
 + Pr = 0.07410126961527308 ;
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Classroom',
 + Pr = 0.08278900467361545 ;
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#ConferenceRoom',
 + Pr = 0.08394689285086883 ;
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#RestaurantSpace',
 + Pr = 0.24008811355348483 
 +</code>
 +
 +You can see the processed database table entries with:
 +<code> 
 + ?- rdf_has(Entry, rdf:type, knowrob:'OmicsLocations'),
 + rdf_has(Entry,knowrob:subject,Obj),
 + rdf_has(Entry,knowrob:object,Room).
 + Entry = 'http://ias.cs.tum.edu/kb/knowrob.owl#OmicsLocations-0',
 + Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#CitrusFruit',
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Kitchen' ;
 + Entry = 'http://ias.cs.tum.edu/kb/knowrob.owl#OmicsLocations-1',
 + Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#Bowl-Eating',
 + Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Kitchen' ;
 +</code>
 +
 +Get the list of Room types:
 +<code>
 + ?- findall(Room, (rdf_has(Entry, rdf:type, knowrob:'OmicsLocations'),
 + rdf_has(Entry,knowrob:object,Room)), Rooms),
 + list_to_set(Rooms,RoomSet).
 +</code>