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 preprogrammed. 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.
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 here and here. For more information on the concepts behind the system, have a look at the KnowRob page. The extension modules that are currently available in ROS include:
CRAM is available as several ROS packages and stacks through the tum-ros-pkg repository. CPL and the CPL extensions have been packaged into the ROS stack cram_pl. KnowRob has been packaged into the ROS stack knowrob.
This project received support as part of the PR2 Beta Program by Willow Garage.
Towards Performing Everyday Manipulation Activities , In Robotics and Autonomous Systems, Elsevier, volume 58, 2010. [bib] [pdf] |
CRAM -- A Cognitive Robot Abstract Machine for Everyday Manipulation in Human Environments , In IEEE/RSJ International Conference on Intelligent Robots and Systems, 2010. [bib] [pdf] |