Differences

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

Link to this comparison view

common-sense_reasoning_about_object_locations [2013/02/12 18:41]
127.0.0.1 external edit
common-sense_reasoning_about_object_locations [2014/06/05 13:38] (current)
Line 1: Line 1:
-====== Commonsense knowledge about object locations ====== +#REDIRECT doc/common-sense_reasoning_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>​+