Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
write_an_interface_to_your_perception_system [2013/01/07 10:26] – [KnowRob integration] tenorthwrite_an_interface_to_your_perception_system [2013/02/12 17:41] – external edit 127.0.0.1
Line 178: Line 178:
 </code> </code>
  
 +Such a manual query requires that the user is aware of the existence of this service. It also requires adaptation of the query whenever the context changes, e.g. when different or multiple recognition systems are used. We can avoid these problems by wrapping the predicate into a computable; with this definition, the predicate will automatically be called whenever the user asks for an object pose and when the service interface is available. The following OWL code defines a computable Prolog class for the example predicate:
  
 <code> <code>
Line 187: Line 188:
 </computable:PrologClass>   </computable:PrologClass>  
 </code> </code>
 +
 +Instead of calling the service directly, we can now query for object poses and obtain -- in addition to already known poses from e.g. a semantic map -- the poses generated by our service:
 +<code>
 +?- rdfs_instance_of(A, knowrob:'HumanScaleObject').
 +A = 'http://ias.cs.tum.edu/kb/knowrob.owl#TableKnife_vUXiHMJy'.
 +</code>
 +
 +
 +
 +====== Other kinds of perception systems ======
 +
 +In this tutorial, we have concentrated on object recognition as a special case of perception. There are of course other perception tasks like the identification and pose estimation of humans, recognition and interpretation of spoken commands, etc. Most of these systems can however be interfaced in a very similar way: If they produce information continuously and asynchronously, a topic-based interface can be used. If they compute information on demand, the computable-based interface can be adapted.
  
  
Line 192: Line 205:
 ====== Adapting the examples to your system ====== ====== Adapting the examples to your system ======
  
 +To keep the examples as simple and self-contained as possible, we have defined our own dummy components and messages. Your perception system will probably use slightly different messages and may provide more or less information. In this case, you will need to adapt the service client or topic listener to correctly extract information from your messages. After creating the object instance with ''create_object_perception'', you can use ''rdf_assert'' to add further properties to the object (e.g. color, weight, etc).
  
  
-====== Other kinds of perception systems ====== 
  
-In this tutorial, we have concentrated on object recognition as a special case of a perception task. There are of course other perception tasks like the identification and pose estimation of humans, recognition and interpretation of spoken commands, etc. Most of these systems can however be interfaced in a very similar way: If they produce information continuously and asynchronously, a topic-based interface can be used. If they compute information on demand, the computable-based interface can be adapted.