This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
research:cram [2011/07/26 17:09] tenorth |
research:cram [2011/08/18 14:57] (current) tenorth |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Cognitive Robot Abstract Machine ====== | + | ====== CRAM: Cognitive Robot Abstract Machine ====== |
- | Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. | + | 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. | ||
- | Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. | + | {{ :research:cram:cram-language-architecture.png?nolink& |}} |
- | Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. | + | 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://ros.org/wiki/knowrob|here]] and [[http://ias.in.tum.de/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://www.ros.org/wiki/tum-ros-pkg|tum-ros-pkg]] repository. CPL and the CPL extensions have been packaged into the ROS stack [[http://www.ros.org/wiki/cram_pl|cram_pl]]. KnowRob has been packaged into the ROS stack [[http://www.ros.org/wiki/knowrob|knowrob]]. | ||
+ | |||
+ | ==== Acknowledgements ==== | ||
+ | This project received support as part of the [[http://www.willowgarage.com/blog/2010/05/04/pr2-beta-program-recipients|PR2 Beta Program]] by [[http://www.willowgarage.com|Willow Garage]]. | ||
Line 17: | Line 43: | ||
"keywords"=>"", | "keywords"=>"", | ||
"entry"=>"", | "entry"=>"", | ||
- | "search"=>"cram", | + | "search"=>"cram|beetz10towards", |
"exclude"=>"", | "exclude"=>"", | ||
"result"=>"", | "result"=>"", |