A guide to the KnowRob repositories

The KnowRob ecosystem consists of several repositories, the role of each of which is outlined below:

  • knowrob: Core stack, try to keep this as generic as possible (while it is a bit overfit to household scenarios for historical reasons, it should mostly contain code and data that can be 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 methods
  • 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 and possibly outdated
  • knowrob_tutorials: Tutorial package: first steps, perception integration


  • 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.
  • 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: Please follow the guidelines described here