ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
CRAM does not use classical planning methods such as PDDL. It is a high-level executive rather than a planning system, which means that it focuses on the execution of plans rather than their generation. Usually, a CRAM system consists of a library of carefully written plans for common subtasks such as navigation or picking up objects, which are hierarchically composed to higher-level plans.
These plan fragments are 'universal', i.e. they do not specify preconditions that need to be fulfilled by some external procedure, but contain code for checking these preconditions and for making them true. For example, a plan for picking up an object may require the object to be in reach and visible, and contain calls to methods for navigating sufficiently close and for opening surrounding containers before starting the grasping action.
KnowRob is used by the plan fragments for reading parameter values and for taking decisions. As a rule of thumb, all environment-, object- or context-dependent pieces of information are not stored in the plans themselves, but in the knowledge base, and are read by queries during plan execution.
More details on the CRAM language can be found in [1], on the general concepts behind the CRAM/KnowRob ecosystem in [2], and on the interaction between CRAM and KnowRob in [3].
[1] Michael Beetz, Lorenz Mösenlechner, Moritz Tenorth, "CRAM -- A Cognitive Robot Abstract Machine for Everyday Manipulation in Human Environments", In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Taipei, Taiwan, pp. 1012-1017, 2010.
[2] Michael Beetz, Dominik Jain, Lorenz Mösenlechner, Moritz Tenorth, Lars Kunze, Nico Blodow, Dejan Pangercic, "Cognition-Enabled Autonomous Robot Control for the Realization of Home Chore Task Intelligence", In Proceedings of the IEEE, vol. 100, no. 8, pp. 2454-2471, 2012.
[3] Moritz Tenorth, Michael Beetz, "KnowRob -- A Knowledge Processing Infrastructure for Cognition-enabled Robots", In International Journal of Robotics Research (IJRR), vol. 32, no. 5, pp. 566 - 590, 2013.