Modeling perceived or inferred objects
From Knowledgewiki
TODO: this documentation will grow in the near future - if you have questions, please contact tenorth at cs.tum.edu
motivation
- object states and locations change over time
- robots need to describe past and (predicted) future states as well as effects that are only inferred to exist
- this is not possible if e.g. the position of an object are described as object properties since the binary relations in OWL can only state is something is related or not, or if it has a property or not. they cannot qualify these statements by saying that a relation held an hour ago, or is supposed to hold with a certain probability
- for this purpose, we need an additional instance in between that links e.g. the object, the location, the time, and the probability
our approach
- in KnowRob, these links are represented by the event that established this link: the perception of the object, an inference process, or the prediction of future states based on projection or simulation
- there can, of course, be multiple events assigned to one object, corresponding to different detections
- this representation allows to describe states that change over time, perform reasoning on the source of information, and handle contradicting statements, e.g. from different perception modules or perception&inference
- all perceptions or inference results are represented as subclasses of MentalEvent [image!]
- holds(rel, T) and holds_tt(rel, [St, End]) operate on these instances and compute if a relation exists at some point in time
- only start -- infer end time as next detection
- computables: interpret queries for "the location" of object A as "the current location"; backwards compatible to the old representation as long as computable-enabled query predicates are used (rdf_triple, rdfs_instance_of)
what we cannot (yet) do
- combination of evidence from multiple sources (we always take the latest observation)
- resolve conflicts between different observations
- calculate a reasonable object pose by interpolating between subsequent observations (at the moment, the system assumes a static world, but if an object is first detected at one location and later elsewhere, intermediate positions could be computed with further knowledge about the transport action)