CRAM

Cognitive Robot Abstract Machine

CRAM (Cognitive Robot Abstract Machine) is a software toolbox for the design, the implementation, and the deployment of cognition-enabled autonomous robots performing everyday manipulation activities. CRAM equips autonomous robots with lightweight reasoning mechanisms that can infer control decisions rather than requiring the decisions to be pre-programmed. This way CRAM-programmed autonomous robots are much more flexible, reliable, and general than control programs that lack such cognitive capabilities. CRAM does not require the whole domain to be stated explicitly in an abstract knowledge base. Rather, it grounds symbolic expressions in the knowledge representation into the perception and actuation routines and into the essential data structures of the control programs.

The CRAM kernel consists of the CPL plan language and the KnowRob knowledge processing system. Both are tightly coupled to the perception and actuation components. CRAM is realized in a highly modular way and can be extended with plug-ins providing additional cognitive capabilities.

CPL Extension Modules

KnowRob Extension Modules

KnowRob is a pragmatic knowledge processing system for autonomous robots that provides grounded knowledge processing and reasoning services. It is implemented in a highly modular way allowing to load additional modules only when needed. The documentation of KnowRob and its extension modules can be found at http://www.knowrob.org. For more information on the concepts behind the system, have a look at the KnowRob page.

Download

CRAM is available as several ROS packages and stacks through. CPL and the CPL extensions are documented at http://www.cram-system.org. The website of the KnowRob project is http://www.knowrob.org.

Publications