Both sides previous revisionPrevious revisionNext revision | Previous revision |
doc:loading_files_and_ros_packages [2014/08/07 09:55] – admin | doc:loading_files_and_ros_packages [2014/11/25 08:30] (current) – [Loading Prolog modules] admin |
---|
| |
\\ | \\ |
^ This page describes the 'catkinized' version of KnowRob that has been converted to the [[http://wiki.ros.org/catkin/|catkin buildsystem]] and the new [[http://wiki.ros.org/rosjava|rosjava]]. The documentation for older versions can be found [[/doc/create_your_own_knowrob_package?rev=1401968329|here]].^ | ^ This page describes the 'catkinized' version of KnowRob that has been converted to the [[http://wiki.ros.org/catkin/|catkin buildsystem]] and the new [[http://wiki.ros.org/rosjava|rosjava]]. The documentation for older versions can be found [[/doc/loading_files_and_ros_packages?rev=1401968327|here]].^ |
\\ | \\ |
| |
owl_parse('path/to/file.owl'). | owl_parse('path/to/file.owl'). |
</code> | </code> |
| |
| The OWL parser understands URLs of the form package:\/\/<pkg_name>/local/path/to/file.owl that are also used by the [[http://wiki.ros.org/resource_retriever|resource_retriever]] package in ROS and reference a file relative to a ROS package. You can use these URLs both for loading OWL files from Prolog and for imports in the head of an OWL file. |
| |
===== Loading Prolog modules ===== | ===== Loading Prolog modules ===== |
</code> | </code> |
| |
| The //rosprolog// init scripts automatically add the 'prolog' folder inside ROS packages to the Prolog library search path when they are loaded using //register_ros_package//. Afterwards, libraries in this folder can be loaded using the simple //library(module_name)// instead of the file path. |
===== Loading OWL/Prolog files in ROS packages ===== | ===== Loading OWL/Prolog files in ROS packages ===== |
| |
KnowRob uses [[http://www.ros.org/wiki/rosprolog|rosprolog]] to interact with the ROS filesystem structure. This facilitates loading complex package structures since dependencies on other ROS packages with KnowRob components are automatically resolved and loaded. | KnowRob uses [[http://www.ros.org/wiki/rosprolog|rosprolog]] to interact with the ROS filesystem structure. This facilitates loading complex package structures since dependencies on other ROS packages with KnowRob components are automatically resolved and loaded. |
| |
In order to use this functionality, each ROS package containing KnowRob components needs to correctly define its dependencies on other packages (in the manifest.xml) and contain a file 'prolog/init.pl'. This file will be called by rosprolog in order to set up the package itself and to initialize all dependencies (again by calling their init.pl). | In order to use this functionality, each ROS package containing KnowRob components needs to correctly define its dependencies on other packages (in the package.xml) and has to contain a file 'prolog/init.pl'. This file will be called by rosprolog in order to set up the package itself and to initialize all dependencies (again by calling their respective init.pl). |
| |
Each KnowRob ROS package can be loaded using the following predicate: | Each KnowRob ROS package can be loaded using the following predicate: |
| |
===== Exporting knowledge into OWL files ===== | ===== Exporting knowledge into OWL files ===== |
At some point, you may want to create OWL files. This can be done with the predicates in the 'owl_export' module in the 'knowrob_common' package: | At some point, you may want to create OWL files. This can be done with the predicates in the //owl_export// module in the //knowrob_common// package: |
| |
<code> | <code prolog> |
% Export the perception of an object to an OWL file | % Export the perception of an object to an OWL file |
export_object(knowrob:'Drawer1', 'path/to/object.owl'). | export_object(knowrob:'Drawer1', 'path/to/object.owl'). |