User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
research:cram [2011/07/21 09:04]
research:cram [2011/08/01 15:56]
Line 1: Line 1:
-====== Cognitive Robot Abstract Machine ======+====== ​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 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.
 +{{ :​research:​cram:​cram-language-architecture.png?​nolink&​ |}}
 +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 ===
 +  * Designators are symbolic descriptions of entities such as objects (e.g. mugs, plates, ...), locations and parameterizations of actions. Designators unify symbolic and grounded concepts of the high level control program and the parameterization of the lower level components, which is necessary to efficiently reason about the execution of plans.
 +  * Process Modules encapsulate lower-level control processes that can be activated, deactivated and parameterized by the high-level control program. They resolve symbolic properties of designators and generate the parameterization of the low-level control routines, by taking into account the current belief state.
 +  * Recording of an extensive Execution trace, including the belief state at any point in time and the internal state of the control program.
 +  * Reasoning components include a bridge between CPL and KnowRob by incorporating the foreign language interface of SWI-Prolog into Common Lisp, a reasoning component based on the RETE algorithm and a library of predicates that allow for reasoning about plan execution, based on the execution trace.
 +=== 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 [[http://​​wiki/​knowrob|here]] and [[http://​​kb/​wiki|here]]. For more information on the concepts behind the system, have a look at the [[Research/​knowledge|KnowRob page]]. The extension modules that are currently available in ROS include:
 +  * ias_knowledge_base - the KnowRob base ontology ​
 +  * comp_ros - read information from ROS into the system (currently: object poses)
 +  * comp_spatial - compute qualitative spatial relations on demand
 +  * comp_temporal - compute temporal relations for time points and time spans
 +  * ias_semantic_map - the semantic environment map of the IAS kitchen
 +  * mod_vis - visualization modules for entities in the knowledge base
 +== Download ===
 +CRAM is available as several ROS packages and stacks through the [[http://​​wiki/​tum-ros-pkg|tum-ros-pkg]] repository. CPL and the CPL extensions have been packaged into the ROS stack [[http://​​wiki/​cram|CRAM]]. Documentation and installation instructions are available at [[http://​​wiki/​cram_pl]]. KnowRob has been packaged into the ROS stack http://​​wiki/​knowrob|KnowRob]].
 +==== Acknowledgements ====
 +This project received support as part of the [[http://​​blog/​2010/​05/​04/​pr2-beta-program-recipients|PR2 Beta Program]] by [[http://​|Willow Garage]].
 +=== Publications ===
 +      "​year"​=>"​2010",​
 +      "​academic"​=>"​1",​
 +      "​keywords"​=>"",​
 +      "​entry"​=>"",​
 +      "​search"​=>"​cram|beetz10towards",​
 +      "​exclude"​=>"",​
 +      "​result"​=>"",​
 +      "​author"​=>"",​
 +      "​key"​=>"",​
 +      "​type"​=>"",​
 +      "​topic"​=>"",​
 +      "​award"​=>"",​
 +      "​all"​=>"",​
 +      "​bib"​=>"",​
research/cram.txt · Last modified: 2011/08/18 14:57 by tenorth