CRAM: Cognitive Robot Abstract Machine

CRAM is a software toolbox for the design, implementation and deployment of cognition-enabled plan execution on autonomous robots. CRAM equips autonomous robots with lightweight reasoning mechanisms that can infer control decisions rather than requiring the decisions to be preprogrammed. This way CRAM-programmed autonomous robots are more flexible and general than control programs that lack such cognitive capabilities. CRAM does not require the whole reasoning domain to be stated explicitly in an abstract knowledge base. Rather, it grounds symbolic expressions into the perception and actuation routines and into the essential data structures of the control plans.

CRAM's domain-specific reactive concurrent language is based on the idea of RPL (Robot Plan Language) of Drew McDermott. Its core packages are implemented in Common Lisp with support to the ROS middleware infrastructure.


This project received funding from several funding agencies in different research projects. We would like to acknowledge the support from

  • DFG Excellence Initiative research cluster Cognition for Technical Systems (CoTeSys)
  • EU FP7 project RoboEarth (grant agreement #248942)
  • EU FP7 project RoboHow (grant agreement #288533)
  • EU FP7 project Saphari (grant agreement #287513)
  • EU FP7 project SHERPA (grant agreement #600958)
  • Willow Garage as part of the PR2 Beta Program