Minutes of the "handover" meeting -- An overview of what's available in KnowRob

Infrastructure

Repositories

All packages in all repositories are supposed to compile at any time in order not to break the build for anyone. If you plan longer-term changes that result in a broken state in between, please create a temporary branch or your own fork, but merge it back as soon as possible.

  • knowrob: Core stack, try to keep this as generic as possible (it's a bit overfit to household scenarios, but we should keep in mind that it's used for household, outdoor, underwater and other robotics)
  • knowrob_addons: Miscellaneous packages that are less mature or less generic than those in KnowRob
  • knowrob_dev: Formerly internal development repository, currently contains the CAD model reasoning
  • knowrob_gui: Graphical editors for semantic maps and action recipes
  • knowrob_human: Tools for reasoning about human data, developed for the TUM Kitchen Data Set
  • knowrob_tutorials: Tutorial package: first steps, perception integration

Package naming

  • Please use knowrob_* instead of the older comp_* (with computables) or mod_* (for generic modules). Since there are no stacks any more, all packages live in the same namespace, so each should have a unique and meaningful name.

Package layout

Best practices

  • Separate code and data: do not auto-load OWL files with data (such as environment maps), do this using a proper launch file such as the ones in knowrob_map_data
  • Use unique identifiers: avoid name clashes between instances that share the same identifier
  • Keep the dependency list small, create demo-specific packages with launch files and dependencies
  • Put special-purpose functionality into knowrob_addons
  • Create wiki pages while developing a novel package, copy/paste your test queries there, make your students do the same to document how their stuff can be used without having to think too much about it

Representations in OWL

Upper ontology

see knowrob.owl in knowrob_common/owl/

Computable properties

Objects

  • Object classes
  • Object instances
  • Object positions over time

Actions

  • Action classes
  • Action recipes/task descriptions
  • Action instances/log files

Overview of the available KnowRob packages

  1. rosprolog, json_prolog
  2. knowrob_common
  3. comp_temporal, comp_spatial
  4. knowrob_objects, knowrob_map_tools, knowrob_map_data, comp_orgprinciples
  5. knowrob_actions
  6. knowrob_srdl
  7. tf_prolog
  8. knowrob_mongo, visualization infrastructure
  9. knowrob_addons: knowrob_cram, knowrob_motion_constraints
  10. knowrob_gui
  11. knowrob_human
  12. knowrob_tutorials