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
doc:create_and_load_a_semantic_map [2014/01/12 18:15] – [Create and load a semantic map] admindoc:create_and_load_a_semantic_map [2019/10/30 13:14] (current) – [SemanticMapToOWL] daniel86
Line 1: Line 1:
 ====== Create and load a semantic map ====== ====== Create and load a semantic map ======
 +~~NOTOC~~
 +
 +\\
 +^ This page describes the 'catkinized' version of KnowRob that uses the [[http://wiki.ros.org/catkin/|catkin buildsystem]] and the pure Java-based [[http://wiki.ros.org/rosjava|rosjava]]. The documentation for the older version, which was based on the rosbuild buildsystem and rosjava_jni, can be found [[/doc/create_and_load_a_semantic_map?rev=1401968329|here]].^
 +\\
  
 Semantic maps are descriptions of an environment in terms of localized object instances and are stored in OWL files. Much of the environment- and object-related functionality in KnowRob depends of having a valid semantic map, so you may want to create one for your robot's environment. Semantic maps are descriptions of an environment in terms of localized object instances and are stored in OWL files. Much of the environment- and object-related functionality in KnowRob depends of having a valid semantic map, so you may want to create one for your robot's environment.
-{{ :doc:map-with-joints.png?nolink&300|}}+ 
 +{{ :doc:map-with-joints.png?nolink&500 |}} 
 ===== Create your semantic map ===== ===== Create your semantic map =====
  
 There are different ways how to create a semantic map in OWL: There are different ways how to create a semantic map in OWL:
  
-==== Semantic Map Editor ==== 
-The [[Semantic Map Editor]] is a graphical editor for semantic maps. It can be used to create object instances and to set their positions. 
  
-==== SemanticMapToOWL ==== 
-If you already have a map datastructure and would like to create a semantic map from your program, you can use the SemanticMapToOWL ROS service described here: http://ias.in.tum.de/kb/wiki/index.php/Mod_semantic_map#SemanticMapToOWL If you do not want to use the service, you can still have a look at how the OWL is generated using the OWLAPI, but since the internal object representation is quite a complex thing, I'd recommend to start with that service. 
  
-The object types in the semantic map message need to correspond to the object classes in KnowRob. If the identifiers do not match, you need to create a mapping at some point; if you use the conversion service, the easiest place would be to have the mapping in your code for now.+
 ==== Robot perception system ==== ==== Robot perception system ====
-If you have [[/doc/writing_an_interface_to_your_perception_system|integrated a perception system]] with KnowRob, a kind of semantic map is automatically created by the objects the robot perceives. You can save the in-memory map to an OWL file using the methods in the [[http://ros.org/wiki/knowrob_common|owl_export module]].+If you have [[/doc/writing_an_interface_to_your_perception_system|integrated a perception system]] with KnowRob, a kind of semantic map is automatically created by the objects the robot perceives. You can save the in-memory map to an OWL file using the methods in the [[/doc/loading_files_and_ros_packages#exporting_knowledge_into_owl_files|owl_export module]].
  
  
 ==== Manual creation of the OWL file ==== ==== Manual creation of the OWL file ====
-In some cases, it may actually be the fastest to create the map manually in a good text editor in which you can copy and paste the object instances and their pose matrices. Especially if you would like to set many semantic object properties beyond their poses, this may be a good option. If you plan to do this, you should have well understood [[object pose representation|how object poses are represented in KnowRob]].+In some cases, it may actually be the fastest to create the map manually in a good text editor in which you can copy and paste the object instances and their pose matrices. Especially if you would like to set many semantic object properties beyond their poses, this may be a good option. If you plan to do this, you should have well understood [[/doc/object_pose_representation|how object poses are represented in KnowRob]].
  
  
 ===== Load the map into KnowRob ===== ===== Load the map into KnowRob =====
-To make the map available for querying and inference in KnowRob, you just need to parse the OWL file. You can either do this manually after having started the KnowRob shell using the //owl_parse// predicate given below, or you can put that command into the init.pl of a [[Create your own KnowRob package|package you have created]].+To make the map available for querying and inference in KnowRob, you just need to parse the OWL file. You can either do this manually after having started the KnowRob shell using the //owl_parse// predicate given below, or you can put that command into the init.pl of a [[/doc/create_your_own_knowrob_package|package you have created]].
  
 <code> <code>