Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
create_your_own_knowrob_package [2012/12/01 10:00] – tenorth | create_your_own_knowrob_package [2013/02/12 17:41] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
If your application requires functionality beyond that one already provided by the standard KnowRob packages, you will need to create your own KnowRob package. The following description assumes that you would like to add knowledge in terms of OWL ontologies, or implement new Prolog predicates, or both. If you would just like to link against e.g. some Java libraries provided by the packages, you don't have to follow the description below, but can just implement a normal ROS package that depends on the respective KnowRob packages. | If your application requires functionality beyond that one already provided by the standard KnowRob packages, you will need to create your own KnowRob package. The following description assumes that you would like to add knowledge in terms of OWL ontologies, or implement new Prolog predicates, or both. If you would just like to link against e.g. some Java libraries provided by the packages, you don't have to follow the description below, but can just implement a normal ROS package that depends on the respective KnowRob packages. | ||
- | The answer depends on which kind of package you would like to create: | + | KnowRob packages are normal ROS packages |
- | + | ||
- | (1) If the package implements new Prolog functionality or contains custom OWL files, you should create a package similar to e.g. comp_spatial. It should be a normal ROS package | + | |
< | < | ||
+ | your_package | ||
+ | |- manifest.xml | ||
+ | |- CMakeLists.txt | ||
|- owl | |- owl | ||
| \- your_file.owl | | \- your_file.owl | ||
Line 15: | Line 16: | ||
</ | </ | ||
- | The init.pl should initialize the package, which may include loading dependencies, | + | The example above assumes that you would like to create a package // |
+ | |||
+ | The //init.pl// should initialize the package, which may include loading dependencies, | ||
rosrun rosprolog rosprolog your_package | rosrun rosprolog rosprolog your_package | ||
- | (2) If you would just like to use existing packages | + | Like in any other ROS package, |
- | + | ||
- | Regarding which package to depend on, this depends on which functionality you would like to use. You just need to list the direct dependencies in your manifest, their dependencies are automatically included as well. Common candidates could be to depend on mod_vis (if you would like to use the visualization somewhere) or on ias_semantic_map (if you would like to use that map). | + | |
- | + | ||