Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
doc:faq [2013/04/22 08:32] – created admin | doc:faq [2022/02/17 13:38] (current) – First FAQ entry yay. gkazhoya | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== FAQ ====== | ====== FAQ ====== | ||
- | ===== How can I debug Prolog programs? ===== | + | **Q: How can I add a mesh in bullet having |
- | There is a [[http:// | + | |
+ | A: The mesh paths are stored here: https:// | ||
- | ===== Which programming language should I use for what purpose? ===== | + | To add new entries into the variable you use this function: https:// |
- | KnowRob is implemented in a combination of OWL, Prolog and Java. When creating extensions, it is worth considering which language to implement them in: | + | |
- | == OWL: == | + | Here is an example. These are two meshes that we use for the shopping scenario: https:// |
- | * Description language, no programming language | + | |
- | * Class taxonomy of objects, actions, events,... | + | |
- | * Instances of these classes (e.g. environment models, experiences) | + | |
- | * Robot capabilities/action requirements | + | |
- | == Prolog: == | + | In order to register them, we call the add-objects-to-mesh-list function in the init-projection function, which is called upon ROS node startup: https:// |
- | * Logical programming language: conceptually close to the knowledge representation, good at searching and pattern matching | + | |
- | * Useful for functionality interacting closely with the internal representation (OWL gets parsed into Prolog triples) | + | |
- | * Wrapper predicates | + | |
- | * Functionality involving (recursive) search, graph matching, reasoning about ontological structure, ... | + | |
- | == Java: == | + | To register any function as a callback upon node startup we use this macro https://github.com/ |
- | * Object-oriented programming language that can interact with Prolog via the [[http://www.swi-prolog.org/packages/jpl/|JPL interface]] | + | |
- | * Conceptually further away from the internal knowledge representation | + | |
- | * Good library support, therefore useful for external interfaces (WWW, ROS,...) and for integrating libraries (ProbCog, Weka, Visualization...) | + | |
+ | Once you have the paths stored in the btr:: | ||
+ | |||
+ | You can, of course, just populate the mesh variable manually to hack something quickly, but I'd suggest using the add-objects-to-mesh list function. | ||
+ | |||
+ | Important: the meshes should be located in a ROS package that the system is able to find with '' | ||
+ | |||
+ | ------------------ |