ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

cram planning algorithm

asked 2015-04-01 03:18:40 -0600

Dongho gravatar image

updated 2015-04-01 09:06:22 -0600


Cram-system is a high level A.I. planning executive, so, I am wondering what kind of planning algorithm that Cram-system is using in the latest version ? Also, I am wondering how cram-system make use of knowrob knowledge base ? As far as I know, KB may be used for evaluating preconditions of actions in planning system but I still can't find any clue about it. I am desperately looking for how symantic web based planning system works in cram-system. Which program source codes either in cram-system or knowrob should I read to find out the issues that may address about the above two questions ? Thanks.

Dongho Song, Korea Aerospace Univ.

edit retag flag offensive close merge delete

3 Answers

Sort by » oldest newest most voted

answered 2015-04-02 08:49:45 -0600

makokal gravatar image

Perhaps you could start by going through the cram tutorials which as very well documented at

edit flag offensive delete link more


Thank you for your comment. Actually, I've read through those docs in tutorials and could run the cram tutorial programs mostly without problem. The more we understand on the cram-system, the more curious to know about the details of Cram.<continue>

Dongho gravatar image Dongho  ( 2015-04-06 00:14:29 -0600 )edit

answered 2015-04-06 07:00:00 -0600

moritz gravatar image

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.

edit flag offensive delete link more


I appreciate for your answers very much. I wish many researchers are interested in the above questions and share the answers from you as well. We will investigate more on Open-ease, Cram planning, and interacting with Knowrob through "ask" "tell". Again, thank you very much. Dongho

Dongho gravatar image Dongho  ( 2015-04-07 02:48:16 -0600 )edit

answered 2015-04-06 00:24:51 -0600

Dongho gravatar image

updated 2015-04-06 00:44:00 -0600

I could find some related answers to the above questions from Prof. Moritz Tenorth's paper below. Thus, Cram has HTN like planning algorithm but not the same. Also, Cram has CPL which is a bit different from PDDL. I would like to know more in detail about the differences of cram from standards. Also, I am still curious to know how the action planning and semantic KB are interacting each other.

"II. RELATED WORK As a platform for knowledge exchange between heterogeneous robots, ROBOEARTH requires very expressive and highly semantic representations that provide a robot with all information it needs to select information from the knowledge base, adapt it, and reason about its applicability. Earlier research on knowledge representation for actions or objects usually did not deal with this kind of meta-information needed for autonomously exchanging knowledge. Hierarchical Task Networks (HTN [4]) and related languages for plan representation [19] or workflow specification [18] are similar to the action representation used in ROBOEARTH, but focus on the description of the task itself, i.e., its subactions, goals, and ordering constraints. The Planning Domain Definition Language (PDDL) [20] follows a different approach describing actions as first principles from which plans are constructed during run-time using AI planning techniques. XABSL [5], mainly used in the RoboCup soccer context, describes actions in terms of hierarchical finite state machines. AutomationML [6] is a standard for describing task information and spatial configurations, mainly used in industrial applications. The FIPA [7] standard primarily deals with the definition of communication standards for software agents. Object description formats like the proprietary DXF [8] or the open Collada [9] standard describe objects by their meshes and textures, but without further specifying semantic properties. The Knowledge Interchange Format (KIF) [21] is a very expressive generic exchange language that aims at a self-contained representation. The high expressiveness however comes at the cost of limited reasoning support. For ROBOEARTH, we chose a shared ontology as pragmatic solution. We are not aware of any other system that integrates task descriptions, spatial information, semantic information about object types and meta-information about the exchanged data in a common language supporting abstract reasoning. Related work on sharing knowledge among robots focused either on sharing a common belief state in multirobot systems [10], or on fundamental aspects like how heterogeneous robots can autonomously acquire and share symbols created from perceptual cues [11]. Our interest is rather on creating a system for exchanging complex manipulation task-related information, so we simplify some of these aspects by assuming that a common base ontology is shared by all parties and that perception is done using the provided object models which are linked to the classes in the ontology."

Quoted from the paper Moritz Tenorth,, Representation and Exchange of Knowledge About Actions, Objects, and Environments in the ROBOEARTH Framework IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING 1

edit flag offensive delete link more

Question Tools


Asked: 2015-04-01 03:18:40 -0600

Seen: 743 times

Last updated: Apr 06 '15